@event4u/agent-config 8.10.0 → 8.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 (192) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +148 -0
  3. package/README.md +5 -5
  4. package/dist/agent-src/commands/challenge-me/vision.md +121 -32
  5. package/dist/agent-src/commands/challenge-me/with-docs.md +21 -8
  6. package/dist/agent-src/commands/commit/in-chunks.md +1 -1
  7. package/dist/agent-src/commands/commit.md +2 -1
  8. package/dist/agent-src/commands/cost/report.md +2 -1
  9. package/dist/agent-src/commands/feature/dev.md +4 -4
  10. package/dist/agent-src/commands/humanize.md +101 -0
  11. package/dist/agent-src/commands/jira-ticket.md +2 -2
  12. package/dist/agent-src/commands/memory/load.md +15 -0
  13. package/dist/agent-src/commands/optimize/project.md +12 -0
  14. package/dist/agent-src/commands/roadmap/create.md +12 -11
  15. package/dist/agent-src/commands/tests/create.md +1 -1
  16. package/dist/agent-src/commands/worktree/cleanup.md +22 -17
  17. package/dist/agent-src/commands/worktree/create.md +3 -1
  18. package/dist/agent-src/commands/worktree/status.md +12 -0
  19. package/dist/agent-src/contexts/execution/autonomy-mechanics.md +66 -0
  20. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +1 -0
  21. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +47 -3
  22. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +14 -0
  23. package/dist/agent-src/contexts/execution/roadmap-writing-source-derived.md +65 -0
  24. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +84 -0
  25. package/dist/agent-src/rules/autonomous-execution.md +7 -37
  26. package/dist/agent-src/rules/broken-access-control.md +7 -45
  27. package/dist/agent-src/rules/code-comment-discipline.md +148 -0
  28. package/dist/agent-src/rules/context-hygiene.md +14 -0
  29. package/dist/agent-src/rules/delegation-policy.md +10 -8
  30. package/dist/agent-src/rules/design-fidelity.md +4 -0
  31. package/dist/agent-src/rules/git-history-discipline.md +4 -79
  32. package/dist/agent-src/rules/legal-safety-floor.md +11 -55
  33. package/dist/agent-src/rules/roadmap-progress-sync.md +5 -56
  34. package/dist/agent-src/rules/think-before-action.md +10 -0
  35. package/dist/agent-src/rules/verify-before-complete.md +12 -0
  36. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +13 -12
  37. package/dist/agent-src/skills/ai-council/SKILL.md +19 -9
  38. package/dist/agent-src/skills/api-design/SKILL.md +7 -5
  39. package/dist/agent-src/skills/api-testing/SKILL.md +1 -1
  40. package/dist/agent-src/skills/authz-review/SKILL.md +59 -2
  41. package/dist/agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
  42. package/dist/agent-src/skills/bug-analyzer/SKILL.md +19 -16
  43. package/dist/agent-src/skills/code-refactoring/SKILL.md +9 -9
  44. package/dist/agent-src/skills/content-funnel-design/SKILL.md +2 -0
  45. package/dist/agent-src/skills/data-flow-mapper/SKILL.md +1 -1
  46. package/dist/agent-src/skills/defense-in-depth/SKILL.md +2 -2
  47. package/dist/agent-src/skills/dependency-upgrade/SKILL.md +7 -7
  48. package/dist/agent-src/skills/design-intelligence/SKILL.md +8 -8
  49. package/dist/agent-src/skills/design-review/SKILL.md +23 -2
  50. package/dist/agent-src/skills/doc-coauthoring/SKILL.md +2 -0
  51. package/dist/agent-src/skills/editorial-calendar/SKILL.md +2 -0
  52. package/dist/agent-src/skills/fe-design/SKILL.md +7 -9
  53. package/dist/agent-src/skills/git-workflow/SKILL.md +86 -0
  54. package/dist/agent-src/skills/humanizer/SKILL.md +147 -0
  55. package/dist/agent-src/skills/humanizer/data/patterns.md +190 -0
  56. package/dist/agent-src/skills/humanizer/evals/triggers.json +17 -0
  57. package/dist/agent-src/skills/laravel/SKILL.md +14 -1
  58. package/dist/agent-src/skills/launch-readiness/SKILL.md +20 -19
  59. package/dist/agent-src/skills/legal-practice-profile/SKILL.md +126 -0
  60. package/dist/agent-src/skills/logging-monitoring/SKILL.md +1 -1
  61. package/dist/agent-src/skills/mcp/SKILL.md +1 -1
  62. package/dist/agent-src/skills/memory-consolidation/SKILL.md +14 -1
  63. package/dist/agent-src/skills/migration-architect/SKILL.md +2 -1
  64. package/dist/agent-src/skills/performance/SKILL.md +1 -1
  65. package/dist/agent-src/skills/php-debugging/SKILL.md +17 -0
  66. package/dist/agent-src/skills/readme-writing/SKILL.md +2 -0
  67. package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -0
  68. package/dist/agent-src/skills/release-comms/SKILL.md +2 -0
  69. package/dist/agent-src/skills/roadmap-writing/SKILL.md +22 -51
  70. package/dist/agent-src/skills/security-audit/SKILL.md +6 -9
  71. package/dist/agent-src/skills/sentry-integration/SKILL.md +2 -2
  72. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +8 -0
  73. package/dist/agent-src/skills/source-discovery/SKILL.md +26 -24
  74. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +55 -46
  75. package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +42 -0
  76. package/dist/agent-src/skills/systematic-debugging/SKILL.md +10 -0
  77. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +10 -0
  78. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +27 -20
  79. package/dist/agent-src/skills/worktree-lifecycle/evals/evals.json +38 -0
  80. package/dist/agent-src/templates/agent-settings.md +3 -2
  81. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +15 -1
  82. package/dist/agent-src/templates/roadmaps.md +14 -0
  83. package/dist/cli/commands/recordTriggerEval.js +4 -14
  84. package/dist/cli/commands/recordTriggerEval.js.map +1 -1
  85. package/dist/discovery/deprecation-report.md +1 -1
  86. package/dist/discovery/discovery-manifest.json +147 -78
  87. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  88. package/dist/discovery/discovery-manifest.summary.md +6 -6
  89. package/dist/discovery/orphan-report.md +1 -1
  90. package/dist/discovery/packs.json +13 -10
  91. package/dist/discovery/trust-report.md +3 -3
  92. package/dist/discovery/workspaces.json +14 -9
  93. package/dist/install/install.mjs +12 -7
  94. package/dist/mcp/registry-manifest.json +4 -4
  95. package/dist/router.json +1 -1
  96. package/dist/scripts/_lib/claude_settings_hooks.js +8 -0
  97. package/dist/scripts/_lib/claude_settings_hooks.js.map +1 -1
  98. package/dist/scripts/_lib/trigger_eval_floors.js +24 -0
  99. package/dist/scripts/_lib/trigger_eval_floors.js.map +1 -0
  100. package/dist/scripts/condense.js +12 -2
  101. package/dist/scripts/condense.js.map +1 -1
  102. package/dist/server/schemas/settings.js +5 -2
  103. package/dist/server/schemas/settings.js.map +1 -1
  104. package/docs/CLAIMS.md +24 -3
  105. package/docs/architecture.md +3 -3
  106. package/docs/benchmark.md +51 -0
  107. package/docs/catalog.md +8 -5
  108. package/docs/command-flows.md +2 -1
  109. package/docs/contracts/ai-council-config.md +92 -0
  110. package/docs/contracts/command-clusters.md +1 -0
  111. package/docs/contracts/evidence-based-pruning.md +1 -0
  112. package/docs/contracts/hook-architecture-v1.md +25 -0
  113. package/docs/contracts/kernel-membership.md +35 -0
  114. package/docs/contracts/measurement-baseline.md +1 -0
  115. package/docs/contracts/release-sizing.md +22 -0
  116. package/docs/contracts/write-engine.md +38 -1
  117. package/docs/customization.md +12 -0
  118. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +11 -0
  119. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +11 -0
  120. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +1 -1
  121. package/docs/decisions/ADR-028-root-layout.md +1 -1
  122. package/docs/decisions/ADR-038-canonical-settings-path.md +10 -0
  123. package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +29 -5
  124. package/docs/decisions/ADR-093-ai-council-config-user-global.md +1 -1
  125. package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +7 -0
  126. package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +2 -2
  127. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +1 -1
  128. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +11 -0
  129. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +11 -1
  130. package/docs/decisions/ADR-117-subagents-auto-default-on.md +2 -1
  131. package/docs/decisions/ADR-118-loop-engineering-boundaries.md +162 -0
  132. package/docs/decisions/ADR-119-global-knowledge-default-on.md +104 -0
  133. package/docs/decisions/ADR-200-python-to-typescript-migration.md +11 -1
  134. package/docs/decisions/ADR-rule-kernel-and-router.md +11 -0
  135. package/docs/decisions/INDEX.md +11 -9
  136. package/docs/design/cross-model-parity-eval.md +82 -0
  137. package/docs/design/length-neutral-judge-rerun.md +92 -0
  138. package/docs/featured-skills.md +2 -2
  139. package/docs/getting-started-by-role.md +1 -1
  140. package/docs/getting-started.md +2 -2
  141. package/docs/governance-advantage.md +1 -1
  142. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +80 -5
  143. package/docs/guidelines/code-clarity.md +106 -1
  144. package/docs/guidelines/design-antipatterns.md +20 -0
  145. package/docs/guidelines/php/php-coding-patterns.md +12 -2
  146. package/docs/proof.md +20 -14
  147. package/docs/wedge/production-validator/production-validator.md +27 -0
  148. package/package.json +1 -1
  149. package/src/config/agent-settings.template.yml +29 -9
  150. package/src/scripts/_cli/cmd_doctor.ts +34 -1
  151. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +87 -0
  152. package/src/scripts/_lib/claude_settings_hooks.ts +8 -0
  153. package/src/scripts/_lib/knowledge_global.ts +6 -2
  154. package/src/scripts/_lib/knowledge_global_redaction.ts +42 -4
  155. package/src/scripts/_lib/lexical_index.ts +15 -2
  156. package/src/scripts/_lib/orchestration_record.ts +14 -0
  157. package/src/scripts/_lib/trigger_eval_floors.ts +31 -0
  158. package/src/scripts/ai_council/chairman.ts +90 -0
  159. package/src/scripts/ai_council/clients.ts +18 -3
  160. package/src/scripts/ai_council/config.ts +157 -0
  161. package/src/scripts/ai_council/debate_gates.ts +89 -0
  162. package/src/scripts/ai_council/orchestrator.ts +65 -2
  163. package/src/scripts/ai_council/prompts.ts +121 -11
  164. package/src/scripts/ai_council/replay.ts +17 -0
  165. package/src/scripts/ai_council/stance_tally.ts +184 -0
  166. package/src/scripts/ai_tells_rules.ts +433 -0
  167. package/src/scripts/bench_humanizer_eval.ts +240 -0
  168. package/src/scripts/build_discovery_manifest.ts +6 -0
  169. package/src/scripts/build_proof.ts +21 -9
  170. package/src/scripts/check_claims.ts +40 -0
  171. package/src/scripts/check_rule_invariants.ts +10 -3
  172. package/src/scripts/condense.ts +16 -2
  173. package/src/scripts/consumer_matrix.ts +41 -2
  174. package/src/scripts/council_cli.ts +147 -0
  175. package/src/scripts/detect_ai_tells.ts +312 -0
  176. package/src/scripts/install.ts +12 -0
  177. package/src/scripts/knowledge_global_cli.ts +1 -1
  178. package/src/scripts/lint_framework_leakage.ts +88 -7
  179. package/src/scripts/lint_framework_leakage_allowlist.json +59 -572
  180. package/src/scripts/lint_knowledge_scale.ts +30 -0
  181. package/src/scripts/lint_originality_shingles.ts +210 -0
  182. package/src/scripts/orchestration_record.ts +1 -0
  183. package/src/scripts/schemas/agent-settings.schema.json +11 -0
  184. package/src/scripts/self_review_gate.ts +41 -15
  185. package/src/scripts/skill_eval_coverage.ts +71 -3
  186. package/src/scripts/skill_linter.ts +1 -0
  187. package/src/scripts/trigger_eval_rotation.ts +344 -0
  188. package/src/scripts/update_counts.ts +5 -17
  189. package/src/scripts/worktree_cleanup_check.ts +263 -0
  190. package/src/server/schemas/settings.ts +8 -3
  191. package/src/scripts/analysis_freshness.ts +0 -362
  192. package/src/scripts/export_replay_corpus.ts +0 -208
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
9
- "version": "8.10.0",
9
+ "version": "8.11.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -94,6 +94,23 @@ One question — answer in [Discussions](https://github.com/event4u-app/agent-co
94
94
  This gates the read-only MCP discovery helper (`agent-config mcp:search`) and the
