@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
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Governance Enforcement at Projection Time — design spec
2
7
 
3
8
  > **Status: Measured → honest-null (2026-06-25). NOT shipped.** The length-controlled
@@ -64,7 +64,7 @@ Finish drives the **whole** install through `POST /api/v1/wizard/apply` →
64
64
  without `DISPLAY`), or a CLI-mode flag (`--no-ui` / `--tools` / `--ai` /
65
65
  `--yes` / `--quiet` / `--dry-run` / `--minimal` / `--settings-only` /
66
66
  `--list-tools`). `install.py`'s own tail-launch (`_wizard_spawn`, matching the
67
- `WIZARD_READY <url>` handshake) remains for direct `python3 install.py` runs.
67
+ `WIZARD_READY <url>` handshake) remains for direct CLI install runs.
68
68
 
69
69
  ### `WIZARD_READY` stdout contract
70
70
 
@@ -25,12 +25,12 @@ Last refreshed: 2026-05-04.
25
25
  | **Concern** | A single agent-config behaviour wired to one or more lifecycle events — e.g. `chat-history`, `roadmap-progress`, `verify-before-complete`. Lives as a Python script under `scripts/hooks/concerns/<name>.py`. |
26
26
  | **Event** | The agent-config-internal event vocabulary the dispatcher exposes — `session_start`, `session_end`, `user_prompt_submit`, `pre_tool_use`, `post_tool_use`, `stop`, `pre_compact`, `agent_error`. Per-platform native names map to these. `agent_error` is synthetic — fired by the agent (or wrapper) when the host crashes outside a concern, so chat-history can checkpoint partial sessions on abnormal exit. (Added in Round 2 — 2026-05-04.) |
27
27
  | **Trampoline** | A 5–10 line per-platform shell script that reads the platform's native payload, calls the dispatcher with `--platform <name>`, and forwards the platform's exit-code semantics. |
28
- | **Dispatcher** | `scripts/hooks/dispatch_hook.py` — single Python entrypoint that reads the manifest, resolves which concerns fire on `(platform, event)`, runs each one with the contract envelope below, and reduces their exit codes. |
28
+ | **Dispatcher** | `src/scripts/hooks/dispatch_hook.ts` — single Python entrypoint that reads the manifest, resolves which concerns fire on `(platform, event)`, runs each one with the contract envelope below, and reduces their exit codes. |
29
29
 
30
30
  ## Dispatcher invocation
31
31
 
32
32
  ```
33
- python3 scripts/hooks/dispatch_hook.py \
33
+ ./scripts-run src/scripts/hooks/dispatch_hook \
34
34
  --platform <name> \
35
35
  --event <agent-config-event> \
36
36
  [--native-event <platform-event>] \
@@ -101,7 +101,7 @@ A v0 file (no `version` key, ticket under flat `ticket`) is
101
101
  upgraded by `work_engine.migration.v0_to_v1`:
102
102
 
103
103
  ```bash
