Files
dotfiles/.config/opencode/.memory/decisions.md
alex e9074646b7 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
2026-03-08 23:48:42 +00:00

2.5 KiB

Agent Memory Write Access

Decision: Enable permission.edit: allow for all seven agents with memory recording duties (reviewer, tester, explorer, researcher, critic, sme, designer) so they can write .memory/* files directly.

Rationale: These agents have explicit memory duties (recording verdicts, discoveries, research findings, guidance, design decisions) but previously had permission.edit: deny, making those duties impossible. The lead had to relay all memory writes, losing fidelity and adding overhead.

Implementation:

  • Changed permission.edit: denypermission.edit: allow in all seven agent files.
  • Added instruction-level guardrails in each agent to restrict edits to .memory/* only (code/source remains read-only).
  • Path-scoped permission.edit is not supported by OpenCode, so instruction-level guardrails are the enforcement mechanism.

Affected files: agents/reviewer.md, agents/tester.md, agents/explorer.md, agents/researcher.md, agents/critic.md, agents/sme.md, agents/designer.md.

Risk: Agents could theoretically edit non-memory files since the config-level permission is allow. Mitigation is instruction-level enforcement, which is effective but not mechanical.

See Plan: Agent Memory Write Access | See Knowledge: Permission Model

Decision: Use .github/copilot-instructions.md as the single source-of-truth instruction file and represent AGENTS.md, CLAUDE.md, and .cursorrules as symlinks to it.

Rationale: The previous multi-file sync model required manual propagation/merge logic and could drift. Symlinks remove synchronization overhead and guarantee tool-level consistency by construction.

Implementation:

  • Updated AGENTS.md “Cross-Tool Instruction Files” guidance to document the symlink pattern and initialization/joining workflow.
  • Removed session-start instruction in AGENTS.md that required reading additional tool-specific instruction files for merge reconciliation.
  • Updated agents/librarian.md responsibilities from multi-file sync/merge to maintaining .github/copilot-instructions.md plus symlink verification.
  • Updated agents/lead.md PHASE-WRAP and Documentation Completion Gate to reference .github/copilot-instructions.md instead of syncing four files.

Affected files: AGENTS.md, agents/librarian.md, agents/lead.md, .memory/knowledge.md.

See Knowledge: Project Overview