@event4u/agent-config 8.4.1 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (581) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +92 -0
  3. package/README.md +17 -5
  4. package/dist/agent-src/README.md +1 -1
  5. package/dist/agent-src/commands/{analyze-reference-repo.md → analyze/reference-repo.md} +3 -1
  6. package/dist/agent-src/commands/analyze.md +9 -6
  7. package/dist/agent-src/commands/{bug-fix.md → bug/fix.md} +3 -1
  8. package/dist/agent-src/commands/{bug-investigate.md → bug/investigate.md} +4 -2
  9. package/dist/agent-src/commands/bug.md +59 -0
  10. package/dist/agent-src/commands/{set-cost-profile.md → cost/profile.md} +9 -6
  11. package/dist/agent-src/commands/{cost-report.md → cost/report.md} +38 -17
  12. package/dist/agent-src/commands/cost.md +57 -0
  13. package/dist/agent-src/commands/evals/{review-changes.json → review.json} +12 -8
  14. package/dist/agent-src/commands/{quality-fix.md → fix/quality.md} +5 -2
  15. package/dist/agent-src/commands/fix.md +7 -4
  16. package/dist/agent-src/commands/optimize/project.md +250 -0
  17. package/dist/agent-src/commands/{optimize-prompt.md → optimize/prompt.md} +3 -2
  18. package/dist/agent-src/commands/optimize.md +17 -12
  19. package/dist/agent-src/commands/{package-reset.md → package/reset.md} +2 -0
  20. package/dist/agent-src/commands/{package-test.md → package/test.md} +3 -1
  21. package/dist/agent-src/commands/package.md +56 -0
  22. package/dist/agent-src/commands/{project-analyze.md → project/analyze.md} +10 -8
  23. package/dist/agent-src/commands/{project-health.md → project/health.md} +2 -0
  24. package/dist/agent-src/commands/project.md +60 -0
  25. package/dist/agent-src/commands/{review-changes.md → review/changes.md} +26 -24
  26. package/dist/agent-src/commands/{review-routing.md → review/routing.md} +21 -17
  27. package/dist/agent-src/commands/review.md +61 -0
  28. package/dist/agent-src/commands/security-audit-config.md +24 -23
  29. package/dist/agent-src/commands/{sync-agent-settings.md → sync/agent-settings.md} +11 -7
  30. package/dist/agent-src/commands/{sync-gitignore → sync/gitignore}/fix.md +36 -27
  31. package/dist/agent-src/commands/{sync-gitignore.md → sync/gitignore.md} +22 -21
  32. package/dist/agent-src/commands/sync.md +58 -0
  33. package/dist/agent-src/commands/{e2e-heal.md → tests/e2e-heal.md} +5 -2
  34. package/dist/agent-src/commands/{e2e-plan.md → tests/e2e-plan.md} +5 -2
  35. package/dist/agent-src/commands/tests.md +11 -5
  36. package/dist/agent-src/contexts/augment-infrastructure.md +3 -3
  37. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +30 -0
  38. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +15 -1
  39. package/dist/agent-src/contexts/execution/subagent-steering.md +54 -1
  40. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  41. package/dist/agent-src/contexts/model-recommendations.md +19 -0
  42. package/dist/agent-src/contexts/skills-and-commands.md +2 -2
  43. package/dist/agent-src/contexts/subagent-configuration.md +8 -0
  44. package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
  45. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  46. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
  47. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
  48. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
  49. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
  50. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  51. package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
  52. package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
  53. package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
  54. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
  55. package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
  56. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  57. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  58. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  59. package/dist/agent-src/templates/agent-settings.md +1 -1
  60. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
  61. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  62. package/dist/cli/commands/config.js +44 -0
  63. package/dist/cli/commands/config.js.map +1 -0
  64. package/dist/cli/commands/uiServe.js +1 -0
  65. package/dist/cli/commands/uiServe.js.map +1 -1
  66. package/dist/cli/help.js +38 -0
  67. package/dist/cli/help.js.map +1 -0
  68. package/dist/cli/initRouting.js +16 -1
  69. package/dist/cli/initRouting.js.map +1 -1
  70. package/dist/cli/main.js +43 -37
  71. package/dist/cli/main.js.map +1 -1
  72. package/dist/cli/registry.js +45 -44
  73. package/dist/cli/registry.js.map +1 -1
  74. package/dist/discovery/deprecation-report.md +1 -1
  75. package/dist/discovery/discovery-manifest.json +419 -210
  76. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  77. package/dist/discovery/discovery-manifest.summary.md +4 -4
  78. package/dist/discovery/orphan-report.md +1 -1
  79. package/dist/discovery/packs.json +31 -25
  80. package/dist/discovery/trust-report.md +2 -2
  81. package/dist/discovery/workspaces.json +30 -24
  82. package/dist/install/install.mjs +6064 -159
  83. package/dist/install/selectedTools.js +39 -10
  84. package/dist/install/selectedTools.js.map +1 -1
  85. package/dist/mcp/registry-manifest.json +3 -3
  86. package/dist/server/app.js +15 -3
  87. package/dist/server/app.js.map +1 -1
  88. package/dist/server/routes/ping.js +16 -0
  89. package/dist/server/routes/ping.js.map +1 -1
  90. package/dist/server/routes/settings.js +42 -6
  91. package/dist/server/routes/settings.js.map +1 -1
  92. package/dist/server/routes/settingsChanges.js +55 -0
  93. package/dist/server/routes/settingsChanges.js.map +1 -0
  94. package/dist/server/routes/userMd.js +7 -2
  95. package/dist/server/routes/userMd.js.map +1 -1
  96. package/dist/server/routes/wizard.js +76 -14
  97. package/dist/server/routes/wizard.js.map +1 -1
  98. package/dist/server/writeRoot.js +17 -0
  99. package/dist/server/writeRoot.js.map +1 -1
  100. package/dist/shared/settingsSurface.js +120 -0
  101. package/dist/shared/settingsSurface.js.map +1 -0
  102. package/dist/ui/assets/index-BPFMZWUs.css +1 -0
  103. package/dist/ui/assets/index-BiEZiZ31.js +40 -0
  104. package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
  105. package/dist/ui/index.html +15 -2
  106. package/docs/CLAIMS.md +27 -15
  107. package/docs/architecture.md +1 -1
  108. package/docs/catalog.md +37 -31
  109. package/docs/command-flows.md +22 -16
  110. package/docs/contracts/command-clusters.md +39 -9
  111. package/docs/contracts/file-ownership-matrix.json +21 -0
  112. package/docs/contracts/frontmatter-contract.md +1 -1
  113. package/docs/contracts/gui-wizard.md +16 -4
  114. package/docs/contracts/iron-law-overrides.txt +1 -0
  115. package/docs/contracts/rule-classification.md +2 -2
  116. package/docs/contracts/settings-api.md +58 -2
  117. package/docs/contracts/surface-matrix.md +5 -0
  118. package/docs/cookbook.md +7 -7
  119. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
  120. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
  121. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +125 -0
  122. package/docs/decisions/INDEX.md +3 -0
  123. package/docs/featured-commands.md +1 -1
  124. package/docs/featured-skills.md +4 -4
  125. package/docs/flows.md +2 -2
  126. package/docs/getting-started-by-role.md +1 -1
  127. package/docs/getting-started-laravel.md +1 -1
  128. package/docs/getting-started.md +6 -3
  129. package/docs/governance-advantage.md +1 -1
  130. package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
  131. package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
  132. package/docs/proof.md +12 -2
  133. package/package.json +3 -1
  134. package/src/agent-src/README.md +1 -1
  135. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  136. package/src/config/agent-settings.template.yml +1 -1
  137. package/src/install/selectedTools.ts +38 -10
  138. package/src/scripts/_cli/cmd_converge.ts +38 -0
  139. package/src/scripts/_cli/cmd_doctor.ts +113 -2
  140. package/src/scripts/_cli/cmd_explain.ts +2 -2
  141. package/src/scripts/_cli/cmd_export.ts +3 -3
  142. package/src/scripts/_cli/cmd_fleet.ts +13 -1
  143. package/src/scripts/_cli/cmd_migrate.ts +3 -3
  144. package/src/scripts/_cli/cmd_prune.ts +2 -2
  145. package/src/scripts/_cli/cmd_refresh.ts +4 -4
  146. package/src/scripts/_cli/cmd_settings_check.ts +2 -2
  147. package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
  148. package/src/scripts/_cli/cmd_sync.ts +2 -2
  149. package/src/scripts/_cli/cmd_uninstall.ts +2 -2
  150. package/src/scripts/_cli/cmd_update.ts +8 -8
  151. package/src/scripts/_cli/cmd_upgrade.ts +4 -3
  152. package/src/scripts/_cli/cmd_validate.ts +3 -3
  153. package/src/scripts/_cli/cmd_versions.ts +2 -2
  154. package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
  155. package/src/scripts/_cli/explain_last/council.ts +2 -2
  156. package/src/scripts/_cli/explain_last/halt.ts +2 -2
  157. package/src/scripts/_cli/explain_last/index.ts +2 -2
  158. package/src/scripts/_cli/explain_last/inputs.ts +4 -4
  159. package/src/scripts/_cli/explain_last/memory.ts +2 -2
  160. package/src/scripts/_cli/explain_last/provider.ts +2 -2
  161. package/src/scripts/_cli/explain_last/render.ts +2 -2
  162. package/src/scripts/_cli/explain_last/route.ts +2 -2
  163. package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
  164. package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
  165. package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
  166. package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
  167. package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
  168. package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
  169. package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
  170. package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
  171. package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
  172. package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
  173. package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
  174. package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
  175. package/src/scripts/_dispatch.bash +20 -1
  176. package/src/scripts/_lib/agent_settings.ts +1 -1
  177. package/src/scripts/_lib/agent_src.ts +7 -7
  178. package/src/scripts/_lib/agents_overlay.ts +1 -1
  179. package/src/scripts/_lib/auto_dispatch.ts +63 -0
  180. package/src/scripts/_lib/bench_ab_cache.ts +1 -1
  181. package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
  182. package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
  183. package/src/scripts/_lib/bench_cost.ts +1 -1
  184. package/src/scripts/_lib/bench_quality.ts +3 -3
  185. package/src/scripts/_lib/bench_report.ts +4 -4
  186. package/src/scripts/_lib/bench_telegraph.ts +1 -1
  187. package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
  188. package/src/scripts/_lib/changelog_eras.ts +1 -1
  189. package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
  190. package/src/scripts/_lib/cli_wrapper.ts +1 -1
  191. package/src/scripts/_lib/fs_atomic.ts +1 -1
  192. package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
  193. package/src/scripts/_lib/install_layout.ts +1 -1
  194. package/src/scripts/_lib/install_regenerator.ts +1 -1
  195. package/src/scripts/_lib/installed_lock.ts +1 -1
  196. package/src/scripts/_lib/installed_tools.ts +1 -1
  197. package/src/scripts/_lib/json_pointers.ts +1 -1
  198. package/src/scripts/_lib/knowledge_global.ts +1 -1
  199. package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
  200. package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
  201. package/src/scripts/_lib/link_crypto.ts +4 -4
  202. package/src/scripts/_lib/linked_projects.ts +4 -4
  203. package/src/scripts/_lib/model_tier.ts +1 -1
  204. package/src/scripts/_lib/module_detection.ts +2 -2
  205. package/src/scripts/_lib/pin_resolver.ts +1 -1
  206. package/src/scripts/_lib/script_output.ts +1 -1
  207. package/src/scripts/_lib/security_lint.ts +1 -1
  208. package/src/scripts/_lib/subagent_routing.ts +24 -0
  209. package/src/scripts/_lib/subagent_steering.ts +213 -3
  210. package/src/scripts/_lib/surface_tiers.ts +1 -1
  211. package/src/scripts/_lib/text_similarity.ts +1 -1
  212. package/src/scripts/_lib/update_check.ts +2 -2
  213. package/src/scripts/_lib/user_global_paths.ts +1 -1
  214. package/src/scripts/_lib/value_ladder.ts +1 -1
  215. package/src/scripts/_lib/value_report.ts +1 -1
  216. package/src/scripts/_lib/zip_min.ts +2 -2
  217. package/src/scripts/adoption_report.ts +3 -3
  218. package/src/scripts/adoption_snapshot.ts +3 -3
  219. package/src/scripts/adoption_status.ts +2 -2
  220. package/src/scripts/adr/regenerate_index.ts +3 -3
  221. package/src/scripts/ai_council/_default_prices.ts +2 -3
  222. package/src/scripts/ai_council/advisors.ts +1 -1
  223. package/src/scripts/ai_council/airgap.ts +1 -1
  224. package/src/scripts/ai_council/budget_guard.ts +1 -1
  225. package/src/scripts/ai_council/bundler.ts +1 -1
  226. package/src/scripts/ai_council/cli_hints.ts +1 -1
  227. package/src/scripts/ai_council/clients.ts +5 -5
  228. package/src/scripts/ai_council/compile_corpus.ts +1 -1
  229. package/src/scripts/ai_council/confidence_gate.ts +1 -1
  230. package/src/scripts/ai_council/config.ts +1 -1
  231. package/src/scripts/ai_council/consensus.ts +1 -1
  232. package/src/scripts/ai_council/events_log.ts +1 -1
  233. package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
  234. package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
  235. package/src/scripts/ai_council/low_impact_intake.ts +1 -1
  236. package/src/scripts/ai_council/modes.ts +1 -1
  237. package/src/scripts/ai_council/orchestrator.ts +3 -3
  238. package/src/scripts/ai_council/pricing.ts +2 -2
  239. package/src/scripts/ai_council/probation_gate.ts +2 -2
  240. package/src/scripts/ai_council/project_context.ts +1 -1
  241. package/src/scripts/ai_council/prompts.ts +1 -1
  242. package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
  243. package/src/scripts/ai_council/session.ts +1 -1
  244. package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
  245. package/src/scripts/ai_council/solo_dispatch.ts +1 -1
  246. package/src/scripts/analysis_freshness.ts +2 -2
  247. package/src/scripts/annotate_discovery.ts +2 -2
  248. package/src/scripts/apply_modules_config.ts +2 -2
  249. package/src/scripts/audit_adr_coverage.ts +3 -3
  250. package/src/scripts/audit_auto_rules.ts +2 -2
  251. package/src/scripts/audit_cloud_compatibility.ts +3 -3
  252. package/src/scripts/audit_command_surface.ts +2 -2
  253. package/src/scripts/audit_initial_context.ts +7 -6
  254. package/src/scripts/audit_likelihood.ts +5 -5
  255. package/src/scripts/audit_mcp_tools.ts +3 -3
  256. package/src/scripts/audit_overlap.ts +2 -2
  257. package/src/scripts/audit_skill_descriptions.ts +2 -2
  258. package/src/scripts/audit_skill_overlap.ts +5 -5
  259. package/src/scripts/audit_user_type_axis.ts +4 -4
  260. package/src/scripts/backfill_model_tier.ts +1 -1
  261. package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
  262. package/src/scripts/bench_ab_clone.ts +2 -2
  263. package/src/scripts/bench_ab_diff.ts +3 -3
  264. package/src/scripts/bench_ab_integrity.ts +2 -2
  265. package/src/scripts/bench_ab_run.ts +4 -4
  266. package/src/scripts/bench_ab_task_runner.ts +1 -1
  267. package/src/scripts/bench_ab_tracka_run.ts +2 -2
  268. package/src/scripts/bench_ab_v2_run.ts +1 -1
  269. package/src/scripts/bench_ab_v2_stats.ts +2 -2
  270. package/src/scripts/bench_baseline_ready.ts +1 -1
  271. package/src/scripts/bench_condense_memory.ts +4 -4
  272. package/src/scripts/bench_drift_check.ts +3 -3
  273. package/src/scripts/bench_per_tool.ts +1 -1
  274. package/src/scripts/bench_rtk_savings.ts +4 -4
  275. package/src/scripts/bench_run.ts +4 -4
  276. package/src/scripts/bench_runner.ts +1 -1
  277. package/src/scripts/build_cloud_bundle.ts +3 -3
  278. package/src/scripts/build_discovery_manifest.ts +13 -15
  279. package/src/scripts/build_linear_digest.ts +2 -2
  280. package/src/scripts/build_mcp_registry_manifest.ts +3 -3
  281. package/src/scripts/build_proof.ts +6 -0
  282. package/src/scripts/build_rule_trigger_matrix.ts +2 -2
  283. package/src/scripts/capture_showcase_session.ts +3 -3
  284. package/src/scripts/chat_history.ts +1 -1
  285. package/src/scripts/check_always_budget.ts +1 -1
  286. package/src/scripts/check_artefact_checksums.ts +4 -4
  287. package/src/scripts/check_artefact_count_messaging.ts +197 -0
  288. package/src/scripts/check_augment_description_cap.ts +3 -3
  289. package/src/scripts/check_augmentignore.ts +1 -1
  290. package/src/scripts/check_beta_review_markers.ts +3 -3
  291. package/src/scripts/check_bite_sized_granularity.ts +1 -1
  292. package/src/scripts/check_cluster_patterns.ts +47 -3
  293. package/src/scripts/check_command_count_messaging.ts +2 -2
  294. package/src/scripts/check_condensation.ts +2 -2
  295. package/src/scripts/check_condensed_paths.ts +6 -6
  296. package/src/scripts/check_context_paths.ts +1 -1
  297. package/src/scripts/check_council_config_location.ts +3 -3
  298. package/src/scripts/check_council_layout.ts +2 -2
  299. package/src/scripts/check_council_references.ts +2 -2
  300. package/src/scripts/check_discovery_determinism.ts +3 -3
  301. package/src/scripts/check_gate_paths.ts +4 -4
  302. package/src/scripts/check_iron_law_prominence.ts +2 -2
  303. package/src/scripts/check_kernel_rule_bundle.ts +3 -3
  304. package/src/scripts/check_knowledge_cards.ts +4 -4
  305. package/src/scripts/check_knowledge_pages.ts +1 -1
  306. package/src/scripts/check_md_language.ts +3 -3
  307. package/src/scripts/check_memory.ts +3 -3
  308. package/src/scripts/check_memory_proposal.ts +2 -2
  309. package/src/scripts/check_module_management_neutral.ts +1 -1
  310. package/src/scripts/check_no_conflict_markers.ts +1 -1
  311. package/src/scripts/check_no_external_sources.ts +1 -1
  312. package/src/scripts/check_no_local_settings_committed.ts +2 -2
  313. package/src/scripts/check_no_new_legacy_path.ts +3 -3
  314. package/src/scripts/check_no_roadmap_refs.ts +3 -3
  315. package/src/scripts/check_one_off_location.ts +3 -3
  316. package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
  317. package/src/scripts/check_portability.ts +3 -3
  318. package/src/scripts/check_proposal.ts +0 -0
  319. package/src/scripts/check_public_catalog_links.ts +1 -1
  320. package/src/scripts/check_public_links.ts +2 -2
  321. package/src/scripts/check_references.ts +3 -3
  322. package/src/scripts/check_release_includes_discovery.ts +2 -2
  323. package/src/scripts/check_release_pr_shape.ts +2 -2
  324. package/src/scripts/check_release_published.ts +1 -1
  325. package/src/scripts/check_release_trunk_sync.ts +3 -3
  326. package/src/scripts/check_reply_consistency.ts +1 -1
  327. package/src/scripts/check_roadmap_trackable.ts +2 -2
  328. package/src/scripts/check_role_doc_links.ts +2 -2
  329. package/src/scripts/check_safety_floor_untouched.ts +3 -3
  330. package/src/scripts/check_skill_requires.ts +2 -2
  331. package/src/scripts/check_structural_breaking.ts +2 -2
  332. package/src/scripts/check_surface_tiers.ts +2 -2
  333. package/src/scripts/check_template_pin_drift.ts +1 -1
  334. package/src/scripts/check_test_coverage_diff.ts +2 -2
  335. package/src/scripts/check_token_optimizer_freshness.ts +3 -3
  336. package/src/scripts/check_trigger_evals.ts +2 -2
  337. package/src/scripts/check_update_banner.ts +1 -1
  338. package/src/scripts/ci_status.ts +0 -0
  339. package/src/scripts/ci_summary.ts +3 -3
  340. package/src/scripts/ci_time_ratio.ts +1 -1
  341. package/src/scripts/command_suggester/cooldown.ts +1 -1
  342. package/src/scripts/command_suggester/index.ts +1 -1
  343. package/src/scripts/command_suggester/loader.ts +1 -1
  344. package/src/scripts/command_suggester/match.ts +1 -1
  345. package/src/scripts/command_suggester/rank.ts +1 -1
  346. package/src/scripts/command_suggester/render.ts +1 -1
  347. package/src/scripts/command_suggester/sanitize.ts +1 -1
  348. package/src/scripts/command_suggester/settings.ts +1 -1
  349. package/src/scripts/command_suggester/types.ts +0 -0
  350. package/src/scripts/compile_router.ts +4 -4
  351. package/src/scripts/condense.ts +3 -3
  352. package/src/scripts/condense_memory.ts +1 -1
  353. package/src/scripts/config/index.ts +1 -1
  354. package/src/scripts/config/packs.ts +1 -1
  355. package/src/scripts/config/presets.ts +1 -1
  356. package/src/scripts/config/profile_explain.ts +1 -1
  357. package/src/scripts/config/profiles.ts +1 -1
  358. package/src/scripts/config/session_profiles.ts +1 -1
  359. package/src/scripts/context_hygiene_hook.ts +2 -2
  360. package/src/scripts/cost_by_conversation.ts +1 -1
  361. package/src/scripts/cost_summary.ts +2 -2
  362. package/src/scripts/council_cli.ts +1 -1
  363. package/src/scripts/council_prune.ts +1 -1
  364. package/src/scripts/cross_repo_retrieve.ts +2 -2
  365. package/src/scripts/discovery_stats.ts +3 -3
  366. package/src/scripts/evidence_report.ts +4 -4
  367. package/src/scripts/extract_audit_patterns.ts +2 -2
  368. package/src/scripts/first_run_gate_hook.ts +1 -1
  369. package/src/scripts/gen_discovery_baseline.ts +2 -2
  370. package/src/scripts/generate_capabilities_index.ts +2 -2
  371. package/src/scripts/generate_capability_matrix.ts +2 -2
  372. package/src/scripts/generate_catalog.ts +2 -2
  373. package/src/scripts/generate_command_flows.ts +2 -2
  374. package/src/scripts/generate_cookbook.ts +1 -1
  375. package/src/scripts/generate_index.ts +3 -3
  376. package/src/scripts/generate_ownership_matrix.ts +2 -2
  377. package/src/scripts/generate_pack_manifests.ts +2 -2
  378. package/src/scripts/generate_role_experiences_catalog.ts +3 -3
  379. package/src/scripts/hooks/block_no_verify.ts +2 -2
  380. package/src/scripts/hooks/dispatch_hook.ts +2 -2
  381. package/src/scripts/hooks/dispatch_issues.ts +1 -1
  382. package/src/scripts/hooks/envelope.ts +1 -1
  383. package/src/scripts/hooks/replay_hook.ts +1 -1
  384. package/src/scripts/hooks/state_io.ts +1 -1
  385. package/src/scripts/hooks_doctor.ts +1 -1
  386. package/src/scripts/hooks_status.ts +1 -1
  387. package/src/scripts/injection_scan_hook.ts +1 -1
  388. package/src/scripts/install.ts +145 -3
  389. package/src/scripts/inventory_abstraction_budget.ts +5 -5
  390. package/src/scripts/inventory_frontmatter.ts +1 -1
  391. package/src/scripts/inventory_meta_layers.ts +1 -1
  392. package/src/scripts/iron_law_sha.ts +1 -1
  393. package/src/scripts/knowledge_global_cli.ts +3 -3
  394. package/src/scripts/linked_projects_list.ts +1 -1
  395. package/src/scripts/lint_agent_security.ts +4 -4
  396. package/src/scripts/lint_agent_skill_names.ts +1 -1
  397. package/src/scripts/lint_agents_layout.ts +2 -2
  398. package/src/scripts/lint_agents_md.ts +3 -3
  399. package/src/scripts/lint_archived_skills.ts +2 -2
  400. package/src/scripts/lint_artefact_frontmatter.ts +2 -2
  401. package/src/scripts/lint_bench_ab.ts +2 -2
  402. package/src/scripts/lint_bench_corpus.ts +1 -1
  403. package/src/scripts/lint_command_flow_coverage.ts +1 -1
  404. package/src/scripts/lint_command_routing.ts +2 -2
  405. package/src/scripts/lint_command_tiers.ts +1 -1
  406. package/src/scripts/lint_command_verbs.ts +4 -4
  407. package/src/scripts/lint_commit_subjects.ts +2 -2
  408. package/src/scripts/lint_context_spine_usage.ts +3 -3
  409. package/src/scripts/lint_discovery_manifest.ts +4 -4
  410. package/src/scripts/lint_discovery_vocabulary.ts +2 -2
  411. package/src/scripts/lint_empty_roadmaps.ts +3 -3
  412. package/src/scripts/lint_eval_freshness.ts +2 -2
  413. package/src/scripts/lint_examples.ts +2 -2
  414. package/src/scripts/lint_explain_trace.ts +2 -2
  415. package/src/scripts/lint_featured_skills.ts +0 -0
  416. package/src/scripts/lint_flows.ts +5 -5
  417. package/src/scripts/lint_framework_leakage.ts +1 -1
  418. package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
  419. package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
  420. package/src/scripts/lint_ghostwriter_source.ts +3 -3
  421. package/src/scripts/lint_global_paths.ts +1 -1
  422. package/src/scripts/lint_handoffs.ts +1 -1
  423. package/src/scripts/lint_hidden_unicode.ts +1 -1
  424. package/src/scripts/lint_hook_concern_budget.ts +2 -2
  425. package/src/scripts/lint_hook_manifest.ts +2 -2
  426. package/src/scripts/lint_instruction_smuggling.ts +1 -1
  427. package/src/scripts/lint_load_context.ts +2 -2
  428. package/src/scripts/lint_marketplace.ts +1 -1
  429. package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
  430. package/src/scripts/lint_mcp_config_security.ts +1 -1
  431. package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
  432. package/src/scripts/lint_media_policy_linkage.ts +3 -3
  433. package/src/scripts/lint_missions.ts +3 -3
  434. package/src/scripts/lint_model_tier_coverage.ts +3 -3
  435. package/src/scripts/lint_namespace.ts +2 -2
  436. package/src/scripts/lint_namespace_collisions.ts +2 -2
  437. package/src/scripts/lint_new_skill_gate.ts +3 -3
  438. package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
  439. package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
  440. package/src/scripts/lint_one_off_age.ts +2 -2
  441. package/src/scripts/lint_orchestration_dsl.ts +3 -3
  442. package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
  443. package/src/scripts/lint_pack_boundaries.ts +2 -2
  444. package/src/scripts/lint_pack_dependencies.ts +2 -2
  445. package/src/scripts/lint_pack_first_win.ts +2 -2
  446. package/src/scripts/lint_persona_governance.ts +3 -3
  447. package/src/scripts/lint_positioning.ts +1 -1
  448. package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
  449. package/src/scripts/lint_readme_jargon.ts +2 -2
  450. package/src/scripts/lint_readme_size.ts +2 -2
  451. package/src/scripts/lint_regression.ts +3 -3
  452. package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
  453. package/src/scripts/lint_roadmap_complexity.ts +1 -1
  454. package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
  455. package/src/scripts/lint_role_experiences.ts +2 -2
  456. package/src/scripts/lint_rule_interactions.ts +1 -1
  457. package/src/scripts/lint_rule_tiers.ts +1 -1
  458. package/src/scripts/lint_showcase_sessions.ts +2 -2
  459. package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
  460. package/src/scripts/lint_skill_originality.ts +1 -1
  461. package/src/scripts/lint_skill_tools.ts +3 -3
  462. package/src/scripts/lint_ticket_buildable.ts +2 -2
  463. package/src/scripts/lint_topics_yaml.ts +3 -3
  464. package/src/scripts/lint_trust_coherence.ts +3 -3
  465. package/src/scripts/lint_value_dashboard.ts +3 -3
  466. package/src/scripts/lint_workflow_security.ts +3 -3
  467. package/src/scripts/lint_workspace_boundary.ts +2 -2
  468. package/src/scripts/mcp_parity_smoke.ts +1 -1
  469. package/src/scripts/mcp_render.ts +1 -1
  470. package/src/scripts/mcp_server/catalog.ts +1 -1
  471. package/src/scripts/mcp_server/index.ts +1 -1
  472. package/src/scripts/mcp_server/metadata.ts +1 -1
  473. package/src/scripts/mcp_server/prompts.ts +1 -1
  474. package/src/scripts/mcp_server/resources.ts +1 -1
  475. package/src/scripts/mcp_server/server.ts +1 -1
  476. package/src/scripts/mcp_server/telemetry.ts +1 -1
  477. package/src/scripts/mcp_server/tools.ts +1 -1
  478. package/src/scripts/mcp_telemetry_health.ts +1 -1
  479. package/src/scripts/mcp_telemetry_query.ts +3 -3
  480. package/src/scripts/mcp_telemetry_store.ts +3 -3
  481. package/src/scripts/measure_augment_budget.ts +2 -2
  482. package/src/scripts/measure_density.ts +2 -2
  483. package/src/scripts/measure_frugality_savings.ts +3 -3
  484. package/src/scripts/measure_markitdown_lift.ts +1 -1
  485. package/src/scripts/measure_patterns.ts +1 -1
  486. package/src/scripts/measure_projection_bytes.ts +1 -1
  487. package/src/scripts/measure_rule_budget.ts +1 -1
  488. package/src/scripts/measure_skill_reduction.ts +1 -1
  489. package/src/scripts/memory_hash.ts +1 -1
  490. package/src/scripts/memory_lookup.ts +6 -6
  491. package/src/scripts/memory_report.ts +1 -1
  492. package/src/scripts/memory_signal.ts +1 -1
  493. package/src/scripts/memory_status.ts +2 -2
  494. package/src/scripts/migrate_command_suggestions.ts +1 -1
  495. package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
  496. package/src/scripts/mine_session.ts +3 -3
  497. package/src/scripts/minimal_safe_diff_hook.ts +2 -2
  498. package/src/scripts/move_artefact.ts +3 -3
  499. package/src/scripts/new_skill.ts +3 -3
  500. package/src/scripts/onboarding_gate_hook.ts +2 -2
  501. package/src/scripts/pack_mcp_content.ts +1 -1
  502. package/src/scripts/parity/replay.ts +3 -2
  503. package/src/scripts/pattern_share.ts +2 -2
  504. package/src/scripts/plan_physical_move.ts +3 -3
  505. package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
  506. package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
  507. package/src/scripts/prediction-pool/score_ev.ts +2 -2
  508. package/src/scripts/print_required_checks.ts +2 -2
  509. package/src/scripts/probe_projection_fidelity.ts +2 -2
  510. package/src/scripts/probe_skill_registration.ts +2 -2
  511. package/src/scripts/profile_staleness_hook.ts +2 -2
  512. package/src/scripts/profile_use.ts +2 -2
  513. package/src/scripts/project_thin_rules.ts +3 -3
  514. package/src/scripts/propose_modules_config.ts +2 -2
  515. package/src/scripts/prototype_lint_contradictions.ts +2 -2
  516. package/src/scripts/prove_pack_extractable.ts +1 -1
  517. package/src/scripts/readme_linter.ts +4 -4
  518. package/src/scripts/redact_hook_capture.ts +2 -2
  519. package/src/scripts/refine_ticket_detect.ts +1 -1
  520. package/src/scripts/release.ts +30 -19
  521. package/src/scripts/render_benchmark_md.ts +2 -2
  522. package/src/scripts/render_value_md.ts +2 -2
  523. package/src/scripts/roadmap_progress_hook.ts +1 -1
  524. package/src/scripts/router_telemetry.ts +1 -1
  525. package/src/scripts/run_skill_evals.ts +2 -2
  526. package/src/scripts/runtime_dispatcher.ts +1 -1
  527. package/src/scripts/runtime_handler.ts +1 -1
  528. package/src/scripts/runtime_registry.ts +3 -3
  529. package/src/scripts/score_skill_selection.ts +1 -1
  530. package/src/scripts/security_audit_config.ts +2 -2
  531. package/src/scripts/skill_collision_clusters.ts +1 -1
  532. package/src/scripts/skill_discovery.ts +1 -1
  533. package/src/scripts/skill_linter.ts +8 -7
  534. package/src/scripts/skill_overlap.ts +2 -2
  535. package/src/scripts/skill_preview.ts +1 -1
  536. package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
  537. package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
  538. package/src/scripts/skill_tools/index.ts +1 -1
  539. package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
  540. package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
  541. package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
  542. package/src/scripts/skill_trigger_eval.ts +2 -2
  543. package/src/scripts/skill_usage_collect.ts +2 -2
  544. package/src/scripts/skill_usage_report.ts +2 -2
  545. package/src/scripts/smoke_path_resolution.ts +2 -2
  546. package/src/scripts/smoke_quickstart.ts +4 -4
  547. package/src/scripts/snapshot_agent_outputs.ts +2 -2
  548. package/src/scripts/spotcheck_thin_root.ts +2 -2
  549. package/src/scripts/surface-tiers.yml +1 -0
  550. package/src/scripts/sync_agent_settings.ts +2 -2
  551. package/src/scripts/sync_github_metadata.ts +4 -4
  552. package/src/scripts/sync_gitignore.ts +3 -3
  553. package/src/scripts/sync_yaml_rt.ts +2 -2
  554. package/src/scripts/telegraph_stats.ts +1 -1
  555. package/src/scripts/tool_registry.ts +2 -2
  556. package/src/scripts/tools/adapter_errors.ts +1 -1
  557. package/src/scripts/tools/base_adapter.ts +1 -1
  558. package/src/scripts/tools/github_adapter.ts +1 -1
  559. package/src/scripts/tools/jira_adapter.ts +1 -1
  560. package/src/scripts/trigger_coverage.ts +2 -2
  561. package/src/scripts/update_counts.ts +68 -6
  562. package/src/scripts/update_prices.ts +3 -3
  563. package/src/scripts/validate_agent_settings.ts +3 -3
  564. package/src/scripts/validate_decision_engine.ts +2 -2
  565. package/src/scripts/validate_discovery_manifest.ts +3 -3
  566. package/src/scripts/validate_frontmatter.ts +5 -5
  567. package/src/scripts/validate_pack_yaml.ts +0 -0
  568. package/src/scripts/validate_safe_paths.ts +2 -2
  569. package/src/scripts/validate_telegraph_carveouts.ts +3 -3
  570. package/src/scripts/verify_before_complete_hook.ts +2 -2
  571. package/src/scripts/verify_physical_move.ts +2 -2
  572. package/src/scripts/wrapper_freshness_hook.ts +3 -3
  573. package/src/server/schemas/settings.ts +426 -0
  574. package/src/shared/settingsSurface.ts +184 -0
  575. package/src/shared/userMd/formAdapter.ts +86 -0
  576. package/src/shared/userMd/schema.ts +59 -0
  577. package/src/shared/userMd/utils.ts +91 -0
  578. package/dist/agent-src/commands/optimize-project.md +0 -243
  579. package/dist/ui/assets/index-BbWWuFrF.css +0 -1
  580. package/dist/ui/assets/index-UjcTG_9O.js +0 -40
  581. package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
