@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
@@ -11,10 +11,10 @@ packs:
11
11
  - meta
12
12
  ---
13
13
 
14
- <!-- cloud_safe: degrade -->
15
-
16
14
  > **Experimental.** AI Council is not yet validated by external users. API costs apply per consultation.
17
15
 
16
+ <!-- cloud_safe: degrade -->
17
+
18
18
  # ai-council
19
19
 
20
20
  ## When to use
@@ -34,10 +34,11 @@ Do NOT use when:
34
34
  of opinion → use `subagent-orchestration` (in-session, no network,
35
35
  no money).
36
36
  * The task is **iterated build → review → fix with full repo access by a
37
- single strong model** → that is **team mode** (`/team`), the depth
38
- complement to the council's breadth. Council is artefact-only, never
39
- grants repo access or host framing; team mode deliberately inverts that.
40
- Neither replaces the other.
37
+ single strong model** (the reviewer needs to see the working diff and
38
+ return actionable fixes) → that is **team mode** (`/team`), the depth
39
+ complement to the council's breadth. The council is artefact-only and
40
+ never grants the external model repo access or the host's framing; team
41
+ mode deliberately does the opposite. Neither replaces the other.
41
42
  * The artefact contains secrets that cannot be redacted with the
42
43
  bundler's pattern set → ask the user before sending.
43
44
  * The user has not configured any council member → state that and stop;
@@ -52,47 +53,49 @@ THE ABSENCE OF A COUNCIL FILE IN A PROJECT SAYS NOTHING ABOUT WHETHER
52
53
  THE COUNCIL IS CONFIGURED. ONLY THE CLI / RESOLVER DECIDES THAT.
