@event4u/agent-config 7.5.0 → 8.0.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 (428) hide show
  1. package/.claude-plugin/marketplace.json +8 -1
  2. package/AGENTS.md +9 -9
  3. package/CHANGELOG.md +325 -0
  4. package/README.md +35 -5
  5. package/dist/agent-src/commands/analytics/prune.md +1 -1
  6. package/dist/agent-src/commands/analytics/show.md +1 -1
  7. package/dist/agent-src/commands/analyze/decision.md +2 -2
  8. package/dist/agent-src/commands/analyze/incident.md +2 -2
  9. package/dist/agent-src/commands/analyze/near-miss.md +2 -2
  10. package/dist/agent-src/commands/analyze/postmortem.md +2 -2
  11. package/dist/agent-src/commands/analyze/premortem.md +2 -2
  12. package/dist/agent-src/commands/cost-report.md +25 -0
  13. package/dist/agent-src/commands/evals/analyze.json +30 -0
  14. package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
  15. package/dist/agent-src/commands/implement-ticket.md +1 -1
  16. package/dist/agent-src/commands/knowledge/forget.md +1 -1
  17. package/dist/agent-src/commands/knowledge/ingest.md +1 -1
  18. package/dist/agent-src/commands/knowledge/list.md +1 -1
  19. package/dist/agent-src/commands/memory/load.md +12 -11
  20. package/dist/agent-src/commands/memory/promote.md +30 -0
  21. package/dist/agent-src/commands/memory/propose.md +16 -2
  22. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  23. package/dist/agent-src/commands/module/explore.md +11 -7
  24. package/dist/agent-src/commands/optimize-project.md +243 -0
  25. package/dist/agent-src/commands/optimize.md +5 -0
  26. package/dist/agent-src/commands/pr/create.md +37 -8
  27. package/dist/agent-src/commands/prediction-pool.md +2 -2
  28. package/dist/agent-src/commands/profile/activate.md +3 -3
  29. package/dist/agent-src/commands/profile/deactivate.md +2 -2
  30. package/dist/agent-src/commands/profile/show.md +3 -3
  31. package/dist/agent-src/commands/research/deep.md +5 -0
  32. package/dist/agent-src/commands/research/report.md +2 -1
  33. package/dist/agent-src/commands/roadmap/create.md +88 -10
  34. package/dist/agent-src/commands/roadmap/materialize.md +1 -1
  35. package/dist/agent-src/commands/roadmap/process-full.md +15 -2
  36. package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
  37. package/dist/agent-src/commands/roadmap/process-step.md +4 -0
  38. package/dist/agent-src/commands/roadmap.md +1 -1
  39. package/dist/agent-src/commands/security-audit-config.md +1 -1
  40. package/dist/agent-src/commands/sync-agent-settings.md +1 -1
  41. package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
  42. package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
  43. package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
  44. package/dist/agent-src/commands/team-knowledge.md +64 -0
  45. package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
  46. package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
  47. package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
  48. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
  49. package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
  50. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
  51. package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
  52. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
  53. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
  54. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
  55. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
  56. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
  57. package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
  58. package/dist/agent-src/contexts/override-system.md +1 -1
  59. package/dist/agent-src/personas/brand-strategist.md +0 -1
  60. package/dist/agent-src/personas/data-integrity.md +66 -0
  61. package/dist/agent-src/personas/design-director.md +0 -1
  62. package/dist/agent-src/personas/performance-engineer.md +66 -0
  63. package/dist/agent-src/personas/production-validator.md +73 -0
  64. package/dist/agent-src/rules/agent-authority.md +3 -4
  65. package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
  66. package/dist/agent-src/rules/architecture.md +2 -4
  67. package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
  68. package/dist/agent-src/rules/artifact-engagement-recording.md +2 -4
  69. package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
  70. package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
  71. package/dist/agent-src/rules/autonomous-execution.md +3 -5
  72. package/dist/agent-src/rules/brand-consistency.md +3 -5
  73. package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
  74. package/dist/agent-src/rules/cli-output-handling.md +4 -6
  75. package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
  76. package/dist/agent-src/rules/commit-conventions.md +3 -5
  77. package/dist/agent-src/rules/commit-policy.md +8 -10
  78. package/dist/agent-src/rules/content-quoting-floor.md +88 -0
  79. package/dist/agent-src/rules/context-hygiene.md +3 -5
  80. package/dist/agent-src/rules/copilot-routing.md +4 -6
  81. package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
  82. package/dist/agent-src/rules/delegation-policy.md +10 -6
  83. package/dist/agent-src/rules/design-fidelity.md +3 -5
  84. package/dist/agent-src/rules/devcontainer-routing.md +4 -6
  85. package/dist/agent-src/rules/direct-answers.md +13 -17
  86. package/dist/agent-src/rules/docker-commands.md +3 -5
  87. package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
  88. package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
  89. package/dist/agent-src/rules/domain-safety-pii.md +3 -5
  90. package/dist/agent-src/rules/domain-safety-retention.md +3 -5
  91. package/dist/agent-src/rules/downstream-changes.md +3 -4
  92. package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
  93. package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
  94. package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
  95. package/dist/agent-src/rules/finance-safety-floor.md +3 -6
  96. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
  97. package/dist/agent-src/rules/git-history-discipline.md +3 -5
  98. package/dist/agent-src/rules/guidelines.md +2 -4
  99. package/dist/agent-src/rules/icon-consistency.md +3 -5
  100. package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
  101. package/dist/agent-src/rules/improve-before-implement.md +5 -5
  102. package/dist/agent-src/rules/invite-challenge.md +3 -5
  103. package/dist/agent-src/rules/language-and-tone.md +13 -15
  104. package/dist/agent-src/rules/laravel-routing.md +3 -5
  105. package/dist/agent-src/rules/laravel-translations.md +3 -5
  106. package/dist/agent-src/rules/legal-safety-floor.md +3 -5
  107. package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
  108. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
  109. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
  110. package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
  111. package/dist/agent-src/rules/media-governance-routing.md +3 -5
  112. package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
  113. package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
  114. package/dist/agent-src/rules/missing-tool-handling.md +3 -5
  115. package/dist/agent-src/rules/model-recommendation.md +4 -6
  116. package/dist/agent-src/rules/no-attribution-footers.md +3 -5
  117. package/dist/agent-src/rules/no-cheap-questions.md +5 -8
  118. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
  119. package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
  120. package/dist/agent-src/rules/no-roadmap-references.md +3 -5
  121. package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
  122. package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
  123. package/dist/agent-src/rules/onboarding-gate.md +4 -6
  124. package/dist/agent-src/rules/output-discipline.md +3 -5
  125. package/dist/agent-src/rules/package-ci-checks.md +3 -5
  126. package/dist/agent-src/rules/persona-governance.md +2 -4
  127. package/dist/agent-src/rules/php-coding.md +3 -5
  128. package/dist/agent-src/rules/preservation-guard.md +2 -4
  129. package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
  130. package/dist/agent-src/rules/reviewer-awareness.md +5 -6
  131. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
  132. package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
  133. package/dist/agent-src/rules/role-mode-adherence.md +2 -4
  134. package/dist/agent-src/rules/rule-type-governance.md +3 -5
  135. package/dist/agent-src/rules/runtime-safety.md +2 -4
  136. package/dist/agent-src/rules/scope-control.md +10 -11
  137. package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
  138. package/dist/agent-src/rules/size-enforcement.md +2 -4
  139. package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
  140. package/dist/agent-src/rules/skill-quality.md +3 -5
  141. package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
  142. package/dist/agent-src/rules/source-confidentiality.md +3 -5
  143. package/dist/agent-src/rules/source-discovery-gate.md +3 -5
  144. package/dist/agent-src/rules/source-of-truth.md +3 -5
  145. package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
  146. package/dist/agent-src/rules/symfony-routing.md +4 -6
  147. package/dist/agent-src/rules/telegraph-speak.md +4 -5
  148. package/dist/agent-src/rules/think-before-action.md +7 -4
  149. package/dist/agent-src/rules/token-budget-discipline.md +29 -5
  150. package/dist/agent-src/rules/token-efficiency.md +3 -5
  151. package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
  152. package/dist/agent-src/rules/tool-safety.md +2 -4
  153. package/dist/agent-src/rules/ui-audit-gate.md +3 -6
  154. package/dist/agent-src/rules/untrusted-input-defense.md +3 -5
  155. package/dist/agent-src/rules/upstream-proposal.md +4 -6
  156. package/dist/agent-src/rules/user-interaction.md +7 -5
  157. package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
  158. package/dist/agent-src/rules/verify-before-complete.md +12 -22
  159. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
  160. package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
  161. package/dist/agent-src/skills/adr-create/SKILL.md +48 -42
  162. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
  163. package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
  164. package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
  165. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
  166. package/dist/agent-src/skills/brand/SKILL.md +1 -1
  167. package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
  168. package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
  169. package/dist/agent-src/skills/brand-to-tokens/SKILL.md +3 -3
  170. package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
  171. package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
  172. package/dist/agent-src/skills/code-review/SKILL.md +1 -0
  173. package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
  174. package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
  175. package/dist/agent-src/skills/context-document/SKILL.md +17 -0
  176. package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
  177. package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
  178. package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
  179. package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
  180. package/dist/agent-src/skills/design-intelligence/SKILL.md +5 -2
  181. package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
  182. package/dist/agent-src/skills/design-tokens/SKILL.md +10 -4
  183. package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
  184. package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
  185. package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
  186. package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
  187. package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
  188. package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
  189. package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
  190. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
  191. package/dist/agent-src/skills/laravel/SKILL.md +0 -1
  192. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
  193. package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
  194. package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
  195. package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
  196. package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
  197. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
  198. package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
  199. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
  200. package/dist/agent-src/skills/premortem/SKILL.md +0 -3
  201. package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
  202. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
  203. package/dist/agent-src/skills/release-comms/SKILL.md +46 -45
  204. package/dist/agent-src/skills/roadmap-management/SKILL.md +21 -0
  205. package/dist/agent-src/skills/roadmap-writing/SKILL.md +32 -2
  206. package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
  207. package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
  208. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
  209. package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
  210. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
  211. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
  212. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
  213. package/dist/agent-src/skills/systematic-debugging/SKILL.md +29 -0
  214. package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
  215. package/dist/agent-src/skills/typography-system/SKILL.md +2 -2
  216. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
  217. package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
  218. package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
  219. package/dist/agent-src/templates/agent-settings.md +22 -1
  220. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  221. package/dist/agent-src/templates/command.md +2 -2
  222. package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
  223. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
  224. package/dist/agent-src/templates/roadmaps.md +70 -2
  225. package/dist/agent-src/templates/rule.md +1 -1
  226. package/dist/agent-src/templates/scripts/README.md +3 -3
  227. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
  228. package/dist/agent-src/templates/tickets.md +8 -8
  229. package/dist/cli/commands/recordTriggerEval.test.js +1 -1
  230. package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
  231. package/dist/cli/initRouting.js +4 -2
  232. package/dist/cli/initRouting.js.map +1 -1
  233. package/dist/cli/registry.js +1 -0
  234. package/dist/cli/registry.js.map +1 -1
  235. package/dist/discovery/deprecation-report.md +1 -1
  236. package/dist/discovery/discovery-manifest.json +718 -240
  237. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  238. package/dist/discovery/discovery-manifest.summary.md +8 -8
  239. package/dist/discovery/orphan-report.md +1 -1
  240. package/dist/discovery/packs.json +43 -28
  241. package/dist/discovery/trust-report.md +12 -11
  242. package/dist/discovery/workspaces.json +29 -18
  243. package/dist/install/preflight.js +173 -0
  244. package/dist/install/preflight.js.map +1 -0
  245. package/dist/mcp/registry-manifest.json +4 -4
  246. package/dist/router.json +1 -1
  247. package/dist/server/routes/settings.js +4 -0
  248. package/dist/server/routes/settings.js.map +1 -1
  249. package/dist/server/schemas/settings.js +3 -1
  250. package/dist/server/schemas/settings.js.map +1 -1
  251. package/docs/CLAIMS.md +108 -0
  252. package/docs/MIGRATION.md +3 -3
  253. package/docs/architecture.md +5 -5
  254. package/docs/benchmark.md +133 -2
  255. package/docs/benchmark.pinned.yml +31 -0
  256. package/docs/capability-matrix.md +1 -0
  257. package/docs/catalog.md +70 -60
  258. package/docs/command-flows.md +15 -3
  259. package/docs/comparison.yaml +35 -0
  260. package/docs/contracts/agents-layout.md +148 -0
  261. package/docs/contracts/brand-token-consumption.md +5 -0
  262. package/docs/contracts/capability-boundary.md +5 -0
  263. package/docs/contracts/command-category-governance.md +5 -0
  264. package/docs/contracts/command-clusters.md +1 -0
  265. package/docs/contracts/command-surface-tiers.md +1 -1
  266. package/docs/contracts/conformance.md +84 -0
  267. package/docs/contracts/creative-pack-boundary.md +5 -0
  268. package/docs/contracts/discovery-manifest.schema.json +5 -4
  269. package/docs/contracts/file-ownership-matrix.json +4605 -985
  270. package/docs/contracts/governance-enforcement-projection.md +5 -0
  271. package/docs/contracts/gui-wizard.md +1 -1
  272. package/docs/contracts/hook-architecture-v1.md +2 -2
  273. package/docs/contracts/implement-ticket-flow.md +1 -1
  274. package/docs/contracts/kernel-membership.md +13 -0
  275. package/docs/contracts/mcp-tool-inventory.md +23 -23
  276. package/docs/contracts/no-runtime-boundary.md +6 -1
  277. package/docs/contracts/review-lens-schema.md +5 -0
  278. package/docs/contracts/rule-router.md +102 -8
  279. package/docs/contracts/skill-bundled-assets.md +1 -1
  280. package/docs/contracts/skill-dry-run.md +1 -1
  281. package/docs/contracts/subagent-boundary.md +5 -0
  282. package/docs/contracts/ticket-bundle-format.md +9 -4
  283. package/docs/contracts/tier-3-contrib-plugin.md +2 -2
  284. package/docs/contracts/write-engine.md +3 -0
  285. package/docs/customization.md +87 -15
  286. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
  287. package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
  288. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
  289. package/docs/decisions/INDEX.md +2 -0
  290. package/docs/distribution/awesome-list-submission.md +46 -0
  291. package/docs/distribution/launch-story-draft.md +58 -0
  292. package/docs/end-to-end-walkthroughs.md +2 -2
  293. package/docs/getting-started.md +2 -2
  294. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
  295. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
  296. package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
  297. package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
  298. package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
  299. package/docs/guidelines/augment-portability-patterns.md +1 -1
  300. package/docs/guidelines/code-clarity.md +19 -0
  301. package/docs/guidelines/design-antipatterns-triggers.json +2 -1
  302. package/docs/guidelines/design-antipatterns.md +10 -1
  303. package/docs/guidelines/design-modes.md +6 -0
  304. package/docs/guidelines/php/general.md +9 -1
  305. package/docs/guidelines/php/php-coding-patterns.md +7 -0
  306. package/docs/guides/cross-repo-retrieval.md +1 -1
  307. package/docs/guides/frontend-design-corpus-refresh.md +2 -2
  308. package/docs/guides/local-analytics.md +4 -4
  309. package/docs/guides/skill-discovery.md +1 -1
  310. package/docs/guides/skill-preview.md +1 -1
  311. package/docs/hook-payload-capture.md +6 -6
  312. package/docs/install-friction-report.md +66 -0
  313. package/docs/installation.md +1 -1
  314. package/docs/maintainers/optional-media-deps.md +50 -0
  315. package/docs/mcp-server.md +11 -12
  316. package/docs/media/proof-demo.cast +14 -0
  317. package/docs/media/proof-demo.gif +0 -0
  318. package/docs/migration/consumer-template-consumption-model.md +1 -1
  319. package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
  320. package/docs/migration/node-floor.md +1 -1
  321. package/docs/migration/yaml-roundtrip-spike.md +1 -1
  322. package/docs/personas.md +16 -5
  323. package/docs/positioning-evidence.md +86 -0
  324. package/docs/proof.md +86 -0
  325. package/docs/skills-catalog.md +1 -1
  326. package/docs/troubleshooting.md +8 -8
  327. package/docs/wedge/production-validator/README.md +57 -0
  328. package/docs/wedge/production-validator/production-validator.md +56 -0
  329. package/docs/wizard.md +2 -2
  330. package/package.json +1 -1
  331. package/src/config/agent-settings.template.yml +59 -4
  332. package/src/config/agents-paths.yml +254 -0
  333. package/src/config/budgets.yml +16 -0
  334. package/src/config/discovery/packs.yml +1 -0
  335. package/src/config/discovery/unassigned-artefacts.yml +2 -0
  336. package/src/config/gitignore-block.txt +25 -0
  337. package/src/config/host-capabilities.yml +31 -0
  338. package/src/config/profiles/balanced.ini +4 -0
  339. package/src/config/profiles/full.ini +4 -0
  340. package/src/config/profiles/minimal.ini +4 -0
  341. package/src/scripts/_cli/cmd_conformance.ts +716 -0
  342. package/src/scripts/_cli/cmd_doctor.ts +23 -2
  343. package/src/scripts/_cli/cmd_fleet.ts +401 -0
  344. package/src/scripts/_cli/cmd_preflight.ts +159 -0
  345. package/src/scripts/_dispatch.bash +10 -0
  346. package/src/scripts/_lib/knowledge_events.ts +193 -0
  347. package/src/scripts/_lib/subagent_steering.ts +115 -3
  348. package/src/scripts/_lib/text_similarity.ts +75 -0
  349. package/src/scripts/ai-video/test-pipeline.sh +1 -1
  350. package/src/scripts/ai_council/clients.ts +19 -3
  351. package/src/scripts/append_contested.ts +112 -0
  352. package/src/scripts/audit_auto_rules.ts +11 -1
  353. package/src/scripts/audit_mcp_tools.ts +25 -11
  354. package/src/scripts/bench_ab_v2_run.ts +527 -40
  355. package/src/scripts/bench_ab_v2_stats.ts +6 -0
  356. package/src/scripts/bench_matrix.ts +266 -0
  357. package/src/scripts/bootstrap_knowledge.ts +267 -0
  358. package/src/scripts/build_discovery_manifest.ts +42 -2
  359. package/src/scripts/build_proof.ts +214 -0
  360. package/src/scripts/check_always_budget.ts +3 -0
  361. package/src/scripts/check_augment_description_cap.ts +2 -2
  362. package/src/scripts/check_claims.ts +270 -0
  363. package/src/scripts/check_comparison.ts +79 -0
  364. package/src/scripts/check_generated_artefact_headers.ts +109 -0
  365. package/src/scripts/check_generator_output_coverage.ts +142 -0
  366. package/src/scripts/check_gitignore_freshness.ts +127 -0
  367. package/src/scripts/check_knowledge_pages.ts +210 -0
  368. package/src/scripts/check_knowledge_sharing.ts +162 -0
  369. package/src/scripts/check_media_deps.ts +91 -0
  370. package/src/scripts/check_memory_contradiction.ts +280 -0
  371. package/src/scripts/check_memory_similarity.ts +134 -0
  372. package/src/scripts/check_quality_regression.ts +56 -10
  373. package/src/scripts/check_references.ts +3 -1
  374. package/src/scripts/check_release_pr_shape.ts +4 -0
  375. package/src/scripts/check_site_links.ts +135 -0
  376. package/src/scripts/check_skill_gaps.ts +99 -0
  377. package/src/scripts/check_token_quality_golden.ts +197 -11
  378. package/src/scripts/check_tracked_but_ignored.ts +67 -0
  379. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  380. package/src/scripts/compile_router.ts +30 -3
  381. package/src/scripts/condense.ts +350 -14
  382. package/src/scripts/consolidate_knowledge_events.ts +192 -0
  383. package/src/scripts/degrade_to_pointer.ts +136 -0
  384. package/src/scripts/design_slop_rules.test.ts +15 -0
  385. package/src/scripts/design_slop_rules.ts +28 -0
  386. package/src/scripts/emit_knowledge_event.ts +158 -0
  387. package/src/scripts/export_replay_corpus.ts +187 -0
  388. package/src/scripts/external_sources_denylist.json +7 -2
  389. package/src/scripts/fold_intake.ts +281 -0
  390. package/src/scripts/generate_capability_matrix.ts +9 -1
  391. package/src/scripts/generate_knowledge_index.ts +222 -0
  392. package/src/scripts/hook_manifest.yaml +26 -14
  393. package/src/scripts/hooks/dispatch_hook.ts +18 -0
  394. package/src/scripts/hot_context_hook.ts +372 -0
  395. package/src/scripts/install +47 -0
  396. package/src/scripts/install-hooks.sh +17 -0
  397. package/src/scripts/inventory_meta_layers.ts +11 -0
  398. package/src/scripts/janitor.ts +258 -0
  399. package/src/scripts/lint_agents_layout.ts +74 -15
  400. package/src/scripts/lint_bench_ab.ts +4 -1
  401. package/src/scripts/lint_featured_skills.ts +0 -0
  402. package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
  403. package/src/scripts/lint_knowledge_scale.ts +250 -0
  404. package/src/scripts/lint_legal_pack.ts +67 -0
  405. package/src/scripts/lint_persona_governance.ts +8 -3
  406. package/src/scripts/lint_regression.ts +15 -0
  407. package/src/scripts/lint_roadmap_blockers.ts +202 -0
  408. package/src/scripts/lint_roadmap_complexity.ts +81 -2
  409. package/src/scripts/lint_subagent_determinism.ts +125 -0
  410. package/src/scripts/measure_augment_budget.ts +46 -6
  411. package/src/scripts/measure_patterns.ts +4 -3
  412. package/src/scripts/measure_skill_reduction.ts +6 -6
  413. package/src/scripts/migration_status.ts +6 -2
  414. package/src/scripts/mine_missing_guardrails.ts +189 -0
  415. package/src/scripts/parity/phase_gate.ts +1 -1
  416. package/src/scripts/parity/replay.ts +21 -0
  417. package/src/scripts/project_thin_rules.ts +120 -16
  418. package/src/scripts/release.ts +39 -1
  419. package/src/scripts/render_benchmark_composite.ts +378 -0
  420. package/src/scripts/roadmap_progress_hook.ts +101 -43
  421. package/src/scripts/schemas/skill.schema.json +27 -0
  422. package/src/scripts/schemas/subagent.schema.json +106 -0
  423. package/src/scripts/skill_linter.ts +1 -0
  424. package/src/scripts/smoke/kernel.sh +5 -4
  425. package/src/scripts/surface-tiers.yml +1 -0
  426. package/src/scripts/sync_gitignore.ts +4 -0
  427. package/src/scripts/update_skill_candidates.ts +172 -0
  428. package/src/scripts/validate_frontmatter.ts +1 -0