@@ -28,15 +28,15 @@ column 1 of this table.
28
28
 
29
29
  | Cluster | Phase | Sub-commands | Replaces |
30
30
  |---|:-:|---|---|
31
- | `fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` · `comments` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder`; `comments` added 2026-06-22 — audits the **code comments** in the current branch's diff (simplify / shorten / remove), distinct from the PR-review-thread `pr-comments` sub |
32
- | `optimize` | 1 | `agents-dir` · `augmentignore` · `rtk` · `skills` | `optimize-augmentignore` · `optimize-rtk-filters` · `optimize-skills` · former `/optimize agents` and `/optimize agents-md` moved to the `/agents` file-family cluster 2026-05-09; `/agents prepare/audit/cleanup` collapsed into the single `/optimize agents-dir` (flags or wizard) per the agent-doc consolidation |
31
+ | `fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` · `comments` · `quality` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder`; `comments` added 2026-06-22 — audits the **code comments** in the current branch's diff (simplify / shorten / remove), distinct from the PR-review-thread `pr-comments` sub; `quality` added 2026-07-08 — replaces `quality-fix` (slug reorder, `replaces:` alias) |
32
+ | `optimize` | 1 | `agents-dir` · `augmentignore` · `rtk` · `skills` · `project` · `prompt` | `optimize-augmentignore` · `optimize-rtk-filters` · `optimize-skills` · former `/optimize agents` and `/optimize agents-md` moved to the `/agents` file-family cluster 2026-05-09; `/agents prepare/audit/cleanup` collapsed into the single `/optimize agents-dir` (flags or wizard) per the agent-doc consolidation; `project` (slug-neutral nest of `optimize-project`, pack move engineering-base → meta) + `prompt` (slug-neutral nest of `optimize-prompt`) added 2026-07-08 — the head now spans agent-layer / project-wide / prompt scopes with a disambiguating menu |
33
33
  | `feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` · `dev` | `feature-explore` · `feature-plan` · `feature-refactor` · `feature-roadmap` · `feature-dev` |
