@event4u/agent-config 1.20.0 → 1.22.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 (268) hide show
  1. package/.agent-src/commands/agents.md +1 -1
  2. package/.agent-src/commands/bug-fix.md +2 -1
  3. package/.agent-src/commands/bug-investigate.md +3 -2
  4. package/.agent-src/commands/challenge-me/vision.md +348 -0
  5. package/.agent-src/commands/challenge-me/with-docs.md +333 -0
  6. package/.agent-src/commands/challenge-me.md +61 -0
  7. package/.agent-src/commands/chat-history/import.md +60 -64
  8. package/.agent-src/commands/compress.md +12 -0
  9. package/.agent-src/commands/context/create.md +2 -2
  10. package/.agent-src/commands/context.md +1 -1
  11. package/.agent-src/commands/copilot-agents.md +1 -1
  12. package/.agent-src/commands/council/default.md +69 -10
  13. package/.agent-src/commands/council.md +1 -1
  14. package/.agent-src/commands/create-pr.md +7 -3
  15. package/.agent-src/commands/e2e-heal.md +1 -1
  16. package/.agent-src/commands/e2e-plan.md +1 -1
  17. package/.agent-src/commands/feature/dev.md +3 -3
  18. package/.agent-src/commands/feature.md +1 -1
  19. package/.agent-src/commands/fix/seeder.md +2 -2
  20. package/.agent-src/commands/fix.md +1 -1
  21. package/.agent-src/commands/grill-me.md +38 -0
  22. package/.agent-src/commands/jira-ticket.md +1 -1
  23. package/.agent-src/commands/judge/steps.md +1 -1
  24. package/.agent-src/commands/judge.md +2 -2
  25. package/.agent-src/commands/memory.md +1 -1
  26. package/.agent-src/commands/mode.md +5 -5
  27. package/.agent-src/commands/module.md +1 -1
  28. package/.agent-src/commands/onboard.md +4 -4
  29. package/.agent-src/commands/optimize/augmentignore.md +1 -1
  30. package/.agent-src/commands/optimize-prompt.md +61 -0
  31. package/.agent-src/commands/optimize.md +1 -1
  32. package/.agent-src/commands/override.md +1 -1
  33. package/.agent-src/commands/review-changes.md +1 -1
  34. package/.agent-src/commands/review-routing.md +1 -1
  35. package/.agent-src/commands/roadmap/ai-council.md +183 -0
  36. package/.agent-src/commands/roadmap/create.md +6 -1
  37. package/.agent-src/commands/roadmap/process-full.md +58 -0
  38. package/.agent-src/commands/roadmap/process-phase.md +69 -0
  39. package/.agent-src/commands/roadmap/process-step.md +57 -0
  40. package/.agent-src/commands/roadmap.md +45 -17
  41. package/.agent-src/commands/set-cost-profile.md +3 -3
  42. package/.agent-src/commands/sync-agent-settings.md +2 -2
  43. package/.agent-src/commands/tests/create.md +2 -2
  44. package/.agent-src/commands/tests.md +1 -1
  45. package/.agent-src/commands/threat-model.md +5 -4
  46. package/.agent-src/contexts/augment-infrastructure.md +1 -1
  47. package/.agent-src/contexts/authority/commit-mechanics.md +14 -1
  48. package/.agent-src/contexts/authority/destructive-mechanics.md +14 -1
  49. package/.agent-src/contexts/authority/scope-mechanics.md +5 -0
  50. package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +76 -0
  51. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +54 -19
  52. package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +98 -0
  53. package/.agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +93 -0
  54. package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +128 -5
  55. package/.agent-src/contexts/execution/autonomy-mechanics.md +44 -0
  56. package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
  57. package/.agent-src/contexts/model-recommendations.md +2 -2
  58. package/.agent-src/contexts/override-system.md +1 -1
  59. package/.agent-src/contexts/skills-and-commands.md +1 -1
  60. package/.agent-src/personas/product-owner.md +2 -2
  61. package/.agent-src/personas/qa.md +1 -1
  62. package/.agent-src/rules/agent-authority.md +5 -6
  63. package/.agent-src/rules/agent-docs.md +11 -53
  64. package/.agent-src/rules/analysis-skill-routing.md +10 -40
  65. package/.agent-src/rules/architecture.md +6 -1
  66. package/.agent-src/rules/artifact-drafting-protocol.md +5 -0
  67. package/.agent-src/rules/artifact-engagement-recording.md +23 -59
  68. package/.agent-src/rules/ask-when-uncertain.md +24 -47
  69. package/.agent-src/rules/augment-portability.md +14 -62
  70. package/.agent-src/rules/augment-source-of-truth.md +10 -1
  71. package/.agent-src/rules/autonomous-execution.md +17 -98
  72. package/.agent-src/rules/capture-learnings.md +9 -80
  73. package/.agent-src/rules/cli-output-handling.md +12 -42
  74. package/.agent-src/rules/command-suggestion-policy.md +25 -73
  75. package/.agent-src/rules/commit-conventions.md +9 -58
  76. package/.agent-src/rules/commit-policy.md +16 -47
  77. package/.agent-src/rules/context-hygiene.md +5 -0
  78. package/.agent-src/rules/direct-answers.md +21 -50
  79. package/.agent-src/rules/docker-commands.md +11 -45
  80. package/.agent-src/rules/docs-sync.md +10 -56
  81. package/.agent-src/rules/downstream-changes.md +5 -0
  82. package/.agent-src/rules/e2e-testing.md +9 -44
  83. package/.agent-src/rules/guidelines.md +13 -75
  84. package/.agent-src/rules/improve-before-implement.md +11 -2
  85. package/.agent-src/rules/invite-challenge.md +71 -0
  86. package/.agent-src/rules/language-and-tone.md +41 -106
  87. package/.agent-src/rules/laravel-translations.md +11 -40
  88. package/.agent-src/rules/markdown-safe-codeblocks.md +4 -0
  89. package/.agent-src/rules/minimal-safe-diff.md +4 -0
  90. package/.agent-src/rules/missing-tool-handling.md +4 -0
  91. package/.agent-src/rules/model-recommendation.md +9 -61
  92. package/.agent-src/rules/no-attribution-footers.md +5 -0
  93. package/.agent-src/rules/no-cheap-questions.md +11 -27
  94. package/.agent-src/rules/no-council-references.md +76 -0
  95. package/.agent-src/rules/no-roadmap-references.md +7 -0
  96. package/.agent-src/rules/non-destructive-by-default.md +13 -43
  97. package/.agent-src/rules/onboarding-gate.md +9 -117
  98. package/.agent-src/rules/package-ci-checks.md +10 -37
  99. package/.agent-src/rules/php-coding.md +10 -55
  100. package/.agent-src/rules/preservation-guard.md +9 -0
  101. package/.agent-src/rules/review-routing-awareness.md +9 -97
  102. package/.agent-src/rules/reviewer-awareness.md +8 -83
  103. package/.agent-src/rules/roadmap-progress-sync.md +7 -170
  104. package/.agent-src/rules/role-mode-adherence.md +6 -2
  105. package/.agent-src/rules/rule-type-governance.md +8 -66
  106. package/.agent-src/rules/runtime-safety.md +5 -0
  107. package/.agent-src/rules/scope-control.md +17 -62
  108. package/.agent-src/rules/security-sensitive-stop.md +7 -1
  109. package/.agent-src/rules/size-enforcement.md +6 -1
  110. package/.agent-src/rules/skill-improvement-trigger.md +9 -49
  111. package/.agent-src/rules/skill-quality.md +7 -113
  112. package/.agent-src/rules/slash-command-routing-policy.md +11 -63
  113. package/.agent-src/rules/think-before-action.md +22 -87
  114. package/.agent-src/rules/token-efficiency.md +10 -74
  115. package/.agent-src/rules/token-optimizer-maintenance.md +68 -0
  116. package/.agent-src/rules/tool-safety.md +4 -0
  117. package/.agent-src/rules/ui-audit-gate.md +25 -61
  118. package/.agent-src/rules/upstream-proposal.md +9 -67
  119. package/.agent-src/rules/user-interaction.md +22 -108
  120. package/.agent-src/rules/verify-before-complete.md +1 -1
  121. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  122. package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  123. package/.agent-src/skills/ai-council/SKILL.md +197 -8
  124. package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  125. package/.agent-src/skills/analysis-skill-router/SKILL.md +3 -3
  126. package/.agent-src/skills/artisan-commands/SKILL.md +2 -2
  127. package/.agent-src/skills/authz-review/SKILL.md +1 -1
  128. package/.agent-src/skills/aws-infrastructure/SKILL.md +5 -5
  129. package/.agent-src/skills/blast-radius-analyzer/SKILL.md +8 -8
  130. package/.agent-src/skills/bug-analyzer/SKILL.md +6 -5
  131. package/.agent-src/skills/code-refactoring/SKILL.md +4 -4
  132. package/.agent-src/skills/code-review/SKILL.md +2 -2
  133. package/.agent-src/skills/command-writing/SKILL.md +11 -0
  134. package/.agent-src/skills/composer-packages/SKILL.md +2 -2
  135. package/.agent-src/skills/context-authoring/SKILL.md +11 -0
  136. package/.agent-src/skills/context-document/SKILL.md +1 -1
  137. package/.agent-src/skills/copilot-agents-optimization/SKILL.md +23 -0
  138. package/.agent-src/skills/copilot-config/SKILL.md +1 -1
  139. package/.agent-src/skills/dependency-upgrade/SKILL.md +2 -2
  140. package/.agent-src/skills/devcontainer/SKILL.md +2 -2
  141. package/.agent-src/skills/developer-like-execution/SKILL.md +1 -1
  142. package/.agent-src/skills/docker/SKILL.md +1 -1
  143. package/.agent-src/skills/dto-creator/SKILL.md +1 -1
  144. package/.agent-src/skills/estimate-ticket/SKILL.md +2 -2
  145. package/.agent-src/skills/fe-design/SKILL.md +4 -4
  146. package/.agent-src/skills/feature-planning/SKILL.md +5 -5
  147. package/.agent-src/skills/funnel-analysis/SKILL.md +1 -1
  148. package/.agent-src/skills/laravel/SKILL.md +1 -1
  149. package/.agent-src/skills/laravel-notifications/SKILL.md +5 -5
  150. package/.agent-src/skills/laravel-pennant/SKILL.md +1 -1
  151. package/.agent-src/skills/laravel-pulse/SKILL.md +4 -4
  152. package/.agent-src/skills/laravel-reverb/SKILL.md +2 -2
  153. package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -1
  154. package/.agent-src/skills/migration-creator/SKILL.md +7 -7
  155. package/.agent-src/skills/multi-tenancy/SKILL.md +8 -8
  156. package/.agent-src/skills/performance-analysis/SKILL.md +3 -3
  157. package/.agent-src/skills/pest-testing/SKILL.md +6 -6
  158. package/.agent-src/skills/php-service/SKILL.md +2 -2
  159. package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
  160. package/.agent-src/skills/project-analysis-react/SKILL.md +1 -1
  161. package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
  162. package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
  163. package/.agent-src/skills/project-analyzer/SKILL.md +4 -4
  164. package/.agent-src/skills/prompt-optimizer/SKILL.md +108 -0
  165. package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
  166. package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
  167. package/.agent-src/skills/rule-writing/SKILL.md +33 -0
  168. package/.agent-src/skills/sentry-integration/SKILL.md +1 -1
  169. package/.agent-src/skills/skill-writing/SKILL.md +14 -0
  170. package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
  171. package/.agent-src/skills/technical-specification/SKILL.md +58 -1
  172. package/.agent-src/skills/terraform/SKILL.md +2 -2
  173. package/.agent-src/skills/terragrunt/SKILL.md +8 -8
  174. package/.agent-src/skills/test-performance/SKILL.md +5 -5
  175. package/.agent-src/skills/threat-modeling/SKILL.md +3 -2
  176. package/.agent-src/skills/token-optimizer/SKILL.md +110 -0
  177. package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -1
  178. package/.agent-src/templates/AGENTS.md +1 -1
  179. package/.agent-src/templates/agent-settings.md +35 -19
  180. package/.agent-src/templates/command.md +17 -1
  181. package/.agent-src/templates/contexts/tenant-boundaries.md +2 -2
  182. package/.agent-src/templates/contexts.md +1 -1
  183. package/.agent-src/templates/copilot-instructions.md +21 -0
  184. package/.agent-src/templates/copilot-review-instructions.md +76 -0
  185. package/.agent-src/templates/features.md +1 -1
  186. package/.agent-src/templates/roadmaps.md +10 -2
  187. package/.agent-src/templates/rule.md +129 -0
  188. package/.agent-src/templates/skill.md +17 -0
  189. package/.claude-plugin/marketplace.json +12 -2
  190. package/AGENTS.md +32 -5
  191. package/CHANGELOG.md +107 -3
  192. package/README.md +22 -21
  193. package/config/agent-settings.template.yml +66 -10
  194. package/config/gitignore-block.txt +7 -0
  195. package/docs/architecture.md +86 -5
  196. package/docs/catalog.md +16 -6
  197. package/docs/contracts/agent-memory-contract.md +1 -1
  198. package/docs/contracts/command-clusters.md +45 -1
  199. package/docs/contracts/context-paths.md +2 -1
  200. package/docs/contracts/file-ownership-matrix.json +354 -500
  201. package/docs/contracts/iron-law-overrides.txt +25 -0
  202. package/docs/contracts/kernel-membership.md +273 -0
  203. package/docs/contracts/load-context-schema.md +26 -11
  204. package/docs/contracts/pilot/agent-authority.md +24 -0
  205. package/docs/contracts/pilot/direct-answers.md +70 -0
  206. package/docs/contracts/pilot/language-and-tone.md +63 -0
  207. package/docs/contracts/rule-classification.md +170 -0
  208. package/docs/contracts/rule-router.md +153 -0
  209. package/docs/customization.md +17 -6
  210. package/docs/decisions/ADR-001-kernel-swap-deferred.md +109 -0
  211. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +124 -0
  212. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
  213. package/docs/decisions/ADR-rule-kernel-and-router.md +122 -0
  214. package/docs/getting-started.md +2 -2
  215. package/docs/guidelines/agent-infra/naming.md +1 -1
  216. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +176 -0
  217. package/docs/guidelines/agent-infra/rule-type-governance.md +73 -0
  218. package/docs/guidelines/agent-infra/size-and-scope.md +13 -2
  219. package/docs/guidelines/agent-infra/skill-quality-checklist.md +119 -0
  220. package/docs/guidelines/augment-portability-patterns.md +68 -0
  221. package/docs/guidelines/php/php-coding-patterns.md +62 -0
  222. package/package.json +1 -1
  223. package/scripts/_p43_bodies.py +235 -0
  224. package/scripts/_p43_compress.py +118 -0
  225. package/scripts/_p4_migrate.py +199 -0
  226. package/scripts/_phase2_shim_helper.py +1 -1
  227. package/scripts/_pilot_council_question.py +57 -0
  228. package/scripts/_pilot_measure.py +53 -0
  229. package/scripts/ai_council/session.py +107 -5
  230. package/scripts/build_linear_digest.py +3 -5
  231. package/scripts/check_always_budget.py +39 -6
  232. package/scripts/check_compressed_paths.py +213 -0
  233. package/scripts/check_compression.py +15 -0
  234. package/scripts/check_context_paths.py +1 -0
  235. package/scripts/check_council_layout.py +105 -0
  236. package/scripts/check_council_references.py +145 -0
  237. package/scripts/check_portability.py +2 -0
  238. package/scripts/check_references.py +2 -0
  239. package/scripts/check_token_optimizer_freshness.py +131 -0
  240. package/scripts/compile_router.py +148 -0
  241. package/scripts/compress.py +219 -11
  242. package/scripts/council_cli.py +132 -11
  243. package/scripts/council_prune.py +81 -0
  244. package/scripts/count_token_optimizer_usage.sh +54 -0
  245. package/scripts/install.sh +44 -2
  246. package/scripts/iron_law_sha.py +98 -0
  247. package/scripts/lint_load_context.py +35 -5
  248. package/scripts/measure_rule_budget.py +314 -0
  249. package/scripts/migrate_command_suggestions.py +2 -2
  250. package/scripts/prototype_lint_contradictions.py +150 -0
  251. package/scripts/schemas/command.schema.json +5 -0
  252. package/scripts/schemas/rule.schema.json +60 -6
  253. package/scripts/schemas/skill.schema.json +5 -0
  254. package/scripts/skill_linter.py +197 -7
  255. package/scripts/smoke_path_resolution.py +93 -0
  256. package/scripts/validate_frontmatter.py +41 -1
  257. package/.agent-src/commands/roadmap/execute.md +0 -109
  258. package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +0 -72
  259. package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +0 -79
  260. package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +0 -87
  261. package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +0 -62
  262. package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +0 -78
  263. package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +0 -85
  264. package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +0 -65
  265. package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +0 -78
  266. package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +0 -53
  267. /package/{docs → .agent-src/contexts}/contracts/artifact-engagement-flow.md +0 -0
  268. /package/{docs → .agent-src/contexts}/contracts/command-suggestion-flow.md +0 -0