53
54
  ```
54
55
 
55
- Council config lives at one place only:
56
+ The council config lives at one place only:
56
57
  `~/.event4u/agent-config/settings/.ai-council.yml` (per
57
58
  [ADR-104](../../../docs/decisions/ADR-104-ai-council-config-global-only.md),
58
- superseding ADR-093). Configured **once per developer**; works in **every**
59
- project, worktree, and CWD — including consumer repos carrying none of this
60
- package's internals.
61
-
62
- Before claiming the council unavailable, run the CLI (`council:estimate`) and
63
- read its exit code + message. **Never** conclude "council not configured in
64
- this project" from missing project files: `scripts/ai_council` (package-internal,
65
- absent from every consumer repo), `.agent-settings.yml` (legacy block removed in
66
- ADR-093), or a project-local `.ai-council.yml` (never read — ADR-104). Eyeballing
67
- the project for these, then deciding solo instead of running the resolver, is the
68
- canonical failure ADR-104 stops.
69
-
70
- Only escape from user-global: `$AI_COUNCIL_CONFIG`, an explicit absolute path
71
- for tests / power users — still not a project search.
59
+ superseding ADR-093). It is configured **once per developer** and works
60
+ in **every** project, worktree, and CWD — including consumer repos that
61
+ carry none of this package's internals.
62
+
63
+ Before claiming the council is unavailable, you MUST run the CLI
64
+ (`council:estimate`) and read its exit code + message. **Never** conclude
65
+ "council not configured in this project" from missing project files:
66
+ `scripts/ai_council` (a package-internal directory, absent from every
67
+ consumer repo), `.agent-settings.yml` (the legacy block was removed in
68
+ ADR-093), or a project-local `.ai-council.yml` (never read — ADR-104).
69
+ Eyeballing the project for any of these and then deciding solo — instead
70
+ of running the resolver — is the canonical failure ADR-104 exists to stop.
71
+
72
+ The only escape from the user-global location is `$AI_COUNCIL_CONFIG`, an
73
+ explicit absolute path for tests / power users — still not a project search.
72
74
 
73
75
  ## When NOT to invoke — necessity self-check
74
76
 
75
- Phase 6 necessity classifier (see
77
+ The Phase 6 necessity classifier (see
76
78
  [`ai-council-config § Necessity classifier`](../../../docs/contracts/ai-council-config.md))
77
- runs as pre-flight gate inside CLI, skips council when prompt looks
78
- like routine work. Route around it BEFORE gate fires so user never pays
79
- classifier-pause cost on request that obviously did not need council.
79
+ runs as a pre-flight gate inside the CLI and skips the council when
80
+ the prompt looks like routine work. Route around it BEFORE the gate
81
+ fires so the user never pays the classifier-pause cost on a request
82
+ that obviously did not need a council in the first place.
80
83
 
81
- Skip council, stay in-session for:
84
+ Skip the council and stay in-session for:
82
85
 
83
86
  * **Bugfix shape** — stack trace, error, crash, failing test, "broken",
84
87
  regression. Use `systematic-debugging` or `bug-investigate`.
85
88
  * **Syntax / format / lint** — `typo`, `formatting`, `lint`, `indent`,
86
- `import order`, simple rename. Use language skill directly
87
- (`php-coder`, `eloquent`, `nextjs-patterns`).
89
+ `import order`, simple rename. Use the language skill directly
90
+ (`php-coder`, `eloquent`, `nextjs-patterns`, etc).
88
91
  * **Single-file implementation** — "this function", "this method",
89
- "this file", "one-liner", "small change", "add a getter". Use
92
+ "this file", "one-liner", "small change", "add a getter". Use the
90
93
  language skill directly.
91
94
  * **Documentation lookup** — "what is X", "how does Y work", "example
92
- of Z", "syntax of W". Use `codebase-retrieval` or docs skill, never
93
- council.
95
+ of Z", "syntax of W". Use `codebase-retrieval` or the docs skill,
96
+ never the council.
94
97
 
95
- Invoke council when:
98
+ Invoke the council when:
96
99
 
97
100
  * **Architectural / structural** — system boundaries, coupling,
98
101
  refactor strategy, migration plan, rewrite vs redesign.
@@ -100,13 +103,14 @@ Invoke council when:
100
103
  alternatives need weighing; "pros and cons" is the actual ask.
101
104
  * **Strategic / direction** — "should we …", "shall we …", roadmap
102
105
  shape, long-term technical direction.
103
- * **Explicit ambiguity** — user wrote "unsure / uncertain / ambiguous
104
- / second opinion / sanity check".
105
-
106
- Agent orchestration MUST call `council_cli` with `--invocation agent`
107
- so gate can skip silently on routine requests. User-typed `/council`
108
- keeps default (`--invocation user_explicit`); user gets educational
109
- message + `--proceed-anyway` override path. Mode `block` ignores
106
+ * **Explicit ambiguity** — the user wrote "unsure / uncertain /
107
+ ambiguous / second opinion / sanity check".
108
+
109
+ Agent orchestration MUST call `council_cli` with
110
+ `--invocation agent` so the gate can skip silently on routine
111
+ requests. User-typed `/council` keeps the default
112
+ (`--invocation user_explicit`); the user gets the educational message
113
+ + `--proceed-anyway` override path. Mode `block` ignores
110
114
  `--proceed-anyway` by design — cost-strict opt-in.
111
115
 
112
116
  ## Goal
@@ -170,7 +174,7 @@ travel changes.
170
174
  |---|---|---|---|---|
171
175
  | `api` | `AnthropicClient` / `OpenAIClient` / `GeminiClient` / `XAIClient` / `PerplexityClient` | yes | provider SDK + key from `~/.event4u/agent-config/<provider>.key` (legacy `~/.config/agent-config/<provider>.key` read as fallback) | shipped |
172
176
  | `manual` | `ManualClient` | no | `stdout` (prompt block) + `stdin` (user pastes the web-UI reply, terminated by a line containing only `END`) | shipped (Phase 2b) |
173
- | `cli` | `AnthropicCliClient` / `OpenAICliClient` / `GeminiCliClient` | no (subscription-authed) | local subprocess against the vendor CLI (`claude`, `codex`, `gemini`); auth delegated to the CLI's own session, no API key in this process | shipped (anthropic/openai/gemini · Phase 3) |
177
+ | `cli` | `AnthropicCliClient` / `OpenAICliClient` / `GeminiCliClient` | no (subscription-authed) | local subprocess against the vendor CLI (`claude`, `codex`, `gemini`); auth delegated to the CLI's own session, no API key flows through this process | shipped (anthropic/openai/gemini · Phase 3) |
174
178
 
175
179
  Resolution lives in `scripts/ai_council/modes.ts`:
176
180
  `resolve_mode(name, invocation_mode, member_settings, global_mode)`
@@ -201,19 +205,19 @@ that member and the orchestrator stops the fan-out.
201
205
  ### CLI-mode UX
202
206
 
203
207
  `mode: cli` runs the council through the vendor's local CLI
204
- instead of the API. Auth is delegated — user logs into each CLI
205
- once (`claude login`, `codex login`, `gemini`), orchestrator
206
- inherits the subscription. No API key in this process.
207
- `billable=False` → cost gate bypassed; the local
208
- `cli_call_budget.max_calls_per_day.<provider>` quota (state at
209
- `~/.event4u/agent-config/cli-calls.json`, daily UTC reset) is the
210
- only per-day brake.
211
-
212
- Three vendor CLIs wired:
213
-
214
- - **Anthropic / Claude** — invokes `claude --print --output-format json`,
215
- parses standard envelope (`result` + `usage` + `session_id` +
216
- `total_cost_usd`). Token counts and reported cost survive to
208
+ instead of the API. Authentication is delegated — the user logs
209
+ into each CLI once (`claude login`, `codex login`, `gemini`), and
210
+ the orchestrator inherits the subscription. No API key flows
211
+ through this process. `billable=False`, so the cost gate is
212
+ bypassed; the local `cli_call_budget.max_calls_per_day.<provider>`
213
+ quota (state at `~/.event4u/agent-config/cli-calls.json`, daily
214
+ UTC reset) is the only per-day brake.
215
+
216
+ Three vendor CLIs are wired:
217
+
218
+ - **Anthropic / Claude** — invokes `claude --print --output-format json`
219
+ and parses the standard envelope (`result` + `usage` + `session_id`
220
+ + `total_cost_usd`). Token counts and reported cost survive to
217
221
  `metadata` for audit.
218
222
 
219
223
  ```yaml
