feat: adopt symlink approach for cross-tool instruction files

Replace 4 separate instruction files with 1 real file + symlinks:
- .github/copilot-instructions.md is the canonical instruction file
- CLAUDE.md and .cursorrules are symlinks to it
- AGENTS.md stays as global config (not a project instruction file)

This eliminates all sync/merge logic - changes propagate automatically.

Changes:
- AGENTS.md: rewrite Cross-Tool Instruction Files section for symlink convention
- librarian.md: simplify to maintain single instruction file + verify symlinks
- lead.md: simplify PHASE-WRAP and Documentation Completion Gate
- commands (init, bootstrap-memory, save-memory): update for symlink model
- doc-coverage skill: verify symlinks exist and point correctly
This commit is contained in:
2026-03-08 23:48:42 +00:00
parent 9830f6f01c
commit e9074646b7
12 changed files with 121 additions and 195 deletions

View File

@@ -60,26 +60,13 @@ constraints). Include rationale when known.
- If research artifacts are discovered, create `.memory/research/<topic>.md`
with findings and references.
## Step 6: Delegate instruction file creation to librarian
## Step 6: Update instruction file
After `.memory/knowledge.md` is populated, dispatch the `librarian` subagent to
create or update all cross-tool instruction files from `.memory/knowledge.md`:
If `.github/copilot-instructions.md` exists, update it with any new project knowledge
discovered during bootstrap (architecture, conventions, commands). The symlinks
(`AGENTS.md`, `CLAUDE.md`, `.cursorrules`) will automatically reflect changes.
- `AGENTS.md`
- `CLAUDE.md`
- `.github/copilot-instructions.md`
- `.cursorrules`
Each file should include the same core project guidance:
- project overview and purpose
- tech stack
- architecture summary
- coding conventions/patterns
- build/test/lint commands
- project structure overview
If any of these files already exist, preserve existing project-specific content
and merge in new knowledge instead of overwriting wholesale.
If the instruction file doesn't exist, note that `/init` should be run to create it.
## Guidelines