From 04d6e497dab5b1fca33c34d5c3f36a66aa65addf Mon Sep 17 00:00:00 2001 From: Jose Alekhinne Date: Wed, 15 Apr 2026 18:34:29 -0700 Subject: [PATCH] Enrich all 610 doc.go files to meet quality floor Rewrites every doc.go in the project to meet the quality floor established in decision 2026-04-14: behavior-grounded content, 25-100 body lines, no lazy template patterns. Changes: - 493 stub doc.go files enriched with behavior descriptions, design rationale, and algorithm details - Removed Related Packages sections from all 610 files (drift liability outweighs benefit given IDE and GitNexus tooling) - Eliminated all lazy template patterns (Key exports, See source files, Part of subsystem) - Fixed compliance test issues: gofmt formatting, literal .md in config/file/doc.go, subcommand drift in cli-level doc.go - Copilot CLI skills and context assets synced via make build Signed-off-by: Jose Alekhinne Spec: specs/docgo-quality-floor.md --- .context/AGENT_PLAYBOOK.md | 48 +++++ .context/AGENT_PLAYBOOK_GATE.md | 36 +++- .context/CONSTITUTION.md | 10 + .gitignore | 1 + cmd/ctx/doc.go | 29 ++- internal/assets/context/AGENT_PLAYBOOK.md | 49 ++++- .../assets/context/AGENT_PLAYBOOK_GATE.md | 31 ++- internal/assets/context/CONSTITUTION.md | 10 + internal/assets/doc.go | 46 ++++- internal/assets/hooks/messages/doc.go | 43 ++++- .../copilot-cli/skills/ctx-agent/SKILL.md | 1 - .../skills/ctx-architecture/SKILL.md | 1 - .../copilot-cli/skills/ctx-archive/SKILL.md | 1 - .../skills/ctx-blog-changelog/SKILL.md | 1 - .../copilot-cli/skills/ctx-blog/SKILL.md | 1 - .../skills/ctx-brainstorm/SKILL.md | 1 - .../copilot-cli/skills/ctx-commit/SKILL.md | 1 - .../skills/ctx-consolidate/SKILL.md | 1 - .../copilot-cli/skills/ctx-doctor/SKILL.md | 1 - .../copilot-cli/skills/ctx-drift/SKILL.md | 1 - .../copilot-cli/skills/ctx-implement/SKILL.md | 1 - .../skills/ctx-journal-enrich-all/SKILL.md | 1 - .../skills/ctx-journal-enrich/SKILL.md | 1 - .../copilot-cli/skills/ctx-loop/SKILL.md | 1 - .../copilot-cli/skills/ctx-next/SKILL.md | 1 - .../copilot-cli/skills/ctx-pad/SKILL.md | 1 - .../copilot-cli/skills/ctx-pause/SKILL.md | 1 - .../skills/ctx-prompt-audit/SKILL.md | 1 - .../copilot-cli/skills/ctx-reflect/SKILL.md | 1 - .../copilot-cli/skills/ctx-remember/SKILL.md | 1 - .../copilot-cli/skills/ctx-remind/SKILL.md | 1 - .../copilot-cli/skills/ctx-resume/SKILL.md | 1 - .../skills/ctx-skill-audit/SKILL.md | 1 - .../copilot-cli/skills/ctx-spec/SKILL.md | 1 - .../copilot-cli/skills/ctx-status/SKILL.md | 1 - .../copilot-cli/skills/ctx-worktree/SKILL.md | 1 - .../copilot-cli/skills/ctx-wrap-up/SKILL.md | 1 - internal/assets/read/agent/doc.go | 32 +++- internal/assets/read/catalog/doc.go | 27 ++- internal/assets/read/claude/doc.go | 32 +++- internal/assets/read/desc/doc.go | 46 ++++- internal/assets/read/entry/doc.go | 35 +++- internal/assets/read/hook/doc.go | 34 +++- internal/assets/read/journal/doc.go | 23 ++- internal/assets/read/lookup/doc.go | 13 -- internal/assets/read/makefile/doc.go | 23 ++- internal/assets/read/philosophy/doc.go | 24 ++- internal/assets/read/project/doc.go | 23 ++- internal/assets/read/schema/doc.go | 28 ++- internal/assets/read/skill/doc.go | 37 +++- internal/assets/read/template/doc.go | 30 ++- internal/assets/tpl/doc.go | 14 -- internal/assets/why/design-invariants.md | 2 +- internal/assets/why/manifesto.md | 18 +- internal/audit/doc.go | 55 ++++-- internal/bootstrap/doc.go | 10 - internal/claude/doc.go | 46 ++++- internal/cli/add/cmd/doc.go | 38 +++- internal/cli/add/cmd/root/doc.go | 12 -- internal/cli/add/core/doc.go | 65 ++++++- internal/cli/add/core/entry/doc.go | 39 +++- internal/cli/add/core/example/doc.go | 26 ++- internal/cli/add/core/extract/doc.go | 39 +++- internal/cli/add/core/format/doc.go | 43 ++++- internal/cli/add/core/insert/doc.go | 9 - internal/cli/add/core/normalize/doc.go | 37 +++- internal/cli/add/doc.go | 39 ++-- internal/cli/agent/cmd/root/doc.go | 12 -- internal/cli/agent/core/budget/doc.go | 16 -- internal/cli/agent/core/cooldown/doc.go | 46 ++++- internal/cli/agent/core/doc.go | 64 ++++++- internal/cli/agent/core/extract/doc.go | 48 ++++- internal/cli/agent/core/hub/doc.go | 33 +++- internal/cli/agent/core/score/doc.go | 10 - internal/cli/agent/core/sort/doc.go | 34 +++- internal/cli/agent/core/steering/doc.go | 40 +++- internal/cli/agent/doc.go | 5 + internal/cli/backup/doc.go | 31 ++- internal/cli/change/cmd/root/doc.go | 38 +++- internal/cli/change/core/detect/doc.go | 10 - internal/cli/change/core/doc.go | 52 +++++- internal/cli/change/core/render/doc.go | 43 ++++- internal/cli/change/core/scan/doc.go | 52 +++++- internal/cli/change/doc.go | 26 ++- internal/cli/compact/cmd/root/doc.go | 43 ++++- internal/cli/compact/core/doc.go | 40 +++- internal/cli/compact/core/task/doc.go | 29 ++- internal/cli/compact/doc.go | 27 ++- internal/cli/config/cmd/schema/doc.go | 36 +++- internal/cli/config/cmd/status/doc.go | 34 +++- internal/cli/config/cmd/switchcmd/doc.go | 40 +++- internal/cli/config/core/doc.go | 44 ++++- internal/cli/config/core/profile/doc.go | 11 -- internal/cli/config/doc.go | 29 ++- internal/cli/connection/cmd/listen/doc.go | 36 +++- internal/cli/connection/cmd/publish/doc.go | 41 +++- internal/cli/connection/cmd/register/doc.go | 40 +++- internal/cli/connection/cmd/status/doc.go | 34 +++- internal/cli/connection/cmd/subscribe/doc.go | 36 +++- internal/cli/connection/cmd/sync/doc.go | 34 +++- internal/cli/connection/core/config/doc.go | 53 +++++- internal/cli/connection/core/listen/doc.go | 39 +++- internal/cli/connection/core/publish/doc.go | 36 +++- internal/cli/connection/core/register/doc.go | 42 ++++- internal/cli/connection/core/render/doc.go | 13 -- internal/cli/connection/core/status/doc.go | 38 +++- internal/cli/connection/core/subscribe/doc.go | 35 +++- internal/cli/connection/core/sync/doc.go | 50 ++++- internal/cli/connection/doc.go | 30 ++- internal/cli/decision/cmd/reindex/doc.go | 36 +++- internal/cli/decision/doc.go | 22 ++- internal/cli/doc.go | 37 +++- internal/cli/doctor/cmd/root/doc.go | 48 ++++- internal/cli/doctor/core/check/doc.go | 13 -- internal/cli/doctor/core/doc.go | 42 ++++- internal/cli/doctor/core/output/doc.go | 26 ++- internal/cli/doctor/doc.go | 11 -- internal/cli/drift/cmd/root/doc.go | 45 ++++- internal/cli/drift/core/doc.go | 40 +++- internal/cli/drift/core/fix/doc.go | 9 - internal/cli/drift/core/out/doc.go | 9 - internal/cli/drift/core/sanitize/doc.go | 26 ++- internal/cli/drift/doc.go | 29 ++- internal/cli/event/doc.go | 25 ++- internal/cli/fmt/cmd/root/doc.go | 37 +++- internal/cli/fmt/doc.go | 21 ++- internal/cli/guide/cmd/root/doc.go | 37 +++- internal/cli/guide/core/command/doc.go | 25 ++- internal/cli/guide/core/doc.go | 38 +++- internal/cli/guide/core/skill/doc.go | 29 ++- internal/cli/guide/doc.go | 25 ++- internal/cli/hook/doc.go | 25 ++- internal/cli/hub/cmd/peer/doc.go | 37 +++- internal/cli/hub/cmd/start/doc.go | 41 +++- internal/cli/hub/cmd/status/doc.go | 35 +++- internal/cli/hub/cmd/stepdown/doc.go | 31 ++- internal/cli/hub/cmd/stop/doc.go | 31 ++- internal/cli/hub/core/peer/doc.go | 35 +++- internal/cli/hub/core/server/doc.go | 14 -- internal/cli/hub/core/status/doc.go | 33 +++- internal/cli/hub/core/stepdown/doc.go | 33 +++- internal/cli/hub/doc.go | 27 ++- internal/cli/initialize/cmd/root/doc.go | 51 ++++- internal/cli/initialize/core/backup/doc.go | 37 +++- internal/cli/initialize/core/claude/doc.go | 36 +++- .../cli/initialize/core/claude_check/doc.go | 9 - internal/cli/initialize/core/doc.go | 47 ++++- internal/cli/initialize/core/entry/doc.go | 37 +++- internal/cli/initialize/core/merge/doc.go | 9 - internal/cli/initialize/core/pad/doc.go | 42 ++++- internal/cli/initialize/core/plugin/doc.go | 9 - internal/cli/initialize/core/project/doc.go | 9 - internal/cli/initialize/core/tpl/doc.go | 42 ++++- internal/cli/initialize/core/validate/doc.go | 35 +++- internal/cli/initialize/core/vscode/doc.go | 55 ++++-- internal/cli/initialize/doc.go | 12 -- internal/cli/journal/cmd/importer/doc.go | 15 -- internal/cli/journal/cmd/lock/doc.go | 44 ++++- internal/cli/journal/cmd/obsidian/doc.go | 13 -- internal/cli/journal/cmd/schema/check/doc.go | 50 ++++- internal/cli/journal/cmd/schema/doc.go | 40 +++- internal/cli/journal/cmd/schema/dump/doc.go | 42 ++++- internal/cli/journal/cmd/site/doc.go | 13 -- internal/cli/journal/cmd/source/doc.go | 49 ++++- internal/cli/journal/cmd/sync/doc.go | 41 +++- internal/cli/journal/cmd/unlock/doc.go | 41 +++- internal/cli/journal/core/collapse/doc.go | 10 - internal/cli/journal/core/confirm/doc.go | 34 +++- internal/cli/journal/core/consolidate/doc.go | 38 +++- internal/cli/journal/core/doc.go | 62 +++++- internal/cli/journal/core/execute/doc.go | 41 +++- internal/cli/journal/core/extract/doc.go | 38 +++- internal/cli/journal/core/format/doc.go | 33 +++- internal/cli/journal/core/frontmatter/doc.go | 12 -- internal/cli/journal/core/generate/doc.go | 15 -- internal/cli/journal/core/group/doc.go | 38 +++- internal/cli/journal/core/index/doc.go | 10 - internal/cli/journal/core/lock/doc.go | 15 -- internal/cli/journal/core/moc/doc.go | 12 -- internal/cli/journal/core/normalize/doc.go | 13 -- internal/cli/journal/core/obsidian/doc.go | 13 -- internal/cli/journal/core/parse/doc.go | 12 -- internal/cli/journal/core/plan/doc.go | 50 ++++- internal/cli/journal/core/query/doc.go | 32 +++- internal/cli/journal/core/reduce/doc.go | 11 -- internal/cli/journal/core/schema/doc.go | 9 - internal/cli/journal/core/section/doc.go | 11 -- internal/cli/journal/core/session/doc.go | 32 +++- internal/cli/journal/core/slug/doc.go | 11 -- internal/cli/journal/core/source/doc.go | 10 - .../cli/journal/core/source/format/doc.go | 13 -- .../journal/core/source/frontmatter/doc.go | 46 ++++- internal/cli/journal/core/turn/doc.go | 10 - internal/cli/journal/core/validate/doc.go | 43 ++++- internal/cli/journal/core/wikilink/doc.go | 12 -- internal/cli/journal/doc.go | 44 +++-- internal/cli/learning/cmd/reindex/doc.go | 41 +++- internal/cli/learning/doc.go | 13 -- internal/cli/load/cmd/root/doc.go | 48 ++++- internal/cli/load/core/convert/doc.go | 20 +- internal/cli/load/core/doc.go | 38 +++- internal/cli/load/core/sort/doc.go | 23 ++- internal/cli/load/doc.go | 31 +-- internal/cli/loop/cmd/root/doc.go | 49 ++++- internal/cli/loop/core/doc.go | 40 +++- internal/cli/loop/core/script/doc.go | 34 +++- internal/cli/loop/doc.go | 30 ++- internal/cli/mcp/cmd/root/doc.go | 42 ++++- internal/cli/mcp/doc.go | 20 +- internal/cli/memory/cmd/diff/doc.go | 37 +++- internal/cli/memory/cmd/importer/doc.go | 48 ++++- internal/cli/memory/cmd/publish/doc.go | 46 ++++- internal/cli/memory/cmd/status/doc.go | 50 ++++- internal/cli/memory/cmd/sync/doc.go | 47 ++++- internal/cli/memory/cmd/unpublish/doc.go | 43 ++++- internal/cli/memory/core/count/doc.go | 25 ++- internal/cli/memory/core/doc.go | 30 ++- internal/cli/memory/doc.go | 41 ++-- internal/cli/message/cmd/edit/doc.go | 49 ++++- internal/cli/message/cmd/list/doc.go | 46 ++++- internal/cli/message/cmd/reset/doc.go | 50 ++++- internal/cli/message/cmd/root/doc.go | 38 +++- internal/cli/message/cmd/show/doc.go | 49 ++++- internal/cli/message/doc.go | 32 +++- internal/cli/notify/cmd/setup/doc.go | 42 ++++- internal/cli/notify/cmd/test/doc.go | 42 ++++- internal/cli/notify/core/test/doc.go | 48 ++++- internal/cli/notify/doc.go | 11 +- internal/cli/pad/cmd/add/doc.go | 37 +++- internal/cli/pad/cmd/edit/doc.go | 8 - internal/cli/pad/cmd/export/doc.go | 43 ++++- internal/cli/pad/cmd/merge/doc.go | 44 ++++- internal/cli/pad/cmd/mv/doc.go | 38 +++- internal/cli/pad/cmd/normalize/doc.go | 24 ++- internal/cli/pad/cmd/resolve/doc.go | 41 +++- internal/cli/pad/cmd/rm/doc.go | 39 +++- internal/cli/pad/cmd/root/doc.go | 39 +++- internal/cli/pad/cmd/show/doc.go | 43 ++++- internal/cli/pad/cmd/tag/doc.go | 40 +++- internal/cli/pad/core/add/doc.go | 38 +++- internal/cli/pad/core/blob/doc.go | 50 ++++- internal/cli/pad/core/crypto/doc.go | 40 +++- internal/cli/pad/core/doc.go | 51 ++++- internal/cli/pad/core/edit/doc.go | 45 ++++- internal/cli/pad/core/export/doc.go | 47 ++++- internal/cli/pad/core/imp/doc.go | 43 ++++- internal/cli/pad/core/load/doc.go | 42 ++++- internal/cli/pad/core/merge/doc.go | 51 ++++- internal/cli/pad/core/parse/doc.go | 8 - internal/cli/pad/core/resolve/doc.go | 32 +++- internal/cli/pad/core/store/doc.go | 11 -- internal/cli/pad/core/tag/doc.go | 9 - internal/cli/pad/core/validate/doc.go | 33 +++- internal/cli/pad/doc.go | 52 ++++-- internal/cli/parent/doc.go | 34 +++- internal/cli/pause/cmd/root/doc.go | 38 +++- internal/cli/pause/doc.go | 27 ++- internal/cli/permission/cmd/restore/doc.go | 46 ++++- internal/cli/permission/cmd/snapshot/doc.go | 41 +++- internal/cli/permission/core/diff/doc.go | 42 ++++- internal/cli/permission/core/doc.go | 28 ++- internal/cli/permission/doc.go | 12 -- internal/cli/prune/doc.go | 29 ++- internal/cli/reindex/cmd/root/doc.go | 38 +++- internal/cli/reindex/doc.go | 25 ++- internal/cli/remind/cmd/add/doc.go | 41 +++- internal/cli/remind/cmd/dismiss/doc.go | 43 ++++- internal/cli/remind/cmd/list/doc.go | 41 +++- internal/cli/remind/cmd/normalize/doc.go | 56 ++++-- internal/cli/remind/core/dismiss/doc.go | 27 ++- internal/cli/remind/core/doc.go | 34 +++- internal/cli/remind/core/store/doc.go | 33 +++- internal/cli/remind/doc.go | 9 - internal/cli/resolve/doc.go | 25 ++- internal/cli/resume/cmd/root/doc.go | 40 +++- internal/cli/resume/doc.go | 23 ++- internal/cli/serve/cmd/root/doc.go | 43 ++++- internal/cli/serve/doc.go | 24 ++- internal/cli/setup/cmd/root/doc.go | 49 ++++- internal/cli/setup/core/agents/doc.go | 39 +++- internal/cli/setup/core/cline/doc.go | 41 +++- internal/cli/setup/core/copilot/doc.go | 12 -- internal/cli/setup/core/copilot_cli/doc.go | 10 - internal/cli/setup/core/cursor/doc.go | 42 ++++- internal/cli/setup/core/kiro/doc.go | 43 ++++- internal/cli/setup/core/mcp/doc.go | 32 +++- internal/cli/setup/doc.go | 28 ++- internal/cli/site/cmd/feed/doc.go | 10 - internal/cli/site/core/doc.go | 32 +++- internal/cli/site/core/rss/doc.go | 36 +++- internal/cli/site/core/scan/doc.go | 9 - internal/cli/site/doc.go | 26 ++- internal/cli/skill/cmd/install/doc.go | 39 +++- internal/cli/skill/cmd/list/doc.go | 39 +++- internal/cli/skill/cmd/remove/doc.go | 37 +++- internal/cli/skill/doc.go | 27 ++- internal/cli/status/cmd/root/doc.go | 40 +++- internal/cli/status/core/doc.go | 40 +++- internal/cli/status/core/out/doc.go | 33 +++- internal/cli/status/core/preview/doc.go | 24 ++- internal/cli/status/core/sort/doc.go | 26 ++- internal/cli/status/doc.go | 31 ++- internal/cli/steering/cmd/add/doc.go | 44 ++++- internal/cli/steering/cmd/initcmd/doc.go | 43 ++++- internal/cli/steering/cmd/list/doc.go | 45 ++++- internal/cli/steering/cmd/preview/doc.go | 45 ++++- internal/cli/steering/cmd/synccmd/doc.go | 41 +++- internal/cli/steering/core/sync/doc.go | 26 ++- internal/cli/steering/doc.go | 34 +++- internal/cli/sync/cmd/root/doc.go | 39 +++- internal/cli/sync/core/action/doc.go | 33 +++- internal/cli/sync/core/doc.go | 10 - internal/cli/sync/core/validate/doc.go | 9 - internal/cli/sync/doc.go | 12 -- internal/cli/sysinfo/doc.go | 32 +++- .../system/cmd/block_dangerous_command/doc.go | 46 ++++- .../cli/system/cmd/block_non_path_ctx/doc.go | 44 ++++- internal/cli/system/cmd/bootstrap/doc.go | 45 ++++- .../cli/system/cmd/check_backup_age/doc.go | 45 ++++- internal/cli/system/cmd/check_ceremony/doc.go | 46 ++++- .../cli/system/cmd/check_context_size/doc.go | 9 - .../cli/system/cmd/check_freshness/doc.go | 46 ++++- internal/cli/system/cmd/check_hub_sync/doc.go | 44 ++++- internal/cli/system/cmd/check_journal/doc.go | 50 ++++- .../cli/system/cmd/check_knowledge/doc.go | 45 ++++- .../cli/system/cmd/check_map_staleness/doc.go | 45 ++++- .../cli/system/cmd/check_memory_drift/doc.go | 44 ++++- .../cli/system/cmd/check_persistence/doc.go | 9 - internal/cli/system/cmd/check_reminder/doc.go | 46 ++++- internal/cli/system/cmd/check_resource/doc.go | 44 ++++- .../system/cmd/check_skill_discovery/doc.go | 50 ++++- .../system/cmd/check_task_completion/doc.go | 45 ++++- internal/cli/system/cmd/check_version/doc.go | 50 ++++- .../cli/system/cmd/context_load_gate/doc.go | 55 +++++- internal/cli/system/cmd/heartbeat/doc.go | 47 ++++- internal/cli/system/cmd/mark_journal/doc.go | 52 +++++- .../cli/system/cmd/mark_wrapped_up/doc.go | 43 ++++- internal/cli/system/cmd/pause/doc.go | 42 ++++- internal/cli/system/cmd/post_commit/doc.go | 53 +++++- internal/cli/system/cmd/qa_reminder/doc.go | 45 ++++- internal/cli/system/cmd/resume/doc.go | 43 ++++- internal/cli/system/cmd/session_event/doc.go | 53 +++++- internal/cli/system/cmd/specs_nudge/doc.go | 45 ++++- internal/cli/system/core/archive/doc.go | 10 - internal/cli/system/core/bootstrap/doc.go | 43 ++++- internal/cli/system/core/ceremony/doc.go | 44 ++++- internal/cli/system/core/check/doc.go | 35 +++- internal/cli/system/core/counter/doc.go | 28 ++- internal/cli/system/core/doc.go | 42 ++++- internal/cli/system/core/drift/doc.go | 9 - internal/cli/system/core/event/doc.go | 41 +++- internal/cli/system/core/health/doc.go | 12 -- internal/cli/system/core/heartbeat/doc.go | 36 +++- internal/cli/system/core/hubsync/doc.go | 33 +++- internal/cli/system/core/journal/doc.go | 10 - internal/cli/system/core/knowledge/doc.go | 9 - internal/cli/system/core/load/doc.go | 33 +++- internal/cli/system/core/log/doc.go | 36 +++- internal/cli/system/core/message/doc.go | 11 -- internal/cli/system/core/nudge/doc.go | 13 -- internal/cli/system/core/persistence/doc.go | 35 +++- internal/cli/system/core/post_commit/doc.go | 34 +++- internal/cli/system/core/provenance/doc.go | 37 +++- internal/cli/system/core/resource/doc.go | 27 ++- internal/cli/system/core/session/doc.go | 11 -- internal/cli/system/core/state/doc.go | 32 +++- internal/cli/system/core/stats/doc.go | 11 -- internal/cli/system/core/time/doc.go | 28 ++- internal/cli/system/core/version/doc.go | 32 +++- internal/cli/system/doc.go | 96 ++++++---- internal/cli/task/cmd/archive/doc.go | 56 +++++- internal/cli/task/cmd/complete/doc.go | 50 ++++- internal/cli/task/cmd/snapshot/doc.go | 51 ++++- internal/cli/task/core/archive/doc.go | 38 +++- internal/cli/task/core/complete/doc.go | 39 +++- internal/cli/task/core/count/doc.go | 26 ++- internal/cli/task/core/doc.go | 28 ++- internal/cli/task/core/path/doc.go | 28 ++- internal/cli/task/doc.go | 14 -- internal/cli/trace/cmd/collect/doc.go | 54 +++++- internal/cli/trace/cmd/file/doc.go | 56 +++++- internal/cli/trace/cmd/hook/doc.go | 51 ++++- internal/cli/trace/cmd/show/doc.go | 59 +++++- internal/cli/trace/cmd/tag/doc.go | 53 +++++- internal/cli/trace/core/collect/doc.go | 38 +++- internal/cli/trace/core/file/doc.go | 36 +++- internal/cli/trace/core/hook/doc.go | 41 +++- internal/cli/trace/core/show/doc.go | 40 +++- internal/cli/trace/doc.go | 34 +++- internal/cli/trigger/cmd/add/doc.go | 55 +++++- internal/cli/trigger/cmd/disable/doc.go | 48 ++++- internal/cli/trigger/cmd/enable/doc.go | 46 ++++- internal/cli/trigger/cmd/list/doc.go | 49 ++++- internal/cli/trigger/cmd/test/doc.go | 60 +++++- internal/cli/trigger/doc.go | 31 ++- internal/cli/usage/doc.go | 30 ++- internal/cli/watch/cmd/root/doc.go | 52 +++++- internal/cli/watch/core/apply/doc.go | 11 -- internal/cli/watch/core/doc.go | 11 -- internal/cli/watch/core/stream/doc.go | 36 +++- internal/cli/watch/doc.go | 36 +++- internal/cli/why/cmd/root/doc.go | 50 ++++- internal/cli/why/core/data/doc.go | 33 +++- internal/cli/why/core/doc.go | 30 ++- internal/cli/why/core/menu/doc.go | 31 ++- internal/cli/why/core/show/doc.go | 27 ++- internal/cli/why/core/strip/doc.go | 36 +++- internal/cli/why/doc.go | 22 ++- internal/compat/doc.go | 38 +++- internal/compliance/doc.go | 40 +++- internal/config/agent/doc.go | 58 +++++- internal/config/architecture/doc.go | 44 ++++- internal/config/archive/doc.go | 59 +++++- internal/config/asset/doc.go | 55 +++++- internal/config/bootstrap/doc.go | 46 ++++- internal/config/box/doc.go | 42 ++++- internal/config/ceremony/doc.go | 45 ++++- internal/config/claude/doc.go | 64 ++++++- internal/config/cli/doc.go | 57 +++++- internal/config/content/doc.go | 28 ++- internal/config/copilot/doc.go | 66 ++++++- internal/config/crypto/doc.go | 39 +++- internal/config/ctx/doc.go | 71 ++++++- internal/config/dir/doc.go | 68 ++++++- internal/config/doc.go | 78 ++++++-- internal/config/doctor/doc.go | 65 ++++++- internal/config/drift/doc.go | 71 ++++++- internal/config/embed/cmd/doc.go | 12 -- internal/config/embed/flag/doc.go | 11 -- internal/config/embed/text/doc.go | 12 -- internal/config/entry/doc.go | 66 ++++++- internal/config/env/doc.go | 52 +++++- internal/config/event/doc.go | 70 ++++++- internal/config/file/doc.go | 67 ++++++- internal/config/flag/doc.go | 61 +++++- internal/config/fmt/doc.go | 44 ++++- internal/config/format/doc.go | 59 +++++- internal/config/freshness/doc.go | 45 ++++- internal/config/fs/doc.go | 48 ++++- internal/config/git/doc.go | 77 +++++++- internal/config/heartbeat/doc.go | 52 +++++- internal/config/hook/doc.go | 12 -- internal/config/http/doc.go | 68 ++++++- internal/config/hub/doc.go | 104 ++++++++++- internal/config/io/doc.go | 36 +++- internal/config/journal/doc.go | 58 +++++- internal/config/knowledge/doc.go | 33 +++- internal/config/load_gate/doc.go | 43 ++++- internal/config/loop/doc.go | 37 +++- internal/config/marker/doc.go | 11 -- internal/config/mcp/cfg/doc.go | 35 +++- internal/config/mcp/doc.go | 60 +++++- internal/config/mcp/event/doc.go | 29 ++- internal/config/mcp/field/doc.go | 41 +++- internal/config/mcp/governance/doc.go | 47 ++++- internal/config/mcp/method/doc.go | 38 +++- internal/config/mcp/mime/doc.go | 32 +++- internal/config/mcp/notify/doc.go | 36 +++- internal/config/mcp/prompt/doc.go | 39 +++- internal/config/mcp/resource/doc.go | 47 ++++- internal/config/mcp/schema/doc.go | 50 ++++- internal/config/mcp/server/doc.go | 43 ++++- internal/config/mcp/tool/doc.go | 51 ++++- internal/config/memory/doc.go | 46 ++++- internal/config/msg/doc.go | 47 ++++- internal/config/nudge/doc.go | 46 ++++- internal/config/obsidian/doc.go | 43 ++++- internal/config/pad/doc.go | 41 +++- internal/config/parser/doc.go | 41 +++- internal/config/project/doc.go | 39 +++- internal/config/rc/doc.go | 31 ++- internal/config/regex/doc.go | 9 - internal/config/reminder/doc.go | 37 +++- internal/config/rss/doc.go | 41 +++- internal/config/runtime/doc.go | 50 ++++- internal/config/schema/doc.go | 59 +++++- internal/config/session/doc.go | 53 +++++- internal/config/setup/doc.go | 44 ++++- internal/config/skill/doc.go | 33 +++- internal/config/stats/doc.go | 10 - internal/config/steering/doc.go | 54 +++++- internal/config/sync/doc.go | 50 ++++- internal/config/sysinfo/doc.go | 55 +++++- internal/config/time/doc.go | 44 ++++- internal/config/token/doc.go | 14 -- internal/config/trace/doc.go | 60 +++++- internal/config/trigger/doc.go | 47 ++++- internal/config/version/doc.go | 48 ++++- internal/config/vscode/doc.go | 55 ++++-- internal/config/warn/doc.go | 58 +++++- internal/config/watch/doc.go | 45 ++++- internal/config/why/doc.go | 50 ++++- internal/config/wrap/doc.go | 36 +++- internal/config/zensical/doc.go | 51 ++++- internal/context/doc.go | 36 +++- internal/context/load/doc.go | 13 -- internal/context/resolve/doc.go | 34 +++- internal/context/sanitize/doc.go | 36 +++- internal/context/summary/doc.go | 11 -- internal/context/token/doc.go | 36 +++- internal/context/validate/doc.go | 38 +++- internal/crypto/doc.go | 13 -- internal/drift/doc.go | 15 -- internal/entity/doc.go | 16 -- internal/entry/doc.go | 13 -- internal/err/add/doc.go | 46 ++++- internal/err/backup/doc.go | 8 - internal/err/cli/doc.go | 35 +++- internal/err/config/doc.go | 42 ++++- internal/err/context/doc.go | 41 +++- internal/err/crypto/doc.go | 8 - internal/err/date/doc.go | 32 +++- internal/err/doc.go | 41 +++- internal/err/drift/doc.go | 33 +++- internal/err/fmt/doc.go | 36 +++- internal/err/fs/doc.go | 7 - internal/err/git/doc.go | 31 ++- internal/err/http/doc.go | 33 +++- internal/err/hub/doc.go | 36 +++- internal/err/initialize/doc.go | 44 ++++- internal/err/journal/doc.go | 9 - internal/err/mcp/doc.go | 34 +++- internal/err/memory/doc.go | 9 - internal/err/notify/doc.go | 35 +++- internal/err/pad/doc.go | 43 ++++- internal/err/parser/doc.go | 38 +++- internal/err/prompt/doc.go | 36 +++- internal/err/reminder/doc.go | 32 +++- internal/err/schema/doc.go | 38 +++- internal/err/serve/doc.go | 33 +++- internal/err/session/doc.go | 38 +++- internal/err/setup/doc.go | 32 +++- internal/err/site/doc.go | 33 +++- internal/err/skill/doc.go | 7 - internal/err/state/doc.go | 33 +++- internal/err/steering/doc.go | 9 - internal/err/task/doc.go | 36 +++- internal/err/trace/doc.go | 44 ++++- internal/err/trigger/doc.go | 9 - internal/exec/daemon/doc.go | 36 +++- internal/exec/gio/doc.go | 28 ++- internal/exec/git/doc.go | 47 ++++- internal/exec/sysinfo/doc.go | 40 +++- internal/exec/trigger/doc.go | 32 +++- internal/exec/zensical/doc.go | 27 ++- internal/flagbind/doc.go | 70 +++++-- internal/format/doc.go | 12 -- internal/hub/doc.go | 143 +++++--------- internal/index/doc.go | 14 -- internal/inspect/doc.go | 43 ++++- internal/io/doc.go | 102 +++++----- internal/journal/parser/doc.go | 11 -- internal/journal/schema/doc.go | 9 - internal/journal/state/doc.go | 11 -- internal/log/doc.go | 33 +++- internal/log/event/doc.go | 12 -- internal/log/warn/doc.go | 39 +++- internal/mcp/doc.go | 92 ++++----- internal/mcp/handler/doc.go | 16 -- internal/mcp/handler/task/doc.go | 42 ++++- internal/mcp/proto/doc.go | 8 - internal/mcp/server/catalog/doc.go | 47 ++++- internal/mcp/server/def/prompt/doc.go | 45 ++++- internal/mcp/server/def/tool/doc.go | 10 - internal/mcp/server/dispatch/doc.go | 40 +++- internal/mcp/server/dispatch/poll/doc.go | 9 - internal/mcp/server/doc.go | 13 -- internal/mcp/server/extract/doc.go | 32 +++- internal/mcp/server/io/doc.go | 31 ++- internal/mcp/server/out/doc.go | 41 +++- internal/mcp/server/parse/doc.go | 33 +++- internal/mcp/server/ping/doc.go | 21 ++- internal/mcp/server/resource/doc.go | 42 ++++- internal/mcp/server/route/fallback/doc.go | 22 ++- internal/mcp/server/route/initialize/doc.go | 29 ++- internal/mcp/server/route/prompt/doc.go | 10 - internal/mcp/server/route/tool/doc.go | 11 -- internal/mcp/server/stat/doc.go | 25 ++- internal/memory/doc.go | 110 ++++------- internal/notify/doc.go | 13 -- internal/parse/doc.go | 13 -- internal/rc/doc.go | 173 +++++------------ internal/sanitize/doc.go | 30 ++- internal/skill/doc.go | 12 -- internal/steering/doc.go | 16 -- internal/sysinfo/doc.go | 11 -- internal/task/doc.go | 74 +++----- internal/tidy/doc.go | 11 -- internal/trace/doc.go | 20 -- internal/trigger/doc.go | 176 +++++------------- internal/validate/doc.go | 88 ++++----- internal/wrap/doc.go | 9 - internal/write/add/doc.go | 35 +++- internal/write/agent/doc.go | 31 ++- internal/write/archive/doc.go | 44 +++-- internal/write/backup/doc.go | 33 +++- internal/write/bootstrap/doc.go | 44 ++++- internal/write/change/doc.go | 30 ++- internal/write/compact/doc.go | 48 +++-- internal/write/complete/doc.go | 28 ++- internal/write/config/doc.go | 32 +++- internal/write/connect/doc.go | 38 +++- internal/write/ctximport/doc.go | 46 ++++- internal/write/doc.go | 48 ++++- internal/write/doctor/doc.go | 33 +++- internal/write/drift/doc.go | 13 -- internal/write/err/doc.go | 38 +++- internal/write/events/doc.go | 33 +++- internal/write/export/doc.go | 34 +++- internal/write/fmt/doc.go | 28 ++- internal/write/guide/doc.go | 43 ++++- internal/write/hub/doc.go | 36 +++- internal/write/initialize/doc.go | 9 - internal/write/journal/doc.go | 63 ++++++- internal/write/line/doc.go | 40 ++-- internal/write/load/doc.go | 36 +++- internal/write/loop/doc.go | 28 ++- internal/write/mark_journal/doc.go | 36 +++- internal/write/memory/doc.go | 59 ++++-- internal/write/message/doc.go | 12 -- internal/write/notify/doc.go | 42 ++++- internal/write/obsidian/doc.go | 29 ++- internal/write/pad/doc.go | 66 +++++-- internal/write/pause/doc.go | 21 ++- internal/write/provenance/doc.go | 25 ++- internal/write/prune/doc.go | 34 ++-- internal/write/publish/doc.go | 31 ++- internal/write/rc/doc.go | 25 ++- internal/write/remind/doc.go | 37 +++- internal/write/resource/doc.go | 11 -- internal/write/restore/doc.go | 32 +++- internal/write/schema/doc.go | 38 +++- internal/write/serve/doc.go | 28 ++- internal/write/session/doc.go | 35 +++- internal/write/setup/doc.go | 45 ++++- internal/write/site/doc.go | 27 ++- internal/write/skill/doc.go | 29 ++- internal/write/stat/doc.go | 26 ++- internal/write/status/doc.go | 43 ++++- internal/write/steering/doc.go | 9 - internal/write/sync/doc.go | 34 +++- internal/write/trace/doc.go | 46 ++++- internal/write/trigger/doc.go | 38 +++- internal/write/vscode/doc.go | 39 +++- internal/write/watch/doc.go | 42 ++++- internal/write/why/doc.go | 35 +++- 646 files changed, 17478 insertions(+), 4522 deletions(-) diff --git a/.context/AGENT_PLAYBOOK.md b/.context/AGENT_PLAYBOOK.md index b64593fd6..a01d9b8d1 100644 --- a/.context/AGENT_PLAYBOOK.md +++ b/.context/AGENT_PLAYBOOK.md @@ -15,6 +15,54 @@ making a decision, learning something, or hitting a milestone: persist before continuing. Don't wait for session end; it may never come cleanly. +## Spec Requirement + +Do not begin implementation work without a spec. + +- Every implementation task must trace to a spec file +- **If no spec exists, STOP and create one first** +- Do not treat task text alone as a substitute for a spec + +## Independent Review + +Sub-agent review is not optional once implementation begins. + +A review must be invoked when ANY of the following occur: + +- Before the first modification to the codebase +- After completing one or more tasks in TASKS.md +- Before declaring the work complete + +Required review inputs: +- the governing spec +- TASKS.md +- the current implementation + +Review prompt: +- "Review , TASKS.md, and the current implementation for drift, + omissions, invalid assumptions, and incomplete requirements." + +Do not declare work complete until review findings are either resolved or +explicitly recorded. + +## File Interaction Protocol + +When a task involves reading, modifying, or reasoning about a file: + +1. **Read before act** + - Read the file content directly before making any change + - Do not rely on memory, summaries, or prior reads +2. **No partial reads** + - Do not sample the beginning or end of a file and assume the rest +3. **Freshness requirement** + - A read must be recent relative to the action + - Do not reuse stale context from earlier in the session +4. **No implicit scope** + - "This change is small" is not a valid justification + - "This file is large" is not a valid justification +5. **Edit authority comes from visibility** + - If you haven't seen it, you don't get to modify it + ## Invoking ctx Always use `ctx` from PATH: diff --git a/.context/AGENT_PLAYBOOK_GATE.md b/.context/AGENT_PLAYBOOK_GATE.md index 02a5cf5d0..65a9cb004 100644 --- a/.context/AGENT_PLAYBOOK_GATE.md +++ b/.context/AGENT_PLAYBOOK_GATE.md @@ -10,10 +10,25 @@ lifecycle details, or anti-patterns. ctx status # correct ./dist/ctx # wrong — never hardcode paths go run ./cmd/ctx # wrong — unless developing ctx itself -``` +```` + +## File Interaction Protocol + +When a task involves reading, modifying, or reasoning about a file: + +1. **Read before act**: Do not rely on memory, summaries, or prior reads +2. **No partial reads**: Do not sample and assume the rest +3. **Freshness requirement**: Do not reuse stale context from earlier in the + session +4. **Edit authority comes from visibility**: If you haven't seen it, you don't + get to modify it +5. **Coverage requirement**: Before editing, state what parts of the file were + read and why they are sufficient ## Planning Work +Do not begin implementation without a spec. + Every commit requires a `Spec:` trailer. Every piece of work needs a spec — no exceptions. Scale the spec to the work. Use `/ctx-spec` to scaffold. @@ -28,16 +43,25 @@ persist before continuing. Don't wait for session end. For multi-step work: commit after each chunk, persist learnings, run tests before moving on. Track progress via TASKS.md checkboxes. +## Independent Review + +A review must occur: + +* Before the first code change +* After completing tasks +* Before presenting results + +Review must consider: + +* Spec +* TASKS.md +* Current implementation + ## Tool Preferences Use the `gemini-search` MCP server for web searches. Fall back to built-in search only if `gemini-search` is not connected. -## Check Available Skills - -Before starting any task, scan available skills to see if one -already handles the request. Prefer skills over ad-hoc work. - ## Conversational Triggers | User Says | Action | diff --git a/.context/CONSTITUTION.md b/.context/CONSTITUTION.md index 24c32b0ca..ac35a0650 100644 --- a/.context/CONSTITUTION.md +++ b/.context/CONSTITUTION.md @@ -30,6 +30,16 @@ If you start something, you own it, you finish it. --- +## Context Integrity Invariants + +- [ ] **Never** modify or reason about a file based on partial or assumed content +- [ ] If a file is the subject of an operation, its relevant contents must be + **fully understood** before acting +- [ ] Sampling, guessing, or relying on prior assumptions instead of + reading is a **violation** + +--- + ## No Excuse Generation **Never default to deferral.** diff --git a/.gitignore b/.gitignore index 4bf83b9cf..8096cef53 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ dist/ .claude/settings.local.json .claude/ralph-loop.local.md .claude/scheduled_tasks.lock +.claude/worktrees/ # Hook diagnostic logs (machine-specific, not committed) .context/logs/ diff --git a/cmd/ctx/doc.go b/cmd/ctx/doc.go index 797d17e92..b39ed1753 100644 --- a/cmd/ctx/doc.go +++ b/cmd/ctx/doc.go @@ -6,8 +6,29 @@ // Package main is the entry point for the ctx CLI. // -// The binary delegates immediately to [bootstrap.Execute], which -// builds the root cobra.Command, registers all 24 subcommand -// packages, and calls cmd.Execute. No business logic lives here; -// version injection happens via ldflags at build time. +// The binary performs three steps at startup: +// +// 1. Initializes the embedded asset lookup table via +// [lookup.Init] so that YAML-backed descriptions, +// templates, and text constants are available to +// every subcommand. +// 2. Builds the root cobra.Command through +// [bootstrap.Initialize], which registers all +// subcommand packages, wires persistent flags, +// and injects build-time version metadata via +// ldflags. +// 3. Calls cmd.Execute and translates any returned +// error into a formatted stderr message via +// [writeErr.With] before exiting with code 1. +// +// No business logic lives in this package. All +// domain behavior is delegated to packages under +// internal/. +// +// # Build-Time Injection +// +// Version, commit hash, and build date are injected +// via ldflags at compile time. The Makefile and +// goreleaser config set these values; the bootstrap +// package reads them. package main diff --git a/internal/assets/context/AGENT_PLAYBOOK.md b/internal/assets/context/AGENT_PLAYBOOK.md index be78701bd..8a1bcac95 100644 --- a/internal/assets/context/AGENT_PLAYBOOK.md +++ b/internal/assets/context/AGENT_PLAYBOOK.md @@ -15,6 +15,54 @@ making a decision, learning something, or hitting a milestone: persist before continuing. Don't wait for session end; it may never come cleanly. +## File Interaction Protocol + +When a task involves reading, modifying, or reasoning about a file: + +1. **Read before act** + - Read the file content directly before making any change + - Do not rely on memory, summaries, or prior reads +2. **No partial reads** + - Do not sample the beginning or end of a file and assume the rest +3. **Freshness requirement** + - A read must be recent relative to the action + - Do not reuse stale context from earlier in the session +4. **No implicit scope** + - "This change is small" is not a valid justification + - "This file is large" is not a valid justification +5. **Edit authority comes from visibility** + - If you haven't seen it, you don't get to modify it + +## Spec Requirement + +Do not begin implementation work without a spec. + +- Every implementation task must trace to a spec file +- **If no spec exists, STOP and create one first** +- Do not treat task text alone as a substitute for a spec + +## Independent Review + +Sub-agent review is not optional once implementation begins. + +A review must be invoked when ANY of the following occur: + +- Before the first modification to the codebase +- After completing one or more tasks in TASKS.md +- Before declaring the work complete + +Required review inputs: +- the governing spec +- TASKS.md +- the current implementation + +Review prompt: +- "Review , TASKS.md, and the current implementation for drift, + omissions, invalid assumptions, and incomplete requirements." + +Do not declare work complete until review findings are either resolved or +explicitly recorded. + ## Invoking ctx Always use `ctx` from PATH: @@ -24,7 +72,6 @@ ctx agent # ✓ correct ./dist/ctx # ✗ avoid hardcoded paths go run ./cmd/ctx # ✗ avoid unless developing ctx itself ``` - Check with `which ctx` if unsure whether it's installed. ## Context Readback diff --git a/internal/assets/context/AGENT_PLAYBOOK_GATE.md b/internal/assets/context/AGENT_PLAYBOOK_GATE.md index e0c824c6f..65a9cb004 100644 --- a/internal/assets/context/AGENT_PLAYBOOK_GATE.md +++ b/internal/assets/context/AGENT_PLAYBOOK_GATE.md @@ -10,10 +10,25 @@ lifecycle details, or anti-patterns. ctx status # correct ./dist/ctx # wrong — never hardcode paths go run ./cmd/ctx # wrong — unless developing ctx itself -``` +```` + +## File Interaction Protocol + +When a task involves reading, modifying, or reasoning about a file: + +1. **Read before act**: Do not rely on memory, summaries, or prior reads +2. **No partial reads**: Do not sample and assume the rest +3. **Freshness requirement**: Do not reuse stale context from earlier in the + session +4. **Edit authority comes from visibility**: If you haven't seen it, you don't + get to modify it +5. **Coverage requirement**: Before editing, state what parts of the file were + read and why they are sufficient ## Planning Work +Do not begin implementation without a spec. + Every commit requires a `Spec:` trailer. Every piece of work needs a spec — no exceptions. Scale the spec to the work. Use `/ctx-spec` to scaffold. @@ -28,6 +43,20 @@ persist before continuing. Don't wait for session end. For multi-step work: commit after each chunk, persist learnings, run tests before moving on. Track progress via TASKS.md checkboxes. +## Independent Review + +A review must occur: + +* Before the first code change +* After completing tasks +* Before presenting results + +Review must consider: + +* Spec +* TASKS.md +* Current implementation + ## Tool Preferences Use the `gemini-search` MCP server for web searches. Fall back to diff --git a/internal/assets/context/CONSTITUTION.md b/internal/assets/context/CONSTITUTION.md index 79b20fe6b..eaaf35fa2 100644 --- a/internal/assets/context/CONSTITUTION.md +++ b/internal/assets/context/CONSTITUTION.md @@ -32,6 +32,16 @@ If you start something, you own it, you finish it. --- +## Context Integrity Invariants + +- [ ] **Never** modify or reason about a file based on partial or assumed content +- [ ] If a file is the subject of an operation, its relevant contents must be + **fully understood** before acting +- [ ] Sampling, guessing, or relying on prior assumptions instead of reading + is a **violation** + +--- + ## No Excuse Generation **Never default to deferral.** diff --git a/internal/assets/doc.go b/internal/assets/doc.go index 79f805a84..5bbdb343c 100644 --- a/internal/assets/doc.go +++ b/internal/assets/doc.go @@ -4,11 +4,45 @@ // \ Copyright 2026-present Context contributors. // SPDX-License-Identifier: Apache-2.0 -// Package assets provides the embedded filesystem for ctx. +// Package assets provides the embedded filesystem for +// ctx. // -// All templates, skills, hooks, YAML text files, and the Claude -// Code plugin manifest are compiled into the binary via go:embed. -// The single exported variable [FS] is the entry point for all -// embedded asset reads. Subdirectories under assets/read/ provide -// typed accessors grouped by domain (desc, entry, hook, skill, etc.). +// All templates, skills, hooks, YAML text files, and +// the Claude Code plugin manifest are compiled into +// the binary via go:embed. The single exported +// variable FS is the entry point for all embedded +// asset reads. +// +// # Embedded Content +// +// The FS variable includes: +// +// - claude/ -- CLAUDE.md, plugin.json, and skill +// definitions with SKILL.md and reference docs +// - context/ -- context file templates (TASKS.md, +// DECISIONS.md, CONVENTIONS.md, etc.) +// - entry-templates/ -- Markdown scaffolds for new +// decisions, learnings, tasks, conventions +// - hooks/ -- message templates and trace scripts +// for lifecycle hooks +// - integrations/ -- Copilot instructions, CLI +// hooks, agent configs, and scripts +// - project/ -- README templates for subdirectories +// - schema/ -- JSON Schema for .ctxrc validation +// - why/ -- philosophy documents (manifesto, about, +// design invariants) +// - permissions/ -- permission text files +// - commands/ -- YAML command/flag descriptions +// +// # Accessor Packages +// +// Subdirectories under assets/read/ provide typed +// accessors grouped by domain, so callers do not +// need to know embed paths: +// +// - read/desc -- command/flag/text descriptions +// - read/entry -- entry template files +// - read/hook -- hook message templates +// - read/skill -- skill SKILL.md files +// - read/template -- context file templates package assets diff --git a/internal/assets/hooks/messages/doc.go b/internal/assets/hooks/messages/doc.go index 4c681ad55..0e7bbeb86 100644 --- a/internal/assets/hooks/messages/doc.go +++ b/internal/assets/hooks/messages/doc.go @@ -4,11 +4,42 @@ // \ Copyright 2026-present Context contributors. // SPDX-License-Identifier: Apache-2.0 -// Package messages provides metadata for hook message templates. +// Package messages provides metadata for hook message +// templates. // -// The embedded registry.yaml maps each hook+variant pair to a -// category and description. [Registry] returns all entries, -// [Lookup] finds a specific one, and [Variants] enumerates -// the available names. Category constants live in -// config/hook (CategoryCustomizable, CategoryCtxSpecific). +// The embedded registry.yaml maps each hook+variant +// pair to a category and description. The registry +// is parsed once via sync.Once and cached for the +// lifetime of the process. +// +// # Registry Access +// +// Registry returns the full list of HookMessageInfo +// entries parsed from the embedded YAML file. +// +// for _, info := range messages.Registry() { +// fmt.Println(info.Hook, info.Variant) +// } +// +// # Lookup +// +// Lookup finds a specific entry by hook name and +// variant. Returns nil if no match is found. +// +// info := messages.Lookup("qa-reminder", "gate") +// +// # Variants +// +// Variants returns all variant names for a given +// hook, enabling enumeration of available templates. +// +// names := messages.Variants("qa-reminder") +// // => ["gate", "nudge"] +// +// # Types +// +// HookMessageInfo describes a single hook message +// template with hook name, variant, category +// (customizable or ctx-specific), description, and +// optional template variable names. package messages diff --git a/internal/assets/integrations/copilot-cli/skills/ctx-agent/SKILL.md b/internal/assets/integrations/copilot-cli/skills/ctx-agent/SKILL.md index 182b423f1..06a253f84 100644 --- a/internal/assets/integrations/copilot-cli/skills/ctx-agent/SKILL.md +++ b/internal/assets/integrations/copilot-cli/skills/ctx-agent/SKILL.md @@ -1,7 +1,6 @@ --- name: ctx-agent description: "Load full context packet. Use at session start or when context seems stale or incomplete." -tools: [bash] --- Load the full context packet for AI consumption. diff --git a/internal/assets/integrations/copilot-cli/skills/ctx-architecture/SKILL.md b/internal/assets/integrations/copilot-cli/skills/ctx-architecture/SKILL.md index ca9acca5c..24acef045 100644 --- a/internal/assets/integrations/copilot-cli/skills/ctx-architecture/SKILL.md +++ b/internal/assets/integrations/copilot-cli/skills/ctx-architecture/SKILL.md @@ -1,7 +1,6 @@ --- name: ctx-architecture description: "Build and maintain architecture maps. Use to create or refresh ARCHITECTURE.md and DETAILED_DESIGN.md. Supports principal mode for deeper analysis: vision, future direction, bottlenecks, implementation alternatives, gaps, upstream proposals, and intervention points." -tools: [bash, read, write, glob, grep] --- Build and maintain two architecture documents incrementally: diff --git a/internal/assets/integrations/copilot-cli/skills/ctx-archive/SKILL.md b/internal/assets/integrations/copilot-cli/skills/ctx-archive/SKILL.md index 366dcd53f..8e5da8b12 100644 --- a/internal/assets/integrations/copilot-cli/skills/ctx-archive/SKILL.md +++ b/internal/assets/integrations/copilot-cli/skills/ctx-archive/SKILL.md @@ -1,7 +1,6 @@ --- name: ctx-archive description: "Archive completed tasks. Use when TASKS.md has many completed items cluttering the view." -tools: [bash] --- Move completed tasks from TASKS.md to the archive. diff --git a/internal/assets/integrations/copilot-cli/skills/ctx-blog-changelog/SKILL.md b/internal/assets/integrations/copilot-cli/skills/ctx-blog-changelog/SKILL.md index 6130c183a..7442862ca 100644 --- a/internal/assets/integrations/copilot-cli/skills/ctx-blog-changelog/SKILL.md +++ b/internal/assets/integrations/copilot-cli/skills/ctx-blog-changelog/SKILL.md @@ -1,7 +1,6 @@ --- name: ctx-blog-changelog description: "Generate themed blog post from commits. Use when writing about changes between releases or documenting a development arc." -tools: [bash, read, write, edit, glob, grep] --- Generate a blog post about changes since a specific commit, with a given theme. diff --git a/internal/assets/integrations/copilot-cli/skills/ctx-blog/SKILL.md b/internal/assets/integrations/copilot-cli/skills/ctx-blog/SKILL.md index b5968e6e8..61ba09db6 100644 --- a/internal/assets/integrations/copilot-cli/skills/ctx-blog/SKILL.md +++ b/internal/assets/integrations/copilot-cli/skills/ctx-blog/SKILL.md @@ -1,7 +1,6 @@ --- name: ctx-blog description: "Generate blog post draft. Use when documenting project progress, sharing learnings, or writing about development experience." -tools: [bash, read, write] ---