104
- python3 -m work_engine.migration.v0_to_v1 .implement-ticket-state.json
104
+ node agent-config-templates/scripts/work_engine/migration/v0_to_v1.js .implement-ticket-state.json
105
105
  ```
106
106
 
107
107
  The migration:
@@ -100,6 +100,19 @@ demote largest projected, re-sum; abort after 3 rounds.
100
100
  under median projection. Headroom = 1929 chars (= ~one median rule)
101
101
  absorbs pilot variance for the 6 untested rules.
102
102
 
103
+ **2026-07-06 demotion (council: claude-sonnet-4-5 + gpt-4o, 2-round
104
+ debate).** `user-interrupt-priority` had been added as an 11th-hour
105
+ `type: always` rule without a membership amendment, pushing the live
106
+ always set to 10 and the Augment workspace-guidelines budget past its
107
+ empirical cap. Demoted back to `type: auto` (trigger-loaded); its
108
+ one-line interrupt essence lives in `agent-authority § Rules` so the
109
+ always-loaded surface keeps the STOP → run → ASK contract visible.
110
+ The locked kernel remains the 9 rules below. In the same pass the 9
111
+ rules' post-P2.2 prose growth was telegraph-trimmed back under the
112
+ 26k bucket (Iron-Law fences byte-stable; load-bearing additions —
113
+ direct-answers' live-state clause, verify-before-complete's mechanics
114
+ pointer — retained per council verdict).
115
+
103
116
  ## § 4 — Locked kernel set
104
117
 
105
118
  | id | current | projected (× 0.712) | inclusion criterion |
@@ -5,10 +5,10 @@ keep-beta-until: 2026-08-14
5
5
 
6
6
  # MCP tool inventory
7
7
 
8
- > Generated by [`scripts/audit_mcp_tools.py`](../../scripts/audit_mcp_tools.py)
8
+ > Generated by [`src/scripts/audit_mcp_tools.ts`](../../src/scripts/audit_mcp_tools.ts)
9
9
  > from the source-of-truth catalog
10
- > [`scripts/mcp_server/consumer_tool_catalog.json`](../../scripts/mcp_server/consumer_tool_catalog.json).
11
- > Do **not** hand-edit; rerun `python3 scripts/audit_mcp_tools.py --write`.
10
+ > [`src/scripts/mcp_server/consumer_tool_catalog.json`](../../src/scripts/mcp_server/consumer_tool_catalog.json).
11
+ > Do **not** hand-edit; rerun `./scripts-run src/scripts/audit_mcp_tools --write`.
12
12
  >
13
13
  > Step-11 Phase 5 Step 3 (an internal parity roadmap (local-only)).
14
14
 
@@ -23,26 +23,26 @@ keep-beta-until: 2026-08-14
23
23
 
24
24
  | Tool | Side-effect | Transports | Catalog | Handler |
25
25
  |---|---|---|---|---|
26
- | `lint_skills` | `ro` | stdio | [`consumer_tool_catalog.json:7`](../../scripts/mcp_server/consumer_tool_catalog.json#L7) | [`tools.py:509`](../../scripts/mcp_server/tools.py#L509) |
27
- | `chat_history_append` | `fs-write` | stdio | [`consumer_tool_catalog.json:24`](../../scripts/mcp_server/consumer_tool_catalog.json#L24) | [`tools.py:539`](../../scripts/mcp_server/tools.py#L539) |
28
- | `chat_history_read` | `ro` | stdio | [`consumer_tool_catalog.json:43`](../../scripts/mcp_server/consumer_tool_catalog.json#L43) | [`tools.py:606`](../../scripts/mcp_server/tools.py#L606) |
29
- | `memory_lookup` | `ro` | stdio | [`consumer_tool_catalog.json:59`](../../scripts/mcp_server/consumer_tool_catalog.json#L59) | [`tools.py:654`](../../scripts/mcp_server/tools.py#L654) |
30
- | `memory_signal` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:75`](../../scripts/mcp_server/consumer_tool_catalog.json#L75) | _stub-only_ |
31
- | `memory_status` | `ro` | stdio | [`consumer_tool_catalog.json:91`](../../scripts/mcp_server/consumer_tool_catalog.json#L91) | [`tools.py:701`](../../scripts/mcp_server/tools.py#L701) |
32
- | `skill_trigger_eval` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:98`](../../scripts/mcp_server/consumer_tool_catalog.json#L98) | _stub-only_ |
33
- | `suggest_command` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:114`](../../scripts/mcp_server/consumer_tool_catalog.json#L114) | _stub-only_ |
34
- | `suggest_skill_for_task` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:129`](../../scripts/mcp_server/consumer_tool_catalog.json#L129) | _stub-only_ |
35
- | `mine_session` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:144`](../../scripts/mcp_server/consumer_tool_catalog.json#L144) | _stub-only_ |
36
- | `update_form_request_messages` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:158`](../../scripts/mcp_server/consumer_tool_catalog.json#L158) | _stub-only_ |
37
- | `sync_gitignore` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:173`](../../scripts/mcp_server/consumer_tool_catalog.json#L173) | _stub-only_ |
38
- | `sync_agent_settings` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:186`](../../scripts/mcp_server/consumer_tool_catalog.json#L186) | _stub-only_ |
39
- | `run_tests` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:200`](../../scripts/mcp_server/consumer_tool_catalog.json#L200) | _stub-only_ |
40
- | `run_quality_checks` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:214`](../../scripts/mcp_server/consumer_tool_catalog.json#L214) | _stub-only_ |
41
- | `list_skills` | `ro` | stdio | [`consumer_tool_catalog.json:227`](../../scripts/mcp_server/consumer_tool_catalog.json#L227) | [`tools.py:716`](../../scripts/mcp_server/tools.py#L716) |
42
- | `list_commands` | `ro` | stdio | [`consumer_tool_catalog.json:234`](../../scripts/mcp_server/consumer_tool_catalog.json#L234) | [`tools.py:732`](../../scripts/mcp_server/tools.py#L732) |
43
- | `list_rules` | `ro` | stdio | [`consumer_tool_catalog.json:241`](../../scripts/mcp_server/consumer_tool_catalog.json#L241) | [`tools.py:748`](../../scripts/mcp_server/tools.py#L748) |
44
- | `compile_router` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:248`](../../scripts/mcp_server/consumer_tool_catalog.json#L248) | _stub-only_ |
45
- | `read_resource_body` | `ro` | stdio | [`consumer_tool_catalog.json:261`](../../scripts/mcp_server/consumer_tool_catalog.json#L261) | [`tools.py:765`](../../scripts/mcp_server/tools.py#L765) |
26
+ | `lint_skills` | `ro` | stdio | [`consumer_tool_catalog.json:7`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L7) | [`tools.ts:575`](../../src/scripts/mcp_server/tools.ts#L575) |
27
+ | `chat_history_append` | `fs-write` | stdio | [`consumer_tool_catalog.json:24`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L24) | [`tools.ts:603`](../../src/scripts/mcp_server/tools.ts#L603) |
28
+ | `chat_history_read` | `ro` | stdio | [`consumer_tool_catalog.json:43`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L43) | [`tools.ts:664`](../../src/scripts/mcp_server/tools.ts#L664) |
29
+ | `memory_lookup` | `ro` | stdio | [`consumer_tool_catalog.json:59`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L59) | [`tools.ts:706`](../../src/scripts/mcp_server/tools.ts#L706) |
30
+ | `memory_signal` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:75`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L75) | _stub-only_ |
31
+ | `memory_status` | `ro` | stdio | [`consumer_tool_catalog.json:91`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L91) | [`tools.ts:748`](../../src/scripts/mcp_server/tools.ts#L748) |
32
+ | `skill_trigger_eval` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:98`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L98) | _stub-only_ |
33
+ | `suggest_command` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:114`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L114) | _stub-only_ |
34
+ | `suggest_skill_for_task` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:129`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L129) | _stub-only_ |
35
+ | `mine_session` | `ro` | _(stub)_ | [`consumer_tool_catalog.json:144`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L144) | _stub-only_ |
36
+ | `update_form_request_messages` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:158`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L158) | _stub-only_ |
37
+ | `sync_gitignore` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:173`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L173) | _stub-only_ |
38
+ | `sync_agent_settings` | `fs-write` | _(stub)_ | [`consumer_tool_catalog.json:186`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L186) | _stub-only_ |
39
+ | `run_tests` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:200`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L200) | _stub-only_ |
40
+ | `run_quality_checks` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:214`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L214) | _stub-only_ |
41
+ | `list_skills` | `ro` | stdio | [`consumer_tool_catalog.json:227`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L227) | [`tools.ts:762`](../../src/scripts/mcp_server/tools.ts#L762) |
42
+ | `list_commands` | `ro` | stdio | [`consumer_tool_catalog.json:234`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L234) | [`tools.ts:777`](../../src/scripts/mcp_server/tools.ts#L777) |
43
+ | `list_rules` | `ro` | stdio | [`consumer_tool_catalog.json:241`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L241) | [`tools.ts:792`](../../src/scripts/mcp_server/tools.ts#L792) |
44
+ | `compile_router` | `shell` | _(stub)_ | [`consumer_tool_catalog.json:248`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L248) | _stub-only_ |
45
+ | `read_resource_body` | `ro` | stdio | [`consumer_tool_catalog.json:261`](../../src/scripts/mcp_server/consumer_tool_catalog.json#L261) | [`tools.ts:808`](../../src/scripts/mcp_server/tools.ts#L808) |
46
46
 
47
47
  ## Glossary
48
48
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # No-Runtime Boundary Contract
2
7
 
3
8
  > **Audience:** Every Mission-Mode decision, skill author, and recipe reviewer.
@@ -52,5 +57,5 @@ and violating the no-runtime principle).
52
57
  ## Decision authority
53
58
 
54
59
  A mission step that is unclear against this contract goes to the AI Council
55
- (`python3 src/scripts/council_cli.py`) before any build work starts.
60
+ (`./scripts-run src/scripts/council_cli`) before any build work starts.
56
61
  The council verdict becomes an ADR if it changes this table.
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Review-lens routing schema
2
7
 
3
8
  Defines what a review **lens** is, the metadata it carries, and which review
@@ -29,10 +29,10 @@ are preserved. New / formalized fields:
29
29
  | Key | Required | Values | Purpose |
30
30
  |---|---|---|---|
31
31
  | `type` | yes | `always` \| `auto` | Existing. Kernel = `always`; everything else = `auto`. |
32
- | `tier` | yes | `kernel` \| `tier-1` \| `tier-2` | New names. Kernel = always-loaded; tier-1 = balanced + full; tier-2 = full only. |
32
+ | `tier` | yes | `kernel` \| `tier-1` \| `tier-2` | New names. Kernel = always-loaded; tier-1 / tier-2 = trigger-routed on demand, in every discipline profile (ADR-040 / ADR-110). |
33
33
  | `triggers` | yes for non-kernel | list of objects | When the rule activates. **Forbidden** on kernel rules. |
34
34
  | `routes_to` | yes for non-kernel | list of strings | Skills / guidelines whose body fulfils the rule. **Forbidden** on kernel rules. |
35
- | `profile` | no | `minimal` \| `balanced` \| `full` | Override the tier-derived default profile. Rare; used only when a tier-2 rule must ship in `balanced`. |
35
+ | `profile` | no | `minimal` \| `essential` \| `full` | Override the tier-derived default profile. Rare; currently unused by any shipped rule. |
36
36
  | `triggered_by` | back-ref, on routed artifact | list of strings | Skill / guideline frontmatter declares which rule(s) route to it. Bidirectional check (P3.3). |
37
37
 
38
38
  ### `triggers:` shape
@@ -82,13 +82,13 @@ whose body is fully covered by an existing architectural contract.
82
82
 
83
83
  ## Compiled output — `router.json`
84
84
 
85
- `scripts/compile_router.py` reads every rule frontmatter and emits
85
+ `src/scripts/compile_router.ts` reads every rule frontmatter and emits
86
86
  `dist/router.json` (tracked in git), used by host agents at session
87
87
  start. Deterministic key order, sorted lists, stable across runs.
88
88
 
89
89
  ```json
90
90
  {
91
- "schema_version": 1,
91
+ "schema_version": 2,
92
92
  "kernel": ["agent-authority", "ask-when-uncertain", "commit-policy",
93
93
  "direct-answers", "language-and-tone", "no-cheap-questions",
94
94
  "non-destructive-by-default", "scope-control",
@@ -96,18 +96,75 @@ start. Deterministic key order, sorted lists, stable across runs.
96
96
  "tier_1": [{"id": "source-of-truth",
97
97
  "triggers": [{"path_prefix": "agents/"},
98
98
  {"path_prefix": "dist/agent-src/"}],
99
- "routes_to": ["skill:agent-docs-writing"]}],
99
+ "routes_to": ["skill:agent-docs-writing"],
100
+ "workspaces": ["agent-config-maintainer"],
101
+ "packs": ["meta"]}],
100
102
  "tier_2": [/* same shape as tier_1 */],
101
103
  "profiles": {
102
- "minimal": ["__kernel__"],
103
- "balanced": ["__kernel__", "__tier_1__"],
104
- "full": ["__kernel__", "__tier_1__", "__tier_2__"]
104
+ "minimal": ["__kernel__"],
105
+ "essential": ["__kernel__", "downstream-changes"],
106
+ "full": ["__kernel__", "__tier_1__", "__tier_2__"]
105
107
  }
106
108
  }
107
109
  ```
108
110
 
109
111
  Generated alongside `marketplace.json` during `task generate-tools`.
110
112
 
113
+ ### Schema v2 — installation-scoping fields (2026-07-07)
114
+
115
+ Every **non-kernel** entry carries `workspaces:` and `packs:`, copied
116
+ verbatim (sorted) from the rule's frontmatter. They let projection- and
117
+ install-time tooling filter rule bodies AND thin-projection pointer lines
118
+ by the installed workspace/pack set (`road-to-request-scoped-rule-load`
119
+ Phase 1) — per ADR-040 the filtering happens at projection time; there is
120
+ no runtime resolver.
121
+
122
+ - **Additive only.** v1 readers ignore unknown keys; nothing else in the
123
+ shape changed. Readers MUST NOT hard-fail on `schema_version: 2`.
124
+ - **Kernel entries stay bare id strings.** The kernel is unconditional
125
+ and workspace-independent by definition — it never carries scoping
126
+ fields and is never filtered by installation.
127
+ - **Source of the values:** `src/rules/*.md` frontmatter.
128
+ `lint_artefact_frontmatter` (wired into `task ci`) enforces that every
129
+ rule declares non-empty `workspaces:` + `packs:` lists whose ids exist
130
+ in `src/config/discovery/{workspaces,packs}.yml` — unknown ids fail
131
+ lint before they can reach the router.
132
+
133
+ ## Host-native glob activation (Cursor / Windsurf)
134
+
135
+ Since 2026-07-07 (`road-to-request-scoped-rule-load` Phase 2) the
136
+ Cursor/Windsurf projectors derive `globs:` from the rule's path-shaped
137
+ triggers: `file_pattern` maps verbatim, `path_prefix` maps as
138
+ `<prefix>**`. Rules with ≥1 path-shaped trigger auto-attach host-natively
139
+ (Cursor auto-attach / Windsurf `trigger: glob`) — deterministic, no
140
+ model-compliance dependency. Keyword/phrase/intent-only rules keep
141
+ description-based activation (Agent-Requested / `model_decision`).
142
+
143
+ **No-double-fire invariant:** when thin projection lands on those hosts, a
144
+ glob-attached rule must NOT also ship an eager inline body there — the
145
+ host-native attach IS its conditional load. The thin projector treats
146
+ glob-capable rules on glob-capable hosts as already-conditional; the
147
+ pointer mechanism is for hosts without a native equivalent (Claude Code).
148
+
149
+ ### Profiles — the always-honoured surface (ADR-110)
150
+
151
+ Profiles name the **always-honoured** rule surface per discipline tier;
152
+ entries without the `__` wrapper are individual rule ids. Trigger routing of
153
+ tier-1/tier-2 stays active under **every** profile — trigger semantics are
154
+ configuration-independent (ADR-040). The runtime knob is
155
+ `discipline_profile: auto | off | essential | full` (`off` → `minimal`
156
+ surface); resolution semantics (including the legacy `rule_loading_tier`
157
+ mapping and the `auto` host-capability check against
158
+ `src/config/host-capabilities.yml`) live in `resolve_discipline_profile()`
159
+ in the work-engine settings lib.
160
+
161
+ **`balanced` was retired 2026-07-07** (deleted, not renamed): the size cut
162
+ (kernel + tier_1) measured a NULL discipline lift (p=0.81, n=24 —
163
+ `docs/benchmark.md § Cost-factor sweep`) because it missed the lift-carrying
164
+ `downstream-changes`. Its successor `essential` is cut by measured content
165
+ (kernel + the lift-carrying rules; +0.458 lift at ~3.3x tokens, p=0.0135).
166
+ Legacy `rule_loading_tier: balanced` values map to `essential`.
167
+
111
168
  ## Activation semantics
112
169
 
113
170
  The host agent reads `dist/router.json` once per session. Per turn:
@@ -123,6 +180,43 @@ The host agent reads `dist/router.json` once per session. Per turn:
123
180
  No runtime profile resolution — the profile is fixed at session
124
181
  start, the router lookup is keyword/phrase/path/intent matching only.
125
182
 
183
+ ### Intent-trigger semantics — two gates, two purposes (reconciled 2026-07-07)
184
+
185
+ Two tools consume `intent:` triggers with deliberately different semantics.
186
+ This divergence is **justified and locked**, not drift
187
+ (`road-to-token-proof-and-story` Phase 2):
188
+
189
+ | Tool | Intent semantics | Purpose |
190
+ |---|---|---|
191
+ | `trigger_coverage.ts` + the golden-set fires-check | word-set inclusion (every alpha word >2 chars of the intent appears in the prompt) | **Falsifiability floor** — a deliberately generous mechanical proxy proving a rule CAN fire on a phrasing; gates coverage claims. |
192
+ | `router_telemetry.ts` (replay / field evidence) | informational-only — never auto-matches | **Field estimation** — real hosts resolve intents by model judgment, which cannot be replayed deterministically; pretending the word-set proxy models host behaviour would fabricate activation counts. |
193
+
194
+ Consequence: **replay UNDERCOUNTS intent-triggered rule loads.** Every
195
+ replay-derived figure (field-token-evidence report, benchmark refresh,
196
+ release story) MUST state the chosen semantics and carry this caveat. Rules
197
+ relying on intent triggers alone have no mechanical signal at all — hence
198
+ the intent-only backstop audit (Phase 0 of
199
+ `road-to-request-scoped-rule-load`: every intent-only rule gained
200
+ keyword/phrase backstops or a written disposition).
201
+
202
+ ## Activation end-state — one runtime knob (token program, 2026-07-07)
203
+
204
+ Locked by the token-program integration council
205
+ (`agents/settings/contexts/token-program-integration-verdict.md`) so no
206
+ track ships a competing setting:
207
+
208
+ - **Runtime:** ONE knob — `discipline_profile: auto | off | essential |
209
+ full` (shipped default `auto` = ON once its evidence gates pass; owned by
210
+ `road-to-discipline-profile-tiering`). Thin projection, when un-deferred,
211
+ folds under `essential` as an implementation detail; `lean_projection.mode`
212
+ is then absorbed/retired. No new runtime toggles for this layer.
213
+ - **Install-time (not a runtime setting):** consumer scoping via
214
+ `projection.rule_workspaces` / `projection.rule_packs` — default flips
215
+ `legacy-all` → scoped as a reviewed release decision after the
216
+ misclassification audit (done 2026-07-07) + measured before/after.
217
+ - **Host-native (no setting):** Cursor/Windsurf glob auto-attach (§ above)
218
+ is always on — deterministic, no compliance risk.
219
+
126
220
  ## Kill-switch — thin-projection rollback (lean-initial-context Phase 2.3)
127
221
 
128
222
  Phase 3 of the lean-initial-context migration makes the per-tool projector
@@ -27,7 +27,7 @@ A BUNDLED SCRIPT RESOLVES EVERY SIBLING ASSET VIA ITS OWN FILE LOCATION
27
27
  ```
28
28
 
29
29
  - The agent invokes bundled scripts with an **absolute or skills-root-
30
- relative path**: `python3 <skills-root>/<name>/scripts/<tool>.py …`.
30
+ relative path**: `node_modules/.bin/tsx <skills-root>/<name>/scripts/<tool>.ts …`.
31
31
  `<skills-root>` = `~/.claude/skills` (Claude Code consumer install),
32
32
  the tool-specific projection dir for other agents, or `src/skills`
33
33
  inside this repo.
@@ -17,7 +17,7 @@ plain-language "this skill will…" summary. It surfaces:
17
17
  - its **execution type** (`manual` / `assisted` / `automated`, default `manual`) and **handler**
18
18
  (`none` / `shell` / `php` / `node` / `internal`);
19
19
  - its declared **`allowed_tools`**;
20
- - any **file or command targets** named in the body (backtick paths, `python3 scripts/…` invocations).
20
+ - any **file or command targets** named in the body (backtick paths, `./scripts-run src/scripts/…` invocations).
21
21
 
22
22
  ## Explicit non-goals
23
23
 
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Subagent Boundary Contract
2
7
 
3
8
  What a subagent **owns** and what it must **never** own. As delegation spreads
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Ticket-bundle format
2
7
 
3
8
  > The contract every downstream artifact reads from: the `emit-tickets` skill,
@@ -62,9 +67,9 @@ source_refs: # files the build reads/changes, SHA-pinned (drif
62
67
  - { path: src/scripts/build_linear_digest.py, sha: <git-blob-sha> }
63
68
  assets: [T-001.assets/wireframe.png] # relative to the bundle dir
64
69
  acceptance: # runnable AND isolation-testable; no prose-only
65
- - "python3 src/scripts/lint_ticket_buildable.py exits 0"
70
+ - "./scripts-run src/scripts/lint_ticket_buildable exits 0"
66
71
  boundaries: # ENFORCED by the work_engine boundary guard
67
- must_touch: [src/scripts/lint_ticket_buildable.py]
72
+ must_touch: [src/scripts/lint_ticket_buildable]
68
73
  may_touch: [Taskfile.yml]
69
74
  must_not_touch: [src/scripts/work_engine/**, ".github/**"]
70
75
  ---
@@ -91,7 +96,7 @@ context spine or `source_refs`, the ticket is incomplete.
91
96
 
92
97
  ## 5. Self-containedness floor (per `model_tier`)
93
98
 
94
- Enforced by `lint_ticket_buildable.py`. A ticket FAILS the gate if its tier's
99
+ Enforced by `lint_ticket_buildable`. A ticket FAILS the gate if its tier's
95
100
  row is not satisfied:
96
101
 
97
102
  | tier | acceptance | ≥1 concrete path | non-empty boundaries | resolvable assets | size floor |
@@ -177,7 +182,7 @@ Git LFS is **not** configured in this repo today, and wiring it (install +
177
182
  remote LFS store) is heavier than v1 needs. v1 decision: assets are git-tracked
178
183
  binaries under a **size cap** — ≤ 500 KB per asset — and authors prefer vector /
179
184
  text context (Mermaid, ASCII, SVG, example-I/O Markdown) over raster where it
180
- carries the same information. `lint_ticket_buildable.py` warns on any asset over
185
+ carries the same information. `lint_ticket_buildable` warns on any asset over
181
186
  the cap. LFS is revisited only if `agents/tickets/**` binary weight is proven a
182
187
  real problem (same "defer until observed" discipline as the mutable-tickets
183
188
  mode). Non-binary design context lives as plain Markdown in the `.assets/` folder.
@@ -58,10 +58,10 @@ When the first user request lands, the responder MUST:
58
58
  schema below.
59
59
  2. Add the tool ID to `_VALID_TOOLS`, `USER_SCOPE_PATHS`,
60
60
  `SCOPE_SUPPORT`, and the bash `VALID_TOOLS` set.
61
- 3. Implement `ensure_<tool>_bridge` in `scripts/install.py` (≤60 LOC
61
+ 3. Implement `ensure_<tool>_bridge` in `src/install/` (≤60 LOC
62
62
  — if larger, escalate via ADR per Phase 2.5 gate).
63
63
  4. Append a row to the `README.md` "Supported Tools" table.
64
- 5. Re-run `task lint-skills` + `python3 -m pytest tests/test_install_py.py`.
64
+ 5. Re-run `task lint-skills` + `task test`.
65
65
 
66
66
  ```yaml
67
67
  # agents/manifests/contrib/<tool-id>.yml
@@ -132,6 +132,9 @@ effects on disk.
132
132
  blending voices is deferred.
133
133
  - **No file writes.** The engine prints; the user copies. Saving the
134
134
  output to `agents/` or anywhere else is a future feature.
135
+ - **Quote floor applies.** Any draft citing an external source follows
136
+ [`content-quoting-floor`](../../src/rules/content-quoting-floor.md) —
137
+ ≤15 words per quote, one quote per source, paraphrase by default.
135
138
 
136
139
  ## See also
137
140
 
@@ -229,17 +229,28 @@ the sourced rationale lives in the design dossier
229
229
  > a budget is tight, reach for the **model** lever first — lowering the rule
230
230
  > tier saves little and drops guardrails.
231
231
 
232
- `rule_loading_tier` is the master switch for rule-tier loading. The kernel
233
- (always-loaded Iron-Law floor, ≤ 26k chars across 9 rules) ships in every
234
- profile. Tier-1 and tier-2 rules are gated by profile and resolved at
235
- session start from `dist/router.json` (compiled by `scripts/compile_router.py`).
236
-
237
- | Profile | Rule tiers loaded | Token footprint | Best for |
232
+ `rule_loading_tier` is the **legacy** master switch for rule-tier loading; its
233
+ successor is the single runtime knob `discipline_profile: auto | off |
234
+ essential | full` (ADR-110 — when set, it wins; legacy values map
235
+ minimal→off, balanced→essential, full→full). The kernel (always-loaded
236
+ Iron-Law floor, ≤ 26k chars across 9 rules) ships in every profile. Tier-1
237
+ and tier-2 trigger routing stays active under every profile (trigger
238
+ semantics are configuration-independent, ADR-040); the profile names the
239
+ always-honoured surface, resolved at session start from `dist/router.json`
240
+ (compiled by `scripts/compile_router.ts`).
241
+
242
+ | Profile | Always-honoured surface | Token footprint | Best for |
238
243
  |---|---|---|---|
239
- | `minimal` | kernel only (no router, no auto-rules) | lowest | Cost-sensitive sessions; trivial Q&A; CI runs |
240
- | `balanced` | kernel + tier-1 auto-rules (default) | medium | Day-to-day work — current behaviour superset |
241
- | `full` | kernel + tier-1 + tier-2 (everything) | highest | Agent-config development; full rule fidelity |
242
- | `custom` | profile ignored — every matrix value must be set explicitly | varies | Power users with bespoke rule sets |
244
+ | `off` (legacy `minimal`) | kernel only | ~1x (lowest) | Hosts with a MEASURED null discipline lift (`src/config/host-capabilities.yml`); cost-sensitive sessions |
245
+ | `essential` | kernel + the lift-carrying rules (`downstream-changes`) | ~3.3x | Day-to-day work — keeps the measured weak-host discipline lift (+0.458, p=0.0135) |
246
+ | `full` | kernel + tier-1 + tier-2 (everything) | ~11.7x (highest) | EXPERIMENTAL opt-in — residual lift over `essential` not established (p=0.37); agent-config development |
247
+ | `auto` | resolved per session: measured-null host → `off`, otherwise → `essential` | varies | The evidence-gated default target |
248
+ | `custom` (legacy) | profile ignored — every matrix value must be set explicitly | varies | Power users with bespoke rule sets |
249
+
250
+ > **`balanced` was retired 2026-07-07** — the size cut (kernel + tier-1)
251
+ > measured a NULL discipline lift (p=0.81, `docs/benchmark.md § Cost-factor
252
+ > sweep`) because it missed the lift-carrying `downstream-changes`. Existing
253
+ > `rule_loading_tier: balanced` settings keep working and map to `essential`.
243
254
 
244
255
  The kernel-and-router architecture is documented in
245
256
  [`docs/contracts/rule-router.md`](contracts/rule-router.md) and
@@ -345,19 +356,80 @@ level.
345
356
 
346
357
  ---
347
358
 
359
+ ## Autonomous roadmap execution
360
+
361
+ Roadmaps can declare how `/roadmap:process-full` / `process-phase`
362
+ should interact, via frontmatter (`/roadmap:create` asks this as one
363
+ question at creation time):
364
+
365
+ ```yaml
366
+ execution:
367
+ mode: autonomous # autonomous | phase-checkpoints | interactive
368
+ ```
369
+
370
+ - `interactive` (absent-field default) — every gate fires as today.
371
+ - `phase-checkpoints` — one compact status + continue prompt per phase
372
+ boundary.
373
+ - `autonomous` — at run start the loop derives an **execution
374
+ contract** (feature branch, chunked commits, push to that branch
375
+ only, PR-open — never merge, batched artifact drafting, council
376
+ auto-enable). ONE acceptance activates all grants for the run; after
377
+ that the run is uninterrupted except the safety floors (Hard Floor,
378
+ security-sensitive-stop, N=3 validation budget, context-hygiene
379
+ aborts, deferred-`[~]` archival gate).
380
+
381
+ The frontmatter field is a declaration of intent, never a permission
382
+ grant — authorization happens only at the run-start contract, derived
383
+ fresh from the roadmap's current content on every invocation. Details:
384
+ `contexts/execution/roadmap-execution-contract.md`, template rule 18 in
385
+ `templates/roadmaps.md`. Global `roadmap.*` keys in
386
+ `.agent-settings.yml` (quality/dashboard cadence, pre-run gate) keep
387
+ their meaning in every mode.
388
+
389
+ ---
390
+
348
391
  ## Project documentation
349
392
 
350
393
  Consumer projects can maintain their own agent documentation:
351
394
 
352
395
  ```
353
396
  agents/
354
- ├── docs/ ← Feature docs, architecture decisions
355
- ├── contexts/ ← Shared knowledge documents
356
- ├── features/ ← Feature plans
357
- ├── roadmaps/ ← Active roadmaps
358
- └── overrides/ ← Skill/rule/command overrides
397
+ ├── overrides/ ← Skill/rule/command overrides (required after migrate)
398
+ ├── .event4u-bridge.yml ← Global-only bridge marker (ADR-020)
399
+ ├── knowledge/ ← Optional: curated project-specific knowledge pages
400
+ ├── memory/ ← Optional: memory promotion pipeline
401
+ ├── roadmaps/ ← Optional: project-local roadmaps
402
+ ├── tmp/ ← Optional: user inbox (gitignored)
403
+ └── tmp.old/ ← Optional: processed inbox archive (gitignored)
359
404
  ```
360
405
 
406
+ Full classification (git policy, retention, owner) for every allowed entry:
407
+ [`docs/contracts/agents-layout.md`](contracts/agents-layout.md).
408
+
409
+ #### User inbox workflow (`agents/tmp/` → `agents/tmp.old/`)
410
+
411
+ Drop a note or draft into `agents/tmp/` and point a command at it
412
+ (e.g. "create a roadmap from `agents/tmp/my-idea.md`"). The agent reads
413
+ the file, processes it, and moves it to `agents/tmp.old/` in the same
414
+ reply. The archive decays via a 30-day janitor TTL.
415
+
416
+ - Both dirs are **gitignored** — they never enter the commit graph.
417
+ - The agent's own scratch goes to `agents/runtime/tmp/` — never into `agents/tmp/`.
418
+ - Run `task janitor` for a dry-run report; `task janitor-apply` to sweep.
419
+
420
+ #### Keeping your consumer `agents/` clean
421
+
422
+ Run the sync-gitignore fix command after an install or migration:
423
+
424
+ ```bash
425
+ agent-config sync-gitignore --cleanup-legacy
426
+ # Or via the chat command: /sync-gitignore:fix
427
+ ```
428
+
429
+ This scrubs legacy patterns, syncs the managed block, and reports any
430
+ files that are tracked but now ignored (the `git rm --cached` commands
431
+ to fix them are printed — never run automatically).
432
+
361
433
  Module-level documentation goes into `app/Modules/*/agents/`.
362
434
 
363
435
  ### `agents/` overlay cascade
@@ -43,7 +43,7 @@ experimental`, flipping `default_install` to anything but `false`, or any
43
43
  commercial / hosted surface, is **blocked** until a licensed German attorney has
44
44
  reviewed the *framing* (the `legal-safety-floor` rule, `LEGAL_NOTICE.md`, and the
45
45
  RDG individual-case wording — **not** skill correctness) and the review is recorded
46
- in `LEGAL_NOTICE.md` as `Framing reviewed by <name>, Rechtsanwalt/Rechtsanwältin,
46
+ in `LEGAL_NOTICE.md` as `Framing reviewed by <name>, Rechtsanwalt/Rechtsanwältin, <!-- md-language-check: ignore -->
47
47
  <date>`. The deep AI-council (2026-06-24) scoped this as a bounded (~€300–800,
48
48
  1–2h) one-time gate, **not** a blocker for the current lab release (lab is
49
49
  explicitly unvetted; users opt in knowingly via the consent gate). Enforced by