@@ -0,0 +1,105 @@
1
+ ---
2
+ model_tier: medium
3
+ name: team-knowledge-consolidate
4
+ pack: meta
5
+ tier: 2
6
+ visibility: internal
7
+ cluster: team-knowledge
8
+ sub: consolidate
9
+ description: Review pending typed knowledge-observation events and file them into agents/knowledge/ pages as a human-reviewed batch — never writes without approval.
10
+ skills: [file-editor]
11
+ suggestion:
12
+ eligible: true
13
+ trigger_description: "consolidate knowledge events, review pending observations, file captured knowledge, promote knowledge candidates"
14
+ trigger_context: "pending events have accumulated in agents/knowledge/intake/ and are ready for review"
15
+ workspaces:
16
+ - agent-config-maintainer
17
+ packs:
18
+ - meta
19
+ ---
20
+
21
+ # /team-knowledge consolidate
22
+
23
+ Turns the gitignored, in-flight typed-observation events
24
+ (`convention_detected` / `mistake_made` / `api_shape_learned` /
25
+ `context_stale` — see `src/scripts/_lib/knowledge_events.ts`) into
26
+ committed `agents/knowledge/` pages. This is the ONLY path from intake
27
+ to a tracked page — no skill or rule writes a tracked knowledge page
28
+ mid-task (see [`knowledge-pages`](../../templates/contexts/knowledge-pages.md)
29
+ § Storage location).
30
+
31
+ ## Steps
32
+
33
+ ### 1. Generate the report
34
+
35
+ ```bash
36
+ ./scripts-run src/scripts/consolidate_knowledge_events
37
+ ```
38
+
39
+ Aggregates pending events by topic and finds the nearest EXISTING
40
+ knowledge page for each aggregate (mechanical similarity only — the
41
+ script never decides the triage verdict).
42
+
43
+ No pending topics → tell the user and stop. Nothing to do.
44
+
45
+ ### 2. Triage each topic
46
+
47
+ For each aggregate in the report, apply the same taxonomy
48
+ [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md)
49
+ uses for engineering-memory facts:
50
+
51
+ | Triage | Condition | Action |
52
+ |---|---|---|
53
+ | `NEW` | No nearest page reported | Draft a new page under the appropriate typed dir |
54
+ | `EXTEND` | Nearest page reported, covers the topic but misses this detail | Draft an addition to that page |
55
+ | `CONFIRM` | Nearest page already states this exactly | Discard this aggregate — no page change |
56
+ | `CONFLICT` | Nearest page states the opposite or a stale variant | Draft BOTH positions into that page with `contested: true`, never silently overwrite |
57
+
58
+ A high similarity score alone does not distinguish `EXTEND` /
59
+ `CONFIRM` / `CONFLICT` — read the matched page and the aggregate's
60
+ events before deciding.
61
+
62
+ ### 3. Draft and present the batch
63
+
64
+ For every `NEW` / `EXTEND` / `CONFLICT` aggregate, draft the page
65
+ content (following [`knowledge-pages`](../../templates/contexts/knowledge-pages.md) —
66
+ `date + what + why` for session entries, ≤ 200 lines per page) and
67
+ present the full batch to the user:
68
+
69
+ ```
70
+ > Knowledge consolidation — N topic(s) ready for review:
71
+ >
72
+ > 1. [NEW] <topic> → agents/knowledge/concepts/<slug>.md
73
+ > 2. [EXTEND] <topic> → agents/knowledge/procedures/<existing>.md
74
+ > 3. [CONFLICT] <topic> → agents/knowledge/concepts/<existing>.md (contested)
75
+ >
76
+ > 1. Write all — 2. Write selected — 3. Discard all — 4. Edit a draft first
77
+ ```
78
+
79
+ **Never write before this confirmation.**
80
+
81
+ ### 4. Write, regenerate, clear
82
+
83
+ On approval:
84
+
85
+ 1. Write each approved page (respecting the team-sharing gate —
86
+ never set `visibility: private` on a page landing here).
87
+ 2. Regenerate the index: `./scripts-run src/scripts/generate_knowledge_index`.
88
+ 3. Clear the consumed intake: `./scripts-run src/scripts/consolidate_knowledge_events --commit`
89
+ (all-or-nothing — re-run step 1 first if the user picked "write
90
+ selected" and some topics were discarded, so only genuinely
91
+ consumed events are cleared).
92
+
93
+ ## Rules
94
+
95
+ - Never invents a page from an aggregate the user did not approve.
96
+ - Never resolves a `CONFLICT` verdict automatically — both positions
97
+ land in the page, human resolves later.
98
+ - Never writes a page with `visibility: private` (belongs in the
99
+ ADR-100 global store instead).
100
+ - Do NOT commit the written pages — that is the user's call.
101
+
102
+ ## See also
103
+
104
+ - [`memory-consolidation`](../../skills/memory-consolidation/SKILL.md) — the sibling loop for the 5 fixed engineering-memory types; this command is its knowledge-page counterpart.
105
+ - [`learning-to-rule-or-skill`](../../skills/learning-to-rule-or-skill/SKILL.md) — where a page's recurring topic graduates into a skill/rule once it crosses the skill-candidate threshold.
@@ -0,0 +1,64 @@
1
+ ---
2
+ model_tier: medium
3
+ name: team-knowledge
4
+ disable-model-invocation: true
5
+ pack: meta
6
+ intent: "Manage the repo-tracked team-knowledge layer — consolidate typed observation events into agents/knowledge/ pages, bootstrap a project baseline"
7
+ routes_to: [team-knowledge-consolidate, team-knowledge-bootstrap]
8
+ replaces: []
9
+ tier: 2
10
+ visibility: internal
11
+ description: Team-knowledge orchestrator — routes to consolidate and bootstrap
12
+ cluster: team-knowledge
13
+ type: orchestrator
14
+ suggestion:
15
+ eligible: true
16
+ trigger_description: "consolidate knowledge events, review pending knowledge observations, promote captured knowledge into pages"
17
+ trigger_context: "user wants to turn accumulated in-flight observations into committed agents/knowledge/ pages"
18
+ workspaces:
19
+ - agent-config-maintainer
20
+ packs:
21
+ - meta
22
+ ---
23
+
24
+ # /team-knowledge
25
+
26
+ Top-level orchestrator for the `/team-knowledge` family — the
27
+ consolidation gate over the typed knowledge-observation events
28
+ captured during normal task work (see
29
+ [`knowledge-pages`](../templates/contexts/knowledge-pages.md) and the
30
+ event schema in `src/scripts/_lib/knowledge_events.ts`).
31
+
32
+ Not to be confused with the pre-existing `/knowledge` cluster (local
33
+ file ingestion into `agents/memory/knowledge/`) — different concern
34
+ (arbitrary local documents), unrelated to this repo-tracked,
35
+ lifecycle-typed team-knowledge layer under `agents/knowledge/`.
36
+
37
+ ## Sub-commands
38
+
39
+ | Sub-command | Routes to | Purpose |
40
+ |---|---|---|
41
+ | `/team-knowledge consolidate` | `commands/team-knowledge/consolidate.md` | Read pending intake events, propose tracked-page creates/updates as a reviewable batch, write only on approval |
42
+ | `/team-knowledge bootstrap` | `commands/team-knowledge/bootstrap.md` | One-shot deterministic seed of a fresh project's knowledge pages from real config/directory detection — staged, never auto-committed |
43
+
44
+ Sub-command names match the locked contract in
45
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
46
+
47
+ ## Dispatch
48
+
49
+ 1. Parse the user's argument: `/team-knowledge <sub-command> [args]`.
50
+ 2. Look up the sub-command in the table above.
51
+ 3. Load the body of the routed file and follow its `## Steps` section
52
+ verbatim with the remaining args.
53
+ 4. If the sub-command is unknown or missing, print the table above and ask:
54
+
55
+ > 1. consolidate — review pending knowledge events and file them as pages
56
+ > 2. bootstrap — seed a fresh project's knowledge pages from detection
57
+
58
+ ## Rules
59
+
60
+ - **Never writes a tracked page without human approval.** Intake is
61
+ proposal-only; the consolidate flow always shows a batch and waits.
62
+ - **Never fires automatically** — the user invokes this explicitly.
63
+ - **Do NOT commit, push, or open a PR** unless the sub-command
64
+ explicitly authorizes it.
@@ -71,6 +71,14 @@ The pre-scan ask is the **only** permitted commit-related question
71
71
  in autonomous mode. Once answered, the decision is cached for the