@@ -224,10 +228,10 @@ Three vendor CLIs wired:
224
228
  model: claude-sonnet-4-5
225
229
  ```
226
230
 
227
- - **OpenAI / Codex** — invokes `codex exec --json`, walks the
228
- newline-delimited JSON event stream, pulls text from
231
+ - **OpenAI / Codex** — invokes `codex exec --json` and walks the
232
+ newline-delimited JSON event stream, pulling text from
229
233
  `item.completed` and tokens from `turn.completed`. Session id
230
- preserved.
234
+ is preserved.
231
235
 
232
236
  ```yaml
233
237
  members:
@@ -238,7 +242,7 @@ Three vendor CLIs wired:
238
242
  ```
239
243
 
240
244
  - **Google / Gemini** — invokes `gemini --output-format json` with
241
- prompt piped on stdin, parses `response` + `stats.models.<m>.tokens`
245
+ the prompt piped on stdin, parses the `response` + `stats.models.<m>.tokens`
242
246
  envelope. OAuth consent must be granted once interactively before
243
247
  the CLI is usable from a non-interactive shell.
244
248
 
@@ -252,25 +256,26 @@ Three vendor CLIs wired:
252
256
 
253
257
  Auth-failure stderr from any vendor CLI surfaces as
254
258
  `error="auth_expired"` with the original stderr tail in
255
- `metadata.stderr_tail` so the user knows to re-login. Missing
259
+ `metadata.stderr_tail` so the user knows to re-login. A missing
256
260
  binary at construction time fails fast with `CouncilDisabledError`
257
261
  naming the binary and the YAML override path — never silently
258
262
  substitutes.
259
263
 
260
264
  `xai` + `perplexity` accept `mode: cli` from Phase 4 onward, but
261
265
  their community CLIs DO consume the API key and DO NOT bypass
262
- per-token billing — contract doc warns explicitly.
266
+ per-token billing — the contract doc warns explicitly.
263
267
 
264
268
  ### Cost-gate bypass for non-billable members
265
269
 
266
270
  `ExternalAIClient.billable` is the contract. Clients with
267
271
  `billable=False` (`ManualClient`, `AnthropicCliClient`,
268
272
  `OpenAICliClient`, `GeminiCliClient`) bypass the cost gate entirely —
269
- orchestrator skips the projection check, the `on_overrun` callback,
270
- and the USD-budget short-circuit for that member, but still records
271
- the response's token counts (from the manual-paste length heuristic
272
- or the provider's reply, when available) for observability. Mixed
273
- runs (one cli + one api) gate only the api members.
273
+ the orchestrator skips the
274
+ projection check, the `on_overrun` callback, and the USD-budget
275
+ short-circuit for that member, but still records the response's
276
+ token counts (from the manual-paste length heuristic or the
277
+ provider's reply, when available) for observability. Mixed runs
278
+ (one cli + one api) gate only the api members.
274
279
 
275
280
  ## Degradation modes
276
281
 
@@ -332,6 +337,29 @@ DO NOT BLINDLY ACCEPT FINDINGS. DO NOT BLINDLY REJECT THEM.
332
337
  EVERY FINDING GETS A REASONED VERDICT BEFORE IT REACHES THE USER.
333
338
  ```
