Files
tendril/kb/_guides/PROJECT-SETUP-GUIDE/PHASE-3-PLAN.md
Data Warrior db003786f9 docs(phases): add Phase 3-6 plans and update Phase 2 plan
This commit adds comprehensive plan documents for all remaining phases
of the project setup system replication:

## Phase Plans Added

### Phase 2 Plan (Updated)
- KB System Setup plan document
- Already implemented in previous commit
- Plan document now tracked in repository

### Phase 3 Plan (New)
- Gitea Actions Workflows Setup
- Covers .github/ documentation and workflow creation
- KB lint and KB index update workflows
- Customized for Tendril and Gitea platform

### Phase 4 Plan (New)
- LLM Usage Guides Setup
- LLM-Usage-Guide.md and Prompt-Creation-Guide.md
- Initial prompt documents
- Customized for Tendril project

### Phase 5 Plan (New)
- Validation and Testing
- Comprehensive testing procedures
- Test scenarios for all system components
- Troubleshooting guide

### Phase 6 Plan (New)
- Customization and Final Verification
- Project name and terminology verification
- Directory structure verification
- Final documentation review
- System integration verification

## Plan Structure

All plans follow consistent structure:
- Overview and current state
- Detailed task breakdown
- Customizations for Tendril
- Files to create
- Dependencies and success criteria
- Validation checklists
- Notes and references

## Customizations

All plans are customized for:
- Tendril project (not "pairs")
- Gitea platform (not GitHub)
- Tendril-specific directory structure
- Gitea Actions (with GitHub Actions compatibility notes)

## Files Added

- kb/_guides/PROJECT-SETUP-GUIDE/PHASE-2-PLAN.md (5.0KB)
- kb/_guides/PROJECT-SETUP-GUIDE/PHASE-3-PLAN.md (13KB)
- kb/_guides/PROJECT-SETUP-GUIDE/PHASE-4-PLAN.md (8.1KB)
- kb/_guides/PROJECT-SETUP-GUIDE/PHASE-5-PLAN.md (12KB)
- kb/_guides/PROJECT-SETUP-GUIDE/PHASE-6-PLAN.md (11KB)

Total: 5 phase plan documents, ~49KB of planning documentation
2025-11-11 11:50:01 -07:00

385 lines
12 KiB
Markdown

