@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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +111 -0
- package/CONTRIBUTING.md +14 -0
- package/README.md +12 -4
- package/dist/agent-src/commands/contribution-precheck.md +100 -0
- package/dist/agent-src/commands/fix/route.md +49 -0
- package/dist/agent-src/commands/fix.md +4 -2
- package/dist/agent-src/commands/tdd/green.md +32 -0
- package/dist/agent-src/commands/tdd/red.md +33 -0
- package/dist/agent-src/commands/tdd/refactor.md +31 -0
- package/dist/agent-src/commands/tdd.md +50 -0
- package/dist/agent-src/commands/team.md +4 -0
- package/dist/agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +1 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +81 -2
- package/dist/agent-src/contexts/model-recommendations.md +6 -0
- package/dist/agent-src/rules/architecture.md +7 -0
- package/dist/agent-src/rules/token-efficiency.md +7 -0
- package/dist/agent-src/skills/adversarial-review/SKILL.md +5 -0
- package/dist/agent-src/skills/ai-council/SKILL.md +3 -0
- package/dist/agent-src/skills/build-buy-partner/SKILL.md +1 -0
- package/dist/agent-src/skills/decision-record/SKILL.md +35 -1
- package/dist/agent-src/skills/decision-record/evals/triggers.json +82 -12
- package/dist/agent-src/skills/decision-record/references/weighted-matrix.md +119 -0
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +142 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +1 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -0
- package/dist/agent-src/skills/learning-tutor/SKILL.md +215 -0
- package/dist/agent-src/skills/persona-improvement/SKILL.md +81 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +10 -0
- package/dist/agent-src/skills/rice-prioritization/SKILL.md +1 -0
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +3 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +14 -24
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +253 -30
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +19 -10
- package/dist/discovery/trust-report.md +3 -3
- package/dist/discovery/workspaces.json +15 -6
- package/dist/mcp/registry-manifest.json +3 -3
- package/docs/CLAIMS.md +16 -2
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +84 -0
- package/docs/anti-reskin-gate.md +60 -0
- package/docs/architecture.md +3 -3
- package/docs/catalog.md +303 -278
- package/docs/command-flows.md +10 -3
- package/docs/comparison.yaml +10 -0
- package/docs/contracts/adoption-signal-floor.md +17 -0
- package/docs/contracts/ai-council-config.md +25 -0
- package/docs/contracts/command-clusters.md +2 -1
- package/docs/contracts/mcp-tool-inventory.md +25 -22
- package/docs/contracts/tier-3-contrib-plugin.md +12 -4
- package/docs/decisions/ADR-122-adversarial-verification-council.md +1 -1
- package/docs/development.md +10 -1
- package/docs/featured-skills.md +2 -2
- package/docs/getting-started-by-role.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/governance-advantage.md +1 -1
- package/docs/guidelines/component-oriented-and-oop-development.md +181 -0
- package/docs/proof.md +10 -6
- package/docs/self-review-gate.md +14 -0
- package/docs/setup/per-ide/antigravity.md +8 -3
- package/docs/us-vs-the-category.md +38 -0
- package/docs/wedge/production-validator/README.md +24 -0
- package/docs/wedge/production-validator/first-run-check.sh +42 -0
- package/package.json +3 -2
- package/src/scripts/_lib/catalog_score.ts +64 -0
- package/src/scripts/_lib/shingle_similarity.ts +146 -0
- package/src/scripts/ai_council/clients.ts +50 -1
- package/src/scripts/ai_council/config.ts +28 -3
- package/src/scripts/ai_council/low_impact.ts +16 -0
- package/src/scripts/ai_council/necessity.ts +11 -0
- package/src/scripts/ai_council/orchestrator.ts +78 -26
- package/src/scripts/ai_council/pricing.ts +59 -0
- package/src/scripts/ai_council/prompts.ts +7 -0
- package/src/scripts/ai_council/stance_tally.ts +42 -5
- package/src/scripts/build_catalog_index.ts +188 -0
- package/src/scripts/council_cli.ts +56 -1
- package/src/scripts/generate_index.ts +6 -3
- package/src/scripts/hook_manifest.yaml +17 -6
- package/src/scripts/install-hooks.sh +32 -17
- package/src/scripts/lint_originality.ts +464 -0
- package/src/scripts/mcp_server/catalog_tools.ts +114 -0
- package/src/scripts/mcp_server/consumer_tool_catalog.json +46 -0
- package/src/scripts/pr_url_reminder_hook.ts +177 -0
- package/src/scripts/schemas/flow.schema.json +17 -0
- package/src/scripts/schemas/skill.schema.json +166 -32
- package/src/scripts/self_review_gate.test.ts +48 -0
- package/src/scripts/self_review_gate.ts +73 -5
- 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
|
|
72
|
-
handoff failures
|
|
73
|
-
over-scripted prompts that break on first contingency
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
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.
|
|
42
|
+
agent_config_version: "9.4.0"
|
|
43
43
|
|
|
44
44
|
# --- Project identity ---
|
|
45
45
|
project:
|