@event4u/agent-config 9.2.0 → 9.4.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 (93) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +111 -0
  3. package/CONTRIBUTING.md +14 -0
  4. package/README.md +12 -4
  5. package/dist/agent-src/commands/contribution-precheck.md +100 -0
  6. package/dist/agent-src/commands/fix/route.md +49 -0
  7. package/dist/agent-src/commands/fix.md +4 -2
  8. package/dist/agent-src/commands/tdd/green.md +32 -0
  9. package/dist/agent-src/commands/tdd/red.md +33 -0
  10. package/dist/agent-src/commands/tdd/refactor.md +31 -0
  11. package/dist/agent-src/commands/tdd.md +50 -0
  12. package/dist/agent-src/commands/team.md +4 -0
  13. package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
  14. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +81 -2
  15. package/dist/agent-src/contexts/model-recommendations.md +6 -0
  16. package/dist/agent-src/rules/architecture.md +7 -0
  17. package/dist/agent-src/rules/token-efficiency.md +7 -0
  18. package/dist/agent-src/skills/adversarial-review/SKILL.md +5 -0
  19. package/dist/agent-src/skills/ai-council/SKILL.md +3 -0
  20. package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -0
  21. package/dist/agent-src/skills/decision-record/SKILL.md +35 -1
  22. package/dist/agent-src/skills/decision-record/evals/triggers.json +82 -12
  23. package/dist/agent-src/skills/decision-record/references/weighted-matrix.md +119 -0
  24. package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +142 -0
  25. package/dist/agent-src/skills/fe-design/SKILL.md +1 -0
  26. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
  27. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -0
  28. package/dist/agent-src/skills/learning-tutor/SKILL.md +215 -0
  29. package/dist/agent-src/skills/persona-improvement/SKILL.md +81 -0
  30. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +10 -0
  31. package/dist/agent-src/skills/rice-prioritization/SKILL.md +1 -0
  32. package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -1
  33. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +14 -24
  34. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  35. package/dist/discovery/deprecation-report.md +1 -1
  36. package/dist/discovery/discovery-manifest.json +253 -30
  37. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  38. package/dist/discovery/discovery-manifest.summary.md +4 -4
  39. package/dist/discovery/orphan-report.md +1 -1
  40. package/dist/discovery/packs.json +19 -10
  41. package/dist/discovery/trust-report.md +3 -3
  42. package/dist/discovery/workspaces.json +15 -6
  43. package/dist/mcp/registry-manifest.json +3 -3
  44. package/docs/CLAIMS.md +16 -2
  45. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +84 -0
  46. package/docs/anti-reskin-gate.md +60 -0
  47. package/docs/architecture.md +3 -3
  48. package/docs/catalog.md +303 -278
  49. package/docs/command-flows.md +10 -3
  50. package/docs/comparison.yaml +10 -0
  51. package/docs/contracts/adoption-signal-floor.md +17 -0
  52. package/docs/contracts/ai-council-config.md +25 -0
  53. package/docs/contracts/command-clusters.md +2 -1
  54. package/docs/contracts/mcp-tool-inventory.md +25 -22
  55. package/docs/contracts/tier-3-contrib-plugin.md +12 -4
  56. package/docs/decisions/ADR-122-adversarial-verification-council.md +1 -1
  57. package/docs/development.md +10 -1
  58. package/docs/featured-skills.md +2 -2
  59. package/docs/getting-started-by-role.md +1 -1
  60. package/docs/getting-started.md +1 -1
  61. package/docs/governance-advantage.md +1 -1
  62. package/docs/guidelines/component-oriented-and-oop-development.md +181 -0
  63. package/docs/proof.md +10 -6
  64. package/docs/self-review-gate.md +14 -0
  65. package/docs/setup/per-ide/antigravity.md +8 -3
  66. package/docs/us-vs-the-category.md +38 -0
  67. package/docs/wedge/production-validator/README.md +24 -0
  68. package/docs/wedge/production-validator/first-run-check.sh +42 -0
  69. package/package.json +3 -2
  70. package/src/scripts/_lib/catalog_score.ts +64 -0
  71. package/src/scripts/_lib/shingle_similarity.ts +146 -0
  72. package/src/scripts/ai_council/clients.ts +50 -1
  73. package/src/scripts/ai_council/config.ts +28 -3
  74. package/src/scripts/ai_council/low_impact.ts +16 -0
  75. package/src/scripts/ai_council/necessity.ts +11 -0
  76. package/src/scripts/ai_council/orchestrator.ts +78 -26
  77. package/src/scripts/ai_council/pricing.ts +59 -0
  78. package/src/scripts/ai_council/prompts.ts +7 -0
  79. package/src/scripts/ai_council/stance_tally.ts +42 -5
  80. package/src/scripts/build_catalog_index.ts +188 -0
  81. package/src/scripts/council_cli.ts +56 -1
  82. package/src/scripts/generate_index.ts +6 -3
  83. package/src/scripts/hook_manifest.yaml +17 -6
  84. package/src/scripts/install-hooks.sh +32 -17
  85. package/src/scripts/lint_originality.ts +464 -0
  86. package/src/scripts/mcp_server/catalog_tools.ts +114 -0
  87. package/src/scripts/mcp_server/consumer_tool_catalog.json +46 -0
  88. package/src/scripts/pr_url_reminder_hook.ts +177 -0
  89. package/src/scripts/schemas/flow.schema.json +17 -0
  90. package/src/scripts/schemas/skill.schema.json +166 -32
  91. package/src/scripts/self_review_gate.test.ts +48 -0
  92. package/src/scripts/self_review_gate.ts +73 -5
  93. package/src/scripts/validate_flow_teams.ts +127 -0