72
72
  rest of the roadmap execution.
73
73
 
74
+ When the roadmap declares `execution.mode: autonomous |
75
+ phase-checkpoints`, this pre-scan ask is subsumed by the run-start
76
+ **execution contract** — one acceptance covers commits, the run's
77
+ feature branch, push to that branch only, and PR-open; see
78
+ [`roadmap-execution-contract`](../execution/roadmap-execution-contract.md)
79
+ and [`scope-mechanics § Roadmap execution contract`](scope-mechanics.md).
80
+ The Hard-Floor per-commit diff gate above is unaffected.
81
+
74
82
  ## Speech-act check on commit phrases
75
83
 
76
84
  The same speech-act check from
@@ -55,6 +55,17 @@ A roadmap or task authorizes the *edit*; only the user-this-turn
55
55
  authorizes the *commit* (row 6 of the rule's trigger table). Surface
56
56
  the diff (paths + counts), get confirmation, then commit.
57
57
 
58
+ ## Inspect before delete or overwrite
59
+
60
+ Before running any delete or overwrite — even one already cleared by
61
+ the checks above — look at the target first. If its actual contents
62
+ contradict how it was described (a "generated" file that turns out to
63
+ carry hand-edits, a "stale" branch with commits you don't recognize, an
64
+ "empty" directory that isn't), surface the discrepancy and stop instead
65
+ of proceeding on the original description. The same holds for anything
66
+ you did not create yourself this session: verify before assuming it is
67
+ safe to remove or replace.
68
+
58
69
  ## Failure modes
59
70
 
60
71
  - Treating a standing autonomy directive as cover for a Hard-Floor
@@ -58,6 +58,31 @@ pinning inside it. If the user names a version in a planning
58
58
  request, ask whether the artifact tracks the work or the release;
59
59
  default to work.
60
60
 
61
+ ## Roadmap execution contract — run-scoped standing permission
62
+
63
+ An **accepted run-start execution contract**
64
+ ([`roadmap-execution-contract`](../execution/roadmap-execution-contract.md),
65
+ derived by `roadmap-process-loop § 3` when the roadmap declares
66
+ `execution.mode: autonomous | phase-checkpoints`) IS "explicit
67
+ permission … in a standing instruction not yet revoked" for
68
+ `scope-control § git-ops` — **for that run, and for exactly four
69
+ operations**:
70
+
71
+ 1. Create the run's feature branch (`feat/<roadmap-slug>`, or reuse
72
+ the current worktree branch).
73
+ 2. Chunked commits on that branch (Hard-Floor per-commit diff gate
74
+ stays; split per `commit-policy`).
75
+ 3. Push to **that branch only** — any other ref stays Hard Floor.
76
+ 4. Open ONE PR (description-only flow) — never merge / close /
77
+ retarget.
78
+
79
+ Boundaries that survive every contract: the frontmatter field alone
80
+ grants **nothing** (declaration of intent — no accepted contract, no
81
+ grants); grants expire when the run ends or halts; prod-trunk
82
+ operations, deploys, bulk deletions, infra commits, and merges are
83
+ outside contract scope always; kernel-rule edits keep their own-PR +
84
+ 24h-soak guarantee.
85
+
61
86
  ## Brief-before-asking — separate branch / PR / worktree
62
87
 
63
88
  If a task seems to need a separate branch or PR (spike, hotfix,
@@ -0,0 +1,43 @@
1
+ # Reply close — work summary + PR link
2
+
3
+ Lookup material for the reply-close carve-out in the
4
+ [`direct-answers`](../../../rules/direct-answers.md) Brevity Iron Law. Rule body
5
+ states the obligation in one line; this file is the detail.
6
+
7
+ ## The carve-out
8
+
9
+ Brevity governs the reply **body**; the **close** is the exception.
10
+
11
+ - Reply that landed **substantial work** — multi-step change, roadmap/branch
12
+ progress, or a created/updated PR — ends with **ONE** compact status summary at
13
+ the very end, never mid-reply: what's done, what remains.
14
+ - **Simple one-answer replies still skip the summary** (Brevity Iron Law unchanged
15
+ for them). Summary is for work replies, not every turn.
16
+
17
+ ## PR link is the literal last line
18
+
19
+ PR **created or updated this turn** → its raw GitHub URL is the **literal last
20
+ line**, after the summary, nothing below it — so the user never hunts for it. One
21
+ PR → one URL line.
22
+
23
+ - Only when a PR was actually created/updated **this turn**. No PR → no link line.
24
+ - Raw URL (not a masked markdown link) so it is unmistakable and clickable.
25
+
26
+ ## Why it does not collide with sibling rules
27
+
28
+ - **`language-and-tone`** last-line rule: a raw URL is language-neutral → satisfies
29
+ the "every user-visible token mirrors the user's language" gate.
30
+ - **`no-pr-progress-comments`** / **`no-attribution-footers`**: those govern
31
+ comments posted *on the PR*. Summary + URL here are the **chat reply body**, not
32
+ a PR comment — neither applies.
33
+ - **`user-interaction`**: a numbered-options block, when present, still comes last
34
+ among interactive elements; the PR URL sits below it as the final line and is not
35
+ an "open question" → does not trip the no-trailing-open-question rule.
36
+
37
+ ## Failure modes
38
+
39
+ - Burying the summary mid-reply, then continuing with more detail below it.
40
+ - Emitting the summary for a trivial one-answer reply (brevity says skip).
41
+ - Creating a PR but leaving its URL mid-reply, forcing the user to scroll/search.
42
+ - Masking the URL behind link text so it is not obviously the PR.
43
+ - Adding a PR-link line when no PR was created this turn.
@@ -104,7 +104,7 @@ package edit touches the same hot file.
104
104
  `agents/settings/contexts/`, `docs/contracts/`, an existing rule body, or
105
105
  an existing skill body. Replace in-file with a substantive
106
106
  pointer. Never invent a new top-level dir.
107
- 5. **Verify.** Run `python3 scripts/lint_agents_md.py` until green;
107
+ 5. **Verify.** Run `./scripts-run src/scripts/lint_agents_md` until green;
108
108
  `wc -c AGENTS.md` ≤ target cap; emergency-triage block intact.
109
109
 
110
110
  ## Common gotchas
@@ -213,7 +213,7 @@ rule listed above:
213
213
 
214
214
  ```bash
215
215
  # Validate every line against the schema + redaction floor
216
- python3 -c '
216
+ node -e '
217
217
  import pathlib, sys
218
218
  sys.path.insert(0, ".agent-src.uncondensed/templates/scripts")
219
219
  from telemetry.engagement import EngagementSchemaError, parse_event
@@ -232,7 +232,7 @@ print(f"{ok} valid, {bad} rejected")
232
232
  '
233
233
 
234
234
  # A bad-line spot-check that does not depend on the validator
235
- python3 -c '
235
+ node -e '
236
236
  import json, pathlib, re
237
237
  forbidden = re.compile(r"[/\\\\]|\.[a-z0-9]{1,10}$", re.IGNORECASE)
238
238
  for line in pathlib.Path(".agent-engagement.jsonl").read_text().splitlines():
@@ -18,6 +18,7 @@ Cite the source rule in writer artifacts; do **not** restate it here.
18
18
  | Numbered-options trade-off rule (real consequence, not sequencing) | [`user-interaction § Iron Law 1 — Single-Source Recommendation`](../../rules/user-interaction.md#iron-law-1--single-source-recommendation) |
19
19
  | Cheap-question pre-send check (skip the ask if context already answers) | [`no-cheap-questions § Pre-Send Self-Check`](../../rules/no-cheap-questions.md#pre-send-self-check--mandatory-before-every-question) |
20
20
  | Tool-call discipline, act-skip-narration, fresh output over memory | [`token-efficiency § The Iron Laws`](../../rules/token-efficiency.md#the-iron-laws) and its mechanics file |
21
+ | Budget is an input to the decision, never the decision — surface the trade-off before auto-rejecting a net-positive change on cost grounds | [`token-budget-discipline § Value-over-budget escalation`](../../rules/token-budget-discipline.md#value-over-budget-escalation) |
21
22
 
22
23
  ## Confirmation taxonomy
23
24
 
@@ -21,10 +21,20 @@ A task is classified **delegable** when **any** of these holds:
21
21
  `parallelizable: steps | files | independent` in its frontmatter.
22
22
  - `steps` → ordered plan → `do-in-steps`.
23
23
  - `files` / `independent` → independent slices → `do-in-parallel`.
24
- 2. **Ordered-plan structure** — the task is an explicit ordered plan (numbered
25
- steps / a roadmap phase / a checklist) → `do-in-steps`.
26
- 3. **Independent-slices structure** — N independent targets of the same shape
27
- (e.g. "review these 5 files", "convert each adapter") → `do-in-parallel`.
24
+ 2. **Ordered-plan structure** — explicit ordered plan (numbered steps / a roadmap
25
+ phase / a checklist) → `do-in-steps`. Deterministic markers:
26
+ - `1. … 2. … 3.` numbered list in the user message.
27
+ - References a roadmap phase or checklist.
28
+ - "first … then … finally" with distinct deliverables.
29
+ - "in N steps" or "phase by phase".
30
+ 3. **Independent-slices structure** — N ≥ 3 independent targets of the same shape
31
+ → `do-in-parallel`. Deterministic markers (N ≥ 3 of the same form):
32
+ - N file paths, each a separate analysis/edit target.
33
+ - N named modules/components for the same action.
34
+ - N named test files, adapters, endpoints, or services to convert/review/audit.
35
+ - "for each X in [list]" where list ≥ 3 items, no cross-item dependency.
36
+ Do **not** fire on interdependent lists (e.g. "add these 3 sequential
37
+ migrations") — those are ordered plans (signal 2).
28
38
 
29
39
  AND the **task-size floor** is cleared: the task's estimated size exceeds a
30
40
  minimum (trivial one-line edits never delegate — the dispatch overhead
@@ -71,3 +71,14 @@ regardless of `personal.autonomy`:
71
71
  Push, merge, rebase, branch creation, PR operations, and tags
72
72
  remain permission-gated by
73
73
  [`scope-control § git-operations`](../../rules/scope-control.md#git-operations--permission-gated).
74
+
75
+ ## End-of-turn checkpoint
76
+
77
+ Before ending a turn, check the last paragraph of the reply. If it is a
78
+ plan, an open question the context already answers, or a promise of
79
+ unexecuted work ("I'll…", "next I will…"), do that work now with tool
80
+ calls instead of ending the turn — this is what "the turn isn't done
81
+ until it's done" means in practice. This checkpoint operates inside the
82
+ existing bounds: the N=3 validation-loop budget and the Hard Floor
83
+ still apply unchanged; the checkpoint closes out work already in scope,
84
+ it never licenses continuing past either limit.
@@ -15,9 +15,11 @@ v1 forward-compat rule on unknown fields).
15
15
  "spawn_count": 0,
16
16
  "tiers": [],
17
17
  "token_delta": 0,
18
+ "token_delta_provenance": "estimated",
18
19
  "wall_clock_ms": 0,
19
20
  "outcome": "DONE",
20
- "verify_mode": "deterministic"
21
+ "verify_mode": "deterministic",
22
+ "verdict_changed_outcome": null
21
23
  }
22
24
  ```
23
25
 
@@ -25,13 +27,15 @@ v1 forward-compat rule on unknown fields).
25
27
 
26
28
  | Field | Type | Meaning |
27
29
  |---|---|---|
28
- | `task_size_estimate` | int | Pre-dispatch estimate of the task's size (the orchestrator's sizing heuristic). Counts only, no body. |
29
- | `spawn_count` | int | Number of subagents dispatched for this task. `0` → handled in-session. |
30
- | `tiers` | string[] | Model tiers dispatched to, one entry per spawn class (e.g. `["sonnet","opus"]`). Tier names only, no prompts. |
31
- | `token_delta` | int | Net token cost of the dispatch versus the in-session baseline. Counts only. |
32
- | `wall_clock_ms` | int | Wall-clock duration of the dispatch, milliseconds. |
30
+ | `task_size_estimate` | int | Pre-dispatch estimate of the task's size (orchestrator's sizing heuristic). Counts only, no body. |
31
+ | `spawn_count` | int | Subagents dispatched for this task. `0` → handled in-session. |
32
+ | `tiers` | string[] | Model tiers dispatched to, one per spawn class (e.g. `["sonnet","opus"]`). Tier names only, no prompts. |
33
+ | `token_delta` | int | Net token cost vs the in-session baseline. Positive = cost more; negative = saved. Counts only. |
34
+ | `token_delta_provenance` | enum | `"measured"` from host-reported `usage` metadata (preferred); `"estimated"` when self-estimated from response length (mark always when host usage unavailable). |
35
+ | `wall_clock_ms` | int | Dispatch wall-clock duration, milliseconds. |
33
36
  | `outcome` | enum | One of `DONE` · `DONE_WITH_CONCERNS` · `NEEDS_CONTEXT` · `BLOCKED` · `killed`. |
