@event4u/agent-config 9.9.0 → 9.11.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 (479) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +212 -194
  3. package/README.md +13 -16
  4. package/agents/templates/.ai-council.yml.example +481 -0
  5. package/agents/templates/.ai-video.xml.example +247 -0
  6. package/dist/agent-src/commands/agent-status.md +12 -11
  7. package/dist/agent-src/commands/agents/user/accept.md +115 -30
  8. package/dist/agent-src/commands/agents/user/delete.md +147 -0
  9. package/dist/agent-src/commands/agents/user/review.md +65 -28
  10. package/dist/agent-src/commands/agents/user/show.md +82 -29
  11. package/dist/agent-src/commands/agents/user/update.md +2 -2
  12. package/dist/agent-src/commands/agents/user.md +16 -3
  13. package/dist/agent-src/commands/check-current-md.md +0 -10
  14. package/dist/agent-src/commands/condense.md +28 -97
  15. package/dist/agent-src/commands/cost/report.md +7 -0
  16. package/dist/agent-src/commands/fix/portability.md +0 -8
  17. package/dist/agent-src/commands/fix/refs.md +0 -8
  18. package/dist/agent-src/commands/humanize.md +2 -2
  19. package/dist/agent-src/commands/jira-ticket.md +1 -1
  20. package/dist/agent-src/commands/memory/load.md +11 -0
  21. package/dist/agent-src/commands/optimize/skills.md +1 -1
  22. package/dist/agent-src/commands/pr/create.md +4 -4
  23. package/dist/agent-src/commands/profile/show.md +3 -3
  24. package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
  25. package/dist/agent-src/commands/security-audit-config.md +1 -1
  26. package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
  27. package/dist/agent-src/commands/tdd.md +21 -0
  28. package/dist/agent-src/commands/team/delegate.md +2 -2
  29. package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
  30. package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
  31. package/dist/agent-src/commands/team.md +4 -1
  32. package/dist/agent-src/commands/upstream-contribute.md +0 -1
  33. package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
  34. package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
  35. package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
  36. package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
  37. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  38. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
  39. package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
  40. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
  41. package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
  42. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
  43. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
  44. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
  45. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
  46. package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
  47. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
  48. package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
  49. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
  50. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
  51. package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
  52. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
  53. package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
  54. package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
  55. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
  56. package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
  57. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  58. package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
  59. package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
  60. package/dist/agent-src/contexts/model-recommendations.md +3 -2
  61. package/dist/agent-src/contexts/subagent-configuration.md +3 -3
  62. package/dist/agent-src/ghostwriter/README.md +2 -2
  63. package/dist/agent-src/packs/README.md +1 -1
  64. package/dist/agent-src/personas/README.md +5 -5
  65. package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
  66. package/dist/agent-src/personas/backend-architect.md +24 -23
  67. package/dist/agent-src/personas/eloquent-tamer.md +30 -30
  68. package/dist/agent-src/personas/frontend-engineer.md +30 -30
  69. package/dist/agent-src/personas/product-owner.md +41 -38
  70. package/dist/agent-src/personas/qa.md +13 -13
  71. package/dist/agent-src/personas/security-engineer.md +22 -22
  72. package/dist/agent-src/presets/README.md +3 -3
  73. package/dist/agent-src/profiles/README.md +3 -3
  74. package/dist/agent-src/rules/active-remediation.md +2 -2
  75. package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
  76. package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
  77. package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
  78. package/dist/agent-src/rules/broken-access-control.md +4 -4
  79. package/dist/agent-src/rules/code-comment-discipline.md +1 -1
  80. package/dist/agent-src/rules/code-provenance.md +2 -2
  81. package/dist/agent-src/rules/commit-policy.md +4 -9
  82. package/dist/agent-src/rules/communication-through-line.md +5 -5
  83. package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
  84. package/dist/agent-src/rules/design-fidelity.md +1 -1
  85. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  86. package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
  87. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  88. package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
  89. package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
  90. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  91. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
  92. package/dist/agent-src/rules/history-discipline.md +1 -1
  93. package/dist/agent-src/rules/legal-safety-floor.md +1 -1
  94. package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
  95. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
  96. package/dist/agent-src/rules/media-governance-routing.md +13 -13
  97. package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
  98. package/dist/agent-src/rules/no-cheap-questions.md +7 -7
  99. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
  100. package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
  101. package/dist/agent-src/rules/onboarding-gate.md +14 -4
  102. package/dist/agent-src/rules/persona-governance.md +2 -2
  103. package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
  104. package/dist/agent-src/rules/preservation-guard.md +10 -2
  105. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  106. package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
  107. package/dist/agent-src/rules/rule-type-governance.md +1 -1
  108. package/dist/agent-src/rules/scale-discipline.md +1 -1
  109. package/dist/agent-src/rules/scope-control.md +1 -1
  110. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  111. package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
  112. package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
  113. package/dist/agent-src/rules/session-canary.md +1 -1
  114. package/dist/agent-src/rules/skill-quality.md +1 -1
  115. package/dist/agent-src/rules/source-confidentiality.md +21 -19
  116. package/dist/agent-src/rules/source-of-truth.md +6 -5
  117. package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
  118. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  119. package/dist/agent-src/rules/think-before-action.md +5 -5
  120. package/dist/agent-src/rules/token-budget-discipline.md +5 -3
  121. package/dist/agent-src/rules/token-efficiency.md +2 -2
  122. package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
  123. package/dist/agent-src/rules/user-interaction.md +12 -0
  124. package/dist/agent-src/rules/verify-before-complete.md +4 -24
  125. package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
  126. package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
  127. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  128. package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
  129. package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
  130. package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  131. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
  132. package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
  133. package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
  134. package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
  135. package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  136. package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
  137. package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
  138. package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
  139. package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
  140. package/dist/agent-src/skills/code-review/SKILL.md +6 -6
  141. package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
  142. package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
  143. package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
  144. package/dist/agent-src/skills/context-document/SKILL.md +23 -21
  145. package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
  146. package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
  147. package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
  148. package/dist/agent-src/skills/design-review/SKILL.md +15 -14
  149. package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
  150. package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
  151. package/dist/agent-src/skills/docker/SKILL.md +1 -1
  152. package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
  153. package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
  154. package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
  155. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
  156. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
  157. package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
  158. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +21 -7
  159. package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
  160. package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
  161. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
  162. package/dist/agent-src/skills/flux/SKILL.md +1 -1
  163. package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
  164. package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
  165. package/dist/agent-src/skills/grafana/SKILL.md +5 -0
  166. package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
  167. package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
  168. package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
  169. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
  170. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
  171. package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
  172. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
  173. package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
  174. package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
  175. package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
  176. package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
  177. package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
  178. package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
  179. package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
  180. package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
  181. package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
  182. package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
  183. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  184. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
  185. package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
  186. package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
  187. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
  188. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
  189. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
  190. package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
  191. package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
  192. package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
  193. package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
  194. package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
  195. package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
  196. package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
  197. package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
  198. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
  199. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
  200. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
  201. package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
  202. package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  203. package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
  204. package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  205. package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  206. package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
  207. package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
  208. package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
  209. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
  210. package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
  211. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
  212. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
  213. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
  214. package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
  215. package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
  216. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  217. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  218. package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
  219. package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
  220. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  221. package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
  222. package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
  223. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
  224. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
  225. package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
  226. package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
  227. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
  228. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
  229. package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
  230. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
  231. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
  232. package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
  233. package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
  234. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
  235. package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
  236. package/dist/agent-src/skills/terraform/SKILL.md +2 -2
  237. package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
  238. package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
  239. package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
  240. package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  241. package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
  242. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
  243. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
  244. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
  245. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
  246. package/dist/agent-src/skills/video-director/SKILL.md +7 -7
  247. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
  248. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  249. package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
  250. package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
  251. package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
  252. package/dist/agent-src/templates/contexts.md +1 -1
  253. package/dist/agent-src/templates/features.md +1 -1
  254. package/dist/agent-src/templates/roadmaps.md +125 -116
  255. package/dist/agent-src/templates/rule.md +2 -1
  256. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  257. package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  258. package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  259. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  260. package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  261. package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  262. package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  263. package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  264. package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  265. package/dist/agent-src/templates/scripts/work_engine/state.ts +21 -4
  266. package/dist/agent-src/user-types/README.md +8 -8
  267. package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
  268. package/dist/agent-src/user-types/metalworking-shop.md +35 -34
  269. package/dist/agent-src/user-types/truck-driver.md +22 -20
  270. package/dist/cli/initRouting.js +74 -11
  271. package/dist/cli/initRouting.js.map +1 -1
  272. package/dist/cli/main.js +14 -3
  273. package/dist/cli/main.js.map +1 -1
  274. package/dist/cli/python/workspace_roles.js +2 -2
  275. package/dist/cli/python/workspace_roles.js.map +1 -1
  276. package/dist/cli-delegate/chunk-4SV3XGFA.js +6910 -0
  277. package/dist/cli-delegate/chunk-736JCWLM.js +1104 -0
  278. package/dist/cli-delegate/chunk-7DSAMZFU.js +356 -0
  279. package/dist/cli-delegate/chunk-7HQ52DHU.js +74 -0
  280. package/dist/cli-delegate/chunk-BJGXZNPM.js +266 -0
  281. package/dist/cli-delegate/chunk-FTAISGDQ.js +117 -0
  282. package/dist/cli-delegate/chunk-GME3Q44L.js +82 -0
  283. package/dist/cli-delegate/chunk-GRRPEPRN.js +336 -0
  284. package/dist/cli-delegate/chunk-HJ6DAJHR.js +502 -0
  285. package/dist/cli-delegate/chunk-IR7P7JWA.js +872 -0
  286. package/dist/cli-delegate/chunk-J55WI3RR.js +47 -0
  287. package/dist/cli-delegate/chunk-MCJYCQPF.js +35 -0
  288. package/dist/cli-delegate/chunk-NDJLNC6Q.js +169 -0
  289. package/dist/cli-delegate/chunk-OMIVVCG2.js +26 -0
  290. package/dist/cli-delegate/chunk-OY53J6II.js +7336 -0
  291. package/dist/cli-delegate/chunk-RDGRHAAB.js +259 -0
  292. package/dist/cli-delegate/chunk-TFG57JJM.js +1969 -0
  293. package/dist/cli-delegate/chunk-XX6TOPD7.js +715 -0
  294. package/dist/cli-delegate/chunk-YMFO6FDN.js +10603 -0
  295. package/dist/cli-delegate/cmd_analyze_session.js +294 -0
  296. package/dist/cli-delegate/cmd_conformance.js +646 -0
  297. package/dist/cli-delegate/cmd_converge.js +326 -0
  298. package/dist/cli-delegate/cmd_doctor.js +144 -0
  299. package/dist/cli-delegate/cmd_explain.js +2508 -0
  300. package/dist/cli-delegate/cmd_export.js +296 -0
  301. package/dist/cli-delegate/cmd_fleet.js +332 -0
  302. package/dist/cli-delegate/cmd_memory_get.js +3878 -0
  303. package/dist/cli-delegate/cmd_migrate.js +11 -0
  304. package/dist/cli-delegate/cmd_preflight.js +270 -0
  305. package/dist/cli-delegate/cmd_prune.js +444 -0
  306. package/dist/cli-delegate/cmd_refresh.js +28 -0
  307. package/dist/cli-delegate/cmd_settings_check.js +574 -0
  308. package/dist/cli-delegate/cmd_settings_migrate.js +223 -0
  309. package/dist/cli-delegate/cmd_sync.js +264 -0
  310. package/dist/cli-delegate/cmd_uninstall.js +656 -0
  311. package/dist/cli-delegate/cmd_update.js +425 -0
  312. package/dist/cli-delegate/cmd_upgrade.js +444 -0
  313. package/dist/cli-delegate/cmd_validate.js +305 -0
  314. package/dist/cli-delegate/cmd_versions.js +370 -0
  315. package/dist/discovery/deprecation-report.md +1 -1
  316. package/dist/discovery/discovery-manifest.json +100 -67
  317. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  318. package/dist/discovery/discovery-manifest.summary.md +4 -4
  319. package/dist/discovery/orphan-report.md +1 -1
  320. package/dist/discovery/packs.json +16 -10
  321. package/dist/discovery/trust-report.md +2 -2
  322. package/dist/discovery/workspaces.json +7 -5
  323. package/dist/hooks/dispatch.js +186 -12
  324. package/dist/install/emit_host_rules_cli.js +2 -1
  325. package/dist/install/emit_host_rules_cli.js.map +1 -1
  326. package/dist/install/install.mjs +418 -378
  327. package/dist/install/rule_scope.js +5 -1
  328. package/dist/install/rule_scope.js.map +1 -1
  329. package/dist/install/toolDetection.js +40 -12
  330. package/dist/install/toolDetection.js.map +1 -1
  331. package/dist/install/wizard-plan.js +2 -2
  332. package/dist/install/wizard-plan.js.map +1 -1
  333. package/dist/mcp/registry-manifest.json +3 -3
  334. package/dist/mcp/server.json +2 -2
  335. package/dist/mcp/server.mjs +2194 -1003
  336. package/dist/router.json +1 -1
  337. package/dist/scripts/_lib/compile_time_toggles.js +48 -0
  338. package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
  339. package/dist/scripts/condense.js +234 -217
  340. package/dist/scripts/condense.js.map +1 -1
  341. package/dist/server/schemas/settings.js +4 -0
  342. package/dist/server/schemas/settings.js.map +1 -1
  343. package/dist/shared/userMd/utils.js +30 -0
  344. package/dist/shared/userMd/utils.js.map +1 -1
  345. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
  346. package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
  347. package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
  348. package/package.json +4 -2
  349. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  350. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  351. package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
  352. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
  353. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
  354. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
  355. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
  356. package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
  357. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
  358. package/src/agent-src/templates/scripts/work_engine/state.ts +21 -4
  359. package/src/config/agent-settings.template.yml +32 -2
  360. package/src/config/ci-local-parity.yml +142 -0
  361. package/src/config/discovery/packs.yml +7 -0
  362. package/src/config/evaluator-budgets.json +1 -1
  363. package/src/config/gate-coverage.yml +127 -0
  364. package/src/config/pack-size-budget.json +27 -0
  365. package/src/config/preamble-payload-budget.json +44 -0
  366. package/src/install/emit_host_rules_cli.ts +2 -1
  367. package/src/install/rule_scope.ts +5 -1
  368. package/src/install/toolDetection.ts +39 -8
  369. package/src/install/wizard-plan.ts +2 -2
  370. package/src/scripts/_cli/cmd_conformance.ts +2 -1
  371. package/src/scripts/_cli/cmd_converge.ts +2 -1
  372. package/src/scripts/_cli/cmd_doctor.ts +292 -15
  373. package/src/scripts/_cli/cmd_export.ts +2 -1
  374. package/src/scripts/_cli/cmd_fleet.ts +2 -1
  375. package/src/scripts/_cli/cmd_migrate.ts +2 -1
  376. package/src/scripts/_cli/cmd_preflight.ts +2 -1
  377. package/src/scripts/_cli/cmd_refresh.ts +2 -1
  378. package/src/scripts/_cli/cmd_update.ts +2 -1
  379. package/src/scripts/_cli/cmd_upgrade.ts +2 -1
  380. package/src/scripts/_cli/cmd_versions.ts +2 -1
  381. package/src/scripts/_cli/detection_report.ts +480 -0
  382. package/src/scripts/_dispatch.bash +52 -14
  383. package/src/scripts/_lib/agent_user_profile.ts +381 -0
  384. package/src/scripts/_lib/agents_overlay.ts +9 -0
  385. package/src/scripts/_lib/anchor_eval.ts +311 -0
  386. package/src/scripts/_lib/cc_transcript.ts +316 -0
  387. package/src/scripts/_lib/changelog_eras.ts +103 -9
  388. package/src/scripts/_lib/compile_time_toggles.ts +79 -0
  389. package/src/scripts/_lib/confusables.ts +101 -0
  390. package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
  391. package/src/scripts/_lib/environment_detector.ts +441 -0
  392. package/src/scripts/_lib/managed_agents_folder.ts +181 -0
  393. package/src/scripts/_lib/package_root.ts +72 -0
  394. package/src/scripts/_lib/payload_hash_drift.ts +126 -0
  395. package/src/scripts/_lib/preservation_migration.ts +291 -0
  396. package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
  397. package/src/scripts/_lib/scan_scope.ts +115 -0
  398. package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
  399. package/src/scripts/_lib/user_global_observations.ts +830 -0
  400. package/src/scripts/_lib/user_global_revocations.ts +110 -0
  401. package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
  402. package/src/scripts/ai_council/blind_review.ts +0 -0
  403. package/src/scripts/ai_council/budget_guard.ts +90 -11
  404. package/src/scripts/ai_council/bundler.ts +2 -2
  405. package/src/scripts/ai_council/clients.ts +59 -3
  406. package/src/scripts/ai_council/config.ts +53 -7
  407. package/src/scripts/ai_council/modes.ts +68 -2
  408. package/src/scripts/ai_council/orchestrator.ts +54 -9
  409. package/src/scripts/ai_council/transport_resolver.ts +331 -0
  410. package/src/scripts/ai_team/team_dispatch.ts +17 -6
  411. package/src/scripts/anchor_eval_falsify.ts +198 -0
  412. package/src/scripts/anchor_scoring_run.ts +239 -0
  413. package/src/scripts/annotate_discovery.ts +1 -65
  414. package/src/scripts/bench_quality_run.ts +168 -4
  415. package/src/scripts/cache_realization_report.ts +782 -0
  416. package/src/scripts/check_artefact_count_messaging.ts +5 -1
  417. package/src/scripts/check_augment_description_cap.ts +15 -4
  418. package/src/scripts/check_bundle_path_leakage.ts +10 -4
  419. package/src/scripts/check_ci_local_parity.ts +317 -0
  420. package/src/scripts/check_condensation.ts +96 -191
  421. package/src/scripts/check_context_paths.ts +38 -9
  422. package/src/scripts/check_dependency_floors.ts +153 -0
  423. package/src/scripts/check_gate_coverage.ts +299 -0
  424. package/src/scripts/check_iron_law_prominence.ts +22 -1
  425. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  426. package/src/scripts/check_no_new_legacy_path.ts +16 -6
  427. package/src/scripts/check_no_roadmap_refs.ts +22 -9
  428. package/src/scripts/check_originality_freshness.ts +167 -0
  429. package/src/scripts/check_pack_size.ts +188 -0
  430. package/src/scripts/check_preamble_payload_budget.ts +130 -0
  431. package/src/scripts/check_proposal.ts +0 -0
  432. package/src/scripts/check_references.ts +0 -1
  433. package/src/scripts/check_safety_floor_untouched.ts +171 -24
  434. package/src/scripts/check_site_links.ts +62 -3
  435. package/src/scripts/ci_status.ts +0 -0
  436. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  437. package/src/scripts/code_graph/build.ts +0 -0
  438. package/src/scripts/command_suggester/types.ts +0 -0
  439. package/src/scripts/compile_router.ts +10 -14
  440. package/src/scripts/condense.sh +3 -4
  441. package/src/scripts/condense.ts +247 -228
  442. package/src/scripts/cost/track.mjs +168 -33
  443. package/src/scripts/cost_summary.ts +33 -1
  444. package/src/scripts/council_cli.ts +51 -5
  445. package/src/scripts/discovery_graph.ts +0 -0
  446. package/src/scripts/encoding_corpus.ts +500 -0
  447. package/src/scripts/encoding_corpus_report.ts +216 -0
  448. package/src/scripts/evaluator_umbrella.sh +34 -1
  449. package/src/scripts/generate_index.ts +19 -2
  450. package/src/scripts/install-hooks.sh +2 -2
  451. package/src/scripts/learning_sidecar.ts +0 -0
  452. package/src/scripts/lint_confusables.ts +10 -72
  453. package/src/scripts/lint_eval_fixture_citations.ts +113 -0
  454. package/src/scripts/lint_featured_skills.ts +0 -0
  455. package/src/scripts/lint_hidden_unicode.ts +208 -0
  456. package/src/scripts/lint_load_context.ts +17 -5
  457. package/src/scripts/lint_new_skill_gate.ts +9 -3
  458. package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
  459. package/src/scripts/lint_originality.ts +1 -1
  460. package/src/scripts/lint_skill_originality.ts +1 -1
  461. package/src/scripts/lint_ticket_buildable.ts +1 -1
  462. package/src/scripts/lint_ui_stack_bundles.ts +170 -0
  463. package/src/scripts/mcp_server/tools.ts +4 -4
  464. package/src/scripts/measure_scope_dedup.ts +224 -0
  465. package/src/scripts/memory_lookup.ts +0 -0
  466. package/src/scripts/mine_session.ts +98 -0
  467. package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
  468. package/src/scripts/preamble_byte_census.ts +574 -0
  469. package/src/scripts/probe_skill_registration.ts +2 -2
  470. package/src/scripts/redact_hook_capture.ts +13 -0
  471. package/src/scripts/release.ts +65 -10
  472. package/src/scripts/router_telemetry.ts +1 -1
  473. package/src/scripts/second_brain_retrieval.ts +14 -4
  474. package/src/scripts/skill_linter.ts +5 -0
  475. package/src/scripts/surface-tiers.yml +2 -0
  476. package/src/scripts/validate_pack_yaml.ts +0 -0
  477. package/src/server/schemas/settings.ts +8 -0
  478. package/src/shared/userMd/utils.ts +31 -0
  479. package/dist/agent-src/rules/telegraph-speak.md +0 -87
