@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,246 @@
1
+ ---
2
+ adr: 109
3
+ status: accepted
4
+ date: 2026-07-04
5
+ decision: subagent-v1-contract
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: road-to-final-state-and-market-readiness
9
+ type: standing
10
+ ---
11
+
12
+ # ADR-109 — The `subagent-v1` contract (new discovery category, default-off, static projection)
13
+
14
+ ## Status
15
+
16
+ **Accepted** · 2026-07-04 · maintainer decision after an AI-council debate
17
+ (claude-sonnet-4-5 + gpt-4o, 2 rounds). Track A keystone (A1) of
18
+ `road-to-final-state-and-market-readiness.md`.
19
+
20
+ ## Context
21
+
22
+ Track A adds a **capability** layer: named subagent units that a host can invoke
23
+ as distinct, tool-scoped execution contexts (Claude Code's `.claude/agents/`).
24
+ The wedge — `production-validator` — already ships hand-written in that native
25
+ format. A1 turns that one hand-written file into a governed, projected artifact
26
+ type without breaching the no-runtime identity floor (no daemon, no auto-write,
27
+ no in-process swarm, no dispatch we enforce).
28
+
29
+ The council was asked to converge the contract shape. Both members agreed on the
30
+ category and the schema completeness; the residual dissent was a documentation
31
+ nuance (don't over-claim cross-host equivalence), folded in below.
32
+
33
+ ## Decision
34
+
35
+ ### 1. A new discovery category `subagent` (not `agent`, not a persona subtype)
36
+
37
+ - **Name `subagent`.** `agent` is overloaded (the host is "the agent"; this
38
+ package is "agent-config"). `subagent` = a subordinate, delegated, addressable
39
+ execution context.
40
+ - **A distinct category, not a persona subtype.** Personas are reference lenses
41
+ projected as *context* for a single session; a subagent is an *addressable
42
+ execution context* with its own tool manifest and model. Folding subagents into
43
+ personas would force every persona to grow a `tools` field it ignores, or add
44
+ subtype-specific projection logic (a parallel schema inside one category). The
45
+ categories today are `['skill', 'rule', 'command', 'template']`; `subagent`
46
+ becomes the 5th.
47
+
48
+ ### 2. Source schema `subagent-v1` (governance fields REQUIRED, not optional)
49
+
50
+ ```yaml
51
+ schema_version: subagent-v1
52
+ name: <handle> # REQUIRED — matches filename stem, addressable
53
+ description: <one line> # REQUIRED — user-facing summary
54
+ model_tier: high|medium|lite|inherit # REQUIRED — reuses model_tier.ts; `inherit` is a
55
+ # documented passthrough sentinel (→ CC `model: inherit`),
56
+ # NOT a new tier→model mapping
57
+ tools: [Read, Grep, Glob, Bash, …] # REQUIRED — enum-validated against the CC tool set
58
+ trust: {level, confidence, human_review_required} # REQUIRED — mirrors the skill trust block (ADR-013)
59
+ lifecycle: active|deprecated|experimental|archived # REQUIRED — reuse the existing lifecycle enum
60
+ discovery:
61
+ visible: false # REQUIRED — default-off; linter enforces `false`
62
+ requires_capability: <cap> # REQUIRED — host-capability gate (e.g. claude_subagents)
63
+ categories: [<tag>, …] # OPTIONAL — pack-include tags
64
+ ```
65
+
66
+ Body: a free-form Markdown system prompt (like personas). Governance fields are
67
+ **required** — optional governance would create a two-tier system (governed
68
+ legacy artifacts vs. ungoverned subagents), which breaks trust filtering and the
69
+ "governed config layer" promise. The source carries governance metadata that
70
+ does **not** project to `.claude/agents/` (CC has no such fields) but does drive
71
+ discovery filtering, docs generation, and cross-host warnings.
72
+
73
+ **Banned fields (would imply runtime we do not have):** `auto_invoke_on`,
74
+ `max_iterations`, `timeout`, `cost_limit`, `memory_strategy`, `delegates_to`.
75
+
76
+ ### 3. Native-Claude-Code translation
77
+
78
+ Projected file: `.claude/agents/<name>.md` with frontmatter `{name, description,
79
+ tools, model}` + the body. `model` is derived from `model_tier` by **reusing**
80
+ `src/scripts/_lib/model_tier.ts` (`TIER_TO_CLAUDE_MODEL`: high→opus, medium→sonnet,
81
+ lite→haiku); `model_tier: inherit` projects to `model: inherit` (passthrough).
82
+ No new mapping is invented (ADR-034/035 stands).
83
+
84
+ ### 4. Cross-host degradation (host-agnostic, honestly limited)
85
+
86
+ Only Claude Code has native subagents. Elsewhere a subagent projects to a
87
+ **loadable context file**, gated by `requires_capability`:
88
+
89
+ | Host | Projection | Invocation |
90
+ |---|---|---|
91
+ | Claude Code | `.claude/agents/<name>.md` | `@<name>` (host-native) |
92
+ | Cursor / Windsurf / Cline | context file the host can load on intent | manual — **no `@`-dispatch** |
93
+ | Copilot / Gemini | skipped (no context surface) | — |
94
+
95
+ **Honest limitation (published, per the package's own honesty floor):** on
96
+ non-Claude-Code hosts the artifact degrades to *passive reference* — the system
97
+ prompt is available, but there is no host-native dispatch. This is **governance
98
+ parity, not feature parity**: trust / lifecycle / model-tier apply uniformly; the
99
+ automation does not. We do not fake dispatch (that would need a runtime we refuse
100
+ to add).
101
+
102
+ **Implementation (`generate_subagent_host_contexts`, condense.ts).** The non-CC
103
+ projection emits a passive-reference context file carrying the honest no-dispatch
104
+ banner + a governance block (trust level / lifecycle / model tier / tools) + the
105
+ body verbatim, reaper-safe per host:
106
+
107
+ - Cursor → `.cursor/subagents/<name>.md`; Windsurf → `.windsurf/subagents/<name>.md`
108
+ (dedicated subdir with its own reaper — no collision with the aggressive
109
+ `_clean_modern_dir` rule reapers).
110
+ - Cline → `.clinerules/<name>.subagent.md` (a real file; that dir's reaper only
111
+ unlinks symlinks, so it survives).
112
+ - Copilot / Gemini → skipped (no per-file context surface).
113
+
114
+ Council (claude-sonnet-4-5 + gpt-4o, 2026-07-05) converged on *project the file*
115
+ over honest-null: the body is ~95% reusable review discipline and ~5% dispatch
116
+ syntax, so an advanced user loads it on intent and applies the discipline
117
+ manually. No ADR amendment was needed — this realises the §4 table as written.
118
+
119
+ ### 5. Default-off + non-dispatch (mechanical)
120
+
121
+ - **Default-off** = `discovery.visible: false` (required; linter enforces the
122
+ value is `false`). No glob pulls subagents; a pack opts in explicitly via
123
+ `include: ["subagent:<name>"]` or `include: ["subagent:category:<tag>"]`.
124
+ - **Non-dispatch is free.** We have no runtime; we only project a file. The host
125
+ (or the user via `@<name>`) decides invocation. No `auto_dispatch` flag exists
126
+ (it would imply `true` is possible — it is not).
127
+
128
+ ### 6. Determinism / lint guarantees (part of A1)
129
+
130
+ - `tools` validated against the CC tool enum — build-time failure, never a broken
131
+ `.claude/agents/` YAML in the user's IDE.
132
+ - `model_tier` validated against `model_tier.ts` (+ the `inherit` sentinel).
133
+ - `name` globally unique within the `subagent` category (projection-path
134
+ collision guard), matching the filename stem.
135
+ - `discovery.visible` must be present and `false`.
136
+
137
+ ### 7. Explicitly cut from v1
138
+
139
+ Multi-subagent orchestration (`delegates_to`), custom tool definitions, and
140
+ per-artifact `supported_hosts` lists (use `requires_capability` + a central
141
+ capability matrix instead). Revisit only in a `subagent-v2` if evidence demands.
142
+
143
+ ## Consequences
144
+
145
+ - A 5th discovery category, one new schema, one source location (`src/subagents/`),
146
+ a translation step, and lint rules — all additive; existing categories untouched.
147
+ - `production-validator` becomes the first `src/` subagent unit and the single
148
+ source of truth for the wedge (the hand-written `docs/wedge/` copy is superseded
149
+ by projection).
150
+ - **Gate A still governs shipping:** a unit is default-off and ships as
151
+ recommended-opt-in **only** if the A3 eval (on `internal/bench/orchestration/`)
152
+ beats both baselines at acceptable token cost; otherwise it stays in `src/` as a
153
+ documented honest-null. This ADR defines the *contract*, not a promotion.
154
+
155
+ ## Alternatives considered
156
+
157
+ - **Persona subtype** — rejected: semantic dilution + schema creep (tools field on
158
+ all personas, or subtype-specific projection).
159
+ - **Optional governance fields** — rejected: creates ungoverned-by-default
160
+ artifacts, breaking the trust model (council round 2, decisive).
161
+ - **CC-only (no degradation)** — rejected: violates host-agnostic positioning; a
162
+ CC-locked artifact is Claude Code config that wandered into the repo.
163
+ - **Faked dispatch on non-CC hosts** — rejected: runtime cosplay we cannot honor.
164
+
165
+ ## Amendment 1 (2026-07-04) — discovery-manifest integration = Option B
166
+
167
+ The original decision left *how* subagents join the discovery manifest open. A
168
+ follow-up council (claude-sonnet-4-5 + gpt-4o, 2 rounds) surfaced the concrete
169
+ gap: the manifest's `_classify` requires `workspaces` / `packs` / `install`,
170
+ which this contract's minimal schema deliberately omits. Both members converged
171
+ on **Option B**:
172
+
173
+ - Add `subagent` to `_CATEGORY_VALUES` + `_CATEGORY_SCHEMA` + the `_iter_artefacts`
174
+ glob (`src/subagents/*.md`), and give `_classify` a **subagent branch** that
175
+ derives the manifest payload from the subagent-v1 fields:
176
+ `install: {default: false, removable: true}` (default-off), `packs: []`,
177
+ `workspaces: []`, plus `lifecycle` + `trust`.
178
+ - **`packs: []` is legitimate** — "recommended for no pack; included only via
179
+ `include: ["subagent:<name>"]`". The "every artefact belongs to ≥1 pack"
180
+ invariant becomes "every artefact **except subagents**". Verified safe: every
181
+ manifest consumer of `.packs` already guards against empty
182
+ (`check_condensation`, `install`, `condense`, `lint_trust_coherence`), and
183
+ `lint_artefact_frontmatter` does not scan `src/subagents/`.
184
+ - The `discovery-manifest.schema.json` `category` enum + `by_category` gain
185
+ `subagent`; the `workspaces`/`packs` `minItems: 1` is relaxed to a documented
186
+ note (non-emptiness for real categories stays enforced by `_classify`).
187
+
188
+ **Rejected:** Option A (extend the schema with workspaces/packs/install →
189
+ duplicate visibility source, de-facto ADR reversal) and Option C (keep subagents
190
+ out of the manifest + a parallel name-resolver → duplicate load/parse/validate
191
+ pipeline; LSP/tooling would need two discovery paths). "5th discovery category"
192
+ is manifest terminology, so Option B satisfies A1 literally.
193
+
194
+ The manifest (`dist/discovery/discovery-manifest.json`) is a **gitignored** build
195
+ artifact — CI rebuilds it fresh, so this is a generator + schema change, not a
196
+ committed-data change.
197
+
198
+ ## Amendment 2 (2026-07-05) — consumer distribution = wedge-only (A2)
199
+
200
+ How subagents reach **consumers** (as opposed to the in-repo `.claude/agents/`
201
+ projection): a fresh council (**claude-fable-5 + gpt-4o**, 2 rounds) converged on
202
+ **wedge-only distribution**, reversing an earlier "synthesis" lean once the
203
+ implementation blast-radius evidence was in hand.
204
+
205
+ - **Decision:** subagents reach consumers ONLY via the wedge
206
+ (`docs/wedge/<name>/<name>.md`, shipped in npm `files[]` via `docs/`, installed
207
+ by a 30-second `curl` into `.claude/agents/`). They are **not** condensed to
208
+ `dist/`, **not** in the install bundle, and **not** in the shared source
209
+ enumeration (`_root_specs()` / `iter_all_sources` / `resolve_logical`).
210
+ - **Why not ship in dist (the rejected synthesis):** `condense.cleanup_stale()`
211
+ deletes any `dist/agent-src/` file that does not round-trip through
212
+ `resolve_logical()`, so shipping subagents in dist requires teaching the shared
213
+ `_root_specs()` about them — a cross-cutting change to ~10 consumers
214
+ (`build_discovery_manifest`, three frontmatter/pack linters, namespace checks,
215
+ …). Exclusion-based containment would produce a **shipped-but-ungoverned**
216
+ executable-prompt class — for a *governed* config layer, worse than the blast
217
+ radius it hides. Marginal consumer value at n=1 unit ≈ one fewer curl for an
218
+ opt-in, high-trust artifact — not worth it. Revisit only at n≥3 units **and** a
219
+ documented curl-distribution failure signal.
220
+ - **The wedge doc is now a projection of `src/subagents/`** (superseding the
221
+ hand-written copy), regenerated from `generate_claude_subagents()` so the two
222
+ channels cannot drift.
223
+
224
+ **A2 install-completeness gate** (`tests/scripts/subagent_distribution.test.ts`):
225
+ wedge↔src projection fidelity (no drift); coverage (every unit has a wedge doc);
226
+ and negative-wiring locks — `resolve_logical('subagents/…')` is null, no
227
+ `subagents/` path in `iter_all_sources`, the installer references no
228
+ `dist/agent-src/subagents`, and `dist/agent-src/subagents/` does not exist. No
229
+ byte-budget check (an arbitrary threshold on a system prompt is cargo-cult).
230
+
231
+ *(Council side-fix: `AnthropicClient` extracted only `content[0].text`, dropping
232
+ extended-thinking models' output — claude-fable-5 returned 3191 output tokens as
233
+ empty text. Fixed to join all text-type blocks.)*
234
+
235
+ ## References
236
+
237
+ - Council debate 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds).
238
+ - Amendment-2 council 2026-07-05 (claude-fable-5 + gpt-4o, 2 rounds) — consumer distribution = wedge-only.
239
+
240
+ - Council debate 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds).
241
+ - Amendment-1 council 2026-07-04 (claude-sonnet-4-5 + gpt-4o, 2 rounds) — manifest integration = Option B.
242
+ - ADR-034 / ADR-035 — `model_tier` → native model mapping (reused, not replaced).
243
+ - `docs/contracts/subagent-boundary.md` — what a subagent owns vs. never owns.
244
+ - `src/skills/subagent-orchestration/SKILL.md` — the in-session orchestration modes.
245
+ - `road-to-final-state-and-market-readiness.md` — Track A (A1 keystone; A2 pipeline
246
+ proof; A3 eval gate).
@@ -0,0 +1,105 @@
1
+ ---
2
+ adr: 110
3
+ status: accepted
4
+ date: 2026-07-07
5
+ decision: discipline-profile-resolution-locus
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: road-to-discipline-profile-tiering
9
+ type: standing
10
+ ---
11
+
12
+ # ADR-110 — `discipline_profile` resolves at runtime (agent-in-the-loop); projection stays configuration-independent
13
+
14
+ ## Status
15
+
16
+ **Accepted** · 2026-07-07 · maintainer decision implementing two same-day
17
+ AI-council verdicts (claude-sonnet-4-5 + gpt-4o, 2-round debates each):
18
+ weak-host-lift tiering (`agents/settings/contexts/weak-host-lift-tiering-verdict.md`)
19
+ and token-program integration (`agents/settings/contexts/token-program-integration-verdict.md`).
20
+
21
+ ## Context
22
+
23
+ The cost-factor sweep (`docs/benchmark.md § Cost-factor sweep`) established
24
+ that the package's weak-host discipline lift survives at ~3.3x tokens
25
+ (kernel + `downstream-changes`) with no significant residual from the full
26
+ ~11.7x load, and that hosts differ: `claude-sonnet-4-6` is a measured NULL
27
+ (discipline ceiling). The councils converged on ONE runtime knob —
28
+ `discipline_profile: auto | off | essential | full` — with `auto` gating the
29
+ lift layer per host via an evidence-gated NULL-lift disable-list.
30
+
31
+ The open design question this ADR records: **where does `auto` resolve?**
32
+ Projection is static per project, but the host model is a *runtime* fact — a
33
+ project is opened by Haiku one session and Fable the next, across vendors
34
+ (Claude, GPT, Gemini, open-source). Candidates considered:
35
+
36
+ 1. **Runtime resolution (agent-in-the-loop)** — the agent resolves the knob
37
+ at session start against `src/config/host-capabilities.yml`.
38
+ 2. **Per-tool projection variants** — emit per-model projections; the host
39
+ picks one. Rejected: no host tool selects projections by model; N×M
40
+ projection matrix; violates the ADR-040 principle that trigger semantics
41
+ stay configuration-independent.
42
+ 3. **Hook-based rewrite** — a session-start hook mutates the loaded surface.
43
+ Rejected: hooks are deny/warn-only in the cross-host v1 contract (no
44
+ transparent rewrite); Claude-only mechanisms are forbidden here.
45
+
46
+ ## Decision
47
+
48
+ 1. **`discipline_profile` is a runtime knob, resolved agent-in-the-loop** —
49
+ the same enforcement model as `provider-lifecycle-discipline` (the agent
50
+ reads a declared fact at run time and applies the obligation; CI guards
51
+ the facts, not the runtime). Resolution semantics live in ONE function,
52
+ `resolve_discipline_profile()`
53
+ (`src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts`):
54
+ explicit value wins → `auto` checks the session model id against
55
+ `host-capabilities.yml` (prefix match; measured-NULL → `off`, otherwise →
56
+ `essential` under `unknown_default: lift_enabled`) → absent key maps from
57
+ legacy `rule_loading_tier` (minimal→off, balanced→essential, full→full,
58
+ custom→custom) → both absent → `essential`.
59
+ 2. **`host-capabilities.yml` is an evidence-gated disable-list, never a
60
+ taxonomy.** Entries name only models with a MEASURED null lift, each with
61
+ `measured:` provenance (date · pinned report · N) or an explicit
62
+ `extrapolated: true` maintainer flag. Unknown models resolve fail-safe to
63
+ the lift (`essential`). Vendor-neutral by construction: any model id can
64
+ be measured onto the list.
65
+ 3. **Projection is unchanged by this ADR.** Bodies still project per
66
+ `lean_projection.mode` (eager-all today); the knob governs which
67
+ discipline tiers the agent honours at runtime — exactly the semantics the
68
+ legacy `rule_loading_tier` already had. The *physical* per-host token
69
+ saving lands when thin projection un-defers (as a sub-mechanism of
70
+ `essential`, re-swept, per the token-program-integration verdict), at
71
+ which point `lean_projection.mode` is absorbed. This keeps ADR-040's
72
+ guarantee: trigger semantics are configuration-independent.
73
+ 4. **`discipline_profile` joins `MERGEABLE_KEYS`** (user-global cascade), as
74
+ the successor of the already-mergeable `rule_loading_tier`.
75
+ 5. **Defaults are evidence-gated.** The template ships the key commented-out
76
+ (legacy mapping applies) until the P1 full-corpus + P2 non-Claude gates
77
+ pass (`agents/roadmaps/road-to-discipline-profile-tiering.md`); the flip
78
+ target is `auto`.
79
+
80
+ ## Consequences
81
+
82
+ - One resolution function, unit-tested, shared by scripts and documented for
83
+ agents — no per-tool drift in mapping semantics.
84
+ - Strong hosts get an honest `off` the moment their null is *measured*, never
85
+ by vendor folklore; the disable-list only grows by measurement.
86
+ - Until thin projection lands, `auto`/`essential` on an eager-projection host
87
+ changes which rules the agent honours, not the loaded bytes — the cost
88
+ claims in the settings docs say so explicitly (the measured 3.3x applies
89
+ where loading is physical: sysprompt injection today, thin projection
90
+ later).
91
+ - The legacy `rule_loading_tier` stays readable indefinitely; the wizard and
92
+ presets migrate when the `balanced` cut is retired (roadmap Phase 2).
93
+
94
+ ## Alternatives
95
+
96
+ Per-tool projection variants and hook rewrites (rejected above); a maintained
97
+ strong/weak model registry (explicitly rejected by the tiering council —
98
+ speculative, unmaintainable at model-release cadence).
99
+
100
+ ## References
101
+
102
+ - `agents/settings/contexts/weak-host-lift-tiering-verdict.md`
103
+ - `agents/settings/contexts/token-program-integration-verdict.md`
104
+ - `docs/benchmark.md § Cost-factor sweep`
105
+ - ADR-040 (projection-time filtering), ADR-002 (kernel budget)
@@ -112,6 +112,8 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
112
112
  | [ADR-106](ADR-106-recursive-verification-benchmark-gate.md) | Recursive Verification Benchmark Gate | accepted | 2026-06-23 | — |
113
113
  | [ADR-107](ADR-107-legal-domain-pack-adoption.md) | Legal Domain Pack Adoption | accepted | 2026-06-24 | — |
114
114
  | [ADR-108](ADR-108-open-source-forever-no-commercial-tier.md) | Open Source Forever No Commercial Tier | accepted | 2026-06-24 | — |
115
+ | [ADR-109](ADR-109-subagent-v1-contract.md) | Subagent V1 Contract | accepted | 2026-07-04 | — |
116
+ | [ADR-110](ADR-110-discipline-profile-resolution-locus.md) | Discipline Profile Resolution Locus | accepted | 2026-07-07 | — |
115
117
  | [ADR-200](ADR-200-python-to-typescript-migration.md) | Python To Typescript Migration | accepted | 2026-06-11 | — |
116
118
 
117
119
  ## Unnumbered (legacy)
@@ -0,0 +1,46 @@
1
+ # awesome-list submission — DRAFT (not yet submitted)
2
+
3
+ > Market-readiness roadmap B5. Submission copy for the community
4
+ > "awesome-claude-code" / "awesome-claude-code-subagents" lists. **Draft only** —
5
+ > submitting is a human act. Every line here is ledger-consistent: no unbacked
6
+ > number, no invented third-party comparison. Lead with the wedge, not the OS.
7
+
8
+ ## Where to submit
9
+
10
+ Candidate lists (verify each is active + read its CONTRIBUTING before opening a PR):
11
+
12
+ - `awesome-claude-code` (skills / plugins / tooling)
13
+ - `awesome-claude-code-subagents` (the wedge fits here — a single subagent)
14
+
15
+ Track status in [`registry-submissions.md`](registry-submissions.md).
16
+
17
+ ## Entry A — the wedge (lead with this)
18
+
19
+ **production-validator** — a read-only Claude Code subagent that runs the last
20
+ gate before "done": it hunts mocks, stubs, and placeholders on the shipped
21
+ (non-test) path and demands real-system evidence, returning a `READY` / `NOT
22
+ READY` verdict with `file:line` citations. One `curl` into `.claude/agents/`, no
23
+ other install, no runtime.
24
+
25
+ - Link: `https://github.com/event4u-app/agent-config/tree/main/docs/wedge/production-validator`
26
+ - One-liner (list-row form): `production-validator — the last-gate-before-done subagent: no mock/stub survives on the shipped path; install in one curl.`
27
+
28
+ ## Entry B — the suite (secondary)
29
+
30
+ **event4u/agent-config** — a governed, no-runtime configuration layer for AI
31
+ coding agents: audited skills, review personas, rules, and commands projected
32
+ into 7+ hosts (Claude Code, Cursor, Windsurf, Copilot, …). Its distinguishing
33
+ discipline: **every public claim is machine-checked** — the README binds each
34
+ claim to resolvable evidence in a Claims-Ledger, and a generated proof page lets
35
+ anyone reproduce the checks (`docs/proof.md`). Bring your own model.
36
+
37
+ - Link: `https://github.com/event4u-app/agent-config`
38
+ - One-liner: `agent-config — governed skills/rules/personas for AI coding agents, with machine-checked claims and a reproducible proof page. No runtime, bring your own model.`
39
+
40
+ ## Guardrails for whoever submits this
41
+
42
+ - Do **not** add a performance number or a "better than X" comparison — the
43
+ suite's whole position is that claims are verifiable, so an unverifiable
44
+ submission line would be self-defeating.
45
+ - Keep the wedge first: it is the low-friction door. The suite is the follow-on.
46
+ - Re-check the target list is still maintained + follow its exact entry format.
@@ -0,0 +1,58 @@
1
+ # Launch-story — DRAFT (not published)
2
+
3
+ > Market-readiness roadmap B5. A short narrative draft for a launch post
4
+ > (Show HN / dev.to / discussions), centered on the wedge + reproducible honesty.
5
+ > **Draft only** — not published; the final headline is gated on the B0
6
+ > positioning decision. Every claim must stay ledger-bound; no unbacked number,
7
+ > no third-party performance comparison.
8
+
9
+ ## Angle
10
+
11
+ Not "another agent framework." The hook is **reproducible honesty**: an AI-agent
12
+ config layer where every public claim is machine-checked, and you can verify it
13
+ yourself in one command. Open with the wedge (something the reader installs in 30
14
+ seconds), then reveal the discipline behind it.
15
+
16
+ ## Draft body
17
+
18
+ > Most AI-agent tooling asks you to trust a headline number. This one lets you
19
+ > **check it.**
20
+ >
21
+ > Start small — one file, 30 seconds:
22
+ >
23
+ > ```bash
24
+ > curl -fsSL https://raw.githubusercontent.com/event4u-app/agent-config/main/docs/wedge/production-validator/production-validator.md \
25
+ > -o .claude/agents/production-validator.md
26
+ > ```
27
+ >
28
+ > `@production-validator` is a read-only Claude Code subagent that runs the last
29
+ > gate before "done": it finds the mock/stub/placeholder still sitting on your
30
+ > shipped path and the "done" that was only ever validated against fakes.
31
+ >
32
+ > That one subagent is a slice of a larger governed layer — skills, review
33
+ > personas, rules, commands across 7+ hosts, no runtime. What makes it different
34
+ > isn't the size; it's that **the marketing is under CI too.** Every claim in the
35
+ > README binds to evidence in a ledger, a generated proof page renders those
36
+ > bindings plus the benchmark runs where the tool changed *nothing*, and a
37
+ > "verify it yourself" block reproduces all of it on a fresh checkout. If a claim
38
+ > ever loses its binding, the build goes red.
39
+ >
40
+ > Try the one file. If it earns its place, the rest is `npx @event4u/agent-config init`.
41
+
42
+ ## Placeholders to resolve before publishing
43
+
44
+ - **H1 (decided, B0 · 2026-07-04):** *"Agent Config — every claim machine-checked,
45
+ including 'zero runtime'."* — adopted from the council's verifiability-as-frame
46
+ option. Use this headline for the post; do not substitute a provisional one.
47
+ - Confirm the raw `curl` URL resolves on `main` at publish time.
48
+ - Link the live proof page once a docs site (Starlight) hosts it, if built.
49
+
50
+ ## Guardrails
51
+
52
+ - No performance claim or third-party comparison in the post.
53
+ - The "benchmark runs where the tool changed nothing" line points at real
54
+ published nulls (`docs/benchmark.md`) — keep it truthful, do not dramatize.
55
+ - Include the honest-provenance note: the skills/rules/personas are distilled
56
+ from real TypeScript/PHP production work; the governance is stack-agnostic but
57
+ domain heuristics are richest where forged — coverage elsewhere is promising,
58
+ not proven. (Roadmap B5.)
@@ -3,7 +3,7 @@
3
3
  Four cycle-by-cycle traces of the engine commands — backend ticket,
4
4
  free-form prompt, UI track, and a blocked path. Each walkthrough cites
5
5
  a checked-in **golden transcript** under [`tests/golden/baseline/`](../tests/golden/baseline/);
6
- the transcripts are regenerated by `python3 -m tests.golden.capture` and
6
+ the transcripts are regenerated by `node node_modules/.bin/tsx tests/golden/capture.ts` and
7
7
  diffed in CI, so the cycle counts and directive names below stay
8
8
  in sync with the engine's actual behavior.
9
9
 
@@ -156,7 +156,7 @@ No work is committed, no auto-guess is taken.
156
156
  ## Reproducing these locally
157
157
 
158
158
  ```bash
159
- python3 -m tests.golden.capture --scenarios GT-1 GT-P1 GT-U2 GT-2
159
+ node node_modules/.bin/tsx tests/golden/capture.ts --scenarios GT-1 GT-P1 GT-U2 GT-2
160
160
  ```
161
161
 
162
162
  Each scenario writes a fresh `transcript.json`, `delivery-report.md`,
@@ -129,7 +129,7 @@ Your agent is now:
129
129
  - **Respecting your codebase** — no conflicting patterns
130
130
  - **Following standards** — consistent code quality
131
131
 
132
- This is enforced automatically by 93 rules. No configuration needed.
132
+ This is enforced automatically by 95 rules. No configuration needed.
133
133
 
134
134
  ---
135
135
 
@@ -169,7 +169,7 @@ Your agent now understands slash commands:
169
169
  | `/quality-fix` | Run and fix all quality checks |
170
170
  | `/chat-history import` | Pull a prior session into the current chat (resume) |
171
171
 
172
- → [Browse all 162 active commands](../dist/agent-src/commands/)
172
+ → [Browse all 166 active commands](../dist/agent-src/commands/)
173
173
 
174
174
  ---
175
175
 
@@ -91,6 +91,21 @@ Hedge-language patterns:
91
91
  - ❌ "probably" alone — name what's unverified
92
92
  - ❌ "vermutlich" without hedge target <!-- md-language-check: ignore -->
93
93
 
94
+ ### Volatile-fact freshness — which claims need a live source
95
+
96
+ Generalizes `direct-answers` Iron Law 2's git/PR live-state clause to any
97
+ research or knowledge claim, not just repo state.
98
+
99
+ | Class | Examples | Rule |
100
+ |---|---|---|
101
+ | **Fresh-lookup** | current role/status of a person or org, prices/versions/quotas, laws & regulatory policy, an unrecognized entity (tool, package, product), a binary event (release, deprecation, incident) | Never answer from model memory — search or cite a live source, every time. These change silently and staleness is invisible until wrong. |
102
+ | **Stable** | math/CS fundamentals, settled historical facts, language/framework basics pinned by the project's own lockfiles | Model knowledge is acceptable; no live lookup required. |
103
+
104
+ The line is whether the fact **could have changed since training** in a way
105
+ that matters for the claim. When in doubt, treat it as fresh-lookup — the
106
+ cost of one extra search is far lower than a stale claim stated with
107
+ confidence.
108
+
94
109
  ## Direct-answers — failure modes the user will call out
95
110
 
96
111
  Companion to `direct-answers` § Failure modes. The rule lists the
@@ -107,6 +122,15 @@ correction pattern.
107
122
  Acknowledge once, in the user's language, switch behavior, no
108
123
  excuses (mirrors `language-and-tone` § slip handling).
109
124
 
125
+ ### Bullet floor
126
+
127
+ Companion to `direct-answers` § Iron Law 3. Multi-step content earns
128
+ bullets; each bullet is a complete 1–2-sentence statement, never a
129
+ fragment masquerading as a list item ("Faster." / "Better UX." with no
130
+ subject or verb). A decline or refusal is never rendered as a bulleted
131
+ list of reasons — declines are short prose, one or two sentences, because
132
+ a bulleted refusal reads as a checklist to argue against rather than a
133
+ direct answer.
110
134
 
111
135
  ## No Cheap Questions — Iron Law 3 detail (paternalistic state options)
112
136
 
@@ -49,7 +49,7 @@ src/skills/<domain-skill>/data/
49
49
  options, the human confirms. Directive integration is the exception,
50
50
  not the goal ("directive engines everywhere" = orchestration envy).
51
51
  - Validate before merge:
52
- `python3 src/skills/corpus-grounding/scripts/ground.py validate --manifest …`
52
+ `./scripts-run src/skills/corpus-grounding/scripts/ground validate --manifest …`
53
53
  plus a smoke query, plus an eval-fixture test under `tests/`.
54
54
 
55
55
  ## 3. Governance per shipped corpus (Step 9.8)
@@ -28,8 +28,8 @@ recorded decision (opted-in or declined).
28
28
  Run the detector against the project root:
29
29
 
30
30
  ```bash
31
- python3 -c "from scripts._lib.linked_projects import detect_linked_projects; \
32
- import json,sys; print(json.dumps(detect_linked_projects('.')))"
31
+ ./scripts-run src/scripts/_lib/linked_projects detect .
32
+
33
33
  ```
34
34
 
35
35
  It returns config-attached siblings only (PhpStorm `.idea/modules.xml` +
@@ -42,11 +42,11 @@ before working around it or installing it.
42
42
 
43
43
  ```
44
44
  > `yq` is not installed. It's the cleanest way to parse the ticket YAML
45
- > in the Bash prototype — the alternative is shelling out to python3,
46
- > which adds ~50ms to every run.
45
+ > in the Bash prototype — the alternative is a JSON conversion step,
46
+ > which adds ~20ms to every run.
47
47
  >
48
48
  > 1. Install via `brew install yq` (recommended — one-time, stays on PATH)
49
- > 2. Use the python3 fallback — slower but no install needed
49
+ > 2. Use JSON conversion fallback — slower but no install needed
50
50
  > 3. Drop YAML — convert fixtures to JSON, use `jq` only
51
51
  > 4. Skip this path — I propose a different approach
52
52
  ```
@@ -39,7 +39,7 @@ User: ist der Fix fertig?
39
39
 
40
40
  Agent: Frisch gerade ausgeführt:
41
41
 
42
- $ python3 -m pytest tests/test_load_context.py -v
42
+ $ node node_modules/.bin/vitest run tests/scripts/load_context.test.ts
43
43
  ============================== 7 passed in 0.07s ===============================
44
44
 
45
45
  Exit code 0, 7/7 grün. Damit ist der Fix verifiziert.
@@ -74,7 +74,7 @@ User: also fertig zum committen?
74
74
 
75
75
  Agent: Ich verifiziere kurz — Tests laufen jetzt:
76
76
 
77
- $ python3 -m pytest tests/ -q
77
+ $ node node_modules/.bin/vitest run -q
78
78
  ... 47 passed in 2.31s
79
79
 
80
80
  Grün. Plus ein quality-tools-Lauf:
@@ -48,7 +48,7 @@ Use direct script invocations instead.
48
48
  A subset of package scripts is exposed through a project-local CLI
49
49
  wrapper `./agent-config` (written into the project root by the
50
50
  installer, gitignored). Artefacts MUST prefer the CLI over raw
51
- `python3 scripts/…` paths for every command the CLI already covers.
51
+ `./scripts-run src/scripts/…` paths for every command the CLI already covers.
52
52
 
53
53
  ## Translation tables — see mechanics
54
54
 
@@ -84,6 +84,25 @@ used once — inline it.
84
84
  inference makes this redundant in PHP 8+, TS, Python 3.10+, Go,
85
85
  Rust, etc. Annotate the parameter or return type instead.
86
86
 
87
+ ## Comment discipline — state a constraint, not a narration
88
+
89
+ A code comment earns its place only by stating a constraint the code
90
+ itself can't show — a non-obvious invariant, a workaround for a specific
91
+ bug, a hidden dependency. It never narrates:
92
+
93
+ - **Provenance** — "added for the X feature", "per ticket #123". That
94
+ belongs in the commit message or PR description, not the code; it rots
95
+ the moment the feature or ticket is forgotten.
96
+ - **What the next line does** — well-named identifiers already say it.
97
+ A comment repeating the code is noise the reader skips past.
98
+ - **Why the change is correct** — that's a message to the reviewer, not
99
+ to the next person reading the file after it's merged.
100
+
101
+ Test: would removing the comment leave a future reader confused about a
102
+ non-obvious constraint? If yes, keep it — tightened to the constraint
103
+ alone. If the comment only restates what identifiers already convey, or
104
+ explains the change's history rather than the code's behavior, cut it.
105
+
87
106
  ## See also
88
107
 
89
108
  - Language-specific anchors that link to this guideline:
@@ -5,7 +5,8 @@
5
5
  "Review this UI mockup for AI-slop patterns",
6
6
  "Create a feature card section with icons and descriptions",
7
7
  "Generate a hero section with a big metric and supporting stats",
8
- "The design looks generic — how do I make it more distinctive?"
8
+ "The design looks generic — how do I make it more distinctive?",
9
+ "Remove the rocket emojis from the hero buttons — it looks AI-generated"
9
10
  ],
10
11
  "should_not_pull": [
11
12
  "Fix the authentication bug in the login controller",