@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,35 @@
1
+ # B7 — comparison-honesty rows for the proof page.
2
+ #
3
+ # The point is the `checkable` column, not a takedown. For each dimension we
4
+ # cite OUR evidence as a resolvable pointer (file / file#substring / ledger id),
5
+ # and state what is PUBLICLY OBSERVABLE about the wider category — never a named
6
+ # competitor (source-confidentiality), never a counter-claim to their headline
7
+ # number. A category headline figure (e.g. an "84.8%" score) is cited ONLY as
8
+ # uncheckable: no reproducible methodology is published, so it cannot be verified
9
+ # either way — that is the whole point.
10
+ #
11
+ # check_comparison.ts enforces: every `our_evidence` resolves (reuses the
12
+ # check_claims pointer resolver); every `checkable: true` row's `our_evidence`
13
+ # resolves. build_proof renders these rows. check_no_external_sources guarantees
14
+ # no named source leaks in.
15
+
16
+ rows:
17
+ - claim: "No runtime — no background daemon, no state database, no auto-write memory."
18
+ our_evidence: "docs/contracts/no-runtime-boundary.md#file-first"
19
+ their_evidence: "Swarm-runtime tools in this category ship a background process and/or a state store by design; that is an architectural fact of the runtime approach, not a defect."
20
+ checkable: true
21
+
22
+ - claim: "Capability/benchmark results are published — including the runs where the package changed nothing."
23
+ our_evidence: "docs/benchmark.md"
24
+ their_evidence: "A category headline figure (e.g. an '84.8%' score) appears across marketing surfaces with no reproducible methodology published — so it cannot be verified either way."
25
+ checkable: true
26
+
27
+ - claim: "Every public claim binds to machine-checked evidence."
28
+ our_evidence: "docs/CLAIMS.md"
29
+ their_evidence: "Marketing claims in this category are not bound to a machine-checked ledger a reader can reproduce."
30
+ checkable: true
31
+
32
+ - claim: "Skills publish their own known limits, each with a witness test."
33
+ our_evidence: "tests/scripts/witness/check_refs_relative_gap.test.ts"
34
+ their_evidence: "Published known-limitation surfaces backed by reproducing tests are not a standard artifact in this category."
35
+ checkable: true
@@ -0,0 +1,148 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
6
+ # `agents/` Directory Layout Contract
7
+
8
+ > **Do not bypass this contract.** Every entry at the `agents/` root — file or
9
+ > directory — must appear in this table. Unknown entries are CI violations
10
+ > (`lint_agents_layout.ts` enforces this in source-repo mode, warns in consumer
11
+ > mode). Adding a new top-level entry requires a PR that also updates this table
12
+ > and the classification manifest (`src/config/agents-paths.yml`).
13
+
14
+ ## Design invariants
15
+
16
+ 1. **The `agents/` root stays flat-minimal.** Content lives in typed
17
+ subdirectories. New flat files require a contract edit and explicit rationale
18
+ (six whitelisted flat files exist; no new ones without a deliberate decision).
19
+ 2. **`agents/tmp/` is the user's inbox; `agents/tmp.old/` is the processed
20
+ archive.** The agent reads inbox files and moves them to `tmp.old/` after
21
+ consumption. The agent's own scratch goes to `agents/runtime/tmp/` or the
22
+ session scratchpad. See § User Inbox Workflow below.
23
+ 3. **Both `tmp/` and `tmp.old/` are gitignored in every scope.** Consumer
24
+ projects would commit their inbox without the managed block entry.
25
+
26
+ ---
27
+
28
+ ## Whitelisted flat files
29
+
30
+ | File | Git policy | Owner | Rationale |
31
+ |---|---|---|---|
32
+ | `index.md` | tracked-durable | agents (auto-regenerated) | Human-readable full index; regenerated by `./agent-config roadmap:progress` |
33
+ | `roadmaps-progress.md` | tracked-durable | agents (auto-regenerated) | Roadmap dashboard; regenerated by `./agent-config roadmap:progress` |
34
+ | `.agent-tools.yml` | tracked-durable | maintainer | Declares which tool projections `task generate-tools` builds |
35
+ | `.maintainer-workspace.md` | tracked-durable | maintainer | Maintainer-facing workspace notes; source-repo only |
36
+ | `.gitkeep` | tracked-durable | — | Keeps `agents/` in the tree even when all other files are ignored |
37
+ | `installed-tools.lock` | **local-only** (gitignored) | installer (`scripts/install.py`) | Per-user install inventory; leaks `$HOME`; consumer-only artefact, must never be committed in the source repo |
38
+
39
+ ---
40
+
41
+ ## Directory table
42
+
43
+ Scope column: `pkg` = source repo only · `consumer` = consumer projects only · `both` = all.
44
+
45
+ | Directory | Scope | Git policy | Retention | Owner | Purpose |
46
+ |---|---|---|---|---|---|
47
+ | `decisions/` | pkg | tracked-durable | permanent | council + humans | Low-impact council corpus, open questions, per-decision ADRs |
48
+ | `evidence/` | pkg | tracked-durable (see notes) | permanent | tooling + humans | Research, analysis, audits, eval findings, metrics — everything evidential. Sub-dirs: `analysis/`, `audits/`, `architectural-drift/`, `archived-skills/`, `council/`, `eval-findings/`, `eval-corpora/`, `investigations/`, `mcp-sessions/`, `metrics/`, `notes/`, `reports/` |
49
+ | `features/` | pkg | tracked-durable | permanent | maintainer | Feature-flag status docs (long-form complement to `.agent-tools.yml`) |
50
+ | `knowledge/` | both | tracked-durable | permanent | human-gated (`/team-knowledge` skills) | Curated committed knowledge pages (sessions/, concepts/, procedures/, decisions/). Committed only after human review; never auto-written |
51
+ | `memory/` | both | mixed (see notes) | permanent (durable) / TTL (intake) | `/memory:*` skills | Layer 1 memory pipeline: `intake/` (gitignored JSONL), `knowledge/` subdir (mirrors top-level knowledge/). Intake is local-only; curated YAML in subdirs is committed |
52
+ | `notes/` | pkg | tracked-durable | permanent | maintainer | Ad-hoc analyst notes that are not evidence/reports (e.g. `visibility-sync-audit.md`). **Merge candidate** — new notes land in `evidence/notes/` going forward; existing file stays for now |
53
+ | `overrides/` | both | tracked-durable | permanent | humans (`/override:*`) | Per-project skill/rule/command/guideline overrides; the only consumer-committed customisation layer |
54
+ | `recruit-sessions/` | pkg | tracked-durable | permanent | maintainer | User-recruit study session data and runbooks |
55
+ | `reference/` | pkg | tracked-durable | permanent | maintainer | External reference material: `ai-video/`, `docs/`, `ghostwriter/` |
56
+ | `roadmap-assets/` | pkg | tracked-durable | permanent | maintainer | Supplemental assets for specific roadmaps (e.g. design-asset `.assets.md` files). **Merge candidate** — new assets can land in `evidence/` or alongside the roadmap file |
57
+ | `roadmaps/` | pkg | tracked-durable | permanent | agents + maintainer | Active roadmaps; sub-dirs: `archive/`, `later/`, `skipped/`, `stubs/` |
58
+ | `roles/` | pkg | tracked-durable | permanent | maintainer | Role-definition docs for consumer user-types (consultant, galabau, support, …) |
59
+ | `runtime/` | both | **local-only** (gitignored, entire tree) | session / TTL | multiple scripts | Volatile runtime artefacts: council sessions/responses, price cache, chat-history, budget history, hook state, logs, mcp-telemetry, dispatcher lock, tmp scratch. Nothing inside is ever committed |
60
+ | `settings/` | pkg | tracked-durable | permanent | maintainer | Long-lived package-level configuration and context documents: `contexts/`, `policies/` |
61
+ | `state/` | both | **local-only** (gitignored) | session / TTL | hooks | Tier-1 hook runtime state (context-hygiene, verify-before-complete, etc.), the hot-context working-memory cache (`hot-context.md` — bounded 400 words, fixed sections `Last Updated / Branch / Key Facts / Active Threads / Open Verifications / Recent Changes`, overwritten on every `stop`, restored on `session_start`), and GUI wizard resume snapshot. Never committed |
62
+ | `templates/` | pkg | tracked-durable | permanent | maintainer | Reusable template files for agents (currently empty; reserved for future use) |
63
+ | `tickets/` | pkg | tracked-durable | permanent | maintainer + `emit-tickets` | Ticket bundles (`_registry.yml`, per-bundle dirs); governed by `road-to-ticket-bundles.md` |
64
+ | `tmp/` | both | **local-only** (gitignored, BOTH scopes) | user-owned | **user only** | User inbox: free-form notes/todos for the agent to consume. Never auto-swept. See § User Inbox Workflow |
65
+ | `tmp.old/` | both | **local-only** (gitignored, BOTH scopes) | TTL (30 days) | agent (moves only) | Processed inbox archive: the agent moves consumed `tmp/` files here after processing. Auto-swept by janitor at 30-day TTL; user can also delete manually |
66
+ | `.harvest-local/` | pkg | **local-only** (gitignored) | retained evidence | maintainer | Source-confidentiality: named external-reference harvest evidence. 74 MB; never committed (see `source-confidentiality` rule) |
67
+
68
+ ---
69
+
70
+ ## User Inbox Workflow
71
+
72
+ ```
73
+ agents/tmp/ ← USER drops notes, todos, draft ideas here
74
+ ↓ agent reads + processes (roadmap create, memory promote, etc.)
75
+ agents/tmp.old/ ← AGENT moves the consumed file here, same reply
76
+ ↓ janitor sweeps after 30 days
77
+ (deleted)
78
+ ```
79
+
80
+ **Rules:**
81
+
82
+ - `agents/tmp/` is the **user's space** — the agent only reads and moves from
83
+ it; the agent never writes files into it.
84
+ - After consuming a file from `agents/tmp/` (as a command input), the agent
85
+ moves it to `agents/tmp.old/<original-name>` in the **same reply** as the
86
+ processing. No confirmation needed (gitignored, reversible, local-only).
87
+ - The agent's own scratch (intermediate calculations, session notes) goes to
88
+ the **session scratchpad** or `agents/runtime/tmp/` — never into `agents/tmp/`.
89
+ - `agents/tmp/` is **never** auto-swept by the janitor — it belongs to the user.
90
+ The janitor only touches `agents/tmp.old/` (TTL = 30 days).
91
+ - Both directories are gitignored in **package and consumer scope** (entry in
92
+ `src/config/agents-paths.yml` with `scope: both`).
93
+
94
+ ---
95
+
96
+ ## Consumer-only scope (slim profile)
97
+
98
+ After `agent-config migrate`, a consumer project's `agents/` contains only:
99
+
100
+ | Entry | Rationale |
101
+ |---|---|
102
+ | `overrides/` | Per-project skill/rule customisation |
103
+ | `.event4u-bridge.yml` | ADR-020 bridge marker (global-only install) |
104
+ | `.gitkeep` | Keeps `agents/` in the tree |
105
+ | `knowledge/` | Optional: curated project-specific knowledge pages |
106
+ | `memory/` | Optional: promotion pipeline (intake gitignored, curated YAML committed) |
107
+ | `roadmaps/` | Optional: project-local roadmaps |
108
+ | `tmp/` | Optional: user inbox (gitignored) |
109
+ | `tmp.old/` | Optional: processed inbox archive (gitignored) |
110
+
111
+ Entries that are **not** expected in consumers (and that `agent-config doctor`
112
+ will warn about): `evidence/`, `decisions/`, `features/`, `reports/`,
113
+ `recruit-sessions/`, `settings/`, `roles/`, `reference/`, `roadmap-assets/`,
114
+ `notes/`, `tickets/`, `templates/`, `runtime/`, `state/`.
115
+
116
+ ---
117
+
118
+ ## Overlap decisions (2026-07-06)
119
+
120
+ | Pair | Decision |
121
+ |---|---|
122
+ | `evidence/` vs `reports/` vs `notes/` | **Keep `evidence/` as the umbrella.** `evidence/reports/` and `evidence/notes/` already exist as subdirs. New reports/notes land there. The top-level `reports/` and `notes/` are **legacy** — no new files; existing files can be migrated per future clean-up PR (non-blocking). |
123
+ | `memory/` vs `knowledge/` | **Keep both** with a crisp boundary: `knowledge/` = committed curated pages (human-reviewed); `memory/` = promotion pipeline (intake is gitignored JSONL; only curated YAML subsets get committed). |
124
+ | `templates/` vs `roadmap-assets/` | **Both empty/minimal — keep as reserved.** `templates/` = reusable agent-facing templates; `roadmap-assets/` = supplemental for specific roadmaps. New assets prefer `evidence/` sub-dirs unless they are true roadmap supplements. No migration needed today. |
125
+ | `recruit-sessions/`, `features/`, `tickets/` | **Keep all three** — distinct purposes, each has an active owner and lifecycle (recruit-sessions = user research; features = flag docs; tickets = bundle system). |
126
+
127
+ ---
128
+
129
+ ## What needs a contract edit
130
+
131
+ Any PR that:
132
+ - Adds a new top-level directory to `agents/`
133
+ - Adds a new whitelisted flat file to `agents/`
134
+ - Changes the git policy of an existing entry
135
+ - Changes the consumer-scope subset
136
+
137
+ ...must update this table in the same commit, update `src/config/agents-paths.yml`,
138
+ and add the new entry to `ALLOWED_SOURCE_DIRS` (or `ALLOWED_FLAT_FILES`) in
139
+ `src/scripts/lint_agents_layout.ts`.
140
+
141
+ ## See also
142
+
143
+ - `src/config/agents-paths.yml` — machine-readable classification manifest (Phase 3)
144
+ - `src/scripts/lint_agents_layout.ts` — CI enforcement
145
+ - `docs/contracts/migrate-command.md` — consumer migration flow
146
+ - ADR-020 — global-only install; bridge marker
147
+ - ADR-050 — workspace vs package root boundary
148
+ - `source-confidentiality` rule — `.harvest-local/` rationale
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Brand-Token Consumption Contract (greenfield interface stub)
2
7
 