334
339
 
340
+ ### Mechanism claims need a probe, not a second opinion
341
+
342
+ ```
343
+ A MECHANISM CLAIM IN A COUNCIL ARTEFACT IS MARKED `unverified:` UNTIL A PROBE COVERS IT.
344
+ A VERDICT RESTING ON AN UNVERIFIED MECHANISM CLAIM DOES NOT BIND.
345
+ SEVERAL MODELS AGREEING MULTIPLIES PLAUSIBILITY. IT DOES NOT PRODUCE EVIDENCE.
346
+ ```
347
+
348
+ A **mechanism claim** asserts how the machine behaves: "this toggle removes the
349
+ cost", "that gate scans X", "the host reads the router". The council deliberates
350
+ over **arguments**, never against the running system — it cannot execute a command,
351
+ so it has no way to falsify one. Marking such a claim `unverified:` in the artefact
352
+ keeps the reader from mistaking a well-argued mechanism for a measured one, and the
353
+ non-binding clause means the fix for a wrong claim is a probe, not a re-vote.
354
+
355
+ **Case zero (2026-07-29).** An accepted ADR claimed a compile-time toggle gave
356
+ "zero-cost dormancy" because the rule was dropped from `dist/router.json`. Two
357
+ council members praised the reasoning; neither could check it. A one-line `grep`
358
+ later showed the toggle was read by the router compiler and by **nothing in the
359
+ projector**, so the rule's body kept shipping as a file — and the host reads the
360
+ file. The claim was half wrong, the verdict that rested on it was void, and what
361
+ caught it was a probe, not a third opinion.
362
+
335
363
  The council is **uninformed about the codebase, ADRs, locked
336
364
  contracts, prior decisions, and project history** — it sees only the
337
365
  artefact + neutrality preamble. That is the source of its diversity
@@ -412,13 +440,13 @@ matching `road-to-<topic-slug>` roadmap under `agents/roadmaps/`).
412
440
 
413
441
  ### Exempt
414
442
 