34
34
  | `chat-history` | 2 | `show` · `import` · `learn` | `chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` (auto-adopt + structural hooks); `import` (verbatim cross-session render) and `learn` (project-improving learning extraction) added in the v4 stateless schema |
35
35
  | `agents` | 2 | `init` · `optimize` · `audit` · `user` | AGENTS.md file family (high-frequency) — repurposed 2026-05-09: `init` (was `/copilot-agents init`) · `optimize` (merger of `/optimize agents-md` + `/copilot-agents optimize`) · `audit` (was `/optimize agents`, collapses old `audit` + `check` verbs); legacy folder ops (`prepare` / `cleanup` / folder-`audit`) moved to `/optimize agents-dir`; `user` sub-cluster added 2026-05-15 — manages the project-root `.agent-user.md` persona file (sub-sub-commands: `init` · `show` · `review` · `accept` · `update`) per [`agent-user-schema`](agent-user-schema.md) |
36
36
  | `memory` | 2 | `add` · `load` · `promote` · `propose` · `mine-session` · `learn-low-impact` | `memory-add` · `memory-full` · `memory-promote` · `propose-memory`; `mine-session` added 2026-05-10 — manual transcript-mining sub-command from an internal roadmap (local-only), opt-in via `--confirm-transcript-access` per invocation; `learn-low-impact` added 2026-05-15 — upstreams `## Validated` entries from `agents/decisions/low-impact-decisions.md` to the package seed via a DRAFT PR (re-runs the privacy-floor redactor as a second gate per `low-impact-corpus-privacy-floor`) |