3
8
  > **Status:** interface stub. This contract is the **only** greenfield surface
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Capability Boundary Matrix
2
7
 
3
8
  The per-pack safety posture at a glance: is a pack on by default, does it need
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Command-category governance
2
7
 
3
8
  > **Status (2026-06-09):** Phase-2b resolved as **Option 1 (light)** — an
@@ -56,6 +56,7 @@ column 1 of this table.
56
56
  | `image` | — | `analyse` · `create` · `verify` | new cluster 2026-05-31 (`road-to-character-image-fidelity` Phase 4) — character-image fidelity surface mirroring `/video:*`. `:analyse` extracts a per-feature spec from an image and diffs it against a Canon Spec down to the smallest mole (OCR for lettered tattoos, per-section severity scores, canon-breaking hard gate); `:create` assembles a max-fidelity anchors-first generation prompt from the Canon Spec, governance- + provider-gated, `AIV_DRYRUN=true` default; `:verify` runs the analyser in loop mode against a candidate and reports the gate verdict + remaining diff with plateau/oscillation/budget stop conditions. Skills: [`image-analyser`](../../skills/image-analyser/SKILL.md) + [`image-creator`](../../skills/image-creator/SKILL.md); schema/rubric/loop in [`canon-spec.md`](../../skills/image-analyser/canon-spec.md). |