95
95
  deferred auto-install question (`ADR-086`).
96
96
 
97
+ ### Added — humanizer (AI-tell removal for deliverable prose) (`road-to-humanized-writing` + `road-to-humanizer-hardening`)
98
+
99
+ - **`humanizer` skill + `/humanize` command** (gtm-marketing pack) — remove
100
+ AI-writing tells from deliverable prose (posts, articles, drafts) via a
101
+ draft→audit→final loop; scoped to deliverable text only, never chat replies
102
+ or repo docs.
103
+ - **`detect_ai_tells.ts` detector** — deterministic hard-tell / weighted-cluster
104
+ / em-dash-density scan (EN + DE), with a hidden-unicode ingestion scan and a
105
+ ReDoS length bound on untrusted input.
106
+ - **Behavior change — write-engine step 4b is default-on.** Ghostwriter /
107
+ `post-as` drafts now pass a humanize audit before delivery; opt out per run
108
+ with `--raw`. The mechanical detector pass runs when a Node runtime is
109
+ present and degrades to a prose-only audit otherwise — the new
110
+ `humanizer-runtime` doctor check reports which path an install gets.
111
+ - **Disclosure footer stays inviolable** through the audit; quoted/secondhand
112
+ text is never rewritten.
113
+
97
114
  ### Added — `agents/` directory contract + gitignore hygiene (`road-to-agents-dir-and-gitignore-hygiene`)
98
115
 
99
116
  - **`docs/contracts/agents-layout.md`** — authoritative contract for every top-level entry in `agents/` (purpose, git policy, retention, consumer-scope); includes the User Inbox Workflow (`agents/tmp/` → `agents/tmp.old/`).
@@ -998,6 +1015,137 @@ our recommendation order, not its support status.
998
1015
  > that forces a new era split (`# Era: 8.10.x`, etc.) — see
999
1016
  > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
1000
1017
 