37
37
  | `roadmap` | 2 | `create` · `ai-council` · `process-step` · `process-phase` · `process-full` | `roadmap-create` · `roadmap-execute` (replaced — autonomous, no per-step gate; `process-phase` is the default execution scope); `ai-council` added 2026-05-07 — wraps `/council default` with `--input-mode roadmap --depth deep` |
38
38
  | `module` | 2 | `create` · `explore` | `module-create` · `module-explore` |
39
- | `tests` | 2 | `create` · `execute` | `tests-create` · `tests-execute` |
39
+ | `tests` | 2 | `create` · `execute` · `e2e-plan` · `e2e-heal` | `tests-create` · `tests-execute`; `e2e-plan` / `e2e-heal` added 2026-07-08 — replace the flat `e2e-plan` / `e2e-heal` (slug reorders, `replaces:` aliases; composite sub-names per ADR-003 §2) |
40
40
  | `context` | 2 | `create` · `refactor` | `context-create` · `context-refactor` |
41
41
  | `override` | 2 | `create` · `manage` | `override-create` · `override-manage` |
42
42
  | `judge` | 2 | `solo` · `on-diff` · `steps` | `judge` (legacy standalone) · `do-and-judge` · `do-in-steps` |
@@ -46,7 +46,7 @@ column 1 of this table.
46
46
  | `challenge-me` | — | `vision` · `with-docs` | new — Pocock-inspired one-question-at-a-time interview; `vision` is the standard 95%-confidence variant, `with-docs` adds doc/glossary awareness with a session-scoped glossary and load-bearing claim-vs-code verification |