57
57
  | `brand` | — | `strategy` · `identity` · `tokens` · `review` · `voice` | new cluster 2026-06-17 (`road-to-image-brand-followups` Phase 3) — brand-as-first-class-UX surface for `pack-brand`, consulted before `design-intelligence` so brand bounds style. `:strategy` (positioning/archetype/voice/messaging over the brand corpus), `:identity` (logo/colour/type/imagery direction — defines the tokens downstream generation consumes), `:tokens` (derive a DTCG `.tokens.json` source of truth → CSS/Tailwind, no Node), `:review` (audit emitted UI/copy/assets against active brand tokens + voice per the `brand-consistency` gate), `:voice` (voice-and-tone profile). Skills: [`brand-strategy`](../../skills/brand-strategy/SKILL.md) · [`brand-identity`](../../skills/brand-identity/SKILL.md) · [`brand-to-tokens`](../../skills/brand-to-tokens/SKILL.md) · [`brand-audit`](../../skills/brand-audit/SKILL.md) · [`voice-and-tone-design`](../../skills/voice-and-tone-design/SKILL.md). The companion `/imagegen:*` generation cluster (pack-ai-image) is deferred until its adapters' live submit/poll/fetch is wired. |
58
58
 
59
+ | `team-knowledge` | — | `consolidate` · `bootstrap` | new cluster 2026-07-05 (`road-to-knowledge-system` Phases 5-6) — the repo-tracked team-knowledge layer under `agents/knowledge/{sessions,concepts,procedures,decisions}/`. Distinct from the pre-existing [`knowledge`](#locked-clusters) cluster (arbitrary local-file ingestion into `agents/memory/knowledge/`) — different namespace, different concern. `:consolidate` reads pending typed-observation events (`consolidate_knowledge_events.ts`), finds the nearest existing page per topic (mechanical similarity), and presents a NEW/EXTEND/CONFIRM/CONFLICT batch for human approval — never writes a page automatically. `:bootstrap` (`bootstrap_knowledge.ts`) stages a one-shot deterministic seed (detected package manifest, top-level directories, known config filenames — never file content, never an LLM-invented claim) to a gitignored staging dir for review-then-commit. |
59
60
  | `profile` | — | `activate` · `deactivate` · `show` | new cluster 2026-06-02 (`road-to-session-profile-activation`) — session-profile activation: an ephemeral `runtime.active_packs` overlay that biases the surfaced command/skill set to the active pack closure, with no persistence and no execution-gating (recommendation-bias MVP). `:activate <name…>` resolves an alias (`src/config/discovery/session-profiles.yml`) or a raw pack id, fails fast on a not-installed pack, expands the `requires_hint` closure, and writes the overlay atomically to `agents/settings/.agent-settings.local.yml`; `:deactivate [name…]` clears it (or drops named packs, keeping deps a still-active pack needs); `:show` is the observability surface (active packs + surfaced/hidden counts). Overlay = runtime modulation of the existing `pack` axis, not a fifth axis (ADR-010 addendum). Library: `scripts/config/session_profiles.py`; schema in [`session-profile-overlay`](session-profile-overlay.md). |
60
61
 
61
62
  **Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
@@ -41,7 +41,7 @@ The path a new contributor walks on day one. Visible in
41
41
  2. **Stable surface.** The command name + flag set has not changed
42
42
  in the last two minor releases (or is brand-new with a
43
43
  commitment to two-release stability).
44
- 3. **No prerequisite tooling beyond `bash` + `python3`.** Docker,
44
+ 3. **No prerequisite tooling beyond `bash` + `node`.** Docker,
45
45
  GPG, jq, gh CLI, npm globals are all Tier-1+ territory.
46
46
  4. **Cited in the `init → sync → validate → work` outcome path.**
47
47
  Setup helpers (`first-run`, `keys:install-*`) and AI-Council entry
@@ -0,0 +1,84 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-10-01
4
+ ---
5
+
6
+ # Conformance contract — green means installed AND firing
7
+
8
+ > **Status:** active · **Owner:** maintainer · **Siblings:**
9
+ > [`install-layout.md`](install-layout.md) · [`smoke-contracts.md`](smoke-contracts.md)
10
+
11
+ `task conformance` (equivalently `agent-config conformance`) is the
12
+ consumer-runnable, CI-shaped answer to one question:
13
+
14
+ > **Is agent-config installed *and firing* in this repo?**
15
+
16
+ It is deterministic — no LLM, no network — and safe to wire into a
17
+ consumer repo's CI. A green run is the "conformance badge" a repo earns;
18
+ a red run names the exact broken surface and its remedy.
19
+
20
+ ## § 1 — What runs
21
+
22
+ Two legs, one exit code:
23
+
24
+ 1. **Doctor under the `--ci` contract.** `agent-config doctor --ci` runs
25
+ the full drift scan plus every registered health check, emits a JSON
26
+ payload, and — unlike the default doctor run, which keys its exit off
27
+ drift only — folds **any check failure** into the exit code.
28
+ 2. **Five conformance checks** (registered in
29
+ `src/scripts/_cli/cmd_conformance.ts`):
30
+
31
+ | id | proves | red when |
32
+ |---|---|---|
33
+ | `txlog-clean` | the last install completed | the install-log tail is an abandoned `abort` |
34
+ | `router-pointers` | the installed rule index is intact | any rule id or `routes_to` target does not resolve on disk |
35
+ | `hook-dispatcher` | hooks actually fire on this host | the dispatcher errors on a synthetic `session_start` / `stop` envelope |
36
+ | `lean-projection` | `lean_projection.mode` matches reality | projected non-kernel rules contradict the configured mode |
37
+ | `host-manifest` | `subagents.host_capabilities` is well-formed | unknown keys / non-boolean values (typo guard) |
38
+
39
+ Every check returns `ok` / `warn` / `fail` / `skipped` with a one-line
40
+ remedy. `skipped` means "not applicable here", never "silently passed".
41
+
42
+ ## § 2 — Exit-code contract
43
+
44
+ | Exit | Meaning |
45
+ |---|---|
46
+ | `0` | Green — no check failed, no drift. Warnings allowed. |
47
+ | `1` | Red — at least one check failed, or manifest drift present. |
48
+ | `2` | Environment unresolvable (no project root, corrupt setup). |
49
+
50
+ The same contract applies to `agent-config doctor --ci` standalone.
51
+
52
+ ## § 3 — Report line (fleet aggregation)
53
+
54
+ Every run appends exactly one JSONL line — mirroring the install-txlog
55
+ entry shape — to `~/.event4u/agent-config/conformance-log.jsonl`
56
+ (override: `AGENT_CONFIG_CONFORMANCE_LOG`):
57
+
58
+ ```json
59
+ {"ts":"2026-07-07T10:00:00.000Z","kind":"conformance","path":"/repo","sha256":null,"note":"5/5 ok; fails: none"}
60
+ ```
61
+
62
+ Fleet installs (`--fleet`) aggregate these lines into their per-repo
63
+ summary; the line is append-only and never breaks the exit contract.
64
+
65
+ ## § 4 — Pre-install twin: `init --validate-only`
66
+
67
+ `agent-config init --validate-only` is the **pre-install** gate — the
68
+ typed pre-flight suite (`src/install/preflight.ts`): target-root
69
+ permissions, free-disk floor, conflict detection, host-detection
70
+ sanity. Nothing is written. Exit `0` = clear, `1` = blocking finding,
71
+ `2` = no runner. `--dry-run` (full plan print) and `--minimal`
72
+ (settings-only bootstrap) are the existing siblings; `--validate-only`
73
+ completes the trio.
74
+
75
+ ## § 5 — CI wiring (consumer)
76
+
77
+ ```yaml
78
+ - name: agent-config conformance
79
+ run: npx @event4u/agent-config conformance
80
+ ```
81
+
82
+ Green conformance in a consumer pipeline is the supported way to assert
83
+ "the OS is installed and firing here" — instead of hand-rolled greps
84
+ over projected files.
@@ -1,3 +1,8 @@
1
+ ---
2
+ stability: beta
3
+ keep-beta-until: 2026-08-17
4
+ ---
5
+
1
6
  # Creative Pack boundary — video is an optional pack, not core identity
2
7
 
3
8
  The `ai-video` (Creative) pack is a **bounded, optional** capability: a first-class
@@ -151,7 +151,7 @@
151
151
  "additionalProperties": false,
152
152
  "properties": {
153
153
  "path": { "type": "string", "minLength": 1, "description": "POSIX path relative to repo root." },
154
- "category": { "type": "string", "enum": ["skill", "rule", "command", "template"] },
154
+ "category": { "type": "string", "enum": ["skill", "rule", "command", "template", "subagent"] },
155
155
  "name": { "type": "string" },
156
156
  "pack": { "$ref": "#/$defs/pack_id", "description": "capability-packs.md — canonical OWNER pack (ownership/budget unit). Orthogonal to `packs` (discovery tags); the owner need not appear in `packs`." },
157
157
  "tier": { "type": "integer", "enum": [0, 1, 2], "description": "6.0.0-C — command-surface tier surfaced on `category: command` artefacts so the CLI discovery surface reads the manifest, not a parallel catalog. DEPRECATED back-compat alias of `visibility` since ADR-090; still dual-emitted (non-breaking) but announced for removal in the top-level `deprecations` block (road-to-tier-removal Phase 1 / ADR-092). Read `visibility`." },
@@ -160,8 +160,8 @@
160
160
  "routes_to": { "type": "array", "items": { "type": "string" }, "description": "6.0.0-C — command routing metadata (skill/cluster-sub/command slugs the intent routes to)." },
161
161
  "replaces": { "type": "array", "items": { "type": "string" }, "description": "6.0.0-C — command routing metadata (prior names/aliases this command absorbs; may be empty)." },
162
162
  "slug": { "type": "string", "description": "6.0.0-D — canonical path-derived invocation slug (ADR-044; pack-stripped subpath + opt-in slug_prefix). Distinct from `name` (display, may still be colon for renames deferred to 6.1). The identity `commands ls --profile` matches on." },
163
- "workspaces": { "type": "array", "items": { "$ref": "#/$defs/workspace_id" }, "minItems": 1 },
164
- "packs": { "type": "array", "items": { "$ref": "#/$defs/pack_id" }, "minItems": 1 },
163
+ "workspaces": { "type": "array", "items": { "$ref": "#/$defs/workspace_id" }, "description": "Non-empty for skill/rule/command/template (enforced by build_discovery_manifest._classify). ADR-109 subagents legitimately carry [] — default-off, opt-in-by-name, never pack/workspace-scoped." },
164
+ "packs": { "type": "array", "items": { "$ref": "#/$defs/pack_id" }, "description": "Non-empty for skill/rule/command/template (enforced by build_discovery_manifest._classify). ADR-109 subagents legitimately carry [] — recommended for no pack; included only via include: [\"subagent:<name>\"]." },
165
165
  "requires": {
166
166
  "type": "array",
167
167
  "items": { "$ref": "#/$defs/pack_id" },
@@ -218,7 +218,8 @@
218
218
  "skill": { "type": "integer", "minimum": 0 },
219
219
  "rule": { "type": "integer", "minimum": 0 },
220
220
  "command": { "type": "integer", "minimum": 0 },
221
- "template": { "type": "integer", "minimum": 0 }
221
+ "template": { "type": "integer", "minimum": 0 },
222
+ "subagent": { "type": "integer", "minimum": 0 }
222
223
  },
223
224
  "required": ["skill", "rule", "command", "template"]
224
225
  },