34
- | `verify_mode` | enum | How the dispatch's output was verified: `deterministic` · `judge` · `none`. |
37
+ | `verify_mode` | enum | How output was verified: `deterministic` · `judge` · `none`. |
38
+ | `verdict_changed_outcome` | bool \| null | **A3 extension (ADR-109 Track A).** For a review/verdict subagent (e.g. `production-validator`): did the verdict change the outcome vs the in-session baseline? `true` = caught a real issue the baseline missed / flipped a false `READY`→`NOT READY`; `false` = no lift; `null` = not a verdict dispatch / not measured. **Negative-control (clean single-file) tasks MUST record `false`** — a `true` on a control = spurious findings, fails Gate A. Additive field on THIS object, not a second schema. Boolean/counts only, no bodies. |
35
39
 
36
40
  ## Privacy floor
37
41
 
@@ -48,6 +52,27 @@ object is an additive extension on an otherwise standard audit-log-v1 line:
48
52
  {"schema_version":1,"id":"01HXY...","ts":"2026-06-23T12:34:56Z","work_id":"PROJ-7-2026-06-23T12-30-00Z","phase":"implement","outcome":"success","confidence_band":"high","risk_class":"low","memory":{"asks":2,"hits":1},"verify":{"claims":1,"first_try_passes":1},"rules_applied":["verify-before-complete"],"persona":"backend","input_kind":"orchestration","type":"phase","orchestration":{"task_size_estimate":3,"spawn_count":2,"tiers":["sonnet","opus"],"token_delta":4200,"wall_clock_ms":18500,"outcome":"DONE","verify_mode":"deterministic"}}