@@ -0,0 +1,215 @@
1
+ ---
2
+ model_tier: inherit
3
+ name: learning-tutor
4
+ description: "Use when the user wants to learn a topic or verify real understanding — rapid-competence session, error drills, learning sprint, gap probe, Feynman check. Triggers 'teach me X', 'quiz me'."
5
+ domain: process
6
+ workspaces:
7
+ - engineering
8
+ packs:
9
+ - engineering-base
10
+ ---
11
+
12
+ # learning-tutor
13
+
14
+ > Structured tutoring modes for learning WITH the agent instead of consuming
15
+ > explanations FROM it. Default agent behavior on "teach me X" = prose
16
+ > lecture — pedagogically the weakest format. This skill replaces the lecture
17
+ > with six evidence-shaped modes: triage what to learn, practice before
18
+ > theory, withhold answers until the learner has tried, verify understanding
19
+ > with probes the learner cannot bluff through.
20
+
21
+ ## When to use
22
+
23
+ Use when the user:
24
+
25
+ - Wants to get functional in a new tool, framework, language or topic fast
26
+ ("teach me X", "get me productive in X", "crash course").
27
+ - Wants to *practice* a concept rather than read about it ("drill me",
28
+ "let me apply it", "give me exercises").
29
+ - Pastes content they don't understand and asks for a real explanation
30
+ ("I don't get this", "explain this doc so it clicks").
31
+ - Has a concrete goal with a deadline, wants a learning plan
32
+ ("learning plan for X", "need to ship Y in two weeks, don't know Z").
33
+ - Wants existing knowledge stress-tested ("quiz me", "do I actually
34
+ understand X?", "find my blind spots").
35
+ - Just learned something, wants to verify it stuck ("check my
36
+ understanding", "let me explain it back to you").
37
+
38
+ Do NOT use when:
39
+
40
+ - User asks a direct factual or how-to question — answer it
41
+ (per `direct-answers`); don't convert a question into a curriculum.
42
+ - User wants the agent to DO the task, not to learn it.
43
+ - "Learning" target is this package's own artifacts (rules/skills) —
44
+ that is `learning-to-rule-or-skill`, a different skill.
45
+ - User wants a plan/idea stress-tested — that is `adversarial-review`
46
+ or `/challenge-me`, not knowledge tutoring.
47
+
48
+ ## Procedure
49
+
50
+ 1. **Select the mode** from user intent (table below). Pick ONE; if two fit,
51
+ pick the one matching the user's verb ("learn" → teach modes 1–4,
52
+ "check/quiz/verify" → probe modes 5–6) — don't ask.
53
+ 2. **State the chosen mode** in one line, freeze the target
54
+ (skill/topic/goal).
55
+ 3. **Run the mode's own procedure** (sections below), holding its withhold
56
+ rules — they ARE the skill.
57
+ 4. **Carry the output header** (see `## Output format`) on every reply so a
58
+ resumed session continues instead of restarting.
59
+ 5. **Close the session** with the mode's closing analysis and exactly one
60
+ next action for the learner.
61
+
62
+ ### Mode selection
63
+
64
+ | User intent | Mode |
65
+ |---|---|
66
+ | "Get me functional in X fast", no deadline given | 1 · Rapid competence |
67
+ | "Let me practice X", "drill me", concept with known pitfalls | 2 · Error-driven drill |
68
+ | Pasted content + "I don't understand this" | 3 · Keystone decoding |
69
+ | Concrete goal + deadline + current level | 4 · Goal-backward sprint |
70
+ | "Do I really know X?", "find my gaps" | 5 · Gap probe |
71
+ | "I just learned X — check my understanding" | 6 · Feynman check |
72
+
73
+ ## Mode 1 — Rapid competence
74
+
75
+ Frame: one time-boxed session (default 4 focused hours unless user names a
76
+ budget), never met again — every minute must transfer skill. No theory block
77
+ without immediate practical use.
78
+
79
+ 1. Answer three triage questions, in order, before anything else:
80
+ - **First**: the one thing to learn first — and why exactly that.
81
+ - **Ignore**: what to skip entirely for now — and why skipping is safe.
82
+ - **Leverage exercise**: the single exercise that, done once, puts the
83
+ learner ahead of most people who have "studied" the skill for months.
84
+ 2. Run the session practice-first: each concept introduced only at the
85
+ moment an exercise needs it.
86
+ 3. Close with the next leverage exercise for the learner's own follow-up.
87
+
88
+ ## Mode 2 — Error-driven drill
89
+
90
+ Frame: do not explain the concept. Put the learner into a realistic scenario
91
+ where it must be applied and where a typical beginner makes a concrete
92
+ mistake.
93
+
94
+ 1. Present the scenario; let the learner act.
95
+ 2. On a mistake: do NOT give the fix. Ask one targeted question that forces
96
+ the learner to locate their own reasoning error.
97
+ 3. Reveal the answer only after the learner has made **at least two** genuine
98
+ attempts.
99
+ 4. Repeat the cycle with variations until the learner applies the concept
100
+ without hesitation; then say so explicitly, stop.
101
+
102
+ ## Mode 3 — Keystone decoding
103
+
104
+ Frame: user supplied content (doc, text, code, spec) that doesn't click.
105
+
106
+ 1. Identify the **one sentence** the learner must understand for the rest to
107
+ fall into place. Name it verbatim from the content.
108
+ 2. Explain only that sentence first — with an everyday analogy, no technical
109
+ term left unexplained in the same breath.
110
+ 3. Ask exactly **3 comprehension questions** designed so only someone who
111
+ actually understood can answer (no yes/no, no recall of wording).
112
+ 4. Continue into the rest of the content only after all three are answered
113
+ correctly; on a wrong answer, re-explain from a different angle, re-ask.
114
+
115
+ ## Mode 4 — Goal-backward sprint
116
+
117
+ Frame: user has a specific outcome, a time frame, a current level. Plan
118
+ targets the OUTCOME, not the subject in general.
119
+
120
+ 1. Confirm the three inputs (goal/outcome, time frame, current level) from
121
+ the message; ask for at most the one that is missing.
122
+ 2. Build a 7-day path (scale to the stated time frame). Each day has exactly
123
+ three elements:
124
+ - **One task**, completable in ~45 minutes.
125
+ - **One success criterion** — how the learner verifies they did it right.
126
+ - **One exclusion rule** — what they deliberately do NOT touch that day.
127
+ 3. Self-check the path against the goal: a day that doesn't causally move the
128
+ learner toward the stated outcome → rework before presenting.
129
+
130
+ ## Mode 5 — Gap probe
131
+
132
+ Frame: user believes they already know the subject. Job: prove otherwise.
133
+
134
+ 1. Ask **5 questions** that look deceptively simple but expose the classic
135
+ gaps of someone who never went deep — edge cases, "why" behind defaults,
136
+ failure modes, boundaries of applicability.
137
+ 2. For each answer, analyze what it reveals about the foundation: what is
138
+ missing, what is shaky, what is misinterpreted.
139
+ 3. No softening. A shallow answer is called shallow, with the specific gap
140
+ named. Close with the 1–3 highest-priority gaps to fix, each with one
141
+ concrete next exercise.
142
+
143
+ ## Mode 6 — Feynman check
144
+
145
+ Frame: user explains the freshly learned topic as if the agent were a
146
+ 10-year-old. Agent listens and interrupts.
147
+
148
+ 1. Invite the explanation; interrupt immediately when the learner:
149
+ - uses a technical term without being able to say what it means,
150
+ - skips a reasoning step,
151
+ - oversimplifies to the point of being factually wrong.
152
+ 2. Each interruption is one pointed question, not a correction.
153
+ 3. Close with a precise analysis: what the accumulated stumbles reveal about
154
+ which parts of the understanding are not yet solid — and which held.
155
+
156
+ ## Output format
157
+
158
+ Every tutoring reply carries a compact header so the learner always knows
159
+ where they are:
160
+
161
+ ```
162
+ learning-tutor · mode <n> — <mode name>
163
+ Target: <skill/topic/goal>
164
+ Progress: <step or day k/N · attempts used · questions passed x/y>
165
+ Next: <what the learner does next>
166
+ ```
167
+
168
+ Required fields (ordered):
169
+
170
+ 1. **Mode line** — mode number + name, stated in the first reply, kept on
171
+ every subsequent reply of the session.
172
+ 2. **Target** — the skill/topic/goal being tutored, frozen at session start;
173
+ a target change starts a new mode selection.
174
+ 3. **Progress** — mode-specific position (drill attempts used, comprehension
175
+ questions passed, sprint day) so a resumed session continues instead of
176
+ restarting.
177
+ 4. **Next** — the single next action for the learner, never more than one.
178
+
179
+ ## Gotcha
180
+
181
+ - **Lecture relapse** — after 2–3 turns the agent drifts back into
182
+ explaining instead of asking. The withhold rules (mode 2: answer only
183
+ after 2 attempts; mode 3: proceed only after 3/3 correct) ARE the skill;
184
+ dropping them silently turns every mode back into mode zero.
185
+ - **Solving instead of tutoring** — learner pastes their broken attempt,
186
+ agent fixes it. In modes 2/5/6 the fix is withheld; the question comes
187
+ first. If the user explicitly switches intent to "just fix it", say the
188
+ tutoring session is paused and fix it — don't blend the two.
189
+ - **Flattery corrupts the probe** — modes 5 and 6 only work blunt. "Great
190
+ answer!" on a shallow answer defeats the mode (`direct-answers`
191
+ Iron Law 1 already forbids it).
192
+ - **Untested self-assessment** — taking "yes, understood" as passing a
193
+ comprehension check. Only a correct answer to a probe question counts;
194
+ agreement is not evidence.
195
+ - **Sprint without the three inputs** — generating a generic plan when goal,
196
+ time frame or current level is missing produces exactly the generic
197
+ curriculum this skill exists to avoid. Ask for the missing input (one
198
+ question, per `ask-when-uncertain`).
199
+
200
+ ## Do NOT
201
+
202
+ - NEVER give the solution in mode 2 before two genuine learner attempts.
203
+ - NEVER continue in mode 3 before all three comprehension questions pass.
204
+ - NEVER pad a sprint day with more than one task, one criterion, one exclusion.
205
+ - NEVER soften a gap-probe or Feynman verdict to be nice.
206
+ - NEVER convert a direct factual question into a tutoring session uninvited.
207
+
208
+ ## See also
209
+
210
+ - `learning-to-rule-or-skill` — converting session learnings into package
211
+ artifacts (the other direction: agent learns, not user).
212
+ - `adversarial-review` / `/challenge-me` — stress-testing a plan or artifact
213
+ rather than a person's understanding.
214
+ - `sequential-thinking` — structured reasoning for the agent itself.
215
+ - `direct-answers` — the brevity/no-flattery floor the probe modes rely on.
@@ -0,0 +1,81 @@
1
+ ---
2
+ model_tier: inherit
3
+ name: persona-improvement
4
+ description: "ONLY when the user explicitly asks to refine a persona from recent corrections — persona analog of skill-improvement-pipeline; tightens a persona's Unique Questions, governance-gated."
5
+ domain: process
6
+ execution:
7
+ type: assisted
8
+ handler: internal
9
+ allowed_tools: []
10
+ workspaces:
11
+ - agent-config-maintainer
12
+ packs:
13
+ - meta
14
+ requires_skills:
15
+ - persona-governance
16
+ ---
17
+
18
+ # persona-improvement
19
+
20
+ The persona analog of [`skill-improvement-pipeline`](../skill-improvement-pipeline/SKILL.md):
21
+ feed a persona a sample of recent corrections/failures where its review lens
22
+ **should** have caught something and didn't, and tighten its `Unique Questions`
23
+ so the lens fires next time. Access ergonomics, not new capability — it only
24
+ sharpens an existing persona, never creates one.
25
+
26
+ ## When to use
27
+
28
+ - The user explicitly says "improve / refine this persona" or "the <persona> lens keeps missing X".
29
+ - A correction sample exists (review misses, repeated feedback) that a persona's questions should have surfaced.
30
+
31
+ Do NOT use for:
32
+
33
+ - Creating a new persona (that is `persona-governance` + the authoring flow).
34
+ - Editing a persona's identity/scope (a breaking change → new id per `persona-governance`).
35
+ - A one-off miss with no pattern — one anecdote is not a refinement signal.
36
+
37
+ ## Procedure
38
+
39
+ 1. **Gather the correction sample.** Collect the recent misses/corrections tied
40
+ to this persona's domain (from the conversation, feedback notes, or a review
41
+ log). If fewer than ~3 distinct misses, STOP — no pattern yet; say so.
42
+ 2. **Locate the gap.** For each miss, name the question the persona *should* have
43
+ asked that would have surfaced it. Cluster the misses into ≤ 2 recurring gaps.
44
+ 3. **Propose tightened `Unique Questions`.** Rewrite or add questions that close
45
+ the gaps — concrete and answerable-from-the-diff, not vague ("does this add a
46
+ second branch on the same enum?" beats "is the design good?"). Keep the
47
+ section ≥ 3 questions (`persona-governance` schema floor).
48
+ 4. **Governance gate (mandatory).** Before writing, confirm with
49
+ [`persona-governance`](../../rules/persona-governance.md): the edit is a
50
+ same-id refinement (not a scope/identity change — those need a new id); the
51
+ persona keeps ≥ 1 skill citation; the file still passes the skill linter
52
+ (tier/wing/section/line budget). A scope change is out of scope for this loop.
53
+ 5. **Apply + verify.** Edit only the `Unique Questions` section; run
54
+ `./scripts-run src/scripts/skill_linter` on the persona file and confirm
55
+ 0 errors; show the before/after questions.
56
+
57
+ ## Output format
58
+
59
+ 1. **Correction sample** — the ≥ 3 misses, one line each.
60
+ 2. **Gaps** — the ≤ 2 recurring gaps the misses cluster into.
61
+ 3. **Before/after `Unique Questions`** — the diff, with which gap each new question closes.
62
+ 4. **Governance confirmation** — same-id refinement ✅, ≥ 1 citation intact ✅, linter 0-error ✅.
63
+
64
+ ## Gotcha
65
+
66
+ - The most common misuse is **scope creep disguised as refinement**: adding
67
+ questions that widen the persona into a second domain. That is a new persona
68
+ (per the per-domain cap), not a refinement — STOP and route to
69
+ `persona-governance`, do not grow the lens sideways.
70
+
71
+ ## Do NOT
72
+
73
+ - Do NOT refine on a single miss — a pattern needs ≥ 3.
74
+ - Do NOT touch identity, scope, tier, or wing — same-id `Unique Questions` only; anything else is a new-id change under `persona-governance`.
75
+ - Do NOT drop below 3 `Unique Questions` (schema floor).
76
+ - Do NOT commit or push — apply the edit locally, surface the diff.
77
+
78
+ ## Related Skills
79
+
80
+ - [`skill-improvement-pipeline`](../skill-improvement-pipeline/SKILL.md) — the skill-side analog this mirrors.
81
+ - [`persona-governance`](../../rules/persona-governance.md) — the four discipline checks this loop is gated by.
@@ -253,6 +253,16 @@ current state on the next polish round.
253
253
 
254
254
  `DESIGN.md` `## Taste Dials` → honour: Variance → layout-family spread + asymmetry; Motion → animation budget + reduced-motion posture; Density → spacing scale + info-per-viewport. Absent → follow brief's inferred dials.
255
255
 
256
+ ## Component workshop (Storybook) — when the library is large enough
257
+
258
+ Generic "isolate + document reusable components" principle → [`fe-design`](../fe-design/SKILL.md) § Component Architecture; this is the React carve-out for the tool-specific part.
259
+
260
+ - **When it pays off** — real, growing shared-component library (more than a handful of reused primitives, multiple consumers, ongoing UI work): Storybook makes each component discoverable, reviewable in isolation, reused not re-invented. **Skip** for a small surface of one-offs — setup + maintenance not worth it yet.
261
+ - **Story per reusable primitive, not per screen** — a story covers a component + its states (default / loading / empty / error / dark), mirroring the Step 3 state-coverage matrix. Screens composed, not story-fied.
262
+ - **Reuse the token layer** — stories render under the same semantic tokens + `.dark` class; never hardcode a preview theme (Step 2 token discipline).
263
+ - **A11y in-workshop** — run the a11y addon so isolation catches contrast / role / focus before the component reaches a screen.
264
+ - Do NOT let stories drift from the component API — a story props-drilling values the component no longer accepts is stale documentation; keep beside the component, update in the same change.
265
+
256
266
  ## Do NOT
257
267
 
258
268
  - Do NOT install `shadcn-ui` from npm — primitives are scaffolded.
@@ -89,6 +89,7 @@ Do NOT use for valuation, OKR decomposition, or funnel-stage diagnosis (see Rela
89
89
 
90
90
  **WHEN NOT to use this**
91
91
 
92
+ - ONE choice between alternatives on custom criteria (not many items on the fixed R×I×C/E formula) — route to [`decision-record`](../decision-record/SKILL.md) § Weighted-matrix mode.
92
93
  - Decomposing an objective into KRs — route to [`okr-tree-modeling`](../okr-tree-modeling/SKILL.md).
93
94
  - Diagnosing why a funnel stage drops — route to [`funnel-analysis`](../funnel-analysis/SKILL.md).
94
95
  - Modelling whether an investment is worth its capital cost — route to [`dcf-modeling`](../dcf-modeling/SKILL.md).
@@ -147,7 +147,9 @@ column is missing.
147
147
  becomes input to this skill for escalation. Boundary prose lives
148
148
  in [`docs/guidelines/cross-role-handoff.md`](../../../docs/guidelines/cross-role-handoff.md).
149
149
  - The trade-off is purely technical (perf vs storage, sync vs async)
150
- — route to [`decision-record`](../decision-record/SKILL.md).
150
+ — route to [`decision-record`](../decision-record/SKILL.md); one costly
151
+ choice on ≥ 3 options with user-weighted criteria → its § Weighted-matrix
152
+ mode (this skill answers WHO pays; that mode answers WHICH option wins).
151
153
  - The dominant axis is risk, not stakeholder cost — route to
152
154
  [`risk-officer`](../risk-officer/SKILL.md).
153
155
  - The output is the locked decision artifact — hand off to
@@ -28,7 +28,7 @@ Do NOT use when:
28
28
  value — single file, one-liner fix
29
29
  * The user is still exploring — route to brainstorming / planning
30
30
  skills first
31
- * Budget is the constraint — each subagent call multiplies cost
31
+ * Budget is the constraint — each subagent call multiplies cost; non-interactive bulk cohorts → batch/caching via the [`token-optimizer`](../token-optimizer/SKILL.md) index branch
32
32
  * The implementer and judge would be the same model on the same
33
33
  context — no added signal
34
34
 
@@ -68,33 +68,22 @@ line; any gate failing → in-session no-op. Never lifts a safety floor.
68
68
 
69
69
  ## Worker-prompt contract
70
70
 
71
- Every dispatched worker prompt obeys four rules — they prevent the two classic
72
- handoff failures: lossy re-summarization dropping the user's requirements, and
73
- over-scripted prompts that break on first contingency.
74
-
75
- - **(a) User constraints verbatim.** Pass the user's
76
- constraints/exclusions/preferences into the worker prompt **verbatim** — never
77
- a paraphrase (a paraphrase silently drops requirements).
78
- - **(b) Describe the goal, don't script the approach.** State the outcome and
79
- let the worker choose the path; over-scripting breaks on contingencies.
80
- - **(c) Translate environment paths.** Orchestrator-local paths do not exist in
81
- the worker's sandbox — resolve/translate them at spawn.
82
- - **(d) Pre-declared check-in conditions.** The worker names, at spawn time, the
83
- conditions under which it will halt and ask ("if login required", "if
84
- multiple candidates found") — so interrupts are predictable, not surprises.
85
- - **(e) Attach relevant knowledge — read-only (road-to-opt-subagent-harvest
86
- P3).** Before dispatch, look up the slice's key identifiers via
87
- `memory_lookup` / the knowledge cards and attach the top hits to the
88
- worker prompt AS LEADS — labelled per the source-discovery discipline
89
- (negative facts + pointers durable; positive structure = hypothesis to
90
- re-confirm, never a build input). The WRITE half stays forbidden: a
91
- subagent's output is never auto-persisted into memory — promotion is
92
- always the human-gated flow (ADR-098 floor). Auto-surface, never
93
- auto-write.
71
+ Every dispatched worker prompt obeys five rules that prevent the two classic
72
+ handoff failures (lossy re-summarization dropping the user's requirements;
73
+ over-scripted prompts that break on first contingency): (a) user
74
+ constraints **verbatim**, (b) describe the goal — don't script the approach,
75
+ (c) translate environment paths into the worker's sandbox, (d) pre-declare
76
+ check-in conditions, (e) attach relevant knowledge read-only (auto-surface,
77
+ never auto-write — ADR-098 floor). The five rules verbatim:
78
+ [`subagent-spawn-contract` § Worker-prompt rules](../../contexts/execution/subagent-spawn-contract.md).
94
79
 
95
80
  When to delegate at all is [`delegation-policy`](../../rules/delegation-policy.md);
96
81
  the spawn boundary is the [`subagent-spawn-contract`](../../contexts/execution/subagent-spawn-contract.md).
97
82
 
83
+ ## Hand-off worked examples
84
+
85
+ Ordered / fan-out hand-offs embed each step's return **verbatim** in the next prompt and state what to do with it (never "continue from before" — the lossy re-summarization failure). Two worked shapes: [`subagent-spawn-contract` § Hand-off worked examples](../../contexts/execution/subagent-spawn-contract.md).
86
+
98
87
  ## Form gate — deterministic, BEFORE mode selection
99
88
 
100
89
  With auto-dispatch on by default (ADR-117), mode selection happens without
@@ -406,5 +395,6 @@ Skip emit when `subagents.enabled: false` or `spawn_count == 0` (in-session run)
406
395
  | Stepwise plan with judge gates | Inline — see [`prompts/do-in-steps.md`](prompts/do-in-steps.md) |
407
396
  | Standalone judge on an existing diff | Inline — see judge prompt in [`prompts/do-and-judge.md`](prompts/do-and-judge.md) |
408
397
  | External / networked second opinion | [`ai-council`](../ai-council/SKILL.md) |
398
+ | Cross-model review WITH repo access | [`/team`](../../commands/team.md) (collaborative; subagents are in-session same-weights) |
409
399
  | Verifying completeness | [`verify-before-complete`](../verify-before-complete/SKILL.md) |
410
400
  | What a subagent owns vs never owns | [`subagent-boundary`](../../../docs/contracts/subagent-boundary.md) |
@@ -39,7 +39,7 @@ schema_version: 1
39
39
  # CI guard: a release bump of `package.json` must update this value
40
40
  # in lockstep — see scripts/check_template_pin_drift.ts (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "9.2.0"
42
+ agent_config_version: "9.4.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -1,6 +1,6 @@
1
1
  # Discovery — Deprecation Report
2
2
 
3
- - Generated: `2026-07-14T13:40:54Z`
3
+ - Generated: `2026-07-20T09:32:39Z`
4
4
  - Deprecated artefacts: **0**
5
5
 
6
6
  _None. Tree is clean._