1018
+ ## [8.11.0](https://github.com/event4u-app/agent-config/compare/8.10.0...8.11.0) (2026-07-12)
1019
+
1020
+ ### Features
1021
+
1022
+ * **council:** chairman billable dispatch + estimate row + render injection ([9a62bf1](https://github.com/event4u-app/agent-config/commit/9a62bf1044a872949e46ffcb4581df4966d04887))
1023
+ * **council:** wire the stance tally end-to-end (final-round contract + Vote Tally render) ([ba84f55](https://github.com/event4u-app/agent-config/commit/ba84f55585a858f3d7053e950369a89b50e6f81c))
1024
+ * **council:** encode the contested-design council decisions (auto-select + repair policy) ([5f10a51](https://github.com/event4u-app/agent-config/commit/5f10a51904605ddd68840e3fa70983686e16fcdb))
1025
+ * **council:** chairman/debate_gates/restate config blocks + contract doc ([0f09a95](https://github.com/event4u-app/agent-config/commit/0f09a9525c010040facb84c3af57ce59eabfe968))
1026
+ * **council:** Phase 3 anti-conformity directive (wired) + debate-gate detectors ([b07b722](https://github.com/event4u-app/agent-config/commit/b07b7229caf61c793203dcd7ebe707f5d7b45ac1))
1027
+ * **council:** Phase 2 chairman selection (default-off, host fallback) ([caa518f](https://github.com/event4u-app/agent-config/commit/caa518fe27357200fa26fa66d5a55426986deb5f))
1028
+ * **memory:** five protocol borrows with existing checkers as hooks (retrieval Phase 3) ([9405ad1](https://github.com/event4u-app/agent-config/commit/9405ad169785cc0a8da20b5c390436b47c38425e))
1029
+ * **lexical:** term-coverage squaring in BM25 score (retrieval Phase 1) ([2beff15](https://github.com/event4u-app/agent-config/commit/2beff157a6b983d0b414f8521c552ac49be606a2))
1030
+ * **council:** Phase 1 — option-level stance-tally foundation (default-off) ([6852c40](https://github.com/event4u-app/agent-config/commit/6852c4080f5ca40514150a0e52491ac751b330e1))
1031
+ * **council:** Phase 0 — claims hygiene + verdict falsifiability ([c65885e](https://github.com/event4u-app/agent-config/commit/c65885e4bf3220fd32dabec53b706e682d8dfb67))
1032
+ * **worktree:** optional env-bootstrap stand-up convention (harness P1) ([b80e197](https://github.com/event4u-app/agent-config/commit/b80e1972ffe349feb98535b3e22c4dd8e919c454))
1033
+ * **bench:** spend-gate + claim re-scoping to the fixture corpus (Phases 3-4) ([52e0beb](https://github.com/event4u-app/agent-config/commit/52e0beb1486b6dbcd320324be5c9547c18f761b1))
1034
+ * **doctor:** humanizer-runtime check + step-4b fallback proof (Phase 2) ([f615ec6](https://github.com/event4u-app/agent-config/commit/f615ec6bea86138fec39f06cab46c8427974bb7f))
1035
+ * **humanizer:** untrusted-input handling on the ingestion path (Phase 1) ([902f9a4](https://github.com/event4u-app/agent-config/commit/902f9a4d83f67422dd7f47f0f14ed236bf99874b))
1036
+ * **design-fidelity:** no-unrequested-filler line + live-app-judge candidate ([ca57cc5](https://github.com/event4u-app/agent-config/commit/ca57cc53ee817fecef06277da38df26e1f6fc6ff))
1037
+ * **design-review:** canonical 6-state checklist + serial-audit decision ([a80de67](https://github.com/event4u-app/agent-config/commit/a80de67f84b7905b56a8bde5815b392ccfcda550))
1038
+ * **design:** consolidate slop-trope canon into one cited catalog ([dfe7f42](https://github.com/event4u-app/agent-config/commit/dfe7f42e9b9c026710a24ea4d0077ef05da01863))
1039
+ * **orchestration:** form gate, dispatch_mode telemetry, live-app judge mode, read-only knowledge attach ([8bf5990](https://github.com/event4u-app/agent-config/commit/8bf5990cfac3c445dd7e4cc6035f7f92953f3c73))
1040
+ * **subagents:** fleet hardening — prompt-defense preamble, claim witness sweep, originality shingles, hook-resilience shim ([ea40a54](https://github.com/event4u-app/agent-config/commit/ea40a54e62653843d82a288349ef7b7dc04d62a6))
1041
+ * **bench:** humanizer paired eval — corpus to 20 pairs, claim backed ([28dda19](https://github.com/event4u-app/agent-config/commit/28dda1942964841604d8ef148938c36dc209f4b0))
1042
+ * **commands:** /humanize — on-demand AI-tell removal cluster ([eb545e5](https://github.com/event4u-app/agent-config/commit/eb545e58367e8b0c8c0f8d6446409b4e207604f0))
1043
+ * **contracts:** write-engine step 4b — humanize audit ([29a1b9a](https://github.com/event4u-app/agent-config/commit/29a1b9a7f9114929f3db10a7cc006969be16d35c))
1044
+ * **skills:** humanizer skill — two-phase, deliverable-scoped ([489a143](https://github.com/event4u-app/agent-config/commit/489a14325c09aa3faf58d9d75ff9375146d43d61))
1045
+ * **scripts:** deterministic AI-tell detector with fixture corpus ([ae48a99](https://github.com/event4u-app/agent-config/commit/ae48a99d9dd8d0a6943f063901bd893b383cde38))
1046
+ * **flow-learnings:** real org fleet run green → close the roadmap ([71953fe](https://github.com/event4u-app/agent-config/commit/71953fe807152bab6b1492b3d5a977615438ae1a))
1047
+ * **knowledge:** flip global sharing default ON per ADR-119 (council-validated) ([be3f603](https://github.com/event4u-app/agent-config/commit/be3f6032640e40715e3a7c1ec145fe2508707501))
1048
+ * **token-saving:** Phase-0 quality gate measured — thin projection FAILS (does not ship) ([b362fa6](https://github.com/event4u-app/agent-config/commit/b362fa65369dab7209d6b9a8db98e705a8ac41a8))
1049
+ * **roadmaps:** add road-to-opt-* cluster from whole-package optimization sweep ([9688082](https://github.com/event4u-app/agent-config/commit/9688082a606a60879dc92aa29f5f575d23bc5a07))
1050
+ * **golden-set:** complete the consumer-scope corpus (council-labelled) + close golden-set-coverage ([fc6c120](https://github.com/event4u-app/agent-config/commit/fc6c120bb777182140f7ffc8fe905560179e9bff))
1051
+ * **domain-soundness:** ratify the validated count + close the roadmap ([c93f8bf](https://github.com/event4u-app/agent-config/commit/c93f8bf8e3dda437732024b65983aa68a09e76d4))
1052
+ * **orchestration:** deterministic parallelizable-classifier corpus recall (+regression test) ([7d78284](https://github.com/event4u-app/agent-config/commit/7d78284c25dd94068a45250dd66b21b331ce53f0))
1053
+ * **subagent-value:** verify orchestration telemetry pipeline end-to-end (Phase 1 Step 1) ([a0158e5](https://github.com/event4u-app/agent-config/commit/a0158e5f55a86e65db1fc72508fd270e72f4f2d9))
1054
+ * **orchestration-scope:** pre-register the falsifiable dispatch claim (Phase 1) ([1449f6c](https://github.com/event4u-app/agent-config/commit/1449f6c5bcb8d5efca87779a676fd9f10baf5f7b))
1055
+ * **evals:** weekly live trigger-eval pass-rate rotation in cross-model canary (ADR-118 §4) ([209c3fd](https://github.com/event4u-app/agent-config/commit/209c3fdf99fccd1cf2a8fa18d6c0b72cb2115bd9))
1056
+ * **flow-learnings:** record the live two-host matrix run (HONEST-NULL) + resolve the blocker ([4ad8c51](https://github.com/event4u-app/agent-config/commit/4ad8c51334fde4d54f09f4cfb39155e681aad4ed))
1057
+ * **release-ops:** leg manifest, bus-factor NEUTRAL state, growth ratchet, Primary-Goal ([0e70da1](https://github.com/event4u-app/agent-config/commit/0e70da15419b2a6d81f9f8aca9295448ea33ff91))
1058
+ * **worktree:** deterministic cleanup gates + 8-row edge-case matrix ([884c230](https://github.com/event4u-app/agent-config/commit/884c230f870be07b81a5866c85b4077e000b1b2e))
1059
+ * **evals:** priority-tier eval floor + two golden E2E evals ([7711ffe](https://github.com/event4u-app/agent-config/commit/7711ffe098ad3edce826a0e72f359619faadeb16))
1060
+ * **invariants:** documented change process for protected kernel strings ([dfb0e61](https://github.com/event4u-app/agent-config/commit/dfb0e6107d9f88246dcccd7716ffa2e98e9450be))
1061
+ * **rules:** code-comment-discipline — why-only comments, no signature-mirroring docblocks ([055a565](https://github.com/event4u-app/agent-config/commit/055a565a622536a318c8c0de3c3b2869ebfb198c))
1062
+ * **discipline-profile:** dispose of the full tier via council; park roadmap in later/ ([c03b21a](https://github.com/event4u-app/agent-config/commit/c03b21a85086fcb403d3e52b8147b5a56c4cea3f))
1063
+
1064
+ ### Bug Fixes
1065
+
1066
+ * **hashes:** recondense the 7 commands whose assembled output my skill edits changed ([baa2afd](https://github.com/event4u-app/agent-config/commit/baa2afdd7b5641d6808fd65ba9342f0fba4300be))
1067
+ * **proof:** regenerate docs/proof.md after CLAIMS skill-count edit ([7e82690](https://github.com/event4u-app/agent-config/commit/7e826902a8fd47617a992e01be43b3947f2c3618))
1068
+ * **ai-council:** extract anthropic/gemini CLI default model constants ([850f465](https://github.com/event4u-app/agent-config/commit/850f4652b9caada116399bcc97ad67baaa5fec13))
1069
+ * **ai-council:** pin codex CLI default model as a named constant ([606f9ef](https://github.com/event4u-app/agent-config/commit/606f9ef45b44fe47c73f78105806bdba6df4ea00))
1070
+ * **index:** regenerate index.md + catalog.md after humanizer/humanize landed ([993ef76](https://github.com/event4u-app/agent-config/commit/993ef7626729b9989d8febf782578cd18f75e93d))
1071
+ * **roadmaps:** break `x` skill ref pattern for the not-yet-built evaluate-llm-feature ([245f02b](https://github.com/event4u-app/agent-config/commit/245f02b26c3c03474f42bad8b07b6cce2ccc7c68))
1072
+ * **contexts:** correct decision-revisit-gate link in the telegraph-tension note ([2711db0](https://github.com/event4u-app/agent-config/commit/2711db0acd2131f8df562fe31dacaeebc9c3802a))
1073
+ * **ci:** classify /humanize in surface-map flow coverage ([aef3224](https://github.com/event4u-app/agent-config/commit/aef322460a0e0b45b604c5accf55a218790c9d49))
1074
+ * **discovery:** skip _-prefixed subagent partials in strict manifest build ([dd943d6](https://github.com/event4u-app/agent-config/commit/dd943d64a73df659bd985e0e807181397ab416e6))
1075
+ * **ci:** humanize command visibility internal (tier-2 contract) ([b715105](https://github.com/event4u-app/agent-config/commit/b71510564fcf6f8e3754f84356a9786cd84e164a))
1076
+ * **ci:** eslint no-console + unused import; humanize visibility enum ([735eb03](https://github.com/event4u-app/agent-config/commit/735eb034c3e626d2d53bad440c881e4660d2a1f3))
1077
+ * **legal:** reflow forbidden-language examples onto marker-carrying lines ([d3496b9](https://github.com/event4u-app/agent-config/commit/d3496b91805d16ae07def730669182eeeb15ba25))
1078
+ * **neutrality:** framework-leakage allowlist 104 -> 14 via linter upgrades + 25 neutralizations + 2 carve-outs ([0f04776](https://github.com/event4u-app/agent-config/commit/0f047762a28067f0422601e417bbb87af88b892c))
1079
+ * **install:** rebuild bundle with local node_modules (path-comment drift) ([ce3d845](https://github.com/event4u-app/agent-config/commit/ce3d8456e58d9e09da7c73282b538dc46fe91040))
1080
+ * **self-review-gate:** never fail CI on missing key / no credit — wrap the live path ([8005839](https://github.com/event4u-app/agent-config/commit/8005839fc1c7447fa91d80cf30b2ed29f66b0a0a))
1081
+ * **roadmaps:** close the two transcript-audit gaps ([e3bc430](https://github.com/event4u-app/agent-config/commit/e3bc430aba27fe88b70db0a016a4e19bac9b2e92))
1082
+ * **roadmaps:** review nits — benchmark scope precision, SHA-rule semantics, resolve verified borrow ([b0ed571](https://github.com/event4u-app/agent-config/commit/b0ed5712e1ef92b7e4084d657dba5ebb2236ba3d))
1083
+ * **roadmaps:** review corrections — SHA-pinned verification, drop landed scope, fix numbers ([14025ce](https://github.com/event4u-app/agent-config/commit/14025cef2c6aee1a058f7ad3048f580cd9ce667f))
1084
+ * **install:** ship the missing dist/install/rule_scope.js (stop-hook crash) ([4222081](https://github.com/event4u-app/agent-config/commit/422208190e9bc4a56cc82baa795127224e8c1b65))
1085
+ * **rules:** wire code-comment-discipline into router, counts, and settings schema ([ffa88e5](https://github.com/event4u-app/agent-config/commit/ffa88e546335b1832a82cc7cb9067845b09bb441))
1086
+ * **proof:** compute the coverage paragraph live from computeCoverage() ([dfa77e9](https://github.com/event4u-app/agent-config/commit/dfa77e9c6e180d21be0b86afa555f53c8f79619d))
1087
+ * **install:** rebuild install bundle with worktree-local module paths ([5933bf1](https://github.com/event4u-app/agent-config/commit/5933bf1a9b9b46baf5b38f860bdee020c8b4a2dc))
1088
+
1089
+ ### Documentation
1090
+
1091
+ * **roadmap:** flip the chairman-dispatch + estimate-row steps ([a2faf9d](https://github.com/event4u-app/agent-config/commit/a2faf9dc576a14c984ffc23daf9c083166254a0c))
1092
+ * **roadmap:** flip the stance-tally wiring steps (Phase 1 integration live) ([3117878](https://github.com/event4u-app/agent-config/commit/31178781106a3fc0a31c3710ee42e9b7037b50ad))
1093
+ * **roadmap:** fix broken ref — name upstream plugin files without local-path form ([7dec6df](https://github.com/event4u-app/agent-config/commit/7dec6dfdabefd4abe9edcf4244215a3827dcb2de))
1094
+ * **roadmap:** resolve contested-design-council-pass with council notes ([1fd6dff](https://github.com/event4u-app/agent-config/commit/1fd6dff6f1f4f3a2080ae3c1531515bee231f34d))
1095
+ * **roadmap:** add team-mode roadmap (govern the official cross-model pair) ([a185db0](https://github.com/event4u-app/agent-config/commit/a185db0de5440923cc4045cb49f25fd29dbe832d))
1096
+ * **ai-council:** document council vs team-mode boundary ([af7ffeb](https://github.com/event4u-app/agent-config/commit/af7ffeb9bf32a06dea1ee5439fc9f8d9cfca363e))
1097
+ * **readme:** drop artefact counts from prose — badges carry the numbers ([4ea0f47](https://github.com/event4u-app/agent-config/commit/4ea0f47c5be35554d8c40b214492bfe7ccff93f8))
1098
+ * **design:** measurement-unblock design prep + un-park (runs gated) ([72f618a](https://github.com/event4u-app/agent-config/commit/72f618acbadd61a56fa65b0939bf3c87d57f3269))
1099
+ * **roadmaps:** reconcile parallel-exploration depth into the harvest cluster ([aa50574](https://github.com/event4u-app/agent-config/commit/aa505749a625b0be321982313e435cfbfe27b0c3))
1100
+ * **roadmaps:** second-sweep harvest — review, workflow, quality-gates + coverage ([d2258ed](https://github.com/event4u-app/agent-config/commit/d2258ed5dc61c796091eaa8751ba92f500f4804a))
1101
+ * **roadmaps:** add ecosystem-harvest roadmap set from external skill survey ([d5bed31](https://github.com/event4u-app/agent-config/commit/d5bed315a458ee9e8ba98af4a4ec62308e069d88))
1102
+ * **roadmaps:** close + archive humanizer-hardening (21/21) ([1ad6813](https://github.com/event4u-app/agent-config/commit/1ad681324ac25109c8590ca7b0b45090ff91ef55))
1103
+ * **roadmaps:** humanizer-hardening follow-up from parent review ([f69621e](https://github.com/event4u-app/agent-config/commit/f69621e6ebbb665da15420ed3c8567f8c1c004f5))
1104
+ * **roadmaps:** humanized-writing adoption roadmap (council-decided) ([464a66c](https://github.com/event4u-app/agent-config/commit/464a66c0ae48abc82a951ea8201580f6eab27474))
1105
+ * **roadmap:** road-to-loop-engineering executed and archived ([ccad788](https://github.com/event4u-app/agent-config/commit/ccad788bb78b84346abf811119eecf923cb21501))
1106
+ * **adr:** ADR-118 loop-engineering boundaries — one closure, four rejections, zero new loop surfaces ([c27ba0c](https://github.com/event4u-app/agent-config/commit/c27ba0cee1295f7a88e231e1a458c35efba13c70))
1107
+ * **telemetry:** operationalize first_pass_success / escalated — zero schema change ([dfc8a64](https://github.com/event4u-app/agent-config/commit/dfc8a646a62b1cc03876d53f687d2673dff44d25))
1108
+
1109
+ ### Refactoring
1110
+
1111
+ * **rules:** thin-stub the five heaviest auto-rules (-5,652 eager tokens) ([6ef4102](https://github.com/event4u-app/agent-config/commit/6ef4102d6448cf5a37f3e1555b33299ebd75c907))
1112
+
1113
+ ### Tests
1114
+
1115
+ * **humanizer:** lock scan-what-you-ingest invariant + spend-gate no-network ([117a703](https://github.com/event4u-app/agent-config/commit/117a7039b6ad6496d787ac44d9d61f02f7b35351))
1116
+ * **subagents:** exclude _-prefixed partials from wedge coverage ([f117d38](https://github.com/event4u-app/agent-config/commit/f117d3893c2ae83219d202c4139933a71b539bcb))
1117
+
1118
+ ### Chores
1119
+
1120
+ * **condense:** refresh folded condensation hashes for 11 dependents ([701d588](https://github.com/event4u-app/agent-config/commit/701d588962f1ee807689820318e9a6fe82988892))
1121
+ * **skills:** clear three chronic skill-lint warnings ([c6c62af](https://github.com/event4u-app/agent-config/commit/c6c62af0162a723fbc083cbe3e1979b1ff2fa3a6))
1122
+ * **roadmap:** council-deliberation Phase 2-3 continuation (default-off, dispatch gated) ([197ce1b](https://github.com/event4u-app/agent-config/commit/197ce1b368b5ab11b0b55d1a38cddf5d70561ac7))
1123
+ * ignore fleet ([6b7a381](https://github.com/event4u-app/agent-config/commit/6b7a3816136541f6f31e59f25d465b74154f86dd))
1124
+ * **roadmap:** un-park retrieval-and-memory (Phases 1/3/4 + Phase-2 κ) + hashes ([979de16](https://github.com/event4u-app/agent-config/commit/979de160ef90c062d994ba0398adfa9eff345da6))
1125
+ * **roadmap:** un-park council-deliberation (Phase 0 done, Phase 1 foundation) + hashes ([a56bee6](https://github.com/event4u-app/agent-config/commit/a56bee6e4b507c6271f69bde2ca2842e6483309b))
1126
+ * **roadmap:** resolve harness-discipline P5 (route to council) + archive ([83952cf](https://github.com/event4u-app/agent-config/commit/83952cfdffeb69f9d995a4fc373c4e8c4bad5073))
1127
+ * **roadmap:** un-park harness-discipline (Phases 1-4 done, P5 open) + hashes ([16127fa](https://github.com/event4u-app/agent-config/commit/16127fa1883786c676dda3b7934c32aceb608f96))
1128
+ * **roadmap:** archive road-to-opt-design-polish + refresh condensation hashes ([c57932d](https://github.com/event4u-app/agent-config/commit/c57932dc266ea67ffff0b38fa1e95df8a96699b1))
1129
+ * regenerate wedge doc + meta catalog after prompt-defense/orchestration edits ([28b87fd](https://github.com/event4u-app/agent-config/commit/28b87fdda66e0447dcc52be4e4737381d4a4490b))
1130
+ * refresh condensation hashes for subagent-orchestration dependents ([6c1f61d](https://github.com/event4u-app/agent-config/commit/6c1f61d5639d904a512aac87f00f272f8acef715))
1131
+ * **proof:** regenerate docs/proof.md after CLAIMS.md humanizer entry ([9c6099e](https://github.com/event4u-app/agent-config/commit/9c6099e4627e3d46ec0af7c3025051af168552fd))
1132
+ * **roadmaps:** archive completed humanized-writing roadmap ([6892409](https://github.com/event4u-app/agent-config/commit/6892409d27e9346f3bcaf90b29b7ca46fc31748c))
1133
+ * **hygiene:** reports retention convention, reference justification, orphan sweep, roadmap closure ([eb2b98e](https://github.com/event4u-app/agent-config/commit/eb2b98e0b1ccfd965efa073f640e8ec125946b1b))
1134
+ * **roadmaps:** AI-council re-scope of the token/measurement cluster after the thin-null ([74120fd](https://github.com/event4u-app/agent-config/commit/74120fd15ed549f18494d2cddd529200f0653aa6))
1135
+ * **adr:** decision-flips hygiene — ADR-092 addendum, corpus repairs, stale-prose fixes ([e405190](https://github.com/event4u-app/agent-config/commit/e405190dc0620bb7f859c442033d31a082ac6204))
1136
+ * **token-saving:** reality-sync 2 verified-met acceptance criteria (Phase 5 + Phase 10) ([faea1de](https://github.com/event4u-app/agent-config/commit/faea1ded3e7bdc81697a562ad7bcbe0d194160c9))
1137
+ * **roadmaps:** execute road-to-opt-portfolio-consolidation (process-full) ([c54ea39](https://github.com/event4u-app/agent-config/commit/c54ea39984dc436e14be0a743e60f7d82b435687))
1138
+ * **request-scoped:** record the held-quality gate as evidence-RED (thin failed), no further spend ([7642c13](https://github.com/event4u-app/agent-config/commit/7642c131ba3c70b20ae0c24447f911f4dc8b8149))
1139
+ * **roadmaps:** park the road-to-opt-* cluster in later/ (maintainer decision) ([9a027fe](https://github.com/event4u-app/agent-config/commit/9a027fe8cdd7d68dfc3636ccac652771adc9b463))
1140
+ * modify domain soundness ([b51eb29](https://github.com/event4u-app/agent-config/commit/b51eb29dbaa4d3ad2c7af13c32df8cfa0347c276))
1141
+ * **gitignore:** re-ignore dist/install/*_cli.js tsc byproducts ([e5913ef](https://github.com/event4u-app/agent-config/commit/e5913ef0404ee99c9c337b404882616f25edb763))
1142
+ * **packs:** regenerate engineering-base manifest for code-comment-discipline ([3973c47](https://github.com/event4u-app/agent-config/commit/3973c47651a60a617363786a13b899b752a01f1c))
1143
+ * **proof:** regenerate proof.md for the new unbacked claim (build-proof-check) ([7cbe82f](https://github.com/event4u-app/agent-config/commit/7cbe82fa828335e78b33cbb7b7c94c7472434440))
1144
+ * **roadmap:** fable-feedback-5 — executed and archived in its own PR ([e106f40](https://github.com/event4u-app/agent-config/commit/e106f40dfe0174f1678f7b8f5a13a2d3859b6d53))
1145
+ * **flow-learnings:** commit the bench matrix run-config + concretize the live-run blocker ([318739c](https://github.com/event4u-app/agent-config/commit/318739c0ef10a79efe899052780340a646797567))
1146
+
1147
+ Tests: 7379 (+167 since 8.10.0)
1148
+
1001
1149
  ## [8.10.0](https://github.com/event4u-app/agent-config/compare/8.9.0...8.10.0) (2026-07-10)
1002
1150
 
1003
1151
  ### Features
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config) [![agent-config MCP server](https://glama.ai/mcp/servers/event4u-app/agent-config/badges/score.svg)](https://glama.ai/mcp/servers/event4u-app/agent-config)
6
6
 
7
- [![Skills](https://img.shields.io/badge/Skills-270-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-103-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-177-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-90-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
7
+ [![Skills](https://img.shields.io/badge/Skills-271-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-104-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-178-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-90-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
8
8
 
9
9
  > **Choose your experience — developer · founder · content · agency · finance · ops. Add packs. Get a focused command set, not a 500-artefact dump.** Bring your own AI provider.
10
10
 
@@ -12,13 +12,13 @@
12
12
 
13
13
  **Every public claim in this README is machine-checked — [verify it yourself](docs/proof.md).** In a market that runs on unbacked headline numbers, this one binds each claim to resolvable evidence or fails its own build.
14
14
 
15
- **270 skills, 177 commands, 103 governed rules** — plus a capability router that loads the right skill on intent, and multi-agent orchestration with consensus review. The whole layer is compiled into 7+ host agents (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini) with **zero runtime daemon**.<!-- claim:no-runtime-daemon --> Six role-shaped entry paths sit on top, so any host becomes a reliable team member — without locking you to a single model or vendor.
15
+ **A deep library of skills, commands, and governed rules** — plus a capability router that loads the right skill on intent, and multi-agent orchestration with consensus review. The whole layer is compiled into 7+ host agents (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini) with **zero runtime daemon**.<!-- claim:no-runtime-daemon --> Six role-shaped entry paths sit on top, so any host becomes a reliable team member — without locking you to a single model or vendor.
16
16
 
17
17
  ### What's different
18
18
 
19
19
  It is both deep **and** disciplined — and honest about what it deliberately is not:
20
20
 
21
- - **Depth that routes itself** — 270 skills + 177 commands, with a capability router that loads the right one on intent, not a 500-artefact context dump.
21
+ - **Depth that routes itself** — a deep skill and command library, with a capability router that loads the right one on intent, not a 500-artefact context dump.
22
22
  - **Governance on every host** — rules compiled into each tool's native format at projection time; deterministic runtime hooks added on hook-capable hosts. This config-space, host-agnostic governance is the moat ([the governance advantage](docs/governance-advantage.md) · [enforcement by host](docs/enforcement-by-host.md)).
23
23
  - **Surgical uninstall** — removes only its own keys from a shared host config (matched by JSON-pointer + SHA-256), never a neighbour tool's entries.<!-- claim:surgical-uninstall -->
24
24
  - **Pack-scoped install** — writes the active pack only, not a 500-artefact dump.
@@ -67,7 +67,7 @@ what is *not* loaded · examples):
67
67
 
68
68
  ### Workflows, not raw commands
69
69
 
70
- You don't memorize 177 commands — you run a **work journey**. Four flows span the
70
+ You don't memorize every command — you run a **work journey**. Four flows span the
71
71
  developer story end-to-end; each names the command you TYPE to start and the
72
72
  skills it composes:
73
73
 
@@ -462,7 +462,7 @@ When a prompt matches a command's purpose ("setze ticket ABC-123 um" → `/imple
462
462
  | [**Migration**](docs/MIGRATION.md) | Per-version upgrade steps |
463
463
  | [**Showcase**](docs/showcase.md) | More examples & expected behavior |
464
464
 
465
- Browse content: [all 177 commands](dist/agent-src/commands/) · [skills catalog](docs/skills-catalog.md) · [full catalog](docs/catalog.md) · [`llms.txt`](llms.txt).
465
+ Browse content: [all commands](dist/agent-src/commands/) · [skills catalog](docs/skills-catalog.md) · [full catalog](docs/catalog.md) · [`llms.txt`](llms.txt).
466
466
 
467
467
  ---
468
468
 
@@ -34,7 +34,10 @@ Drop the seed — a plan, idea, ticket draft, or design sketch — and I'll
34
34
  walk you through a decision tree, one question per turn, until I'm 95%
35
35
  sure what you want. Then you get a copyable Markdown pitch.
36
36
 
37
- Stop early any time by typing `!pitch` (or `!Vision pitchen`).
37
+ End the interview early any time:
38
+ `!pitch` — emit pitch, hand back
39
+ `!roadmap` — emit pitch + auto-route to `/roadmap:create`
40
+ `!ai` / `!council` — poll the AI council for the open question(s), continue (cost auto-accepted)
38
41
  ```
39
42
 
40
43
  Skip the welcome if the user invokes `/challenge-me vision <seed>` directly.
@@ -138,7 +141,7 @@ NEVER ASK WHAT `grep`, `view`, OR `codebase-retrieval` ANSWERS IN SECONDS.
138
141
  2. **Look up before asking.** Existing routes, model fields, conventions,
139
142
  feature flags, previous similar features → resolve from the repo.
140
143
  Surface findings briefly in the next question block ("Repo says X
141
- already exists at `path/to/file.php`"). The user should never have to
144
+ already exists at `path/to/file`"). The user should never have to
142
145
  answer a question the codebase already answers.
143
146
  3. **List the open dimensions** internally — goal, scope, users, data,
144
147
  constraints, success criteria, edge cases, rollback. Do not surface
@@ -164,9 +167,11 @@ constraint this unblocks>.
164
167
  3. <alternative option>
165
168
  4. Skip / not relevant
166
169
 
167
- > Reply with a number, a free-form answer, or type **`!pitch`**
168
- > (or **`!Vision pitchen`**) to lock in the current understanding and
169
- > get the Markdown pitch.
170
+ > Reply with a number, a free-form answer, or one of:
171
+ > **`!pitch`** — emit pitch and hand back ·
172
+ > **`!roadmap`** (or **`!roadmap:create`**) — emit pitch + auto-route to `/roadmap:create` ·
173
+ > **`!ai`** (alias **`!ai-council`** / **`!council`**) — poll the council on the open question(s),
174
+ > cost auto-accepted, then continue the interview.
170
175
  ````
171
176
 
172
177
  **Rules for the question block.**
@@ -188,25 +193,37 @@ constraint this unblocks>.
188
193
  1. Number reply (`1`, `2`, …) → adopt that option.
189
194
  2. Free-form reply → integrate verbatim, do not re-interpret.
190
195
  3. "Skip" / "skip" / "n/a" → branch closed, do not revisit unless reopened.
191
- 4. Pitch trigger fired → jump straight to Step 4, even if confidence < 95%.
196
+ 4. Trigger fired → branch by trigger type (see table below):
197
+ - `!pitch` → jump to Step 4, then Step 5 (emit pitch), then Step 6 hand-back.
198
+ - `!roadmap` / `!roadmap:create` → Step 4 → Step 5 (emit pitch) → Step 6 with **roadmap routing**.
199
+ - `!ai` / `!ai-council` / `!council` → jump to **Step 4-bis (Council poll)**, then resume Step 1 with the answers integrated.
192
200
 
193
- #### Pitch trigger — strict matching
201
+ #### Triggers — strict matching
194
202
 
195
- The pitch trigger requires **explicit syntax** to avoid false positives
196
- on natural sentences like "I'd pitch this to the team".
203
+ Three trigger families end or branch the interview. All require
204
+ **explicit syntax** to avoid false positives on natural prose
205
+ ("I'd pitch this to the team", "let's run a council later").
206
+
207
+ | Trigger | Action | Cost gate |
208
+ |---|---|---|
209
+ | `!pitch` · `/pitch` · whole reply `pitch` | Emit pitch (Step 5), hand back (Step 6) | none |
210
+ | `!roadmap` · `!roadmap:create` · `/roadmap` · `/roadmap:create` · whole reply `roadmap` | Emit pitch (Step 5), then route to `/roadmap:create` with the pitch as seed (Step 6) | none — roadmap creation is text-only |
211
+ | `!ai` · `!ai-council` · `!council` · `/ai` · `/ai-council` · `/council` · whole reply `ai` / `council` | Snapshot open question(s), invoke `/council default` to draft answers, integrate, resume Step 1 | **auto-accepted** — typing the trigger is the consent (per user opt-in to the trigger contract) |
212
+
213
+ Match rules apply to **every** trigger above:
197
214
 
198
215
  | Match | Example | Fires? |
199
216
  |---|---|---|
200
- | `!pitch` (or any `!`-prefixed variant) at line start | `!pitch`, `!Vision pitchen`, `!pitch it` | yes |
201
- | `/pitch` at line start | `/pitch` | yes |
202
- | Whole reply is exactly `pitch` (case-insensitive, no other words) | `pitch` | yes |
203
- | `pitch` inside a sentence | "I would pitch this on Monday" | **no** |
204
- | `pitch mich` / `ship vision` inside prose | natural-language fragment | **no** |
217
+ | `!<trigger>` at line start | `!pitch`, `!roadmap`, `!council`, `!Vision pitchen` | yes |
218
+ | `/<trigger>` at line start | `/pitch`, `/roadmap:create`, `/ai-council` | yes |
219
+ | Whole reply exactly the trigger word (case-insensitive) | `pitch`, `roadmap`, `council` | yes |
220
+ | Trigger word inside a sentence | "I would pitch this on Monday", "let's poll the council later" | **no** |
221
+ | Natural-language fragment (`pitch mich`, `ship vision`) | prose | **no** |
205
222
 
206
- `DE: "!Vision pitchen", "/Vision pitchen", "/pitche das", whole reply "pitch" · EN: "!pitch the vision", "/pitch the vision", whole reply "pitch"`
223
+ `DE: "!Vision pitchen", "!roadmap erstellen", "!Council befragen", whole reply "pitch" · EN: "!pitch the vision", "!roadmap it", "!council on this", whole reply "pitch"`
207
224
 
208
- If the agent is unsure whether the user pitched, it confirms once
209
- (numbered options: `1. emit pitch · 2. continue interview`) instead of
225
+ If the agent is unsure **which** trigger fired (e.g. `!council and pitch`),
226
+ it confirms once with numbered options listing the candidates instead of
210
227
  guessing.
211
228
 
212
229
  ### Step 3: Re-score and continue
@@ -218,7 +235,7 @@ the next question. If reached, go to Step 4 without asking.
218
235
 
219
236
  Before emitting the pitch, run this checklist internally:
220
237
 
221
- 1. All four 95%-conditions hold (or the user fired the pitch trigger).
238
+ 1. All four 95%-conditions hold (or the user fired `!pitch` / `!roadmap`).
222
239
  2. Every adopted answer is reflected in the pitch — no orphan branches.
223
240
  3. Acceptance criteria are observable and testable in the project's
224
241
  existing test surface — not "works correctly" / "looks better".
@@ -226,6 +243,41 @@ Before emitting the pitch, run this checklist internally:
226
243
 
227
244
  If any check fails, ask one more question instead of pitching.
228
245
 
246
+ ### Step 4-bis: Council poll (`!ai` / `!ai-council` / `!council` only)
247
+
248
+ Fires **instead of** Step 4/5 when an AI trigger matches. Cost gate is
249
+ auto-accepted by the trigger contract — do **not** re-ask.
250
+
251
+ 1. **Snapshot** the current interview state:
252
+ - The seed (verbatim).
253
+ - All adopted answers so far (as `<question> → <answer>` lines).
254
+ - Open branches and the very-next question on the table.
255
+ - Any open assumptions surfaced so far.
256
+ 2. **Build the council prompt** as a single block:
257
+
258
+ ```
259
+ You are reviewing an in-progress /challenge-me vision interview.
260
+ Seed: <verbatim>
261
+ Adopted: <list>
262
+ Open question(s): <list>
263
+ For each open question, recommend an answer with one-line rationale,
264
+ plus any unstated risk you spot. Be terse.
265
+ ```
266
+ 3. **Invoke** `/council default prompt:"<above>"` non-interactively
267
+ (auto-accepted cost gate). Pass the host's `ai_council.min_rounds`
268
+ default — do **not** raise rounds inside the trigger.
269
+ 4. **Integrate** the council output:
270
+ - Surface each council answer **labelled with the source** (e.g.
271
+ `Council recommends: <answer> — rationale: <one line>`).
272
+ - Do **not** silently adopt — the user still picks (`1` to accept,
273
+ free-form to refine, `skip` to discard).
274
+ 5. **Resume Step 1** with the very-next question, now showing the
275
+ council's recommendation as option 1 (with the existing recommended
276
+ option pushed to option 2 if they differ).
277
+
278
+ If the council call fails (network, budget, missing member), report the
279
+ error in one line and resume Step 1 unchanged — do **not** re-trigger.
280
+
229
281
  ### Step 5: Emit the pitch
230
282
 
231
283
  Output a single fenced Markdown block the user can copy verbatim. Shape:
@@ -262,22 +314,50 @@ Output a single fenced Markdown block the user can copy verbatim. Shape:
262
314
  The outer fence uses four backticks so the inner triple-backtick stays
263
315
  literal when the user copies it.
264
316
 
265
- ### Step 6: Hand back
317
+ ### Step 6: Hand back — HARD STOP after artifact
266
318
 
267
- After the pitch is emitted, end the turn. Do **not** propose to also
268
- implement the pitch, write it to a roadmap, or commit anything — the
269
- pitch is conversational output the user copies into the next command
270
- (`/work`, `/roadmap-create`, `/feature-plan`, …).
319
+ ```
320
+ PITCH OR ROADMAP LANDED → STOP. NEVER PROPOSE IMPLEMENTATION,
321
+ NEVER ASK "READY TO START?". THE USER PICKS THE NEXT MOVE WITH AN
322
+ EXPLICIT EXECUTION VERB ON A LATER TURN.
323
+ ```
271
324
 
272
- If the user wants the next step run, they invoke it explicitly.
325
+ Branch on which trigger fired (or the natural 95%-stop):
326
+
327
+ - **Natural stop or `!pitch`** — end the turn after emitting the pitch.
328
+ Do **not** propose to also implement, write to a roadmap, or commit —
329
+ the pitch is conversational output the user copies into the next
330
+ command (`/work`, `/roadmap:create`, `/feature-plan`, …).
331
+ - **`!roadmap` / `!roadmap:create`** — emit the pitch (Step 5) **and**
332
+ immediately route to [`/roadmap:create`](../roadmap/create.md) using
333
+ the pitch as the seed for its Step 1 ("Title / goal", "Context",
334
+ "Phases"). The user keeps full control inside `/roadmap:create` —
335
+ this is opt-in routing, not silent execution. Mention the route in a
336
+ single line under the pitch (e.g. *"Routing to `/roadmap:create` —
337
+ this pitch becomes the seed for title + context + phase 1."*).
338
+ The chain ends when `/roadmap:create` saves the file — its own Step
339
+ 9 is a hard stop ([`roadmap/create § 9`](../roadmap/create.md)), no
340
+ execution offer rides on the back of `!roadmap`.
341
+ - **`!ai` / `!ai-council` / `!council`** — handled by Step 4-bis, never
342
+ reaches Step 6.
343
+
344
+ If the user wants any other follow-up, they invoke it explicitly. The
345
+ "Recommended next step" line in the pitch (Step 5) names a *command*
346
+ (`/work`, `/roadmap:create`, …) — it is a suggestion the user copies,
347
+ **not** an offer this command auto-routes through.
273
348
 
274
349
  ## Output format
275
350
 
276
351
  1. **Per-turn question block** — one numbered question with a recommended
277
- option, until 95% or pitch trigger.
352
+ option, until 95% or a trigger (`!pitch` / `!roadmap` / `!ai`).
278
353
  2. **Final pitch** — a single copyable fenced Markdown block (Step 5 shape).
279
354
  3. **One-line handoff suggestion** under the pitch — which command to run
280
- next (`/work`, `/roadmap-create`, `/feature-plan`, etc.).
355
+ next (`/work`, `/roadmap:create`, `/feature-plan`, etc.).
356
+ - For `!roadmap` triggers, this line is the route announcement
357
+ instead of a suggestion (Step 6).
358
+ 4. **Council-poll output** (only if `!ai` fired) — labelled council
359
+ answers integrated into the next question block (Step 4-bis), not a
360
+ final pitch. The interview resumes.
281
361
 
282
362
  ## Examples
283
363
 
@@ -310,17 +390,26 @@ If the user wants the next step run, they invoke it explicitly.
310
390
  - **One question per turn** — non-negotiable, per
311
391
  [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) Iron Law.
312
392
  - **No auto-execution** — emit the pitch, not the implementation it
313
- describes. Do not chain into `/work` or `/roadmap-create` without
314
- explicit user invocation.
315
- - **No file writes** — the pitch is conversational. No commits, no
316
- roadmap edits, no `agents/` writes.
393
+ describes. Do not chain into `/work` or `/roadmap:create` without
394
+ explicit user invocation. The `!roadmap` trigger **is** explicit
395
+ invocation by user opt-in; routing under it is permitted **and ends
396
+ at file save** — never propose "ready to start Phase 1?" after the
397
+ roadmap lands. See [`scope-mechanics § Post-artifact hard stop`](../../contexts/authority/scope-mechanics.md).
398
+ - **No file writes from /challenge-me itself** — the pitch is
399
+ conversational. No commits, no roadmap edits, no `agents/` writes.
400
+ The `!roadmap` trigger routes to `/roadmap:create`, which writes
401
+ under its own contract (with its own user confirmation in Step 6).
402
+ - **Council cost gate is auto-accepted under `!ai`** — typing the
403
+ trigger is the consent. Do not surface a second confirmation. If
404
+ `personal.autonomy: auto`, the trigger still consents on its own —
405
+ the user explicitly opted in by typing it.
317
406
  - **Codebase first** — Step 0 forbids asking what `grep`, `view`, or
318
407
  `codebase-retrieval` would answer in seconds.
319
408
  - **Welcome once** — render the welcome only on the first no-body
320
409
  invocation per session.
321
410
  - **Mirror the user's language** — the question blocks and pitch use
322
- the language the user wrote in (`language-and-tone` Iron Law). The
323
- pitch trigger syntax (`!pitch`, `/pitch`, whole reply `pitch`) stays
411
+ the language the user wrote in (`language-and-tone` Iron Law). All
412
+ trigger syntax (`!pitch`, `!roadmap`, `!ai` and their aliases) stays
324
413
  literal in any language.
325
414
 
326
415
  ## Do NOT
@@ -22,8 +22,10 @@ packs:
22
22
  > Same one-question-at-a-time interview as `/challenge-me vision`, plus:
23
23
  > a **session glossary** against `CONTEXT.md`, **load-bearing claim-vs-code
24
24
  > verification**, and an optional `CONTEXT.md` **patch** + **ADR candidates**
25
- > appended to the final pitch. Nothing is written to disk — the pitch is
26
- > the only artefact.
25
+ > appended to the final pitch. `/challenge-me` itself never writes to
26
+ > disk — the in-interview triggers (`!roadmap`, `!ai`) route to
27
+ > `/roadmap:create` and `/council default`, which run under their own
28
+ > contracts.
27
29
 
28
30
  ## Welcome
29
31
 
@@ -36,7 +38,10 @@ CONTEXT.md and verify load-bearing claims against the code. At the end
36
38
  you get a pitch — plus an optional CONTEXT.md patch and ADR candidates
37
39
  to copy / apply yourself.
38
40
 
39
- Stop early any time by typing `!pitch` (or `!Vision pitchen`).
41
+ End the interview early any time:
42
+ `!pitch` — emit pitch, hand back
43
+ `!roadmap` — emit pitch + auto-route to `/roadmap:create`
44
+ `!ai` / `!council` — poll the AI council for the open question(s), continue (cost auto-accepted)
40
45
  ```
41
46
 
42
47
  Skip the welcome if the user invokes `/challenge-me with-docs <seed>`
@@ -56,18 +61,26 @@ If neither file exists and the user invoked `with-docs` anyway, fall
56
61
  back gracefully to `vision`-style flow and skip the doc inventory; note
57
62
  the absence in a single line at the end of Step 0.
58
63
 
59
- ## Stop condition, flags, pitch trigger
64
+ ## Stop condition, flags, triggers
60
65
 
61
66
  Inherits **verbatim** from [`vision.md`](vision.md):
62
67
 
63
68
  - Default stop = the four 95%-conditions (AND, not OR).
64
69
  - Load-bearing test = answer changes goal / scope / hard constraint / AC.
65
70
  - `--until=95%` (default) · `--until=N` · `--keep-going`.
66
- - Pitch trigger: `!pitch`, `/pitch`, or whole reply `pitch`.
67
- - Step 1 question-block shape, Step 4 pitch validation.
71
+ - Triggers (full syntax + match rules in `vision.md` § Triggers):
72
+ - `!pitch` / `/pitch` / whole reply `pitch` — emit pitch, hand back.
73
+ - `!roadmap` / `!roadmap:create` (and `/`-prefixed) — emit pitch + auto-route to `/roadmap:create` with the pitch as seed.
74
+ - `!ai` / `!ai-council` / `!council` (and `/`-prefixed) — invoke `/council default` on the open question(s), cost auto-accepted, integrate, resume.
75
+ - Step 1 question-block shape, Step 4 pitch validation, Step 4-bis council poll.
68
76
 
69
77
  The deltas below replace / extend Step 0, Step 1, Step 2, Step 4 and
70
- Step 5. Steps 3 and 6 are unchanged.
78
+ Step 5. Steps 3 and 6 are unchanged. **`!roadmap` routing in Step 6**
79
+ includes the optional `CONTEXT.md` patch + ADR candidates from this
80
+ variant in the seed handed to `/roadmap:create` (so the roadmap can
81
+ reference them under "Context"). Step 4-bis council poll is identical
82
+ to `vision.md`; pass the doc inventory + glossary as additional context
83
+ in the council prompt.
71
84
 
72
85
  ## Steps
73
86
 
@@ -249,7 +262,7 @@ When the user states "X is implemented as Y" AND the claim is
249
262
  constraint), agent runs `view` / `grep` / `codebase-retrieval` to
250
263
  verify. Mismatch → single question block:
251
264
 
252
- > Your seed says X works via Y. The code (`path/to/file.php:123`) shows
265
+ > Your seed says X works via Y. The code (`path/to/file:123`) shows
253
266
  > it via Z. Which is right?
254
267
  > 1. **Code is right, my seed was wrong** — recommended.
255
268
  > 2. Seed is right, code is stale — separate fix needed.
@@ -58,7 +58,7 @@ step 3 grouping rules:
58
58
  - Same feature / fix → one commit.
59
59
  - Migration + corresponding model/seeder → one commit.
60
60
  - Test + the class under test → one commit.
61
- - Style-only changes (ECS/Rector/formatter) → separate `style:` /
61
+ - Style-only changes (formatter / auto-refactor output — ECS, Prettier, Ruff) → separate `style:` /
62
62
  `chore:` commit when mixed with logic changes.
63
63
  - Truly unrelated change → its own commit.
64
64
 
@@ -87,7 +87,7 @@ Rules for splitting:
87
87
  - **Do NOT split arbitrarily** — only split when the changes are logically independent.
88
88
  - **Prefer fewer, coherent commits** over many tiny ones.
89
89
  - **Tests always go with the code they test** unless there are many test-only changes.
90
- - **Style-only changes** (ECS/Rector formatting) may get their own `style:` or `chore:` commit
90
+ - **Style-only changes** (formatter / auto-refactor output — ECS, Prettier, Ruff) may get their own `style:` or `chore:` commit
91
91
  if they are large and mixed with logic changes.
92
92
 
93
93
  ### 5. Present the commit plan (verbosity-gated)
@@ -123,6 +123,7 @@ Show the proposed commits as a numbered list, including which files go into each
123
123
  ```
124
124
  Proposed commits:
125
125
 
126
+ (Laravel-project example)
126
127
  1. feat(DEV-1234): add absence type filter to working time report
127
128
  → app/Services/WorkingTimeService.php
128
129
  → app/Http/Controllers/WorkingTimeController.php
@@ -123,7 +123,8 @@ Orchestration telemetry (YYYY-MM, N dispatches):
123
123
  **Quality × cost pairing rule (council verdict):** the savings figure never
124
124
  renders without the quality columns. `first_pass_success_rate` and
125
125
  `escalation_rate` aggregate over lines carrying the `first_pass_success` /
126
- `escalated` booleans (see `orchestration-telemetry.md`); with ≥ 20 such lines
126
+ `escalated` booleans (definitions: `orchestration-telemetry.md`
127
+ § Operationalization); with ≥ 20 such lines
127
128
  in the window the real rates render, below 20 render `n/a (n=<count>)`
128
129
  alongside the savings. `src/scripts/orchestration_savings_report.ts`
129
130
  implements this pairing — prefer running it over hand-summarizing.
@@ -85,20 +85,20 @@ Do NOT use for single-line fixes, trivial changes, or urgent hotfixes.
85
85
  ### Phase 5: Implementation
86
86
 
87
87
  1. **Wait for explicit approval** before writing code.
88
- 2. Create a task list with all impl steps.
88
+ 2. Create a task list with all implementation steps.
89
89
  3. Follow chosen architecture from Phase 4.
90
90
  4. Follow codebase conventions strictly (read guidelines).
91
91
  5. Update task list as progress is made.
92
- 6. Write tests alongside the impl.
92
+ 6. Write tests alongside the implementation.
93
93
 
94
94
  ### Phase 6: Quality Review
95
95
 
96
- 1. Review the impl for:
96
+ 1. Review the implementation for:
97
97
  - **Simplicity & DRY** — is the code as simple as possible?
98
98
  - **Correctness** — are there logic errors or missing edge cases?
99
99
  - **Conventions** — does it follow project patterns?
100
100
  2. Run quality tools:
101
- - PHPStan (or equivalent)
101
+ - Static analysis (PHPStan, tsc, mypy — whichever the project runs)
102
102
  - Tests
103
103
  - Code style
104
104
  3. Present findings with severity levels.