47
47
  | `research` | 2 | `deep` · `report` | preliminary-research scaffolder ported from `Weizhena/Deep-Research-skills` (cluster head emits `outline.yaml` + `fields.yaml` against the `research-schema` contract). `:deep` populates per-item JSON in batches with native web-search + JSON-Schema self-validation (no Python runtime); `:report` renders `report.md` directly + optionally emits a `jq` template for deterministic regeneration. `add-items` / `add-fields` intentionally **not** ported — re-run `/research <topic>` to extend the field framework. |
48
48
  | `orchestrate` | — | _(none yet — cluster head only)_ | new — runtime executor for YAML pipelines under `.agent-config/orchestrations/` per the [`orchestration-dsl-v1`](orchestration-dsl-v1.md) contract; chains personas / skills / commands / sub-agents deterministically. Single cluster head; sub-commands deferred until a second verb is needed. |
49
- | `sync-gitignore` | — | `fix` | new sub-command 2026-05-11 — cluster head retains the existing append-only sync as its default flow; `:fix` adds `--cleanup-legacy` semantics, scrubbing pre-`/agents/` runtime patterns wherever they appear in the consumer's `.gitignore` (inside or outside the managed block) and re-syncing the canonical entries. |
49
+ | `sync` | 4 | `agent-settings` · `gitignore` · `gitignore-fix` | new cluster 2026-07-08 — absorbs the former single-sub `sync-gitignore` cluster (slug-neutral nests: `sync-agent-settings`, `sync-gitignore`, `sync-gitignore-fix` keep their slugs; the gitignore node keeps its own `fix` sub-dir, mirroring the `agents/user` deep-nest precedent). Bare `/sync` shows the menu. |
50
50
  | `ghostwriter` | — | `fetch` · `write` · `list` · `show` · `delete` | new cluster 2026-05-15 — third voice primitive for AI-assisted writing in the public voice of a public figure. Hybrid storage: real-person profiles live consumer-side under `agents/reference/ghostwriter/<slug>.md` (gitignored by default); package source ships only `fictional: true` fixtures. Zero network code in the package — `:fetch` delegates web-fetch / web-search to the host agent. Mandatory disclosure footer on every `:write` output (no opt-out). Schema: [`ghostwriter-schema`](ghostwriter-schema.md). |
51
51
  | `post-as` | — | `me` · `ghostwriter` | new cluster 2026-05-15 — consumer-facing write entry points. `:me` reads `.agent-user.md.voice_sample` and drafts in the maintainer's own voice (no disclosure footer — the user is the author); `:ghostwriter` is a thin alias for `/ghostwriter:write` with the mandatory disclosure footer. Both share the procedural [`write-engine`](write-engine.md) contract — style source and footer are the only axes of variation. |
52
52
  | `video` | — | `from-script` · `from-song` · `scene` · `storyboard` · `stitch` | new cluster 2026-05-17 — AI video generation pipeline. Cluster head orchestrates the full flow; `:scene` runs a single scene end-to-end (script → blueprint → still → motion → clip); `:storyboard` expands a script into per-scene blueprints + reference stills with character-lock JSON; `:from-script` walks a multi-scene script through storyboard + per-scene generation; `:from-song` builds a music-video from a song + reference images — derived/briefed timed script (via the `song-to-script` skill + `probe-audio.sh` hybrid segmentation), optional character-lock, then stitch with the song muxed as the master track and a mandatory AI-generation disclosure; `:stitch` concatenates scene clips with `ffmpeg` against a scene manifest. Provider-agnostic via the adapter contract under `scripts/media/lib/adapter-contract.md`; cost-gated with mandatory `AIV_DRYRUN=true` default and explicit confirmation before live provider calls. |
@@ -58,13 +58,43 @@ column 1 of this table.
58
58
 
59
59
  | `team-knowledge` | — | `consolidate` · `bootstrap` | new cluster 2026-07-05 (`road-to-knowledge-system` Phases 5-6) — the repo-tracked team-knowledge layer under `agents/knowledge/{sessions,concepts,procedures,decisions}/`. Distinct from the pre-existing [`knowledge`](#locked-clusters) cluster (arbitrary local-file ingestion into `agents/memory/knowledge/`) — different namespace, different concern. `:consolidate` reads pending typed-observation events (`consolidate_knowledge_events.ts`), finds the nearest existing page per topic (mechanical similarity), and presents a NEW/EXTEND/CONFIRM/CONFLICT batch for human approval — never writes a page automatically. `:bootstrap` (`bootstrap_knowledge.ts`) stages a one-shot deterministic seed (detected package manifest, top-level directories, known config filenames — never file content, never an LLM-invented claim) to a gitignored staging dir for review-then-commit. |
60
60
  | `profile` | — | `activate` · `deactivate` · `show` | new cluster 2026-06-02 (`road-to-session-profile-activation`) — session-profile activation: an ephemeral `runtime.active_packs` overlay that biases the surfaced command/skill set to the active pack closure, with no persistence and no execution-gating (recommendation-bias MVP). `:activate <name…>` resolves an alias (`src/config/discovery/session-profiles.yml`) or a raw pack id, fails fast on a not-installed pack, expands the `requires_hint` closure, and writes the overlay atomically to `agents/settings/.agent-settings.local.yml`; `:deactivate [name…]` clears it (or drops named packs, keeping deps a still-active pack needs); `:show` is the observability surface (active packs + surfaced/hidden counts). Overlay = runtime modulation of the existing `pack` axis, not a fifth axis (ADR-010 addendum). Library: `scripts/config/session_profiles.py`; schema in [`session-profile-overlay`](session-profile-overlay.md). |
61
+ | `analyze` | 4 | `postmortem` · `premortem` · `decision` · `near-miss` · `incident` · `reference-repo` | analysis-workbench cluster, registered in this table 2026-07-08 (pre-existing head + five framework subs); `reference-repo` added 2026-07-08 — slug-neutral nest + pack move of `analyze-reference-repo` (engineering-base → analysis-workbench, co-locating with its head) |
62
+ | `bug` | 4 | `fix` · `investigate` | new cluster 2026-07-08 — slug-neutral nests of `bug-fix` + `bug-investigate`; triage entry point (investigate = root cause, fix = plan + implement). Bare `/bug` shows the menu. |
63
+ | `project` | 4 | `analyze` · `health` | new cluster 2026-07-08 — slug-neutral nests of `project-analyze` + `project-health`; project-wide inspection (analyze = full audit, health = read-only). Bare `/project` shows the menu. |
64
+ | `review` | 4 | `changes` · `routing` | new cluster 2026-07-08 — slug-neutral nests of `review-changes` (tier moved to the head: sub is internal, head is the advanced surface) + `review-routing` (pack move meta → engineering-base). `prepare-for-review` deliberately stays flat (council-rejected slug change). Bare `/review` shows the menu. |
65
+ | `package` | 4 | `test` · `reset` | new cluster 2026-07-08 — slug-neutral nests of `package-test` (pack move engineering-base → meta) + `package-reset`; package-install maintenance. Bare `/package` shows the menu. |
66
+ | `cost` | 4 | `report` · `profile` | new cluster 2026-07-08 — slug-neutral nest of `cost-report` + `profile` replacing `set-cost-profile` (slug reorder, `replaces:` alias). Bare `/cost` shows the menu. |
61
67
 
62
68
  **Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
63
- collapses 26 atomics → 11 sub-command clusters. Sub-commands use
64
- colon syntax (`/cluster:sub`) so Claude Code's command palette can
65
- autocomplete them. The standalone `/review` surface that mirrors
66
- `judge solo` lives at
67
- [`commands/review-changes.md`](../../.agent-src.uncondensed/commands/review-changes.md).
69
+ collapses 26 atomics → 11 sub-command clusters. Phase 4 (2026-07-08,
70
+ `road-to-command-structure-optimization`) nests 19 more flat commands
71
+ into 6 new + 4 extended clusters — 15 of them slug-neutral (path
72
+ hyphen-joining keeps the invoked name), 4 slug reorders carried by
73
+ `replaces:` aliases (`fix-quality`, `tests-e2e-plan`, `tests-e2e-heal`,
74
+ `cost-profile`). The five-judge self-review formerly at
75
+ `review-changes` is now the `changes` sub of the `review` cluster.
76
+
77
+ ## Bare invocation — deterministic, never guessed
78
+
79
+ Locked with Phase 4 (2026-07-08). Every cluster head defines what a
80
+ bare `/<cluster>` (no sub-command, no auto-detect signal) does:
81
+
82
+ 1. **Multi-sub head → numbered menu.** Print the sub-command menu and
83
+ ask; never guess a sub-command. Heads with `auto_detect: true` run
84
+ their detection table first, but LOW confidence still ends in the
85
+ menu (interactive) or `ambiguous_routing` (CI) — never a guess.
86
+ 2. **Single-sub head → default-route.** Route to the only sub and say
87
+ so (e.g. `/chat-history` → `import`).
88
+ 3. **Documented default-flow exceptions.** A head whose bare
89
+ invocation runs a real default flow declares it in its `## Dispatch`
90
+ section (e.g. `/council` → `default` lens, `/sync gitignore` bare →
91
+ its own `## Default flow`). The exception lives in the head file —
92
+ not in tribal knowledge.
93
+
94
+ `scripts/check_cluster_patterns.ts` enforces the structural side:
95
+ every phase-numbered cluster head carries `## Sub-commands` (with the
96
+ locked table header), `## Dispatch`, and `## Rules`, and every
97
+ `routes_to:` entry must resolve to a real command.
68
98
 
69
99
  ## Cluster depth and sub-command naming
70
100
 
@@ -5012,6 +5012,13 @@
5012
5012
  "via": "body_link",
5013
5013
  "depth": 1
5014
5014
  },