# Phase 3: Gitea Actions Workflows Setup - Detailed Plan
**Objective**: Configure Gitea Actions workflows and automation documentation for repository maintenance
**Status**: Ready for Review
**Date**: 2025-01-27
---
## Overview
Phase 3 establishes Gitea Actions workflows and automation documentation for the Tendril repository. This includes KB validation workflows, index auto-update automation, and comprehensive documentation for maintaining the `.github/` directory structure.
**Note**: Gitea Actions is compatible with GitHub Actions, so workflows use the same YAML format and `.github/` directory structure.
---
## Current State
- `.github/workflows/` directory exists (empty)
- Phase 2 KB System Setup completed (KB files, templates, scripts ready)
- KB index generation script exists: `kb/scripts/generate-index.sh`
- KB validation rules defined in replication guide
- Missing: `.github/` documentation files and workflow files
---
## Tasks Breakdown
### Task 1: Create .github/README.md
**File**: `.github/README.md`
Create comprehensive overview of `.github/` directory including:
- Purpose and structure of `.github/` directory
- Workflows overview (kb-lint, kb-index-update)
- Documentation files explanation
- Maintenance guidelines
- Workflow update procedures
**Source**: Template from `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md` (GitHub Automation System section, lines 1044-1110)
**Customizations**:
- Replace "GitHub Actions" with "Gitea Actions" (with compatibility note)
- Replace "GitHub" with "Gitea" where referring to platform
- Update repository name to "tendril"
- Note Gitea Actions compatibility with GitHub Actions format
---
### Task 2: Create .github/CHANGELOG.md
**File**: `.github/CHANGELOG.md`
Create changelog for tracking workflow and automation changes:
- Initial entry documenting Phase 3 setup
- Date-based format: `## [YYYY-MM-DD] Brief Description`
- Sections: Added, Changed, Fixed, Notes
- Format: `- **\`[file-path]\`** - [Description]`
**Source**: Template from `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md` (lines 1112-1140)
**Initial Entry**:
```markdown
## [2025-01-27] Gitea Actions Workflows Setup
### Added
- **`.github/README.md`** - .github directory overview
- **`.github/CHANGELOG.md`** - Workflow change tracking (this file)
- **`.github/decisions.md`** - Automation decisions
- **`.github/LLM-Usage-Guide--tendril.md`** - LLM instructions for workflows
- **`.github/workflows/kb-lint.yml`** - KB file validation workflow
- **`.github/workflows/kb-index-update.yml`** - KB index auto-update workflow
### Notes
- Phase 3 Gitea Actions Workflows Setup completed
- All workflows use Gitea Actions (compatible with GitHub Actions format)
- Workflows configured for Tendril repository structure
```
---
### Task 3: Create .github/decisions.md
**File**: `.github/decisions.md`
Create decisions document for automation choices:
- Purpose statement
- Decision format explanation
- Initial decisions about workflow setup
- Future decisions section
**Source**: Template from `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md` (lines 1142-1197)
**Initial Decisions to Document**:
1. **Use Gitea Actions (not GitHub Actions)**
- Context: Repository is on Gitea platform
- Decision: Use Gitea Actions with GitHub Actions compatibility
- Rationale: Gitea Actions uses same YAML format, seamless migration
- Impact: All workflows use `.github/workflows/` structure
2. **Automate KB Index Updates**
- Context: KB index must stay current with KB files
- Decision: Auto-update index on push to main when KB files change
- Rationale: Reduces manual maintenance, ensures index accuracy
- Impact: Index always reflects current KB state
3. **Validate KB Files in CI**
- Context: KB files must follow strict naming and frontmatter rules
- Decision: Validate KB files on push and pull requests
- Rationale: Catch errors early, maintain KB system integrity
- Impact: Invalid KB files block commits
---
### Task 4: Create .github/LLM-Usage-Guide--tendril.md
**File**: `.github/LLM-Usage-Guide--tendril.md`
Create LLM instructions for working with workflows:
- Repository context (Tendril, Gitea platform)
- Understanding .github directory structure
- Working with workflows (modifying, adding, removing)
- Workflow-specific instructions (kb-lint, kb-index-update)
- Documentation maintenance procedures
- Common tasks and validation checklist
**Source**: Template from `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md` (lines 1199-1378)
**Customizations**:
- Replace `{REPO-NAME}` with "tendril"
- Replace "GitHub Actions" with "Gitea Actions" (with compatibility note)
- Update repository URL: https://git.parkingmeter.info/Mycelium/tendril
- Add workflow-specific instructions for kb-lint and kb-index-update
- Reference `docs/GITEA/Gitea-Actions-Guide.md` for Gitea-specific guidance
---
### Task 5: Create KB Lint Workflow
**File**: `.github/workflows/kb-lint.yml`
Create workflow to validate KB files:
**Purpose**: Validates KB file naming, frontmatter, and structure on push and pull requests
**Triggers**:
- Push to any branch when `kb/**/*.md` files change
- Pull requests when `kb/**/*.md` files change
**Validation Rules**:
- Filename pattern: `^\d{4}-\d{2}-\d{2}--[a-z0-9-]{3,}--(idea|note|spec|decision|howto|retro|meeting)(--p[0-9]+)?\.md$`
- Frontmatter must exist and be valid YAML
- All 18 required fields must be present
- Date in frontmatter must match filename date
- Type in frontmatter must match filename type
- `routing_confidence` must be numeric 0.00-1.00
- Files with `routing_confidence < 0.60` must be in `_review_queue/`
**Source**: Validation script from `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md` (lines 1561-1620)
**Workflow Structure**:
```yaml
name: KB Lint
on:
push:
paths:
- 'kb/**/*.md'
pull_request:
paths:
- 'kb/**/*.md'
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate KB Files
run: |
# Validation script here
```
**Implementation Notes**:
- Use bash script inline or create separate validation script
- Exclude `_guides/`, `_templates/`, `README.md`, `_index.md`, `CHANGELOG.md` from validation
- Provide clear error messages for each validation failure
- Exit with error code if any validation fails
---
### Task 6: Create KB Index Update Workflow
**File**: `.github/workflows/kb-index-update.yml`
Create workflow to auto-update KB index:
**Purpose**: Automatically regenerates `kb/_index.md` when KB files change on main branch
**Triggers**:
- Push to `main` branch when `kb/**/*.md` files change
- Exclude `_guides/`, `_templates/`, `README.md`, `_index.md`, `CHANGELOG.md`
**Workflow Steps**:
1. Checkout repository
2. Run `kb/scripts/generate-index.sh`
3. Check if `kb/_index.md` changed
4. If changed, commit and push update
5. Use appropriate git user (Gitea Actions)
**Source**: Template from `docs/GITEA/Gitea-Actions-Guide.md` (lines 224-249) and replication guide
**Workflow Structure**:
```yaml
name: Update KB Index
on:
push:
branches: [ main ]
paths:
- 'kb/**/*.md'
permissions:
contents: write
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate index
run: ./kb/scripts/generate-index.sh
- name: Commit changes
run: |
git config user.name "Gitea Actions"
git config user.email "actions@gitea.io"
git add kb/_index.md
git commit -m "chore: update KB index" || exit 0
git push
```
**Implementation Notes**:
- Requires `contents: write` permission to push changes
- Use `|| exit 0` to handle case where index hasn't changed
- Ensure script is executable (already done in Phase 2)
- Test that script works in Gitea Actions environment
---
## Customizations for Tendril
### Platform References
- **Use**: "Gitea Actions" (not "GitHub Actions") but note compatibility
- **Note**: Gitea Actions is compatible with GitHub Actions format
- **Repository**: https://git.parkingmeter.info/Mycelium/tendril
- **Platform**: Gitea (self-hosted)
### Repository Name
- **Use**: "tendril" (not "pairs" or placeholder)
- **LLM Guide**: `LLM-Usage-Guide--tendril.md`
### Workflow Customizations
- **KB paths**: `kb/**/*.md` (matches Tendril structure)
- **Index script**: `./kb/scripts/generate-index.sh` (relative to repo root)
- **Main branch**: Use `main` (verify actual branch name)
### Documentation References
- Reference `docs/GITEA/Gitea-Actions-Guide.md` for Gitea-specific guidance
- Reference `docs/GITEA/LLM-Gitea-Guidelines.md` for LLM guidelines
- Note compatibility with GitHub Actions format
---
## Files to Create
1. **`.github/README.md`** - .github directory overview
2. **`.github/CHANGELOG.md`** - Workflow change tracking
3. **`.github/decisions.md`** - Automation decisions
4. **`.github/LLM-Usage-Guide--tendril.md`** - LLM instructions
5. **`.github/workflows/kb-lint.yml`** - KB validation workflow
6. **`.github/workflows/kb-index-update.yml`** - KB index auto-update workflow
---
## Dependencies
- Phase 0: Directory structure (completed)
- Phase 1: Phase documentation templates (completed)
- Phase 2: KB System Setup (completed)
- KB templates and scripts must exist
- Index generation script must be executable
- KB validation rules must be defined
---
## Success Criteria
- All `.github/` documentation files created and properly formatted
- Both workflows created and use correct YAML syntax
- KB lint workflow validates all KB file rules
- KB index update workflow successfully regenerates index
- All files customized for Tendril project and Gitea platform
- Documentation references Gitea Actions (with compatibility notes)
- Workflows tested and functional
---
## Validation Checklist
Before completing Phase 3, verify:
- [ ] `.github/README.md` exists and documents all workflows
- [ ] `.github/CHANGELOG.md` exists with initial Phase 3 entry
- [ ] `.github/decisions.md` exists with initial decisions
- [ ] `.github/LLM-Usage-Guide--tendril.md` exists and is complete
- [ ] `.github/workflows/kb-lint.yml` exists and validates KB files
- [ ] `.github/workflows/kb-index-update.yml` exists and updates index
- [ ] All files use "Gitea Actions" terminology (with compatibility notes)
- [ ] All files reference "tendril" (not "pairs")
- [ ] Workflows use correct paths for Tendril structure
- [ ] Documentation references Gitea documentation where appropriate
- [ ] Workflows can be tested (syntax validation, dry-run if possible)
---
## Testing Workflows
### Test KB Lint Workflow
1. Create a test KB file with invalid filename
2. Push to branch
3. Verify workflow runs and fails validation
4. Fix filename
5. Verify workflow passes
### Test KB Index Update Workflow
1. Create a test KB file with valid frontmatter
2. Push to main branch
3. Verify workflow runs
4. Check that `kb/_index.md` is updated
5. Verify commit is created with update
**Note**: Testing may require Gitea Actions runners to be configured. Consult `docs/GITEA/Gitea-Actions-Guide.md` for runner setup.
---
## Next Steps After Phase 3
Once Phase 3 is complete:
- Phase 4: LLM Usage Guides
- Phase 5: Documentation Migration
- Phase 6: Validation and Testing
---
## Notes
- Gitea Actions uses same YAML format as GitHub Actions, so workflows are compatible
- Workflows must be tested once Gitea Actions runners are configured
- KB validation rules match those defined in Phase 2 KB System Setup
- Index update workflow requires write permissions to push changes
- All workflows should reference Gitea Actions (not GitHub Actions) in documentation
- Consult `docs/GITEA/Gitea-Actions-Guide.md` for Gitea-specific workflow guidance
---
**Location**: `kb/_guides/PROJECT-SETUP-GUIDE/PHASE-3-PLAN.md`
**Related**:
- `kb/_guides/PROJECT-SETUP-GUIDE/COMPLETE-SYSTEM-REPLICATION-GUIDE.md`
- `docs/GITEA/Gitea-Actions-Guide.md`
- `docs/GITEA/LLM-Gitea-Guidelines.md`
- `kb/README.md` (KB system documentation)