49
53
  ```
50
54
 
55
+ ## Emit procedure (how the orchestrating agent writes telemetry)
56
+
57
+ After every auto-dispatched orchestration run, the orchestrating agent writes one
58
+ telemetry line to `agents/runtime/state/audit/YYYY-MM.jsonl` (the existing
59
+ audit-log-v1 path; `YYYY-MM` = current UTC month). The line is a standard
60
+ audit-log-v1 object with `input_kind: "orchestration"` and an `orchestration`
61
+ sub-object carrying this shape.
62
+
63
+ **No hook or daemon required.** The agent writes directly via its file-write
64
+ tool — same mechanism as any other agent-written artifact. No-runtime-compatible
65
+ capture path (decided 2026-06-30, maintainer decision; see
66
+ `road-to-subagent-value-realization.md § Council notes`).
67
+
68
+ **`token_delta` sourcing priority:**
69
+ 1. Host-reported: read `usage.output_tokens` (and `usage.input_tokens` if
70
+ available) from each subagent call's response metadata. Use the sum minus the
71
+ estimated single-agent baseline. Set `token_delta_provenance: "measured"`.
72
+ 2. Self-estimate fallback: host usage metadata unavailable → estimate from
73
+ response length (chars / 4 ≈ tokens). Set `token_delta_provenance:
74
+ "estimated"`. Lossy; measured always preferred.
75
+
51
76
  ## Related
52
77
 
53
78
  - [`audit-log-v1`](../../../../docs/contracts/audit-log-v1.md) — the frozen
@@ -56,4 +81,3 @@ object is an additive extension on an otherwise standard audit-log-v1 line:
56
81
  - [`host-capability-manifest`](host-capability-manifest.md) — the manifest that
57
82
  decides whether a dispatch is even attempted; `spawn_count` and `tiers`
58
83
  reflect what it enabled.
59
- Phase-0 instrumentation belongs to.
@@ -0,0 +1,107 @@
1
+ # Roadmap Execution Contract
2
+
3
+ Loaded by [`roadmap-process-loop § 3`](roadmap-process-loop.md) when
4
+ resolved roadmap declares `execution.mode` in frontmatter
5
+ (`autonomous` | `phase-checkpoints`; absent / `interactive` = legacy
6
+ behavior, this context stays unloaded). Defines the run-start
7
+ pre-scan, the contract summary user confirms ONCE, the grants that
8
+ confirmation activates, and the per-mode gate table.
9
+
10
+ ## Principle — declaration vs. authorization
11
+
12
+ `execution.mode` in frontmatter is a **declaration of intent** written
13
+ at authoring time. Grants nothing. Authorization happens exactly once
14
+ per run: user invokes `/roadmap:process-*` (a this-turn action), loop
15
+ derives the contract below from roadmap's CURRENT content, and user's
16
+ single confirmation converts declared mode into this-turn grants
17
+ **cached for this run only** (same mechanism as commit pre-scan it
18
+ extends). Stale frontmatter is harmless: no confirmation, no grants.
19
+
20
+ ## 1. Pre-scan — four detection classes
21
+
22
+ Scan every open step (text + inline notes) for:
23
+
24
+ 1. **Commit-shaped steps** — `commit:` / `git commit` / `Commit phase`
25
+ (existing § 3 scan).
26
+ 2. **Git-shape needs** — steps requiring a branch / push / PR
27
+ (`branch`, `push`, `open a PR`, `create PR`, "in a worktree"), plus
28
+ run's own delivery needs when roadmap's definition of done includes
29
+ shipping (autonomous mode default, § 4).
30
+ 3. **Artifact-authoring steps** — steps that create or materially
31
+ rewrite a skill / rule / command / guideline (verbs `add`/`create`/
32
+ `write`/`rewrite` + artifact nouns, or paths under
33
+ `src/{skills,rules}/`, command/guideline trees). Feed the batched
34
+ [`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md)
35
+ research pass (§ 3 below).
36
+ 4. **Open questions / ambiguity** — explicit `?` markers, "decide
37
+ whether", options left unresolved, or steps matching
38
+ [`ask-when-uncertain`](../../rules/ask-when-uncertain.md)
39
+ vague-trigger patterns.
40
+
41
+ ## 2. Contract summary — shown once, confirmed once
42
+
43
+ ```
44
+ Roadmap: <path> · mode: <autonomous | phase-checkpoints>
45
+
46
+ Git: branch <feat/<roadmap-slug>> · commits: chunked (N commit steps
47
+ detected / delivery commits) · push: to feat/<roadmap-slug> ONLY
48
+ · PR: open against <default branch> (description only — no merge)
49
+ Artifacts: <N> planned (skills/rules/commands/guidelines) —
50
+ batched overlap check: <result — run NOW, against current state>
51
+ Open questions: <N> → resolved via AI council (<members | "none
52
+ configured — will halt on ambiguity">)
53
+ Quality: <cadence> · Dashboard: <cadence>
54
+
55
+ Always active regardless of this contract (never lifted):
56
+ • Hard Floor per-commit diff gate (bulk deletions / infra)
57
+ • Push anywhere except feat/<roadmap-slug>; any merge
58
+ • security-sensitive-stop on auth/billing/tenant/secret paths
59
+ • N=3 validation budget · context-hygiene read-loop abort
60
+ • Deferred-[~] archival gate
61
+
62
+ 1. Accept — run under this contract
63
+ 2. Adjust (name the change) · 3. Run interactive instead · 4. Abort
64
+ ```
65
+
66
+ Accept = ONE authorization of the run. Cache all grants; never re-ask
67
+ inside the run. Adjust → apply, re-show once. Contract re-derived on
68
+ every invocation — always reflects roadmap's and repo's current state.
69
+
70
+ ## 3. Grants activated by acceptance
71
+
72
+ | Grant | Boundary |
73
+ |---|---|
74
+ | Create feature branch `feat/<roadmap-slug>` (or reuse the current worktree branch) | Never a prod trunk; one branch per run |
75
+ | Chunked commits on that branch | Per-commit Hard-Floor diff gate stays ([`commit-mechanics`](../authority/commit-mechanics.md)); agent picks the split per [`commit-policy`](../../rules/commit-policy.md) |
76
+ | Push to that branch **only** | Push to any other ref = Hard Floor, ask |
77
+ | Open ONE PR (description-only flow) | Never merge, never close/retarget; merge is always conversational |
78
+ | Batched artifact drafting | The drafting-protocol **Research/overlap pass runs NOW at contract time against current artifact state**; results cached; Understand/Draft phases run non-interactively during the run. Artifacts NOT in the batch still trigger the interactive protocol |
79
+ | Council auto-enable | In-run open questions route to the AI council silently; `high_impact` / `user_required` classifications STILL escalate to the user per [`ask-when-uncertain`](../../rules/ask-when-uncertain.md). **No council configured** → the contract summary says so and in-run true ambiguity halts (never silent guessing) |
80
+
81
+ Grants satisfy [`scope-control`](../../rules/scope-control.md)'s
82
+ "standing instruction" clause for the run — see
83
+ [`scope-mechanics § Roadmap execution contract`](../authority/scope-mechanics.md).
84
+
85
+ ## 4. Definition of done, per mode
86
+
87
+ | Mode | End state | Halts during run |
88
+ |---|---|---|
89
+ | `autonomous` | All steps `[x]` · quality green per cadence · work committed in chunks on `feat/<roadmap-slug>` · pushed · PR open · archival sweep run. **Merge out of scope, always.** | Safety floors only (+ quality-red, + step reveals out-of-roadmap work) |
90
+ | `phase-checkpoints` | Same end state | Safety floors + a compact status + "continue?" prompt at each phase boundary |
91
+ | `interactive` (absent field) | Legacy: work lands, no git delivery without per-op permission | All gates as authored by their owning rules |
92
+
93
+ If roadmap contains **no** delivery need and no commit steps, git
94
+ grants are omitted from the contract (nothing to authorize —
95
+ [`commit-policy`](../../rules/commit-policy.md) default: never commit).
96
+
97
+ ## 5. What acceptance can NEVER cover
98
+
99
+ - Any [`non-destructive-by-default`](../../rules/non-destructive-by-default.md)
100
+ trigger beyond the two named grants (own-branch push, PR-open):
101
+ prod-trunk anything, deploys, bulk deletions, infra commits.
102
+ - Merging, closing, or retargeting a PR.
103
+ - Lifting [`security-sensitive-stop`](../../rules/security-sensitive-stop.md),
104
+ the N=3 budget, context-hygiene aborts, or the deferred-`[~]` gate.
105
+ - Work outside the roadmap's scope (halt: scope-out-of-roadmap).
106
+ - Kernel-rule edits' own-PR + 24h-soak guarantee
107
+ ([`kernel-rule-edits`](../authority/kernel-rule-edits.md)).