5015
+ {
5016
+ "source": ".agent-src.uncondensed/rules/delegation-policy.md",
5017
+ "target": ".agent-src.uncondensed/contexts/execution/subagent-steering.md",
5018
+ "type": "READ_ONLY",
5019
+ "via": "body_link",
5020
+ "depth": 1
5021
+ },
5015
5022
  {
5016
5023
  "source": ".agent-src.uncondensed/rules/delegation-policy.md",
5017
5024
  "target": ".agent-src.uncondensed/contexts/execution/verify-budget.md",
@@ -9366,6 +9373,13 @@
9366
9373
  "via": "self",
9367
9374
  "depth": 0
9368
9375
  },
9376
+ {
9377
+ "source": ".agent-src.uncondensed/skills/git-workflow/SKILL.md",
9378
+ "target": ".agent-src.uncondensed/skills/quality-tools/SKILL.md",
9379
+ "type": "READ_ONLY",
9380
+ "via": "body_link",
9381
+ "depth": 1
9382
+ },
9369
9383
  {
9370
9384
  "source": ".agent-src.uncondensed/skills/github-ci/SKILL.md",
9371
9385
  "target": ".agent-src.uncondensed/skills/github-ci/SKILL.md",
@@ -13034,6 +13048,13 @@
13034
13048
  "via": "self",
13035
13049
  "depth": 0
13036
13050
  },
13051
+ {
13052
+ "source": ".agent-src.uncondensed/skills/subagent-orchestration/prompts/do-in-steps.md",
13053
+ "target": ".agent-src.uncondensed/contexts/execution/subagent-steering.md",
13054
+ "type": "READ_ONLY",
13055
+ "via": "body_link",
13056
+ "depth": 1
13057
+ },
13037
13058
  {
13038
13059
  "source": ".agent-src.uncondensed/skills/subagent-orchestration/prompts/do-in-steps.md",
13039
13060
  "target": ".agent-src.uncondensed/skills/subagent-orchestration/SKILL.md",
@@ -83,7 +83,7 @@ install:
83
83
  ---
84
84
  ```
85
85
 
86
- ### Command — `commands/cost-report.md`
86
+ ### Command — `commands/cost/report.md`
87
87
 
88
88
  ```yaml
89
89
  ---
@@ -17,9 +17,21 @@ keep-beta-until: 2026-08-19
17
17
  ## Source of truth
18
18
 
19
19
  The GUI is a Fastify server (`src/server/`) serving a Preact SPA
20
- (`src/ui/`), booted by the `install` / `setup` / `ui:serve` CLI
21
- subcommands. The legacy `packages/core/installer/src/gui/*` tree was
22
- retired; the single real installer is `scripts/install.py`.
20
+ (`src/ui/`), booted by the `install` / `setup` / `config` (alias
21
+ `settings`) / `ui:serve` CLI subcommands. The legacy
22
+ `packages/core/installer/src/gui/*` tree was retired; the single real
23
+ installer is `scripts/install.py`.
24
+
25
+ Entry-point map (road-to-setup-experience § Phase 1):
26
+
27
+ - `init` — install front-end; opens the wizard in install mode (start
28
+ screen: recommended path vs customize). `init --project` never boots
29
+ the GUI — it writes the minimal project surface via the
30
+ `refresh --project` writer.
31
+ - `setup` — re-runs the guided onboarding wizard (prefilled).
32
+ - `config` — opens the standalone settings hub (`#/settings`; global
33
+ scope). `config --project` lands on the project surface
34
+ (`#/project`). `settings` stays as a compatible alias.
23
35
 
24
36
  - Server app + security hooks: [`src/server/app.ts`](../../src/server/app.ts) (Host allow-list, Origin allow-list, CSRF token — `onRequest` hooks)
25
37
  - Wizard routes (incl. the real-apply bridge): [`src/server/routes/wizard.ts`](../../src/server/routes/wizard.ts)
@@ -63,7 +75,7 @@ Finish drives the **whole** install through `POST /api/v1/wizard/apply` →
63
75
  `AGENT_CONFIG_NO_UI` set, stdin/stdout not a TTY, a headless host (SSH / Linux
64
76
  without `DISPLAY`), or a CLI-mode flag (`--no-ui` / `--tools` / `--ai` /
65
77
  `--yes` / `--quiet` / `--dry-run` / `--minimal` / `--settings-only` /
66
- `--list-tools`). `install.py`'s own tail-launch (`_wizard_spawn`, matching the
78
+ `--list-tools` / `--project`). `install.py`'s own tail-launch (`_wizard_spawn`, matching the
67
79
  `WIZARD_READY <url>` handshake) remains for direct CLI install runs.
68
80
 
69
81
  ### `WIZARD_READY` stdout contract
@@ -18,6 +18,7 @@
18
18
  # Iron-Law fences + non-externalisable enumerations; further condensation
19
19
  # would force semantic loss. All sit ≤ 4 000-char override ceiling.
20
20
  ask-when-uncertain
21
+ commit-policy
21
22
  direct-answers
22
23
  language-and-tone
23
24
  no-cheap-questions
@@ -112,9 +112,9 @@ existing skills under `.agent-src.uncondensed/skills/`.
112
112
  | commit-conventions | 1938 | `conventional-commits-writing` | Format procedure |
113
113
  | docker-commands | 1830 | `docker` | Stack-specific procedure |
114
114
  | docs-sync | 3131 | `agent-docs-writing` | Mechanical sync procedure |
115
- | e2e-testing | 1807 | `e2e-heal` | Procedural; project-specific |
115
+ | e2e-testing | 1807 | `tests-e2e-heal` | Procedural; project-specific |
116
116
  | laravel-translations | 995 | `laravel` | Stack-specific |
117
- | model-recommendation | 2909 | `set-cost-profile` | Routing procedure |
117
+ | model-recommendation | 2909 | `cost-profile` | Routing procedure |
118
118
  | onboarding-gate | 4881 | `onboard` | Mechanical: meta-rule about /onboard |
119
119
  | package-ci-checks | 1342 | `lint-skills` | Repo-specific procedure |
120
120
  | reviewer-awareness | 3573 | `review-routing` | Skill exists; consolidates former `review-routing-awareness` (2026-05-08, see `agents/settings/contexts/adr-auto-rule-consolidation.md`) |
@@ -6,7 +6,7 @@ keep-beta-until: 2026-08-18
6
6
  # Settings GUI — REST API Contract (v1)
7
7
 
8
8
  > Local-only HTTP API exposed by `agent-config ui:serve` and reused by
9
- > `agent-config settings` / `agent-config setup`. Listens on `127.0.0.1`
9
+ > `agent-config config` (alias `settings`) / `agent-config setup`. Listens on `127.0.0.1`
10
10
  > only; no auth, no cross-origin. The browser SPA is the sole client —
11
11
  > the legacy `/onboard` chat skill has been retired.
12
12
  >
@@ -72,10 +72,16 @@ Response (200):
72
72
  "values": { "rule_loading_tier": "balanced", "...": "..." },
73
73
  "lastModified": 1747749791842,
74
74
  "path": "settings/.agent-settings.yml",
75
- "legacyHints": { "user_name": "Matze" }
75
+ "legacyHints": { "user_name": "Matze" },
76
+ "sources": { "global": ["rule_loading_tier", "personal.ide"], "project": [] }
76
77
  }
77
78
  ```
78
79
 
80
+ `sources` (road-to-setup-experience § Phase 5.4) carries the dotted
81
+ leaf paths present in each layer FILE (not the merged tree) so the
82
+ settings hub can badge which layer supplies a value — a `project`
83
+ entry overrides a `global` one per the merge order above.
84
+
79
85
  `legacyHints` is an out-of-band sidecar carrying values that have moved
80
86
  out of `settingsSchema` but still live in a pre-v2 file on disk. Keys
81
87
  are omitted when empty, never `null`. Current hints:
@@ -125,6 +131,56 @@ Errors: **412 Precondition Required** when the header is absent;
125
131
  **422 Unprocessable Entity** with per-field errors on validation
126
132
  failure; **500** with `code=ATOMIC_WRITE` if the temp-rename loop fails.
127
133
 
134
+ ### `GET /api/v1/settings/changes`
135
+
136
+ Pending upgrade-time settings-surface delta
137
+ (road-to-settings-change-review). The installer persists the flattened
138
+ settings surface (`state/settings-surface.json`: per dotted leaf its
139
+ type / default / enum / description + package version) on every global
140
+ install; when a previous snapshot from a different version exists it
141
+ computes the semantic delta and writes `state/settings-delta.json` —
142
+ that file is what this route serves. Classification against the user's
143
+ current values happens client-side via the shared
144
+ `src/shared/settingsSurface.ts` module (`must_fix` / `adopt` /
145
+ `review` / `info`).
146
+
147
+ Response (200):
148
+
149
+ ```json
150
+ {
151
+ "delta": {
152
+ "oldVersion": "8.3.0",
153
+ "newVersion": "8.4.0",
154
+ "changes": [
155
+ { "key": "personal.autonomy", "kind": "default_changed", "old": { "...": "..." }, "new": { "...": "..." } },
156
+ { "key": "discipline_profile", "kind": "added", "new": { "...": "..." } }
157
+ ]
158
+ },
159
+ "source": "writeRoot"
160
+ }
161
+ ```
162
+
163
+ `kind` &isin; `added | removed | default_changed | enum_added |
164
+ enum_removed | type_changed`. `source` is `userGlobal` when the delta
165
+ was found via the package-sandbox read fallback.
166
+
167
+ Errors: **404** with `code=NO_PENDING_CHANGES` when no (parseable)
168
+ delta file exists.
169
+
170
+ ### `POST /api/v1/settings/changes/ack`
171
+
172
+ Clears the pending delta after the review form is resolved (or
173
+ dismissed). Deletes only `<writeRoot>/state/settings-delta.json` —
174
+ never the real machine's file when running in a sandbox. Idempotent.
175
+
176
+ Response (200): `{ "ok": true, "cleared": true }` (`cleared: false`
177
+ when nothing was pending; `dryRun: true` and no deletion in dry-run
178
+ mode).
179
+
180
+ A matching `settings-review-pending` doctor check warns while the
181
+ delta file exists; the settings hub renders a review banner linking to
182
+ `#/settings/changes`.
183
+
128
184
  ### `GET /api/v1/user-md`