@@ -23,7 +23,7 @@ commands with a single entry point + sub-command dispatch.
23
23
  | `/agents prepare` | `commands/agents/prepare.md` | Scaffold the `agents/` directory structure |
24
24
 
25
25
  Sub-command names match the locked contract in
26
- [`docs/contracts/command-clusters.md`](../../docs/contracts/command-clusters.md).
26
+ [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
27
27
 
28
28
  ## Dispatch
29
29
 
@@ -3,6 +3,7 @@ name: bug-fix
3
3
  skills: [bug-analyzer, pest-testing]
4
4
  description: Plan and implement a bug fix — based on investigation, with quality checks and test verification
5
5
  disable-model-invocation: true
6
+ council_depth: deep
6
7
  suggestion:
7
8
  eligible: true
8
9
  trigger_description: "fix this bug, patch the issue, resolve this error"
@@ -182,4 +183,4 @@ What next?
182
183
 
183
184
  ## See also
184
185
 
185
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract (Goal / Plan / Changes / Tests / Open questions)
186
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract (Goal / Plan / Changes / Tests / Open questions)
@@ -3,6 +3,7 @@ name: bug-investigate
3
3
  skills: [bug-analyzer, sentry-integration]
4
4
  description: Investigate a bug — auto-detect ticket from branch, gather Jira/Sentry/description context, trace root cause
5
5
  disable-model-invocation: true
6
+ council_depth: deep
6
7
  suggestion:
7
8
  eligible: true
8
9
  trigger_description: "why is this broken, investigate this error, trace the root cause"
@@ -175,5 +176,5 @@ What's next?
175
176
 
176
177
  ## See also
177
178
 
178
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#incident) — Incident mode output contract (Symptom / Reproduction / Minimal reversible change / Deferred verification / Follow-up commitment) — use when the bug is a live production issue with `break-glass: true`
179
- - [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract for non-incident bugs
179
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#incident) — Incident mode output contract (Symptom / Reproduction / Minimal reversible change / Deferred verification / Follow-up commitment) — use when the bug is a live production issue with `break-glass: true`
180
+ - [`role-contracts`](../docs/guidelines/agent-infra/role-contracts.md#developer) — Developer mode output contract for non-incident bugs
@@ -0,0 +1,348 @@
1
+ ---
2
+ name: challenge-me:vision
3
+ cluster: challenge-me
4
+ sub: vision
5
+ description: "Stress-test a plan or idea by one-question-at-a-time interview until 95% confidence — emits a copyable Markdown vision pitch for tickets, roadmaps, or fresh-chat handoff."
6
+ disable-model-invocation: true
7
+ suggestion:
8
+ eligible: true
9
+ trigger_description: "challenge me on this plan, grill me, grill me on this, grill me on the vision, grill me on the idea, grill me until it's clear, grill me hard, frag mich durch, dreh mich durch die Mangel"
10
+ trigger_context: "user has a fuzzy plan/idea/feature draft and wants it sharpened interactively rather than reconstructed in one shot"
11
+ ---
12
+
13
+ # /challenge-me vision
14
+
15
+ > Walk a decision tree by asking one question at a time, each with a
16
+ > recommended answer, until the agent reaches **95% confidence** in what
17
+ > the user actually wants — then emit a copyable Markdown pitch the user
18
+ > can paste into a ticket, roadmap, or fresh-chat handoff.
19
+
20
+ ## Welcome
21
+
22
+ If the user invokes `/challenge-me vision` (or `/challenge-me` defaulting
23
+ here) with no body, render once:
24
+
25
+ ```
26
+ Drop the seed — a plan, idea, ticket draft, or design sketch — and I'll
27
+ walk you through a decision tree, one question per turn, until I'm 95%
28
+ sure what you want. Then you get a copyable Markdown pitch.
29
+
30
+ Stop early any time by typing `!pitch` (or `!Vision pitchen`).
31
+ ```
32
+
33
+ Skip the welcome if the user invokes `/challenge-me vision <seed>` directly.
34
+
35
+ ## When NOT to use
36
+
37
+ | Phrasing | Route to |
38
+ |---|---|
39
+ | "refine this prompt before /work" | [`/refine-prompt`](../refine-prompt.md) |
40
+ | "refine this Jira ticket" | [`/refine-ticket`](../refine-ticket.md) |
41
+ | "poke holes in my plan" (one-shot, no Q&A) | `adversarial-review` skill |
42
+ | "ask another model" | `ai-council` skill |
43
+ | "challenge me against existing docs/glossary" | `/challenge-me with-docs` |
44
+
45
+ ## Default stop condition — 95% confidence
46
+
47
+ Unless the user names a different stop condition (`--until=N`,
48
+ `--keep-going`, or natural-language equivalents like `"5 questions"` /
49
+ `"keep going forever"`), the default is:
50
+
51
+ ```
52
+ KEEP ASKING UNTIL CONFIDENCE ≥ 95% OR THE USER PITCHES.
53
+ ```
54
+
55
+ ### What "load-bearing" means
56
+
57
+ A branch is **load-bearing** when its answer would change at least one of:
58
+
59
+ - the **goal** sentence,
60
+ - the **in-scope / out-of-scope** boundary,
61
+ - a **hard constraint**, or
62
+ - one of the **acceptance criteria**.
63
+
64
+ A branch that only changes wording, tone, or cosmetics is **not**
65
+ load-bearing — close it without asking. This is the same test for the
66
+ "why it matters" line in every question block (see Step 1).
67
+
68
+ **Examples — load-bearing vs cosmetic:**
69
+
70
+ | Question | Load-bearing? | Why |
71
+ |---|---|---|
72
+ | "Should anonymous users see this page?" | yes | flips an AC + scope boundary |
73
+ | "Soft-delete or hard-delete on cancel?" | yes | flips a hard constraint + rollback path |
74
+ | "Should the button be primary or secondary colour?" | no | wording / cosmetic, no AC change |
75
+ | "Should we name the column `cancelled_at` or `canceled_at`?" | no | naming, no behaviour change |
76
+
77
+ ### What "branch" means (for Condition 2)
78
+
79
+ A **branch** = an entry in the agent's internal working list of open
80
+ dimensions (Step 0.3 in the procedure). A branch is **new** when the
81
+ agent's last applied answer would, on a re-evaluation of dimensions,
82
+ add at least one entry that passes the load-bearing test above. A
83
+ branch that only refines an existing entry's text without flipping
84
+ goal / scope / constraint / AC is **not** new.
85
+
86
+ ### The four 95% conditions (AND, not OR)
87
+
88
+ Confidence reaches 95% when **all four** hold simultaneously:
89
+
90
+ 1. Every load-bearing branch surfaced so far has a resolved answer
91
+ (recommendation accepted, alternative picked, explicitly skipped).
92
+ 2. The agent re-evaluated its internal working list (Step 0.3) after
93
+ applying the user's last answer, and **no new load-bearing branch**
94
+ (passing the load-bearing test above) was added.
95
+ 3. Goal, in-scope, out-of-scope, hard constraints, success criteria, and
96
+ **at least two edge cases that affect AC observability or rollback**
97
+ all have explicit answers (not "TBD", not "probably", not "we'll see").
98
+ 4. The agent has **cached a draft pitch** (Goal + In/Out + Constraints +
99
+ AC) at the end of every turn, and the user's **last two answers** did
100
+ not modify any of those four sections.
101
+
102
+ Condition 4 is observable, not introspective: the agent maintains the
103
+ draft pitch as state, diffs it against the previous turn's draft, and
104
+ declares stable only when two consecutive turns produce identical
105
+ sections.
106
+
107
+ When all four hold, the agent does **not** ask another question — it goes
108
+ straight to Step 4.
109
+
110
+ ## Flags
111
+
112
+ - `--until=95%` (default) — stop when the four 95% conditions hold.
113
+ - `--until=N` — stop after N answered questions, even if confidence is
114
+ lower. Emit the pitch with an `Open assumptions` block listing what
115
+ is still fuzzy.
116
+ - `--keep-going` — never auto-stop; only the user's pitch trigger ends
117
+ the interview.
118
+
119
+ ## Steps
120
+
121
+ ### Step 0: Inspect (codebase first, ALWAYS)
122
+
123
+ ```
124
+ EXPLORE THE CODEBASE BEFORE THE FIRST QUESTION.
125
+ NEVER ASK WHAT `grep`, `view`, OR `codebase-retrieval` ANSWERS IN SECONDS.
126
+ ```
127
+
128
+ 1. **Read the seed.** The user's first message (or
129
+ `/challenge-me vision <seed>` body) is the artefact under examination —
130
+ a plan, idea, ticket draft, design sketch.
131
+ 2. **Look up before asking.** Existing routes, model fields, conventions,
132
+ feature flags, previous similar features → resolve from the repo.
133
+ Surface findings briefly in the next question block ("Repo says X
134
+ already exists at `path/to/file.php`"). The user should never have to
135
+ answer a question the codebase already answers.
136
+ 3. **List the open dimensions** internally — goal, scope, users, data,
137
+ constraints, success criteria, edge cases, rollback. Do not surface
138
+ this list; it is the agent's todo, not the user's.
139
+
140
+ ### Step 1: Ask one question per turn
141
+
142
+ Every turn after Step 0 emits exactly **one** question block. Before
143
+ writing the block, validate the question against the load-bearing test:
144
+ **if the answer cannot change goal / scope / hard constraints / AC, do
145
+ not ask** — close the branch and move to the next.
146
+
147
+ ````markdown
148
+ **Question N · confidence ~XX%**
149
+
150
+ <one-sentence question, anchored to a specific decision>
151
+
152
+ **Why it matters:** <one line — which AC, scope boundary, or hard
153
+ constraint this unblocks>.
154
+
155
+ 1. **<recommended option>** — recommended because <one line>.
156
+ 2. <alternative option>
157
+ 3. <alternative option>
158
+ 4. Skip / not relevant
159
+
160
+ > Reply with a number, a free-form answer, or type **`!pitch`**
161
+ > (or **`!Vision pitchen`**) to lock in the current understanding and
162
+ > get the Markdown pitch.
163
+ ````
164
+
165
+ **Rules for the question block.**
166
+
167
+ - One question per turn — non-negotiable, per
168
+ [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) Iron Law.
169
+ - The recommended option is always **option 1** and labelled **bold**.
170
+ - 3–4 options total. More than 4 means the question is too broad — split it.
171
+ - "Skip / not relevant" must always be present so the user can prune dead
172
+ branches.
173
+ - Walk the tree depth-first: resolve a branch's children before moving
174
+ to the next sibling, unless the user explicitly jumps.
175
+ - The `Why it matters` line MUST cite an AC number, a scope boundary, or
176
+ a named hard constraint. "Good to know" / "for context" / "to be safe"
177
+ are placeholders — rewrite or drop the question.
178
+
179
+ ### Step 2: Apply the answer
180
+
181
+ 1. Number reply (`1`, `2`, …) → adopt that option.
182
+ 2. Free-form reply → integrate verbatim, do not re-interpret.
183
+ 3. "Skip" / "skip" / "n/a" → branch closed, do not revisit unless reopened.
184
+ 4. Pitch trigger fired → jump straight to Step 4, even if confidence < 95%.
185
+
186
+ #### Pitch trigger — strict matching
187
+
188
+ The pitch trigger requires **explicit syntax** to avoid false positives
189
+ on natural sentences like "I'd pitch this to the team".
190
+
191
+ | Match | Example | Fires? |
192
+ |---|---|---|
193
+ | `!pitch` (or any `!`-prefixed variant) at line start | `!pitch`, `!Vision pitchen`, `!pitch it` | yes |
194
+ | `/pitch` at line start | `/pitch` | yes |
195
+ | Whole reply is exactly `pitch` (case-insensitive, no other words) | `pitch` | yes |
196
+ | `pitch` inside a sentence | "I would pitch this on Monday" | **no** |
197
+ | `pitch mich` / `ship vision` inside prose | natural-language fragment | **no** |
198
+
199
+ `DE: "!Vision pitchen", "/Vision pitchen", "/pitche das", whole reply "pitch" · EN: "!pitch the vision", "/pitch the vision", whole reply "pitch"`
200
+
201
+ If the agent is unsure whether the user pitched, it confirms once
202
+ (numbered options: `1. emit pitch · 2. continue interview`) instead of
203
+ guessing.
204
+
205
+ ### Step 3: Re-score and continue
206
+
207
+ Re-evaluate the four 95%-conditions internally. If not yet reached, ask
208
+ the next question. If reached, go to Step 4 without asking.
209
+
210
+ ### Step 4: Validate before pitching
211
+
212
+ Before emitting the pitch, run this checklist internally:
213
+
214
+ 1. All four 95%-conditions hold (or the user fired the pitch trigger).
215
+ 2. Every adopted answer is reflected in the pitch — no orphan branches.
216
+ 3. Acceptance criteria are observable and testable in the project's
217
+ existing test surface — not "works correctly" / "looks better".
218
+ 4. The recommended next-step command actually exists in this project.
219
+
220
+ If any check fails, ask one more question instead of pitching.
221
+
222
+ ### Step 5: Emit the pitch
223
+
224
+ Output a single fenced Markdown block the user can copy verbatim. Shape:
225
+
226
+ ````markdown
227
+ ```markdown
228
+ # <one-line vision title>
229
+
230
+ **Goal:** <verb + object + observable result>
231
+
232
+ **In scope:**
233
+ - <bullet>
234
+ - <bullet>
235
+
236
+ **Out of scope:**
237
+ - <bullet>
238
+
239
+ **Constraints (hard):**
240
+ - <bullet>
241
+
242
+ **Acceptance criteria:**
243
+ 1. <observable, testable>
244
+ 2. <observable, testable>
245
+ 3. <observable, testable>
246
+
247
+ **Open assumptions:**
248
+ - assumes: <line>
249
+
250
+ **Recommended next step:** <one sentence — e.g. "/work \"<pitch goal>\"" or
251
+ "create roadmap with /roadmap-create">.
252
+ ```
253
+ ````
254
+
255
+ The outer fence uses four backticks so the inner triple-backtick stays
256
+ literal when the user copies it.
257
+
258
+ ### Step 6: Hand back
259
+
260
+ After the pitch is emitted, end the turn. Do **not** propose to also
261
+ implement the pitch, write it to a roadmap, or commit anything — the
262
+ pitch is conversational output the user copies into the next command
263
+ (`/work`, `/roadmap-create`, `/feature-plan`, …).
264
+
265
+ If the user wants the next step run, they invoke it explicitly.
266
+
267
+ ## Output format
268
+
269
+ 1. **Per-turn question block** — one numbered question with a recommended
270
+ option, until 95% or pitch trigger.
271
+ 2. **Final pitch** — a single copyable fenced Markdown block (Step 5 shape).
272
+ 3. **One-line handoff suggestion** under the pitch — which command to run
273
+ next (`/work`, `/roadmap-create`, `/feature-plan`, etc.).
274
+
275
+ ## Examples
276
+
277
+ ```
278
+ /challenge-me vision
279
+ /challenge-me vision We need a shareable read-only view for non-paying users
280
+ /challenge-me vision --until=5 Build a CSV export for the dashboard
281
+ /challenge-me vision --keep-going Re-architect the notifications pipeline
282
+ ```
283
+
284
+ ## Gotchas
285
+
286
+ - The model wants to ask *the user* what the codebase already answers
287
+ (existing routes, conventions, model fields). Run the lookup first;
288
+ only ask when the codebase is silent.
289
+ - Confidence inflation — the model marks itself 95% after 2 questions
290
+ because the user nodded along. The four conditions are AND, not OR.
291
+ Recheck **all four** every turn before stopping.
292
+ - Recommendation drift — the agent keeps changing option 1 across turns
293
+ because new context arrived. That is fine *within* the interview; it
294
+ is a red flag *at pitch time*. If the pitch shape changed in the last
295
+ turn, ask one more question.
296
+ - Stacked questions — the model bundles "scope and rollback?" into one
297
+ block. Split. Always one decision per question.
298
+ - Too many options — 7-option blocks are not a tree, they are a survey.
299
+ Cap at 4; split the question if 4 is not enough.
300
+
301
+ ## Rules
302
+
303
+ - **One question per turn** — non-negotiable, per
304
+ [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) Iron Law.
305
+ - **No auto-execution** — emit the pitch, not the implementation it
306
+ describes. Do not chain into `/work` or `/roadmap-create` without
307
+ explicit user invocation.
308
+ - **No file writes** — the pitch is conversational. No commits, no
309
+ roadmap edits, no `agents/` writes.
310
+ - **Codebase first** — Step 0 forbids asking what `grep`, `view`, or
311
+ `codebase-retrieval` would answer in seconds.
312
+ - **Welcome once** — render the welcome only on the first no-body
313
+ invocation per session.
314
+ - **Mirror the user's language** — the question blocks and pitch use
315
+ the language the user wrote in (`language-and-tone` Iron Law). The
316
+ pitch trigger syntax (`!pitch`, `/pitch`, whole reply `pitch`) stays
317
+ literal in any language.
318
+
319
+ ## Do NOT
320
+
321
+ - Do NOT ask multiple questions in one turn.
322
+ - Do NOT proceed past 95% without emitting the pitch — silent inflation
323
+ defeats the contract.
324
+ - Do NOT paraphrase the user's free-form answers when applying them.
325
+ Verbatim or summarised-with-quote, never re-worded.
326
+ - Do NOT include implementation steps in the pitch. The pitch is intent
327
+ + acceptance criteria; implementation is the next command's job.
328
+ - Do NOT skip the "skip / not relevant" option — pruning is part of the
329
+ tree.
330
+ - Do NOT re-emit the full pitch every turn. Pitch only fires at 95% or
331
+ on explicit trigger.
332
+
333
+ ## See also
334
+
335
+ - [`/challenge-me with-docs`](with-docs.md) — sibling variant that adds
336
+ glossary / `CONTEXT.md` awareness and load-bearing claim-vs-code
337
+ verification.
338
+ - [`/refine-prompt`](../refine-prompt.md) — one-shot prompt scoring before
339
+ `/work`.
340
+ - [`/refine-ticket`](../refine-ticket.md) — ticket reconstruction.
341
+ - [`/optimize-prompt`](../optimize-prompt.md) — sibling pattern (interactive
342
+ polishing).
343
+ - [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — the
344
+ one-question-per-turn Iron Law this command is built on.
345
+ - Inspiration: `mattpocock/skills/skills/productivity/grill-me/SKILL.md`
346
+ — same spirit (relentless decision-tree interview, one question at a
347
+ time, recommended answer per question), restructured to our command
348
+ shape with explicit stop heuristic and copyable pitch contract.