415
- - `agents/audit-*/` — historical audit bundles. Canonical council
416
- dirs are gitignored; audit bundles are tracked, cohesive narratives
417
- that may include council artefacts as part of their evidence trail
418
- (e.g. `audit-2026-05-14-north-star/` bundles its triggering
419
- question, raw responses, and synthesis alongside the audit's
420
- findings). The layout linter (`scripts/check_council_layout.ts`)
421
- skips these directories.
443
+ - `agents/evidence/audits/` — historical audit bundles. The canonical
444
+ council dirs are gitignored; audit bundles are tracked,
445
+ cohesive narratives that may include council artefacts as
446
+ part of their evidence trail (e.g. `audits/2026-05-14-north-star/`
447
+ bundling its triggering question, raw responses, and synthesis
448
+ alongside the audit's findings). The layout linter
449
+ (`scripts/check_council_layout.ts`) skips this directory.
422
450
 
423
451
  `scripts/check_council_layout.ts` is the mechanical check for the
424
452
  output path convention — wire it into the package's CI pipeline so
@@ -478,12 +506,12 @@ templates live in `scripts/ai_council/prompts.ts::_SYNTHESIS_TABLE`
478
506
  and are exposed via `synthesis_template(mode)`.
479
507
 
480
508
  **R4 Q4 split** — decision lenses get a structured Karpathy-style
481
- template; creative lenses keep an open-ended prose body. **Every lens now
482
- closes with two required verdict-discipline sections** — **Kill criteria**
483
- (observable falsifiers with a threshold or event, checkable without
484
- re-convening the council) and **Concrete next step** (exactly one
485
- artefact-producing action) — so no synthesis ships an unfalsifiable verdict
486
- (road-to-opt-council-deliberation Phase 0):
509
+ template; creative lenses keep an open-ended prose body. **Every lens
510
+ now closes with two required verdict-discipline sections** — **Kill
511
+ criteria** (observable falsifiers with a threshold or event, checkable
512
+ without re-convening the council) and **Concrete next step** (exactly
513
+ one artefact-producing action) — added so no synthesis ships an
514
+ unfalsifiable verdict (road-to-opt-council-deliberation Phase 0):
487
515
 
488
516
  | Lens | Class | Synthesis sections |
489
517
  |---|---|---|
@@ -829,11 +857,12 @@ impossible — a member never sees its own response.
829
857
 
830
858
  ## Thinking-style advisors (replace-mode)
831
859
 
832
- Phase 6 introduces five **advisor personas** the council adopts in
833
- *replace-mode*: an enabled advisor substitutes its bound member's
834
- plain call with the same provider running the advisor's persona
835
- prompt. Total call count stays the same — only the system prompt
836
- swaps.
860
+ Phase 6 introduces five **advisor personas** that the council can adopt
861
+ in *replace-mode*: an enabled advisor substitutes its bound member's
862
+ plain call with the same provider running the advisor's persona prompt.
863
+ Total call count stays the same as a plain run — only the system prompt
864
+ swaps. Five advisors mirror an external advisor set, each a substantial
865
+ persona file (not a tagline):
837
866
 
838
867
  | Advisor | Default bound member | Focus |
839
868
  |---|---|---|
@@ -844,9 +873,9 @@ swaps.
844
873
  | **Executor** | `anthropic` | what ships this quarter, what blocks delivery |
845
874
 
846
875
  Activation — edit `~/.event4u/agent-config/settings/.ai-council.yml` and flip the advisor's
847
- `enabled: true`. Optional `model: <name>` overrides the bound
848
- member's default model. An advisor referencing a disabled member
849
- fails closed at config load — never silently skipped.
876
+ `enabled: true`. Optional `model: <name>` overrides the bound member's
877
+ default model. Validation rule: an advisor referencing a disabled
878
+ member fails closed at config load — never silently skipped.
850
879
 
851
880
  ```yaml
852
881
  advisors:
@@ -856,8 +885,8 @@ advisors:
856
885
  # model: claude-opus-4 # optional pin
857
886
  ```
858
887
 
859
- `council:estimate` surfaces every active swap on a dedicated line
860
- above the cost table:
888
+ `council:estimate` surfaces every active swap on a dedicated line above
889
+ the cost table:
861
890
 
862
891
  ```
863
892
  council:estimate · mode=prompt · members=2 (billable=2)
@@ -866,63 +895,90 @@ anthropic/claude-sonnet-4-5: ~991 in + 256 out = $0.0068
866
895
  openai/gpt-4o: ~208 in + 256 out = $0.0031
867
896
  ```
868
897
 
869
- Cost-bounded — replace-mode never adds calls. The persona prompt is
870
- larger than plain (~1k extra input tokens per swap); output tokens
871
- and call count are unaffected. Peer-review preserves the advisor
872
- label while stripping provider identity (`Response A (Contrarian)`).
873
- Two enabled advisors on the same member is a config error.
898
+ Cost-bounded guarantee — replace-mode never adds calls. The advisor
899
+ persona prompt is larger than a plain prompt (~1k extra input tokens
900
+ per swap), so the per-call estimate widens slightly. Output tokens and
901
+ call count are unaffected.
902
+
903
+ Peer-review interaction — when peer-review fires on an advisor-mode
904
+ run, anonymisation **preserves the advisor persona label** while
905
+ stripping provider identity: `Response A (Contrarian)` instead of bare
906
+ `Response A`. See §Karpathy peer-review point 4 for the contract.
907
+
908
+ One-per-provider invariant — two enabled advisors targeting the same
909
+ member is a config error (replace-mode runs exactly one advisor per
910
+ provider; the call plan never doubles up by accident).
874
911
 
875
912
  ## Decision-replay artefact (Phase 9, audit trail)
876
913
 
877
- Every session that runs consensus scoring drops a `decision-replay.md`
878
- next to `responses.json`. Pure projection of consensus + final-round
879
- member texts — **no extra model calls, no extra spend**. Surfaces per
880
- top finding: verdict band (Strong/Moderate/Weak), evidence-quality
881
- (H/M/L), agree/dissent split, one key argument per member.
914
+ Every session that runs consensus scoring drops a
915
+ `decision-replay.md` next to the saved `responses.json`. Pure
916
+ projection of the consensus block plus the final-round per-member
917
+ texts — **no extra model calls, no extra spend**. Surfaces, per top
918
+ finding: verdict band (Strong/Moderate/Weak), evidence-quality bucket
919
+ (H/M/L), agree/dissent split, and one key argument per member.
920
+
921
+ Two render modes:
922
+
923
+ * **Full** (default) — per-member arguments attributed to
924
+ `provider:model`. Reasoning is traceable, vendor identity is
925
+ visible.
926
+ * **Redacted** — verdict + evidence-quality + counts only. Use for
927
+ surfaces where attributing reasoning to a specific model would leak
928
+ vendor-preference signal.
929
+
930
+ Toggles (config, see `ai-council-config § Decision-replay artefact`):
931
+
932
+ * `ai_council.decision_replay.enabled` — master switch (default
933
+ `true`).
934
+ * `ai_council.decision_replay.include_member_arguments` — flip to
935
+ `false` for redacted-by-default.
936
+ * `ai_council.lenses.<lens>.decision_replay.*` — per-lens override
937
+ beats the global block.
882
938
 
883
- Two render modes — **Full** (per-member arguments attributed to
884
- `provider:model`) and **Redacted** (verdict + evidence-quality + counts
885
- only). Toggles: `ai_council.decision_replay.{enabled,
886
- include_member_arguments}` global; `ai_council.lenses.<lens>.decision_replay.*`
887
- per-lens override.
939
+ CLI:
888
940
 
889
- CLI — written automatically by `council run` on lenses that score
890
- consensus. `council replay <responses.json>` re-renders from a saved
891
- session; `--redact-member-arguments` / `--include-member-arguments`
892
- flip the view independent of config (share redacted variant of an
893
- already-paid run).
941
+ * Written automatically by `council run` whenever the lens triggers
942
+ consensus scoring.
943
+ * `council replay <responses.json>` re-renders from a saved session;
944
+ `--redact-member-arguments` / `--include-member-arguments` flip the
945
+ view independent of config. Useful for sharing a redacted variant
946
+ of an already-paid run.
894
947
 
895
948
  ## Lightweight-QA fast-path (Phase 11)
896
949
 
897
- Low-impact questions from Phase 10's impact router → restricted fast-path
898
- in place of full debate. Trade-off explicit: **1 round · ≤2 members ·
899
- $0.05/answer · 2500 tokens**. No advisors, no peer-review, no consensus
900
- scoring — quick answer + transparency marker, not deliberation.
950
+ Low-impact questions classified by Phase 10's impact router can route
951
+ to a restricted fast-path instead of the full debate loop. The
952
+ trade-off is explicit: **1 round · ≤2 members · $0.05/answer · 2500
953
+ tokens**. No advisors, no peer-review, no consensus scoring — the goal
954
+ is a quick answer with a transparency marker, not a deliberation.
901
955
 
902
956
  ### Iron Law
903
957
 
904
- `high_impact` and `user_required` **never** route to fast-path,
905
- regardless of config. Schema validation rejects override. Fast-path
906
- activates only when:
958
+ `high_impact` and `user_required` **never** route to the fast-path,
959
+ regardless of config. Schema validation rejects the override. The
960
+ fast-path only activates when:
907
961
 
908
962
  1. `ai_council.enabled: true` AND
909
963
  2. `decision_resolution.low_impact.mode: council` AND
910
- 3. ≥1 member has `participate_low_impact: true` (default `false` —
911
- explicit opt-in per member).
964
+ 3. At least one member has `participate_low_impact: true` (default
965
+ `false` — explicit opt-in per member).
912
966
 
913
- Default `low_impact` route = **`agent`** — nothing reaches council
914
- without explicit two-knob opt-in (flip class → `council` *and* mark
915
- ≥1 member `participate_low_impact: true`). Worked YAML, validation,
916
- unavailable-marker contract → [`ai-council-config § Low-impact council opt-in`](../../../docs/contracts/ai-council-config.md#low-impact-council-opt-in).
967
+ Default route for `low_impact` is **`agent`** — nothing reaches the
968
+ council without an explicit two-knob opt-in (flip the class to
969
+ `council` *and* mark at least one member `participate_low_impact: true`).
970
+ See [`ai-council-config § Low-impact council opt-in`](../../../docs/contracts/ai-council-config.md#low-impact-council-opt-in)
971
+ for the worked YAML example, validation behaviour, and unavailable-marker
972
+ contract.
917
973
 
918
974
  ### Output marker (always surfaced)
919
975
 
920
- * **Resolved** — `> Resolved via low-impact council (anthropic): <answer>`
976
+ * **Resolved** — `> Resolved via low-impact council (anthropic): <one-line answer>`
921
977
  * **Split** — `> Low-impact council split — escalating to user (anthropic: X / openai: Y):`
922
978
  * **Aborted** — `> Low-impact council aborted (token cap) — escalating to user:`
923
979
 
924
- Marker mandatory — agent never silently substitutes fast-path verdict
925
- for its own answer.
980
+ The marker is mandatory: the agent never silently substitutes a
981
+ fast-path verdict for its own answer.
926
982
 
927
983
  ### Session artefact
928
984
 
@@ -933,12 +989,13 @@ Every fast-path attempt appends one line to
933
989
  2025-05-14T10:00:00Z | resolved | members=2/2 | members(anthropic, openai) cost=$0.0034 | Q=Service vs Repository for this read path?
934
990
  ```
935
991
 
936
- Append-only, one line per resolution. Parser tolerates free-form
937
- headers around canonical lines.
992
+ Append-only, one line per resolution. The parser tolerates free-form
993
+ section headers around the canonical lines, so the artefact may grow
994
+ human notes without breaking aggregation.
938
995
 
939
996
  ### `council replay --low-impact-stats`
940
997
 
941
- Re-projection of session log → summary block:
998
+ Re-projection of the session log into a summary block:
942
999
 
943
1000
  ```
944
1001
  $ council replay agents/runtime/council/sessions/2025-05-14-foo/responses.json --low-impact-stats
@@ -950,8 +1007,8 @@ $ council replay agents/runtime/council/sessions/2025-05-14-foo/responses.json -
950
1007
  - total cost: $0.0096
951
1008
  ```
952
1009
 
953
- No model calls — pure markdown parse. Returns 0 when session has no
954
- fast-path entries (clean session is not an error).
1010
+ No model calls — pure parse of the markdown log. Returns 0 when the
1011
+ session had no fast-path entries (a clean session is not an error).
955
1012
 
956
1013
  ## See also
957
1014
 
@@ -111,18 +111,18 @@ Check:
111
111
 
112
112
  **Choose `project-analysis-core` if:** broad discovery needed, framework deep-dive not yet justified.
113
113
 
114
- **Choose `project-analysis-hypothesis-driven` if:** problem is concrete, multiple → plausible, main job is explanation not discovery.
114
+ **Choose `project-analysis-hypothesis-driven` if:** problem is concrete, multiple causes plausible, main job is explanation not discovery.
115
115
 
116
116
  **Choose framework-specific analysis if:** framework is explicit, failure pattern is framework-shaped.
117
117
 
118
- **Do NOT route broadly if:** one component or file is enough, fix is obvious and local, task is impl not investigation.
118
+ **Do NOT route broadly if:** one component or file is enough, fix is obvious and local, task is implementation not investigation.
119
119
 
120
120
  ## Examples
121
121
 
122
122
  **"Analyze this whole Laravel project"** → `universal-project-analysis` → chain `project-analysis-laravel`
123
123
  **"Hydration mismatch in Next.js"** → `project-analysis-nextjs` (no full-project needed)
124
124
  **"Bug could be cache, queue, or version mismatch"** → `project-analysis-hypothesis-driven`
125
- **"Change one React component"** → no analysis skill, use impl skill
125
+ **"Change one React component"** → no analysis skill, use implementation skill
126
126
 
127
127
  ## Gotcha
128
128
 
@@ -12,8 +12,8 @@ packs:
12
12
  # api-endpoint
13
13
 
14
14
 
15
- > **Grounded corpus:** endpoint-shape decisions (pagination, error shape,
16
- > idempotency, rate limits) ground via the
15
+ > **Grounded corpus:** endpoint-shape decisions (pagination, error
16
+ > shape, idempotency, rate limits) are grounded via the
17
17
  > [`api-design`](../api-design/SKILL.md) corpus — `./scripts-run
18
18
  > <skills-root>/corpus-grounding/scripts/ground search
19
19
  > --manifest <skills-root>/api-design/data/manifest.json "<concern>"`.
@@ -51,7 +51,7 @@ Do NOT use when:
51
51
  - Destructive? → Add `--force` flag + confirmation.
52
52
  - Scheduled? → Ensure non-interactive, idempotent, loud failures.
53
53
  - Long-running? → Use chunking/cursors, progress bar.
54
- - Production? → Add env check if needed.
54
+ - Production? → Add environment check if needed.
55
55
 
56
56
  ### Step 4: Test
57
57
 
@@ -72,7 +72,7 @@ Do NOT use when:
72
72
 
73
73
  - `$this->info()` is suppressed in quiet mode — use `$this->line()` for critical info.
74
74
  - Always add `--force` for destructive commands — never delete data without confirmation.
75
- - Add env checks for production commands.
75
+ - Add environment checks for production commands.
76
76
 
77
77
  ## Do NOT
78
78
 
@@ -105,12 +105,13 @@ A single blocking call (sync I/O, time.sleep, CPU-heavy parse, large JSON load)
105
105
 
106
106
  ## Procedure: Apply to a new async feature
107
107
 
108
- 1. Run Step 1; reject if work is CPU-bound.
109
- 2. Sketch the call graph; tag each `await` site with its primitive (Step 2).
110
- 3. Mark every sync↔async boundary; pick the bridge per Step 3.
111
- 4. For each long-running coroutine, write the cancel-safety contract (Step 4).
112
- 5. Grep the leaf calls for blocking sins (Step 5); replace or push to executor.
113
- 6. Hand the sketch to a reviewer **before** coding; cite this skill.
108
+ 1. Inspect the existing call graph and identify each `await` site, sync↔async boundary, and any blocking leaf calls before touching code.
109
+ 2. Run Step 1; reject if work is CPU-bound.
110
+ 3. Sketch the call graph; tag each `await` site with its primitive (Step 2).
111
+ 4. Mark every sync↔async boundary; pick the bridge per Step 3.
112
+ 5. For each long-running coroutine, write the cancel-safety contract (Step 4).
113
+ 6. Grep the leaf calls for blocking sins (Step 5); replace or push to executor.
114
+ 7. Hand the sketch to a reviewer **before** coding; cite this skill.
114
115
 
115
116
  ## Output format
116
117
 
@@ -146,7 +147,7 @@ A single blocking call (sync I/O, time.sleep, CPU-heavy parse, large JSON load)
146
147
 
147
148
  ## Provenance
148
149
 
149
- - Adopted from: an external reference (MIT, © 2025 an external reference) — **Sunset Policy applied**: 694-line cookbook source reduced to a ~140-line decision framework; pattern catalogues externalized to upstream docs below.
150
+ - Adopted from: an external reference (internal provenance, redacted) — **Sunset Policy applied**: a large cookbook source reduced to a ~140-line decision framework; pattern catalogues externalized to upstream docs below.
150
151
  - Externalized cookbook:
151
152
  - asyncio core: https://docs.python.org/3/library/asyncio.html · https://docs.python.org/3/library/asyncio-task.html
152
153
  - TaskGroup (3.11+): https://docs.python.org/3/library/asyncio-task.html#task-groups