129
185
 
130
186
  Reads `<projectRoot>/.agent-user.md`. Returns `{ body: '', exists: false, lastModified: null }`
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-10-06
4
+ ---
5
+
1
6
  # Surface Matrix — per-tool canonical-surface contract
2
7
 
3
8
  > Machine-checked inventory of which install surface is canonical per tool,
package/docs/cookbook.md CHANGED
@@ -11,7 +11,7 @@ Each recipe is a short command sequence. Run the commands in order; the listed s
11
11
 
12
12
  *You have a diff and want a real review, not a rubber-stamp.*
13
13
 
14
- - **Commands:** `/review-changes` → `/judge` → `/quality-fix`
14
+ - **Commands:** `/review:changes` → `/judge` → `/fix:quality`
15
15
  - **Skills:** `code-review`, `adversarial-review`
16
16
 
17
17
  ### Fix a red CI run
@@ -60,7 +60,7 @@ Each recipe is a short command sequence. Run the commands in order; the listed s
60
60
 
61
61
  *Something is broken and you want root cause before the patch.*
62
62
 
63
- - **Commands:** `/bug-investigate` → `/bug-fix`
63
+ - **Commands:** `/bug:investigate` → `/bug:fix`
64
64
  - **Skills:** `systematic-debugging`, `bug-analyzer`
65
65
 
66
66
  ### Get a second opinion from the AI council
@@ -81,7 +81,7 @@ Each recipe is a short command sequence. Run the commands in order; the listed s
81
81
 
82
82
  *You want to restructure code without changing behaviour.*
83
83
 
84
- - **Commands:** `/feature:refactor` → `/review-changes` → `/judge`
84
+ - **Commands:** `/feature:refactor` → `/review:changes` → `/judge`
85
85
  - **Skills:** `code-refactoring`, `test-driven-development`
86
86
 
87
87
  ### Commit in logical chunks
@@ -95,7 +95,7 @@ Each recipe is a short command sequence. Run the commands in order; the listed s
95
95
 
96
96
  *You just opened a repo and want a fast structural read.*
97
97
 
98
- - **Commands:** `/project-analyze` → `/project-health`
98
+ - **Commands:** `/project:analyze` → `/project:health`
99
99
  - **Skills:** `project-analyzer`
100
100
 
101
101
  ### Estimate a ticket
@@ -134,14 +134,14 @@ Explore, plan, estimate, refine, and investigate before building. The "what shou
134
134
 
135
135
  Build it. The core "make the change" front — drive a prompt, ticket, or feature end-to-end through plan → implement → verify.
136
136
 
137
- - **Path:** `/work` → `/review-changes` → `/quality-fix` → `/commit`
137
+ - **Path:** `/work` → `/review:changes` → `/fix:quality` → `/commit`
138
138
  - **Skills:** `test-driven-development`, `code-review`, `systematic-debugging`, `git-workflow`
139
139
 
140
140
  ### Review flow
141
141
 
142
- Check it. Self-review, judge, quality-fix, and threat-model a change before it ships.
142
+ Check it. Self-review, judge, fix/quality, and threat-model a change before it ships.
143
143
 
144
- - **Path:** `/review-changes` → `/judge` → `/quality-fix` → `/threat-model`
144
+ - **Path:** `/review:changes` → `/judge` → `/fix:quality` → `/threat-model`
145
145
  - **Skills:** `code-review`, `adversarial-review`, `quality-tools`, `threat-modeling`, `receiving-code-review`
146
146
 
147
147
  ### Delivery flow