@@ -0,0 +1,142 @@
1
+ # CI ↔ local parity manifest — the input to `check_ci_local_parity.ts`.
2
+ #
3
+ # WHY THIS EXISTS
4
+ # ---------------
5
+ # The local aggregate (`task ci`) and the CI workflows drifted apart in BOTH
6
+ # directions, and each direction cost real defects:
7
+ #
8
+ # CI-only — a gate CI runs that no local chain reaches. The contributor pushes,
9
+ # CI goes red, and the fix costs a round trip. Measured 2026-07-30:
10
+ # check_portability and check_adr_frontmatter turned a PR red that a
11
+ # local run would have caught, twice in one session.
12
+ #
13
+ # local-only — a gate `task ci` runs that no workflow does. Nothing enforces it
14
+ # remotely, so a defect merges. Measured: check-index had verified the
15
+ # artefact index for a long time and ran in no workflow, which is how
16
+ # 16 stale rows in agents/index.md + docs/catalog.md reached main.
17
+ # check_bridge_derivation is the same shape.
18
+ #
19
+ # A gate that exists on one side only drifts silently on the other. This manifest
20
+ # plus the checker makes each direction a declared, reviewable choice instead of an
21
+ # accident.
22
+ #
23
+ # THE CONTRACT
24
+ # ------------
25
+ # The checker DERIVES both sides — it never trusts a hand-maintained list of gates:
26
+ #
27
+ # CI side parsed from .github/workflows/*.yml — every `./scripts-run
28
+ # src/scripts/<name>`, `npx tsx src/scripts/<name>`, `node <path>` and
29
+ # `task <name>` invocation.
30
+ # local side the transitive closure of the `task ci` / `task consistency` chains
31
+ # plus the pre-push hook, resolved through taskfiles/*.yml.
32
+ #
33
+ # Anything present on one side and absent on the other must appear below with a
34
+ # reason, or the checker fails. That is the whole mechanism: drift is allowed, but
35
+ # only on the record.
36
+ #
37
+ # Parity is by gate ID, not by argv. Three gates run locally in a cheap variant and
38
+ # in CI in a strict one (check_release_published bare vs --strict --check-npm,
39
+ # build_cloud_bundle --check vs --all --clean, build_linear_digest offline vs live).
40
+ # They need no declaration: the parity question is "can a contributor run this before
41
+ # pushing at all", and the answer is yes. Declaring them anyway produced exactly the
42
+ # dead exemption the stale-declaration check exists to catch — it was removed rather
43
+ # than kept, because an exemption nothing needs is one the next reader trusts.
44
+ #
45
+ # WHY NOT JUST "RUN task ci BEFORE EVERY PUSH"
46
+ # --------------------------------------------
47
+ # Because a pre-push gate that is red for a reason the contributor did not cause
48
+ # either blocks every push or trains people to ignore it, and the second is worse
49
+ # than no gate. Two measured bounds from the same sweep:
50
+ #
51
+ # bucket A (repo-content gates) sum to ~14.5s → affordable before a push
52
+ # check_enforcement_coverage alone is 30.7s → belongs in the post-CI loop
53
+ #
54
+ # So `pre_push_budget_seconds` below is a real budget, not a wish. A gate declared
55
+ # `local_only` or `both` that exceeds it is reported, not silently added to the hook.
56
+
57
+ # Wall-clock ceiling for the pre-push gate set, in seconds. Derived from the
58
+ # measured bucket-A sum (14.5s) plus headroom; the existing hook already costs
59
+ # `task consistency` + eslint + tsc, so this is a bounded increase, not a new tax.
60
+ pre_push_budget_seconds: 25
61
+
62
+ # Gates CI runs that no local chain reaches — each needs a reason it cannot or
63
+ # should not run locally. `reason` is free text; `class` is one of:
64
+ # network needs a token, a registry, or a live API
65
+ # release verifies tag / release / published-package state
66
+ # artifact needs something only CI builds (site, tarball, bundle)
67
+ # benchmark it is a measurement, timing-sensitive or paid
68
+ # matrix needs an OS or Node version this machine is not
69
+ ci_only:
70
+ - id: adoption_snapshot
71
+ class: network
72
+ reason: "live api.npmjs.org + api.github.com calls, reads GITHUB_TOKEN"
73
+ - id: sync_github_metadata
74
+ class: network
75
+ reason: "hard-fails without GITHUB_TOKEN; mutates repo topics/description via the API"
76
+ - id: check_release_pr_shape
77
+ class: release
78
+ reason: "shells out to `gh pr diff <n>` — needs a live PR and a token"
79
+ - id: check_release_adjacent_health
80
+ class: release
81
+ reason: "queries GitHub Actions run history via gh"
82
+ - id: bench_drift_check
83
+ class: benchmark
84
+ reason: "consumes rolling bench reports that only a bench run produces"
85
+ - id: bench_baseline_ready
86
+ class: benchmark
87
+ reason: "same — no local baseline to compare against"
88
+ - id: bench_hook_latency
89
+ class: benchmark
90
+ reason: "a latency measurement; 24.0s measured and timing-sensitive on a loaded machine"
91
+ - id: check_site_links
92
+ class: artifact
93
+ reason: "needs the built Starlight site; exits 2 unbuilt or stale (registered in gate-coverage.yml with unavailable_exit: 2)"
94
+ - id: pack_mcp_content
95
+ class: artifact
96
+ reason: "writes the tracked internal/workers/mcp/content.json deploy artifact — a local run dirties the tree"
97
+ - id: consumer_matrix
98
+ class: matrix
99
+ reason: "consumes the npm pack tarball across a Node version matrix"
100
+ - id: cross_model_smoke
101
+ class: network
102
+ reason: "paid cross-model canary calls, secret-gated"
103
+ - id: trigger_eval_rotation
104
+ class: network
105
+ reason: "paid model calls"
106
+ - id: self_review_gate
107
+ class: network
108
+ reason: "--dry-run in the PR job; the live variant is a paid model call on the PR diff"
109
+ - id: bench_run
110
+ class: benchmark
111
+ reason: "paid model calls against a corpus"
112
+ - id: bench_runner
113
+ class: benchmark
114
+ reason: "the runner behind bench_run — same paid calls"
115
+ - id: skill_trigger_eval
116
+ class: benchmark
117
+ reason: "paid cross-model trigger-activation eval; the offline structural half is check_trigger_evals, which IS local"
118
+ - id: evaluator_umbrella
119
+ class: artifact
120
+ reason: "shell umbrella over CI-only evaluator fixtures"
121
+ - id: smoke_host_loadability
122
+ class: artifact
123
+ reason: "temp-HOME install + `claude plugin validate`; measured >100s, did not finish inside a 2-minute budget"
124
+ - id: install
125
+ class: matrix
126
+ reason: "the installer end-to-end against a scratch HOME on the OS matrix; a local run would rewrite this machine's own agent config"
127
+ - id: release
128
+ class: release
129
+ reason: "tags, bumps, publishes, opens the release PR — the release itself"
130
+
131
+ # Gates a local chain runs that no workflow does — each needs a reason it is not
132
+ # worth remote enforcement, OR it should simply be added to a workflow. Prefer
133
+ # adding it: a local-only gate is the direction that let real defects merge.
134
+ local_only:
135
+ - id: check_knowledge_sharing
136
+ class: staging-scoped
137
+ reason: >
138
+ Inspects the STAGED set (a gitignored intake file staged anyway via `git add -f`),
139
+ and CI has no staged set — the commit already happened by the time a workflow
140
+ runs. The committed-tree equivalent ("a file that should be gitignored is
141
+ tracked") is a different invariant and would need its own mode, so this is not
142
+ the local-only-by-neglect case the manifest warns about.
@@ -62,6 +62,11 @@
62
62
  description: Laravel framework patterns; depends on PHP at the artefact level.
63
63
  workspaces: [engineering]
64
64
  requires: [php, engineering-base]
65
+ # The design layer is a companion, not a dependency: this pack ships UI
66
+ # executors (blade-ui, flux, livewire) whose grounded selection lives in
67
+ # frontend-design, but a Laravel API-only project needs none of it. Advisory
68
+ # so the wizard offers it; `requires` would force the weight on every install.
69
+ suggests: [frontend-design]
65
70
  cluster: php
66
71
  trust_level_default: professional
67
72
  domain: engineering
@@ -98,6 +103,8 @@
98
103
  description: React framework patterns.
99
104
  workspaces: [engineering]
100
105
  requires: [javascript, engineering-base]
106
+ # Companion, not dependency — see the note on `laravel`.
107
+ suggests: [frontend-design]
101
108
  cluster: typescript
102
109
  trust_level_default: professional
103
110
  domain: engineering
@@ -8,7 +8,7 @@
8
8
  "unpacked_size_mb": {
9
9
  "max": 28,
10
10
  "last_measured": 26.05,
11
- "method": "npm pack --json → dist.unpackedSize / 1e6 — includes the Phase-1 precompiled bundles (dist/hooks/dispatch.js + dist/mcp/server.mjs, ~2.1 MB) that bought the 23x hook-latency win and the tsx removal"
11
+ "method": "npm pack --json → dist.unpackedSize / 1e6 — includes the Phase-1 precompiled bundles (dist/hooks/dispatch.js + dist/mcp/server.mjs, ~2.1 MB) that bought the 23x hook-latency win and the tsx removal, plus dist/cli-delegate/ (~1.40 MB, ADR-204) which finished that removal for the consumer command surface. This gate is the ONLY size trip-wire on those bundles by design: a dedicated per-bundle budget key would need its own measurement wired into evaluator_umbrella.sh, and an unwired key fails check_evaluator_budgets with 'no measurement supplied' instead of guarding anything. ADR-204 projected 27.45 against max 28 without packing — the next real measurement here is the confirming one, and headroom is thin"
12
12
  },
13
13
  "node_modules_mb": {
14
14
  "max": 140,
@@ -0,0 +1,127 @@
1
+ # Gate coverage manifest — the input to `check_gate_coverage.ts`.
2
+ #
3
+ # WHY THIS EXISTS
4
+ # ---------------
5
+ # On 2026-07-29 a sweep found gates that scanned a tree emptied by the ADR-051
6
+ # flat-`src/` migration, reported success, and were wired into CI. One printed
7
+ # `TOTAL | 0 | 0 | 0 | 0%`; another printed "All 0 auto-rule descriptions ≤ 150
8
+ # chars"; a third "clean (0 declarer(s))". Each exited 0. A gate that inspects
9
+ # nothing does not pass — it certifies coverage that does not exist, which is
10
+ # worse than having no gate, because the green is believed.
11
+ #
12
+ # Per-case retargeting does not close this: the next migration recreates it. This
13
+ # manifest plus the guard closes it structurally.
14
+ #
15
+ # THE CONTRACT (three rules, each from a real failure)
16
+ # ----------------------------------------------------
17
+ # 1. MACHINE-READABLE COUNT. Every listed gate emits exactly one line
18
+ # `scanned: <N>` (stdout or stderr), N = artefacts it actually inspected. The
19
+ # guard never parses a gate's human output — that would make the guard itself
20
+ # fragile, and a fragile guard is the thing being replaced.
21
+ #
22
+ # 2. CI-IDENTICAL INVOCATION. `argv` MUST match how CI/Taskfile calls the gate.
23
+ # A bare probe produced a false alarm during the sweep: `skill_linter` looked
24
+ # blind when called with no arguments, but CI passes `--all` and it scans 429
25
+ # artefacts. The guard must reproduce the real call or it invents defects.
26
+ #
27
+ # 3. BASELINE, NOT `> 0`. `min_scanned` is a floor, not a zero-check. A gate that
28
+ # drops from 428 artefacts to 3 is as broken as one that drops to 0, and `> 0`
29
+ # cannot see it. Set the floor below the true corpus (room for legitimate
30
+ # deletions) but far above a collapse.
31
+ #
32
+ # FIELDS
33
+ # id script stem under src/scripts/
34
+ # argv CI-identical arguments (list; empty list = bare call)
35
+ # min_scanned hard floor; guard fails when the reported count is below it
36
+ # corpus what the count means — so a future reader can re-derive the floor
37
+ # status enforced | pending
38
+ # pending = not yet emitting `scanned:`. The guard REPORTS these
39
+ # rather than skipping silently: its own partial coverage must be
40
+ # visible, or it repeats the sin it exists to catch.
41
+ gates:
42
+ - id: check_condensation
43
+ argv: []
44
+ min_scanned: 380
45
+ corpus: "src/ ↔ dist/agent-src/ .md pairs (429 at baseline: 111 rules + 318 skills)"
46
+ status: enforced
47
+
48
+ - id: check_augment_description_cap
49
+ argv: []
50
+ min_scanned: 80
51
+ corpus: "auto-type rules carrying a description (98 at baseline)"
52
+ status: enforced
53
+ note: >
54
+ Retargeted 2026-07-29 from the ADR-051-emptied tree (0 -> 98). It printed
55
+ "All 0 auto-rule descriptions" and exited 0 in CI. Retargeting surfaced 16
56
+ real violations (max 189 chars); all 16 were shortened under explicit
57
+ operator review, with every matching term programmatically verified as
58
+ preserved. The cap was deliberately NOT raised to fit the violations —
59
+ letting a gate adapt to the as-is state is the inversion that produced three
60
+ blind gates in the first place.
61
+
62
+ - id: lint_load_context
63
+ argv: []
64
+ min_scanned: 180
65
+ corpus: "md files inspected for a load_context block: src/rules + src/agent-src/contexts + agents/settings/contexts (231 at baseline, 17 declarers)"
66
+ status: enforced
67
+ note: >
68
+ Retargeted 2026-07-29 from the ADR-051-emptied tree: 0 -> 231 files, and it
69
+ immediately found a real violation the blindness had hidden
70
+ (src/rules/model-recommendation.md declared `../contexts/…`, a disallowed
71
+ relative root; normalised to the canonical `contexts/…` the rule's own prose
72
+ already used). The count is FILES INSPECTED, not declarers — "0 declarers"
73
+ over 400 files is legitimate, "0 files" is blindness, and reporting declarers
74
+ would have hidden exactly this dead root. LEGACY_PREFIX was deliberately NOT
75
+ retargeted: it detects stale pre-relocation entries and must keep
76
+ pointing at the old form.
77
+
78
+ - id: skill_linter
79
+ argv: ["--all"]
80
+ min_scanned: 380
81
+ corpus: "skills + rules under artefact_roots() (429 at baseline)"
82
+ status: enforced
83
+ note: >
84
+ NOT blind — the manifest's regression case for rule 2. The sweep's bare
85
+ probe made it look blind; `--all` scans 429. Enforced precisely so that
86
+ changing `argv` to a bare call fails the guard instead of silently
87
+ reproducing the false alarm.
88
+
89
+ - id: check_no_roadmap_refs
90
+ argv: []
91
+ min_scanned: 700
92
+ corpus: "stable artefacts across src/{rules,skills,agent-src/*} + docs/ + agents/settings/contexts (872 at baseline)"
93
+ status: enforced
94
+ note: >
95
+ Retargeted 2026-07-29 from the ADR-051-emptied tree. It had been enforcing the
96
+ no-roadmap-references rule for docs/ only while the rule + skill layer went
97
+ unscanned — 0 -> 872 artefacts. No violation had slipped through (verified),
98
+ so this closed a latent gap, not a live breach.
99
+
100
+ - id: check_context_paths
101
+ argv: []
102
+ min_scanned: 900
103
+ corpus: "reference corpus: src/{rules,skills,agent-src/commands,agent-src/contexts,domains} + agents/roadmaps (1170 at baseline)"
104
+ status: enforced
105
+ note: >
106
+ Retargeted 2026-07-29. An empty reference corpus makes every "unreferenced
107
+ context" verdict vacuous, which is how the dead root stayed invisible.
108
+
109
+ - id: check_site_links
110
+ argv: []
111
+ min_scanned: 20
112
+ unavailable_exit: 2
113
+ corpus: "built HTML pages under site/dist (25 content sources at baseline)"
114
+ status: enforced
115
+ note: >
116
+ Registered 2026-07-30 after it was caught reporting green over a stale build —
117
+ 6 pages against 25 content sources, every source newer than the newest page.
118
+ The missing-dist path already exited 2; the stale path did not, so the gate
119
+ could pass while inspecting a build that did not contain the pages under test.
120
+ It now exits 2 on stale, and the floor here catches the partial-build case the
121
+ guard exists for. The lesson of the find is the manifest, not the gate: the
122
+ guard never flagged this because the gate was never listed. A sibling
123
+ silent-green found in the same sweep — the per-pack lint matrix, whose path was
124
+ a double ADR-051 casualty and which exited 0 on an empty match across 17 CI
125
+ shards — is NOT listed here because it was deleted rather than repaired
126
+ (skill_linter --all already covers all 429 artefacts in 0.5s).
127
+
@@ -0,0 +1,27 @@
1
+ {
2
+ "_comment": "Payload budget for the published npm tarball (road-to-zero-ceremony-install Phase 4). MEASURED, NEVER INVENTED — the numbers below come from `npm pack --dry-run --json --ignore-scripts` on the tracked tree at 9.9.0 (2026-07-31). Two metrics, both genuinely ungated before this file: COMPRESSED tarball size, and PER-SKILL share of the skills subtree. The UNPACKED size is deliberately absent — it is already owned by src/config/evaluator-budgets.json (unpacked_size_mb), and a second number for one lever is how three conflicting figures start circulating.",
3
+ "schema_version": 1,
4
+ "owner": "maintainer",
5
+ "review_by": "2027-07-31",
6
+ "regression_pct": 10,
7
+ "measurement_conditions": "npm pack --dry-run --json --ignore-scripts, run at the repo root on a clean checkout. `--ignore-scripts` means NO build runs, so dist/cli, dist/ui, dist/mcp and dist/hooks are absent and the figure covers only the TRACKED payload (src/scripts/, dist/agent-src/, dist/install/, docs/guidelines/, templates). That is deliberate: this gate is always-on for every PR, and the tracked content tree is exactly the surface that grows by accretion. The built artifact is ~5.4 MB larger and is gated separately, at release time, by evaluator-budgets.unpacked_size_mb.",
8
+ "budgets": {
9
+ "packed_size_mb": {
10
+ "max": 6.4,
11
+ "last_measured": 5.903,
12
+ "method": "npm pack --dry-run --json --ignore-scripts → dist.size / 1e6 (the compressed tarball a consumer actually downloads)"
13
+ }
14
+ },
15
+ "per_skill_share": {
16
+ "max_pct": 5.0,
17
+ "basis": "a single skill's share of the total bytes under dist/agent-src/skills/ in the tarball",
18
+ "rationale": "Measured 2026-07-31: the largest non-excepted skill is corpus-grounding at 2.33%, so a 5% cap is green with better than 2x headroom and red for any skill that doubles. It is a falsifiable gate, not a ritual one.",
19
+ "exceptions": {
20
+ "design-intelligence": {
21
+ "max_pct": 23.0,
22
+ "measured_pct": 22.63,
23
+ "reason": "771 KB of BM25 corpus (27 CSVs + 16 design-language prose specs + manifest.json) consumed at runtime by corpus-grounding's retriever, and referenced by 6 further skills. Moving it behind a lazy fetch would add a network dependency to a skill that works offline today — the same trade-off ADR-061 §8 already REJECTED for a 745 KB font index. The exception is visible debt, not an endorsement: raising max_pct requires a reason in the same commit."
24
+ }
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "_comment": "Per-spawn preamble payload ceiling (road-to-cache-economy Phase 3), unblocked by C-3 measuring 38.0% against a 15% bar. This is a RATCHET, not the roadmap's literal candidate numbers: those (median 40k / p95 50k) were anchored to an upstream ~37k baseline, while this package's own deterministic in-repo payload is ~102.5k tokens — a hard 40k gate would be red on the day it lands and would teach the reader to ignore it. The ratchet fails on GROWTH instead, so the number can only walk down, and the 40k/50k target stays recorded as the destination. Only the deterministic, in-repo buckets are gated: user-scope rules depend on what the developer happens to have installed globally and are therefore not CI-checkable.",
3
+ "schema_version": 1,
4
+ "registered_at": "2026-07-30",
5
+ "owner": "maintainer",
6
+ "review_by": "2027-07-30",
7
+ "metric": {
8
+ "basis": "chars/4 token estimate over the projected tree, produced by src/scripts/preamble_byte_census.ts",
9
+ "gated_buckets": [
10
+ "project-scope rules (dist/agent-src/rules/*.md)",
11
+ "preloaded skills catalog (name + description, dist/agent-src/skills)",
12
+ "CLAUDE.md hierarchy (project + project-local)"
13
+ ],
14
+ "excluded_buckets": [
15
+ "user-scope rules (~/.claude/rules/*.md) — machine-dependent, not CI-checkable",
16
+ "tool definitions + dispatch prompt — no local source carries the request payload; the census reports it as an explicit residual"
17
+ ]
18
+ },
19
+ "baseline_tokens": 102520,
20
+ "baseline_history": [
21
+ {
22
+ "tokens": 102599,
23
+ "at": "2026-07-30",
24
+ "why": "registered with the gate"
25
+ },
26
+ {
27
+ "tokens": 102520,
28
+ "at": "2026-07-31",
29
+ "why": "free tightening: the measured tree came in 79 tok under the registered baseline, so the ratchet walks down to meet it. Not a claimed reduction — nothing was optimised; the point of a ratchet is that a lower measurement becomes the new ceiling instead of becoming unused headroom."
30
+ }
31
+ ],
32
+ "headroom_pct": 5,
33
+ "target_tokens": {
34
+ "median": 40000,
35
+ "p95": 50000,
36
+ "_comment": "The roadmap's candidate numbers, kept as the destination. Reaching them needs reductions this package has not built yet; scope-dedup (C-3) removes a redundant COPY at the consumer, it does not shrink the suite itself."
37
+ },
38
+ "reference_measurements": {
39
+ "measured_cold_start_median_tokens": 230930,
40
+ "c3_scope_dedup_reduction_pct": 38,
41
+ "c3_condition": "FIXTURE-ONLY as of 2026-07-31: the 38% was measured on a byte-identical two-scope fixture, and that condition is currently unreachable for every consumer because install.ts:2723/2725 stamp package:/source_path: into every installed rule while the in-repo projection stamps nothing. Aligning versions yields 0/110 twins, not 110/110. The figure is the mechanism's ceiling, NOT a realised saving, and this baseline therefore assumes no dedup. Reachability is the subject of road-to-dedup-reachability; run measure_scope_dedup for the live split.",
42
+ "_comment": "The measured median comes from Claude Code transcripts (deduped by message.id + requestId) and is context for the ratchet, never the gated number — it moves with the developer's own session history."
43
+ }
44
+ }
@@ -21,7 +21,8 @@
21
21
  * the Phase-1b rule filter, so scoped installs get scoped host files
22
22
  * for free;
23
23
  * - re-using the exported emitters keeps consumer output byte-identical
24
- * to the maintainer projection (Pipeline B never drifts from A).
24
+ * to the maintainer projection (the consumer install never drifts from
25
+ * Pipeline A, the source projection into `dist/agent-src/`).
25
26
  * The trade-off (node required at install time) matches the rule-scope
26
27
  * resolver: no node → install.sh keeps its legacy fallback surfaces.
27
28
  *
@@ -1,7 +1,11 @@
1
1
  /**
2
- * Install-time rule scoping — Pipeline B of consumer-scoped rule projection
2
+ * Install-time rule scoping for the consumer install
3
3
  * (road-to-request-scoped-rule-load Phase 1b).
4
4
  *
5
+ * Naming: this is the CONSUMER INSTALL path, not `docs/architecture.md`'s
6
+ * Pipeline B (which is the `.augment/` projection). Earlier drafts called it
7
+ * "Pipeline B" and collided with that name; use "the consumer install" here.
8
+ *
5
9
  * The projection filter (`rule_in_scope`, condense.ts) covered only the
6
10
  * maintainer projection; the consumer install pipeline shipped rules
7
11
  * unfiltered (dead `EXCLUDE_RULES` in install.sh; no exclude at all on the
@@ -71,6 +71,44 @@ export function knownToolIds(): readonly string[] {
71
71
  return Object.keys(TOOL_SIGNALS);
72
72
  }
73
73
 
74
+ /**
75
+ * Executable names declared for `id` on `$PATH`, in table order. Empty for
76
+ * tools detected only by a config dir / app bundle (and for the two
77
+ * signal-less ids). Exposed so callers that need the resolved *path* (not
78
+ * just a boolean) can reuse this table instead of restating the binary names.
79
+ */
80
+ export function toolBinaries(id: string): readonly string[] {
81
+ return TOOL_SIGNALS[id]?.bins ?? [];
82
+ }
83
+
84
+ /**
85
+ * First declared binary for `id` that resolves on `$PATH`, or `null`. This is
86
+ * the path-returning twin of `detectInstalledTools`, which reports presence as
87
+ * a boolean across all three signal kinds — a tool can be "installed" (config
88
+ * dir present) while this returns `null` (no executable on `$PATH`).
89
+ */
90
+ export function resolveToolBinary(id: string, pathEnv?: string): string | null {
91
+ const env = pathEnv ?? process.env['PATH'] ?? '';
92
+ for (const bin of toolBinaries(id)) {
93
+ const resolved = resolveBinaryPath(bin, env);
94
+ if (resolved !== null) return resolved;
95
+ }
96
+ return null;
97
+ }
98
+
99
+ /** Absolute path of `name` on `pathEnv`, or `null`. Mirrors `binOnPath`'s probe order. */
100
+ function resolveBinaryPath(name: string, pathEnv: string): string | null {
101
+ if (pathEnv.length === 0) return null;
102
+ for (const dir of pathEnv.split(delimiter)) {
103
+ if (dir.length === 0) continue;
104
+ for (const candidate of [name, `${name}.exe`, `${name}.cmd`]) {
105
+ const full = join(dir, candidate);
106
+ if (existsSync(full)) return full;
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+
74
112
  /**
75
113
  * Is an executable named `name` resolvable on `$PATH`? Exported for one-off
76
114
  * presence checks (e.g. `rtk` on the Editor-and-tooling step). Defaults to
@@ -81,14 +119,7 @@ export function isBinaryOnPath(name: string, pathEnv?: string): boolean {
81
119
  }
82
120
 
83
121
  function binOnPath(name: string, pathEnv: string): boolean {
84
- if (pathEnv.length === 0) return false;
85
- for (const dir of pathEnv.split(delimiter)) {
86
- if (dir.length === 0) continue;
87
- if (existsSync(join(dir, name))) return true;
88
- // Windows-style executables.
89
- if (existsSync(join(dir, `${name}.exe`)) || existsSync(join(dir, `${name}.cmd`))) return true;
90
- }
91
- return false;
122
+ return resolveBinaryPath(name, pathEnv) !== null;
92
123
  }
93
124
 
94
125
  function isToolInstalled(signal: ToolSignal, home: string, pathEnv: string): boolean {
@@ -193,8 +193,8 @@ export function expandWizardSources(inputs: WizardExpandInputs): PlanSource[] {
193
193
  const srcDir = join(packageRoot, srcRel);
194
194
  const destDir = destSub.length === 0 ? destRoot : join(destRoot, destSub);
195
195
  // Rule sources get the install-time scoping filter — the same
196
- // predicate the projection path uses (Phase 1b: Pipeline B may
197
- // never drift from Pipeline A).
196
+ // predicate the projection path uses (Phase 1b: the consumer
197
+ // install may never drift from Pipeline A, the source projection).
198
198
  const isRuleSource = srcRel === 'dist/agent-src/rules';
199
199
  out.push({
200
200
  toolId,
@@ -37,6 +37,7 @@ import * as installed_tools from '../_lib/installed_tools.js';
37
37
  import { atomicAppendLine } from '../../install/atomic.js';
38
38
  import { readRecentEntries } from '../../install/txlog.js';
39
39
  import { detectToolPresence } from '../../install/detect.js';
40
+ import { resolvePackageRoot } from '../_lib/package_root.js';
40
41
  import {
41
42
  _classify,
42
43
  _collect_manifest_entries,
@@ -56,7 +57,7 @@ type Dict = Record<string, unknown>;
56
57
  const _HERE = fileURLToPath(import.meta.url);
57
58
 
58
59
  /** Package root — two levels above `src/scripts/_cli/`. */
59
- export const PACKAGE_ROOT = path.resolve(path.dirname(_HERE), '..', '..', '..');
60
+ export const PACKAGE_ROOT = resolvePackageRoot(import.meta.url);
60
61
 
61
62
  /** Ordered registry of conformance check identifiers. */
62
63
  export const CONFORMANCE_CHECK_IDS = [
@@ -39,6 +39,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
39
39
  import * as YAML from 'yaml';
40
40
 
41
41
  import * as user_global_paths from '../_lib/user_global_paths.js';
42
+ import { resolvePackageRoot } from '../_lib/package_root.js';
42
43
 
43
44
  type Dict = Record<string, unknown>;
44
45
 
@@ -67,7 +68,7 @@ const _HERE = fileURLToPath(import.meta.url);
67
68
 
68
69
  /** Resolve the @event4u/agent-config package root (this repo). */
69
70
  function _package_root(): string {
70
- return path.resolve(path.dirname(_HERE), '..', '..', '..');
71
+ return resolvePackageRoot(import.meta.url);
71
72
  }
72
73
 
73
74
  const SETTINGS_FILENAME = 'agent-settings.yml';