@@ -0,0 +1,74 @@
1
+ # ADR-114 — commit-policy Iron-Law Override (per-rule cap 2.5k → ceiling 4.0k)
2
+
3
+ - **Status:** Accepted (2026-07-08)
4
+ - **Supersedes:** none — extends the override set locked by
5
+ [ADR-002](ADR-002-kernel-bucket-overrides.md) under
6
+ `docs/contracts/kernel-membership.md` § 5.1.
7
+ - **Related:** ADR-002 (kernel-bucket cap raise + the original 6 overrides).
8
+
9
+ ## Context
10
+
11
+ Commit 259bb1b24 (*feat(commit-policy): one-shot authorization is not a
12
+ standing license*, merged to main 2026-07-07) added a second Iron-Law fence
13
+ to `commit-policy`:
14
+
15
+ ```
16
+ A ONE-OFF AUTHORIZATION IS SPENT ON EXACTLY THAT OPERATION, ONCE.
17
+ IT NEVER BECOMES A STANDING LICENSE FOR LATER COMMITS OR PUSHES.
18
+ EACH FURTHER COMMIT / PUSH NEEDS ITS OWN FRESH, EXPLICIT GO-AHEAD.
19
+ ```
20
+
21
+ plus the prose enumerating which phrasings spend the authorization and the
22
+ canonical failure it prevents. That grew the rule from 2 354 chars (the
23
+ post-ADR-002 trimmed size) to **3 194 chars** — over the 2 500 per-rule hard
24
+ cap, without an entry in `docs/contracts/iron-law-overrides.txt`, so
25
+ `lint-rule-budget` hard-fails on every branch that carries main.
26
+
27
+ Kernel-bucket state at decision time: **25 393 / 26 000 chars** (9 rules) —
28
+ the bucket cap from ADR-002 still holds with ~600 chars headroom; only the
29
+ per-rule cap is exceeded.
30
+
31
+ ## Decision
32
+
33
+ 1. Add `commit-policy` (3 194 chars) to
34
+ `docs/contracts/iron-law-overrides.txt` with this ADR as justification.
35
+ It sits between 2.5k and the 4.0k override ceiling.
36
+ 2. The kernel bucket cap (26 000) and the override ceiling (4 000) stay
37
+ unchanged.
38
+
39
+ ## Rationale
40
+
41
+ `commit-policy` now carries **three non-externalisable structural
42
+ elements** — the same test ADR-002 applied to the original 6 overrides:
43
+
44
+ - The primary Iron-Law fence (`NEVER COMMIT. NEVER ASK ABOUT COMMITTING.`)
45
+ plus the closed 4-exception enumeration — the rule's contract.
46
+ - The new one-shot-authorization fence plus the phrasing enumeration
47
+ ("commit this", "push it", "open the PR" are spent on exactly that
48
+ operation). Externalising the enumeration would force a context load on
49
+ every commit-adjacent turn — i.e. always — defeating the kernel-vs-auto
50
+ split.
51
+ - The split-into-chunks fence (`COMMIT AUTHORIZED → SPLIT INTO LOGICAL
52
+ CHUNKS BY DEFAULT`) with its never-ask clauses.
53
+
54
+ ADR-002 noted commit-policy was trimmable *because* it carried no
55
+ enumeration; 259bb1b24 changed exactly that premise by adding one whose
56
+ misreading (a one-off "commit this" read as standing license) is the
57
+ canonical failure the fence exists to stop.
58
+
59
+ ## Consequences
60
+
61
+ - **Pro:** `lint-rule-budget` is green again on every branch tracking main;
62
+ the Iron-Law fences stay byte-preserved in one rule.
63
+ - **Con:** 7 of 9 kernel rules now carry overrides; the 2.5k hard cap
64
+ disciplines only new/small rules. The 26k bucket (98%+ utilisation
65
+ headroom per ADR-002) remains the effective backstop.
66
+ - Future commit-policy growth past 4 000 chars is not covered — that would
67
+ require condensation or an externalisation decision, not another ADR.
68
+
69
+ ## Rollback
70
+
71
+ Trim the one-shot-authorization prose into
72
+ `contexts/authority/commit-mechanics.md` (keeping only the fence in the
73
+ rule) and remove the allowlist entry — reversible; this ADR does not lock
74
+ that out.
@@ -0,0 +1,91 @@
1
+ ---
2
+ adr: 115
3
+ status: accepted
4
+ date: 2026-07-08
5
+ decision: command-cluster-consolidation-phase-4
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: road-to-command-structure-optimization · Phase 0
9
+ ---
10
+
11
+ # ADR-115 — Command-cluster consolidation Phase 4 (flat dash commands → nested clusters)
12
+
13
+ - **Deciders:** maintainer + AI council (anthropic/claude-sonnet-4-5 + openai/gpt-4o, 2-round debate, 2026-07-08)
14
+
15
+ ## Context
16
+
17
+ After the Phase 1–3 cluster collapses, ~27 flat dash-separated commands
18
+ remained (`bug-fix`, `project-analyze`, `optimize-project`, `quality-fix`, …).
19
+ ADR-044 derives the invoked slug from the physical path by hyphen-joining
20
+ (`fix/ci` → `fix-ci`), which creates a cost asymmetry the earlier phases did
21
+ not exploit: **nesting `bug-fix` as `bug/fix` keeps the invoked slug
22
+ `bug-fix`** — invocation-neutral — while only reorder-moves
23
+ (`quality-fix` → `fix/quality` = `fix-quality`) change the typed name.
24
+
25
+ ## Decision
26
+
27
+ 1. **Nest the remaining coherent families** (council-adopted set):
28
+ - Extended clusters: `optimize` (+`project`, `prompt`), `fix` (+`quality`),
29
+ `tests` (+`e2e-plan`, `e2e-heal`), `analyze` (+`reference-repo`).
30
+ - New clusters: `bug` (fix · investigate), `project` (analyze · health),
31
+ `review` (changes · routing), `package` (test · reset),
32
+ `cost` (report · profile), `sync` (agent-settings · gitignore ·
33
+ gitignore-fix — absorbs the single-sub `sync-gitignore` cluster).
34
+ - Slug reorders carry `replaces:` aliases: `fix-quality`,
35
+ `tests-e2e-plan`, `tests-e2e-heal`, `cost-profile`.
36
+ 2. **Cluster heads are dispatch menus, not verbs.** ADR-041's controlled-verb
37
+ allowlist governs the leading token of visible *command slugs* (and the
38
+ `sub:` head for nested commands). A cluster head named after a noun/scope
39
+ (`bug`, `project`, `cost`) is a navigation surface — the same shape as the
40
+ pre-existing `agents`, `memory`, `brand`, `video` heads — and does not add
41
+ a verb to the allowlist. (Council round 2 explicitly overturned the
42
+ verb-policy objection on this ground.)
43
+ 3. **Co-location rule.** All subs of a cluster live in the same pack directory
44
+ as the head — slug derivation implies it. Cross-pack members move packs
45
+ (`optimize-project` eng → meta, `review-routing` meta → eng,
46
+ `package-test` eng → meta, `sync-gitignore` eng → meta,
47
+ `analyze-reference-repo` eng → analysis-workbench).
48
+ 4. **Bare invocation is deterministic.** Multi-sub head → numbered menu;
49
+ single-sub head → default-route; documented default-flow exceptions live in
50
+ the head's `## Dispatch`. Enforced structurally by
51
+ `scripts/check_cluster_patterns.ts`, which now also resolves every
52
+ `routes_to:` entry to a real command.
53
+ 5. **Tier-0 slugs never change.** Deferred/rejected per council:
54
+ - `ticket` cluster (implement/estimate/refine/jira) — tier-0
55
+ `implement-ticket` rename + cross-pack move; revisit with usage
56
+ telemetry.
57
+ - `security` cluster — weak cohesion; `security-audit-config` and
58
+ `threat-model` stay flat.
59
+ - `prepare-for-review` → `review/prepare` — pre-commit muscle memory.
60
+ - Demotions (`check-current-md`, `update-form-request-messages`) — need a
61
+ skill-coverage / pack-boundary audit first.
62
+
63
+ ## Consequences
64
+
65
+ - 19 commands nested; 15 keep their invoked slug, 4 gain `replaces:` aliases.
66
+ - `review-changes` becomes internal; the advanced surface is the `review`
67
+ head (eval key moves `review-changes.json` → `review.json`).
68
+ - `lint_no_new_atomic_commands.ts` is repointed from the removed
69
+ `.agent-src.uncondensed/commands` dir to `src/domains` so the atomic-surface
70
+ gate has teeth again; the new clusters are registered in the locked table.
71
+ - Consumers invoking old reordered slugs are migrated via `replaces:` +
72
+ the `migrate` flow; slug-neutral nests need no migration.
73
+
74
+ ## Alternatives considered
75
+
76
+ - **Colon-namespaced subcommands** — rejected long ago (ADR-044): Claude Code
77
+ cannot resolve them.
78
+ - **`ticket` cluster now** — rejected by both council members (highest-risk
79
+ item: tier-0 rename + pack move with unclear ownership).
80
+ - **Keeping `/optimize` agent-layer-only** — council split; maintainer
81
+ directive adopted the widened scope; the head menu + scope-check rule
82
+ disambiguates the three scopes.
83
+
84
+ ## References
85
+
86
+ - `docs/contracts/command-clusters.md` — locked table (Phase 4 rows) + the
87
+ new "Bare invocation" section.
88
+ - `agents/roadmaps/road-to-command-structure-optimization.md` — inventory,
89
+ council verdicts, phases.
90
+ - ADR-003 (flat clusters), ADR-041 (controlled verbs), ADR-044 (path-derived
91
+ hyphen slugs).
@@ -0,0 +1,125 @@
1
+ ---
2
+ adr: 116
3
+ status: accepted
4
+ date: 2026-07-08
5
+ decision: memory-tripwire-activation-path
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: road-to-memory-retrieval-economy · Phase 6
9
+ ---
10
+
11
+ # ADR-116 — Memory scale-tripwire activation path: one engine, measured at fire time
12
+
13
+ - **Deciders:** maintainer + AI council (anthropic/claude-sonnet-4-5 +
14
+ openai/gpt-4o; disposition debate 2 rounds + engine tie-break 2 rounds,
15
+ 2026-07-08 — tie-break converged after the in-repo `node:sqlite`
16
+ precedent was surfaced)
17
+
18
+ ## Context
19
+
20
+ An external second-opinion review (round 2 of the Obsidian-reference
21
+ comparison) surfaced a real documentation conflict: the memory-scale
22
+ tripwire (>200 files in one memory/knowledge type, or >500 files total —
23
+ guarded by `lint_knowledge_scale.ts`) had **three different pre-decided
24
+ activation paths** across three artifacts, written by two councils one day
25
+ apart:
26
+
27
+ 1. `agents/settings/contexts/second-brain-delta-verdict.md` Q4
28
+ (2026-07-07): "file-first in-memory BM25 (minisearch-class, re-index at
29
+ session-start, no persistence)".
30
+ 2. `agents/roadmaps/road-to-memory-retrieval-economy.md` Phase 6
31
+ (2026-07-07/08): "SQLite FTS5 over the memory files … replacing
32
+ `_score()`'s substring pass".
33
+ 3. `docs/decisions/ADR-061-corpus-grounding-layer.md`: "a new domain ships
34
+ a manifest + data + a named owner — **not a forked engine**", with a
35
+ tested in-house BM25 (`src/skills/corpus-grounding/scripts/bm25_search.ts`,
36
+ generic `class BM25` over `Row[]`) as the implied reuse candidate.
37
+
38
+ The whole point of a pre-decided path is that the tripwire firing needs no
39
+ new debate; in this state, firing would have required one.
40
+
41
+ ## Decision
42
+
43
+ 1. **One engine: SQLite FTS5 via Node's built-in `node:sqlite`.**
44
+ - Zero npm dependency — the repo already uses `node:sqlite` in
45
+ production code (`src/scripts/mcp_telemetry_store.ts` /
46
+ `mcp_telemetry_query.ts`) with the established pattern: lazy import +
47
+ runtime guard for Node < 22.5 (`src/scripts/_lib/node_sqlite.d.ts`).
48
+ `better-sqlite3` and a minisearch dependency are both rejected.
49
+ - **Persistence economics** decided the tie-break: at tripwire scale the
50
+ in-memory re-index per session-start is a startup tax that grows with
51
+ the corpus; FTS5 gives a persisted index plus incremental updates.
52
+ The in-house `class BM25` lacks a persistence layer; building one
53
+ (serialization, incremental updates, corruption handling) recreates
54
+ what SQLite ships.
55
+ - Index location: `agents/runtime/state/` (gitignored, never tracked).
56
+ - **Re-index is batch/lazy** — post-session or on first lookup, never
57
+ inline per write: during active sessions files churn (drafts,
58
+ rollbacks), and inline indexing would put fsync latency and lock
59
+ contention inside the write path (council round-2 caveat).
60
+ - FTS5 availability in the bundled SQLite is verified at implementation
61
+ time; on absence or Node < 22.5 the runtime guard falls back to the
62
+ current grep/substring path.
63
+
64
+ 2. **Measurement at activation, no speculative harness.** At today's
65
+ corpus (~85 auto-memory files / 412 KB) the ranked-retrieval lift over
66
+ grep is zero by construction — the honest-zero is already recorded in
67
+ the verdict. No grep-vs-ranked benchmark harness is built now. Instead,
68
+ the pre-decided path carries a clause: when the tripwire fires, reuse
69
+ the retrieval-economy Phase-0 replay set to measure the grep baseline
70
+ vs the FTS5 candidate on the then-current corpus BEFORE building; ship
71
+ only on measured retrieval lift, else record the honest-null and keep
72
+ grep.
73
+
74
+ 3. **ADR-061 boundary restated.** Memory lookup is a **Reference**
75
+ operation in ADR-061's four-operation model — memory is never
76
+ registered as a grounding corpus ("grounding theater"), and
77
+ `corpus-grounding`'s engine is not forked per domain. This ADR does not
78
+ amend ADR-061; it confirms the tripwire path lives outside the
79
+ grounding layer.
80
+
81
+ 4. **Wording migration.** The verdict Q4 "minisearch-class" sentence and
82
+ the tripwire-table row are amended in the same change; a grep sweep for
83
+ `minisearch` / "pre-decided BM25" catches stragglers in stable
84
+ artifacts.
85
+
86
+ ## Consequences
87
+
88
+ - Firing the tripwire is now a wiring-plus-measurement task, not a design
89
+ debate: guard fires → replay-set comparison → on lift, ~30-line
90
+ `node:sqlite` FTS5 schema + query wrapper replacing `_score()`'s
91
+ substring pass.
92
+ - No new npm dependency at any point on this path; Layer-2 sunset stands
93
+ (no vectors, no services, no always-on workers).
94
+ - The rejected review items are recorded here so they are not relitigated:
95
+ a pre-built grep-vs-ranked harness (speculative — measures a known
96
+ zero), and a deterministic "next step" hot-context field (feature envy
97
+ absent a real resume-context gap; the LLM-summary ban from the verdict's
98
+ REJECT-list is untouched).
99
+
100
+ ## Alternatives
101
+
102
+ - **In-house `bm25_search.ts` as a library** — rejected in the tie-break:
103
+ no persistence layer; the "zero new deps" advantage evaporated once
104
+ `node:sqlite` (also zero-dep) was on the table; retrofitting
105
+ persistence ≈ 200 LOC of database-shaped code SQLite already provides.
106
+ - **minisearch dependency** (verdict Q4's original wording) — rejected:
107
+ new npm dependency for a problem the built-in module covers; same
108
+ missing-persistence shape.
109
+ - **Two-step (in-house now, FTS5 escalation later)** — rejected: a
110
+ pre-decided path must be single and unambiguous; a conditional two-step
111
+ re-imports the debate the tripwire exists to avoid.
112
+ - **Pre-building the measurement harness now** — rejected: honest expected
113
+ lift at the current corpus is zero; the replay set from Phase 0 will
114
+ exist independently and is reused at fire time.
115
+
116
+ ## References
117
+
118
+ - `agents/roadmaps/road-to-memory-retrieval-economy.md` § Phase 6 (engine
119
+ note + measurement-at-activation clause).
120
+ - `agents/settings/contexts/second-brain-delta-verdict.md` Q4 (amended
121
+ wording + tripwire table).
122
+ - `docs/decisions/ADR-061-corpus-grounding-layer.md` (four-operation
123
+ model; engine-fork ban).
124
+ - `src/scripts/mcp_telemetry_store.ts`, `src/scripts/_lib/node_sqlite.d.ts`
125
+ (in-repo `node:sqlite` precedent).