claudecode-omc 5.6.2 → 5.6.4
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/.local/skills/conductor-distill/SKILL.md +199 -0
- package/.local/skills/conductor-distill/references/bmad-mapping.md +131 -0
- package/.local/skills/conductor-distill/references/distillation-blocks.md +181 -0
- package/.local/skills/conductor-distill/references/superpowers-mapping.md +160 -0
- package/.local/skills/prompt-optimizer/SKILL.md +774 -0
- package/bundled/manifest.json +1 -1
- package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +398 -21
- package/package.json +1 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: conductor-distill
|
|
3
|
+
description: Distill methodology from superpowers and BMAD-METHOD docs into the active conductor track's spec.md / plan.md / review.md as intent-layer overlays. Use when user asks to "distill superpowers into conductor", "把 superpowers/bmad 提炼到 conductor", "import method docs to track", "seed conductor with brainstorming/TDD/verification gates", or "feed BMAD PRD/architecture/story/QA principles into the track". Writes only inside marker blocks so it never competes with code-derived facts and re-runs cleanly. DO NOT use for general superpowers invocation, code refactors, or to summarize this codebase.
|
|
4
|
+
argument-hint: "[--track <slug>] [--source superpowers|bmad|both] [--target spec|plan|review|all] [--dry-run] [--refresh]"
|
|
5
|
+
disable-model-invocation: false
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools:
|
|
8
|
+
- Read
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Edit
|
|
12
|
+
- Write
|
|
13
|
+
- AskUserQuestion
|
|
14
|
+
model: sonnet
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Conductor Distill
|
|
18
|
+
|
|
19
|
+
<Purpose>
|
|
20
|
+
Pull intent-layer content from external methodology docs (Anthropic superpowers, BMAD-METHOD) into the active conductor track artifacts. The skill seeds `spec.md`, `plan.md`, and `review.md` with phase gates, principles, and checklists drawn from those upstream sources, while staying out of the fact layer the code itself owns.
|
|
21
|
+
</Purpose>
|
|
22
|
+
|
|
23
|
+
<Use_When>
|
|
24
|
+
- User asks to distill / 提炼 / import superpowers into a conductor track
|
|
25
|
+
- User asks to fold BMAD agent prompts (analyst, PM, architect, dev, QA) into a track
|
|
26
|
+
- A new conductor track was created and lacks methodology scaffolding
|
|
27
|
+
- An existing track is drifting from the agreed gates and needs re-seeding
|
|
28
|
+
</Use_When>
|
|
29
|
+
|
|
30
|
+
<Do_Not_Use_When>
|
|
31
|
+
- No conductor track exists yet — run `conductor setup` and `conductor track <title>` first
|
|
32
|
+
- User wants to actually invoke superpowers / write code — go to those skills directly
|
|
33
|
+
- User wants to summarize the local codebase or extract facts from source — that is the fact layer; this skill stays out of it
|
|
34
|
+
- The conductor artifacts already contain the same blocks and the user did not ask for `--refresh`
|
|
35
|
+
</Do_Not_Use_When>
|
|
36
|
+
|
|
37
|
+
<Core_Invariant>
|
|
38
|
+
**Conductor's intent layer is document-driven and does not compete with code for the fact layer.**
|
|
39
|
+
|
|
40
|
+
This means:
|
|
41
|
+
- Distilled blocks contain *methodology* (principles, gates, checklists, prompts, role expectations).
|
|
42
|
+
- Distilled blocks must NOT contain claims about the local code: file names, line numbers, function bodies, test counts, config values, or any observed runtime state.
|
|
43
|
+
- If a fact about the code belongs anywhere, it goes in the human-authored sections of `spec.md` / `plan.md`, not inside distilled blocks.
|
|
44
|
+
- Distilled blocks are clearly fenced with markers so reviewers can tell methodology from project-specific content at a glance.
|
|
45
|
+
|
|
46
|
+
If a distillation candidate would only make sense by referencing this repo's code, drop it. The intent layer is the wrong place for it.
|
|
47
|
+
</Core_Invariant>
|
|
48
|
+
|
|
49
|
+
<Distillation_Block_Format>
|
|
50
|
+
Every distilled section is wrapped in HTML-style markers so it is idempotent and machine-replaceable:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
<!-- conductor:distilled BEGIN source=<source-id> target=<artifact> layer=intent version=YYYY-MM-DD -->
|
|
54
|
+
> Source: <human-readable origin>. This block is intent-layer guidance distilled from upstream methodology and contains no claims about the local code.
|
|
55
|
+
|
|
56
|
+
<distilled content here>
|
|
57
|
+
|
|
58
|
+
<!-- conductor:distilled END source=<source-id> -->
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Rules:
|
|
62
|
+
- `<source-id>` is stable: e.g. `superpowers/brainstorming`, `superpowers/test-driven-development`, `bmad/agent-architect`, `bmad/template-prd`.
|
|
63
|
+
- One block per source per artifact. Re-running with `--refresh` replaces the block matched by `source=` and `target=`.
|
|
64
|
+
- Never nest blocks. Never split one source across multiple blocks in the same artifact.
|
|
65
|
+
- Outside the markers is human / conductor / code territory and must be preserved verbatim on re-runs.
|
|
66
|
+
|
|
67
|
+
See `references/distillation-blocks.md` for the full template per target artifact and the intent-only checklist used before writing each block.
|
|
68
|
+
</Distillation_Block_Format>
|
|
69
|
+
|
|
70
|
+
<Inputs>
|
|
71
|
+
Sources (read-only, scanned at runtime):
|
|
72
|
+
- `bundled/upstream/superpowers/skills/<skill>/SKILL.md` — primary superpowers source in this repo.
|
|
73
|
+
- `.upstream/superpowers/skills/<skill>/SKILL.md` — fallback if the bundled copy is missing.
|
|
74
|
+
- BMAD-METHOD: not vendored in this repo. Either (a) read a user-supplied local clone path, or (b) fetch via Context7 (`mcp__plugin_context7_context7__query-docs` with library `bmad-code-org/bmad-method`). Prefer (a) when available.
|
|
75
|
+
|
|
76
|
+
Targets (read-write, one per active track):
|
|
77
|
+
- `.omc/conductor/tracks/<slug>/spec.md`
|
|
78
|
+
- `.omc/conductor/tracks/<slug>/plan.md`
|
|
79
|
+
- `.omc/conductor/tracks/<slug>/review.md` (create if missing — start from a methodology-only template)
|
|
80
|
+
|
|
81
|
+
Track resolution:
|
|
82
|
+
- If `--track <slug>` is provided, use it.
|
|
83
|
+
- Else read `.omc/conductor/conductor-state.json:activeTrack`.
|
|
84
|
+
- If no active track, stop and tell the user to run conductor setup first.
|
|
85
|
+
</Inputs>
|
|
86
|
+
|
|
87
|
+
<Workflow>
|
|
88
|
+
1. **Resolve track.** Locate active track from `conductor-state.json`. Verify `tracks/<slug>/metadata.json` exists. If not, stop with a clear "no active track" message.
|
|
89
|
+
|
|
90
|
+
2. **Decide sources.** From `--source` and conversation context, pick `superpowers`, `bmad`, or `both`. If `bmad` is requested but no local clone path is known, ask the user once whether to (a) point to a clone, (b) fetch via Context7, or (c) skip BMAD this run.
|
|
91
|
+
|
|
92
|
+
3. **Decide targets.** From `--target`, pick the artifacts to update. Default `all` means `spec.md`, `plan.md`, and `review.md`.
|
|
93
|
+
|
|
94
|
+
4. **Load mappings.** Read `references/superpowers-mapping.md` and/or `references/bmad-mapping.md` to know which source maps to which target and what the intent-only summary should look like. If a requested source does not appear in either mapping file, skip it and report `unsupported-source: <name>` in the per-file summary rather than silently omitting it.
|
|
95
|
+
|
|
96
|
+
5. **Read sources.** For each mapped source, read the upstream doc and extract only the intent-layer signal (principles, gates, checklists, role prompts, plan/spec/review structure). Apply the intent-only checklist from `references/distillation-blocks.md`. If a candidate item leaks fact-layer content, drop or rephrase it.
|
|
97
|
+
|
|
98
|
+
6. **Plan writes.** For each `(source, target)` pair, build the distilled block. Compose the full block text including markers and the boilerplate `> Source:` line.
|
|
99
|
+
|
|
100
|
+
7. **Dry run or apply.**
|
|
101
|
+
- If `--dry-run` (or the user did not yet authorize writes): print the per-file plan with proposed block headers and a 5-10 line preview of each block, then ask the user to confirm via `AskUserQuestion`.
|
|
102
|
+
- Otherwise apply writes.
|
|
103
|
+
|
|
104
|
+
8. **Apply writes idempotently.**
|
|
105
|
+
- For each target file:
|
|
106
|
+
- If the file is missing and the target is `review.md`, create it from the review template in `references/distillation-blocks.md`.
|
|
107
|
+
- For each block to write, search for an existing `<!-- conductor:distilled BEGIN source=<source-id> target=<artifact> ... -->...<!-- conductor:distilled END source=<source-id> -->` region.
|
|
108
|
+
- If absent: append the block at the bottom under a `## Distilled Methodology` heading (create the heading if missing).
|
|
109
|
+
- If present and `--refresh` is set: replace the region in place.
|
|
110
|
+
- If present and `--refresh` is not set: skip it and report `unchanged`.
|
|
111
|
+
- Never modify content outside marker blocks.
|
|
112
|
+
- Never delete user content.
|
|
113
|
+
|
|
114
|
+
9. **Report.** Output a per-file summary: which blocks were added, refreshed, skipped, or dropped (with reason). Include a final reminder that distilled blocks are intent-layer only.
|
|
115
|
+
|
|
116
|
+
10. **Post-conditions.** Do not mutate `metadata.json`, `conductor-state.json`, or any code. The skill is purely a writer of methodology overlays into track artifacts.
|
|
117
|
+
</Workflow>
|
|
118
|
+
|
|
119
|
+
<Mapping_Summary>
|
|
120
|
+
The complete tables live in `references/superpowers-mapping.md` and `references/bmad-mapping.md`. Headline routing:
|
|
121
|
+
|
|
122
|
+
| Source | spec.md | plan.md | review.md |
|
|
123
|
+
|--------|---------|---------|-----------|
|
|
124
|
+
| superpowers/brainstorming | design-gate principles, "no implementation before approval" | — | — |
|
|
125
|
+
| superpowers/writing-plans | — | plan header, file-structure section, bite-sized step granularity, header reminder | — |
|
|
126
|
+
| superpowers/test-driven-development | — | red-green-refactor stages and "watch it fail" rule on each task | TDD checks |
|
|
127
|
+
| superpowers/verification-before-completion | — | per-task verification command convention | evidence-before-claims checklist |
|
|
128
|
+
| superpowers/systematic-debugging | — | debugging stage protocol when a phase fails | bug-bisection checklist |
|
|
129
|
+
| superpowers/requesting-code-review | — | — | review-request shape |
|
|
130
|
+
| superpowers/receiving-code-review | — | — | how to triage feedback before implementing |
|
|
131
|
+
| superpowers/finishing-a-development-branch | — | — | branch-finish gate (merge / PR / cleanup) |
|
|
132
|
+
| bmad/agent-analyst | analyst persona expectations for the spec | — | — |
|
|
133
|
+
| bmad/agent-pm + bmad/template-prd | PRD section skeleton (problem, users, success metrics, non-goals) | — | — |
|
|
134
|
+
| bmad/agent-architect + bmad/template-architecture | architectural-decision section skeleton, NFR prompts | — | — |
|
|
135
|
+
| bmad/agent-sm + bmad/template-story | story-driven task decomposition principles | story-shaped task units | — |
|
|
136
|
+
| bmad/agent-dev | dev-agent execution principles (one story at a time, evidence per change) | "per-task evidence" reminder | — |
|
|
137
|
+
| bmad/agent-qa | — | — | NFR gate, risk profile, traceability checks |
|
|
138
|
+
|
|
139
|
+
Each row maps to an intent-only block. None of them inject local file paths, code symbols, or test results.
|
|
140
|
+
</Mapping_Summary>
|
|
141
|
+
|
|
142
|
+
<Anti_Fact_Layer_Guardrails>
|
|
143
|
+
Before writing each block, run the checklist in `references/distillation-blocks.md`. The short version:
|
|
144
|
+
|
|
145
|
+
- The block must read as methodology even if the repo were empty.
|
|
146
|
+
- The block must not name local files, symbols, branches, commits, or test counts.
|
|
147
|
+
- The block must not assert the project's current behavior.
|
|
148
|
+
- The block must not duplicate code that already lives in the repo.
|
|
149
|
+
- If a candidate sentence fails any of the above, rewrite it as a principle or drop it.
|
|
150
|
+
|
|
151
|
+
These guardrails enforce the user constraint: conductor's intent layer is document-driven and does not compete with code for the fact layer.
|
|
152
|
+
</Anti_Fact_Layer_Guardrails>
|
|
153
|
+
|
|
154
|
+
<Failure_Handling>
|
|
155
|
+
- No conductor track: stop and tell the user to run `conductor setup` / `conductor track <title>` first.
|
|
156
|
+
- Source missing (e.g., bundled superpowers absent and `.upstream/` also empty): report which source is unavailable and continue with the rest.
|
|
157
|
+
- BMAD unavailable: ask once, then skip BMAD if the user declines a clone path or Context7 fetch.
|
|
158
|
+
- Target file write fails: stop, report the path and error, and do not partially write.
|
|
159
|
+
- Marker collision (a block with a different shape already uses the same `source=` id): refuse to write, ask the user how to resolve.
|
|
160
|
+
- Detected fact-layer leakage during composition: drop the offending sentence and note it in the report rather than writing it.
|
|
161
|
+
</Failure_Handling>
|
|
162
|
+
|
|
163
|
+
<Examples>
|
|
164
|
+
<Good>
|
|
165
|
+
User: "distill superpowers into the active conductor track, dry run first"
|
|
166
|
+
Action: resolve active track → plan blocks for spec/plan/review from the superpowers mapping → print preview → ask for approval before applying.
|
|
167
|
+
</Good>
|
|
168
|
+
|
|
169
|
+
<Good>
|
|
170
|
+
User: "把 BMAD 的 PRD 和 architect 的部分塞进 spec.md,plan.md 不要动"
|
|
171
|
+
Action: source=bmad, target=spec, write `bmad/agent-pm + bmad/template-prd` and `bmad/agent-architect + bmad/template-architecture` blocks into `spec.md` only.
|
|
172
|
+
</Good>
|
|
173
|
+
|
|
174
|
+
<Good>
|
|
175
|
+
User: "refresh distilled blocks on payment-webhook-retry"
|
|
176
|
+
Action: --track payment-webhook-retry --refresh, replace existing blocks in place by `source=` id, leave non-block content untouched.
|
|
177
|
+
</Good>
|
|
178
|
+
|
|
179
|
+
<Bad>
|
|
180
|
+
User: "use superpowers TDD now to fix this bug"
|
|
181
|
+
Why bad: the user wants to actually do TDD on the codebase. Route to the TDD skill, not this distiller.
|
|
182
|
+
</Bad>
|
|
183
|
+
|
|
184
|
+
<Bad>
|
|
185
|
+
User: "summarize what our auth code does into spec.md"
|
|
186
|
+
Why bad: that is fact-layer content. This skill writes methodology only. Decline and suggest a code-reading agent.
|
|
187
|
+
</Bad>
|
|
188
|
+
</Examples>
|
|
189
|
+
|
|
190
|
+
<Final_Checklist>
|
|
191
|
+
- [ ] Active conductor track resolved before any write
|
|
192
|
+
- [ ] Sources confirmed available (superpowers and/or BMAD)
|
|
193
|
+
- [ ] Each candidate block passed the intent-only checklist
|
|
194
|
+
- [ ] Blocks fenced with the standard `conductor:distilled` markers
|
|
195
|
+
- [ ] Existing blocks refreshed only when `--refresh` is set
|
|
196
|
+
- [ ] No content outside markers was modified
|
|
197
|
+
- [ ] No code-derived facts written into any block
|
|
198
|
+
- [ ] Per-file summary printed for the user
|
|
199
|
+
</Final_Checklist>
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# BMAD-METHOD → Conductor Mapping
|
|
2
|
+
|
|
3
|
+
Reference for `conductor-distill` when `--source bmad` (or `both`) is selected. BMAD-METHOD is not vendored in this repo, so the runtime acquires it via one of two paths:
|
|
4
|
+
|
|
5
|
+
1. **Local clone** (preferred). User points to a clone of `https://github.com/bmad-code-org/BMAD-METHOD`. The skill reads files directly from disk.
|
|
6
|
+
2. **Context7 fetch**. Use `mcp__plugin_context7_context7__query-docs` with library `bmad-code-org/bmad-method` to fetch the relevant agent or template, narrowed by topic.
|
|
7
|
+
|
|
8
|
+
If neither is available, skip BMAD entirely and report it.
|
|
9
|
+
|
|
10
|
+
All blocks produced from this file MUST satisfy the intent-only checklist in `distillation-blocks.md`. If a candidate sentence would only make sense by referencing this repo's code, drop it.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Why BMAD maps cleanly into conductor
|
|
15
|
+
|
|
16
|
+
BMAD organizes work as a sequence of agent personas (analyst → PM → architect → SM → dev → QA) plus per-stage templates. That is methodology, not facts. It maps almost 1-to-1 onto conductor's `spec → plan → implement → review` arc.
|
|
17
|
+
|
|
18
|
+
Conductor's invariant — *intent layer is document-driven and does not compete with code for the fact layer* — fits BMAD because BMAD's templates are structural (sections, headings, prompts) rather than code-derived.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## bmad/agent-analyst
|
|
23
|
+
|
|
24
|
+
- `source=bmad/agent-analyst`
|
|
25
|
+
- targets: `spec.md`
|
|
26
|
+
- extract:
|
|
27
|
+
- the analyst persona expectations: clarify problem, surface constraints, define users and success criteria before solutioning
|
|
28
|
+
- the discipline of "elicit, don't assume"
|
|
29
|
+
- drop:
|
|
30
|
+
- any specific BMAD CLI invocation strings
|
|
31
|
+
- any references to BMAD's own file paths
|
|
32
|
+
- output shape:
|
|
33
|
+
- "Analyst lens" prompt block: questions the spec must answer before being approved
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## bmad/agent-pm + bmad/template-prd
|
|
38
|
+
|
|
39
|
+
- `source=bmad/agent-pm`
|
|
40
|
+
- targets: `spec.md`
|
|
41
|
+
- extract from the PRD template:
|
|
42
|
+
- section skeleton: Problem, Users, Goals, Non-Goals, Success Metrics, Constraints, Risks, Open Questions
|
|
43
|
+
- the rule that every section header should have content or be explicitly marked "n/a"
|
|
44
|
+
- drop:
|
|
45
|
+
- sample text from the BMAD template that names other projects
|
|
46
|
+
- output shape:
|
|
47
|
+
- "PRD section skeleton" block — a header list, not pre-filled content
|
|
48
|
+
|
|
49
|
+
The user fills the headers with project facts. Those facts live *outside* the distilled block. The block contains only the skeleton.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## bmad/agent-architect + bmad/template-architecture
|
|
54
|
+
|
|
55
|
+
- `source=bmad/agent-architect`
|
|
56
|
+
- targets: `spec.md`
|
|
57
|
+
- extract:
|
|
58
|
+
- architectural-thinking prompts: boundaries, data flow, failure modes, scaling shape
|
|
59
|
+
- NFR prompts: performance, reliability, security, observability, cost
|
|
60
|
+
- "decide and record" — every architectural decision gets a one-paragraph note (problem, options considered, decision, consequences)
|
|
61
|
+
- output shape:
|
|
62
|
+
- "Architecture lens" prompts list
|
|
63
|
+
- "ADR-lite shape" block
|
|
64
|
+
|
|
65
|
+
Do not pre-fill ADRs with this codebase's actual decisions. The block is the prompt; the answers are human-authored outside the markers.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## bmad/agent-sm + bmad/template-story
|
|
70
|
+
|
|
71
|
+
- `source=bmad/agent-sm`
|
|
72
|
+
- targets: `spec.md`, `plan.md`
|
|
73
|
+
- extract for `spec.md`:
|
|
74
|
+
- story-format expectations: "As a … I want … so that …"
|
|
75
|
+
- acceptance-criteria style: testable, behavior-shaped, no implementation detail
|
|
76
|
+
- extract for `plan.md`:
|
|
77
|
+
- story-shaped task units: each plan task is the size of one story, with acceptance criteria attached
|
|
78
|
+
- one story in flight at a time per executor
|
|
79
|
+
- output shape:
|
|
80
|
+
- `spec.md`: "Story shape" block
|
|
81
|
+
- `plan.md`: "Story-sized tasks" reminder, complementing the existing conductor `<Plan_Format>`
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## bmad/agent-dev
|
|
86
|
+
|
|
87
|
+
- `source=bmad/agent-dev`
|
|
88
|
+
- targets: `spec.md`, `plan.md`
|
|
89
|
+
- extract:
|
|
90
|
+
- dev-agent execution principles: take one story at a time, verify per change, do not silently expand scope
|
|
91
|
+
- "evidence per change" — every implementation step records what was run and what was observed
|
|
92
|
+
- output shape:
|
|
93
|
+
- `spec.md`: "Implementation discipline" reminder
|
|
94
|
+
- `plan.md`: "Per-task evidence" reminder (overlaps verification-before-completion; that is fine — both come from the same principle)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## bmad/agent-qa
|
|
99
|
+
|
|
100
|
+
- `source=bmad/agent-qa`
|
|
101
|
+
- targets: `review.md`
|
|
102
|
+
- extract:
|
|
103
|
+
- NFR gate: explicit pass/fail per non-functional requirement
|
|
104
|
+
- risk profile: what could go wrong post-merge, with mitigations
|
|
105
|
+
- traceability: each acceptance criterion ties to a check that was actually run
|
|
106
|
+
- output shape:
|
|
107
|
+
- "NFR gate" table skeleton
|
|
108
|
+
- "Risk profile" prompt list
|
|
109
|
+
- "Traceability" rule
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## What NOT to import from BMAD
|
|
114
|
+
|
|
115
|
+
- BMAD's specific orchestration commands (e.g., its own slash commands or shell entries).
|
|
116
|
+
- BMAD's example projects and sample artifacts.
|
|
117
|
+
- BMAD's runtime tool definitions — they belong to BMAD's harness, not to a conductor track.
|
|
118
|
+
- Any BMAD content that asserts product behavior of the local repository.
|
|
119
|
+
|
|
120
|
+
If the user wants BMAD's full agent runtime, they should run BMAD itself. This skill only borrows the document-shaped methodology.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## When BMAD docs are ambiguous
|
|
125
|
+
|
|
126
|
+
BMAD evolves. If a piece of upstream content can be read in two ways, prefer:
|
|
127
|
+
- the *prompt-shaped* interpretation over the *automation-shaped* interpretation,
|
|
128
|
+
- the *role discipline* interpretation over the *workflow plumbing* interpretation,
|
|
129
|
+
- the *generalizable* interpretation over the *BMAD-internal* interpretation.
|
|
130
|
+
|
|
131
|
+
When in doubt, drop it. A smaller, cleaner intent overlay beats a larger, leakier one.
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Distillation Blocks
|
|
2
|
+
|
|
3
|
+
Reference for `conductor-distill`. This file defines:
|
|
4
|
+
|
|
5
|
+
1. The exact marker format used to fence distilled methodology blocks.
|
|
6
|
+
2. The intent-only checklist run before writing each block.
|
|
7
|
+
3. The starter templates for each conductor target artifact when content is missing.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Marker format
|
|
12
|
+
|
|
13
|
+
Every distilled section uses paired HTML comments so Markdown renderers ignore them and humans can spot them:
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
<!-- conductor:distilled BEGIN source=<source-id> target=<artifact> layer=intent version=YYYY-MM-DD -->
|
|
17
|
+
> Source: <human-readable origin>. Intent-layer guidance distilled from upstream methodology. No claims about local code.
|
|
18
|
+
|
|
19
|
+
<distilled content>
|
|
20
|
+
|
|
21
|
+
<!-- conductor:distilled END source=<source-id> -->
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Field contract:
|
|
25
|
+
|
|
26
|
+
- `source=` is stable across runs. Examples: `superpowers/brainstorming`, `superpowers/test-driven-development`, `bmad/agent-architect`, `bmad/template-prd`.
|
|
27
|
+
- `target=` is one of `spec`, `plan`, `review`.
|
|
28
|
+
- `layer=intent` is fixed. Future fact-layer overlays (if ever introduced) would use a different layer tag and a different skill.
|
|
29
|
+
- `version=` is the date the block was last written/refreshed by this skill, in `YYYY-MM-DD` form.
|
|
30
|
+
|
|
31
|
+
Idempotency rule:
|
|
32
|
+
- One block per `(source, target)` pair per file.
|
|
33
|
+
- A `--refresh` run replaces the region between matching BEGIN/END markers with the same `source=` id.
|
|
34
|
+
- A non-refresh run leaves an existing block alone and reports it as `unchanged`.
|
|
35
|
+
|
|
36
|
+
Boundary rule:
|
|
37
|
+
- Anything outside the markers belongs to humans, conductor, or other tools. Never edit content outside markers.
|
|
38
|
+
- If a project author wants to comment on a distilled block, they should do it in the surrounding human section, not inside the markers.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 2. Intent-only checklist
|
|
43
|
+
|
|
44
|
+
Run this checklist on every candidate block before writing it. If any answer is "yes" for the disqualifying questions, rewrite as a principle or drop the candidate.
|
|
45
|
+
|
|
46
|
+
Disqualify if any of these are true:
|
|
47
|
+
|
|
48
|
+
- The block names a file path inside this repo.
|
|
49
|
+
- The block names a function, class, module, or symbol from this repo.
|
|
50
|
+
- The block names a branch, commit SHA, PR number, or other VCS-specific identifier from this repo.
|
|
51
|
+
- The block reports a count of tests, files, lines, or any number that came from running tools against this repo.
|
|
52
|
+
- The block asserts current behavior of the local product ("our login does X").
|
|
53
|
+
- The block embeds output from a command run against this repo.
|
|
54
|
+
- The block could only be true for this codebase. (If you replaced the repo with an empty one, would the block still read sensibly as guidance? If no, drop it.)
|
|
55
|
+
- The block duplicates code that lives in this repo.
|
|
56
|
+
|
|
57
|
+
- The block pastes long verbatim passages from an upstream SKILL.md or template. Distilled blocks must paraphrase upstream guidance into principle-shaped sentences; literal copy-paste is not distillation even if the text contains no local facts. Rewrite as principles or compress to checklist bullets.
|
|
58
|
+
|
|
59
|
+
Soft-flag (rewrite, do not necessarily drop):
|
|
60
|
+
|
|
61
|
+
- The block uses upstream-specific paths like `docs/superpowers/...`. Generalize to `docs/specs/` or omit the path.
|
|
62
|
+
- The block names upstream-specific tools by trade name where a general phrase would do. Prefer the principle.
|
|
63
|
+
- The block contains DOT graphs or other heavy ASCII art. Compress to prose unless the user asked to keep it.
|
|
64
|
+
|
|
65
|
+
Encourage:
|
|
66
|
+
|
|
67
|
+
- Principle-shaped sentences ("X must happen before Y").
|
|
68
|
+
- Checklists framed as questions ("Did you observe the failure before claiming a fix?").
|
|
69
|
+
- Role expectations ("The reviewer focuses on …").
|
|
70
|
+
- Section-skeletons (header lists, NFR prompts, ADR shape).
|
|
71
|
+
- Phase-gate rules ("Spec is approved before plan is written").
|
|
72
|
+
|
|
73
|
+
A good distilled block survives "would this still make sense for a totally different project?" with a yes.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. Target artifact templates
|
|
78
|
+
|
|
79
|
+
The skill writes blocks under a single `## Distilled Methodology` heading per file. If the heading is missing, create it before adding the first block.
|
|
80
|
+
|
|
81
|
+
### 3.1 `spec.md`
|
|
82
|
+
|
|
83
|
+
Append distilled blocks under:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## Distilled Methodology
|
|
87
|
+
|
|
88
|
+
<!-- conductor:distilled BEGIN ... -->
|
|
89
|
+
...
|
|
90
|
+
<!-- conductor:distilled END ... -->
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Order of blocks (when multiple sources are written):
|
|
94
|
+
1. `superpowers/brainstorming` (approval gate, design self-review)
|
|
95
|
+
2. `bmad/agent-analyst` (analyst lens)
|
|
96
|
+
3. `bmad/agent-pm` (PRD section skeleton)
|
|
97
|
+
4. `bmad/agent-architect` (architecture lens, ADR-lite shape)
|
|
98
|
+
5. `bmad/agent-sm` (story shape)
|
|
99
|
+
6. `bmad/agent-dev` (implementation discipline)
|
|
100
|
+
|
|
101
|
+
### 3.2 `plan.md`
|
|
102
|
+
|
|
103
|
+
Append distilled blocks under:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
## Distilled Methodology
|
|
107
|
+
|
|
108
|
+
<!-- conductor:distilled BEGIN ... -->
|
|
109
|
+
...
|
|
110
|
+
<!-- conductor:distilled END ... -->
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Order:
|
|
114
|
+
1. `superpowers/writing-plans` (header, file mapping, granularity)
|
|
115
|
+
2. `superpowers/test-driven-development` (per-task TDD)
|
|
116
|
+
3. `superpowers/verification-before-completion` (per-task verification)
|
|
117
|
+
4. `superpowers/systematic-debugging` (failure-recovery protocol)
|
|
118
|
+
5. `bmad/agent-sm` (story-sized task reminder)
|
|
119
|
+
6. `bmad/agent-dev` (per-task evidence)
|
|
120
|
+
|
|
121
|
+
The conductor `<Plan_Format>` defines the *phase* skeleton. Distilled blocks add discipline that applies *inside* each task. Do not rewrite the phase skeleton from the distilled side.
|
|
122
|
+
|
|
123
|
+
### 3.3 `review.md`
|
|
124
|
+
|
|
125
|
+
Creation policy: conductor itself initializes `review.md` at the review phase. To avoid stomping on conductor's structure:
|
|
126
|
+
- If `review.md` **already exists**: append a `## Distilled Methodology` heading at the bottom (if not present) and add blocks under it. Never touch content above the heading.
|
|
127
|
+
- If `review.md` **does not exist and the track phase is pre-review**: create it from the minimal template below, then add blocks.
|
|
128
|
+
- If `review.md` **does not exist but track phase is already at review or later**: stop, report the missing file, and ask the user whether to create it rather than silently creating a stub that could conflict with conductor's own initialization.
|
|
129
|
+
|
|
130
|
+
Minimal template (used only when creating from scratch):
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
# Review
|
|
134
|
+
|
|
135
|
+
> Verdict and evidence for this conductor track. Distilled methodology lives below; project-specific review notes live above the methodology heading.
|
|
136
|
+
|
|
137
|
+
## Verdict
|
|
138
|
+
|
|
139
|
+
_Pending._
|
|
140
|
+
|
|
141
|
+
## Evidence
|
|
142
|
+
|
|
143
|
+
_None yet._
|
|
144
|
+
|
|
145
|
+
## Distilled Methodology
|
|
146
|
+
|
|
147
|
+
<!-- distilled blocks go here -->
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Order of blocks:
|
|
151
|
+
1. `superpowers/test-driven-development` (TDD checks)
|
|
152
|
+
2. `superpowers/verification-before-completion` (evidence-before-claims)
|
|
153
|
+
3. `superpowers/requesting-code-review` (request shape)
|
|
154
|
+
4. `superpowers/receiving-code-review` (triage feedback)
|
|
155
|
+
5. `superpowers/systematic-debugging` (bisection trail, when relevant)
|
|
156
|
+
6. `superpowers/finishing-a-development-branch` (branch finish gate)
|
|
157
|
+
7. `bmad/agent-qa` (NFR gate, risk profile, traceability)
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 4. Block content style
|
|
162
|
+
|
|
163
|
+
- Lead with one sentence stating what the block governs.
|
|
164
|
+
- Use short bullets or short numbered lists. Avoid long paragraphs.
|
|
165
|
+
- Prefer imperative voice ("Reproduce before forming a hypothesis.").
|
|
166
|
+
- Keep each block under ~30 lines. If a source needs more, split by sub-topic only if both halves still pass the intent-only checklist; otherwise pick the higher-leverage half.
|
|
167
|
+
- Always end the block with the closing marker. Always.
|
|
168
|
+
|
|
169
|
+
A reader scanning the file should be able to tell, from the markers and the boilerplate `> Source:` line alone, which sentences are methodology overlay and which are project-specific.
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 5. Failure modes to refuse
|
|
174
|
+
|
|
175
|
+
The skill must refuse to write a block when:
|
|
176
|
+
|
|
177
|
+
- The same `source=` id already exists in the target file with a different shape and `--refresh` is not set.
|
|
178
|
+
- A candidate block, after passing the intent-only checklist, would be empty.
|
|
179
|
+
- The user explicitly asked for content that is fact-layer in nature (e.g., "summarize this repo's architecture into spec.md"). The skill is the wrong tool for that; recommend a code-reading agent instead.
|
|
180
|
+
|
|
181
|
+
In all refusal cases, report the reason in the per-file summary and continue with the remaining writes.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Superpowers → Conductor Mapping
|
|
2
|
+
|
|
3
|
+
Reference for `conductor-distill`. For each upstream superpowers skill listed here, this file tells the runtime:
|
|
4
|
+
|
|
5
|
+
- which conductor artifact(s) it maps to
|
|
6
|
+
- what to extract (intent-layer only)
|
|
7
|
+
- what to drop
|
|
8
|
+
- the canonical `source=` id used in distilled markers
|
|
9
|
+
|
|
10
|
+
All blocks produced from this file MUST satisfy the intent-only checklist in `distillation-blocks.md`. If a candidate sentence would only make sense by referencing this repo's code, drop it.
|
|
11
|
+
|
|
12
|
+
Source lookup order at runtime:
|
|
13
|
+
1. `bundled/upstream/superpowers/skills/<skill>/SKILL.md`
|
|
14
|
+
2. `.upstream/superpowers/skills/<skill>/SKILL.md`
|
|
15
|
+
|
|
16
|
+
If neither path exists, skip the source and report it.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## brainstorming
|
|
21
|
+
|
|
22
|
+
- `source=superpowers/brainstorming`
|
|
23
|
+
- targets: `spec.md`
|
|
24
|
+
- extract:
|
|
25
|
+
- the hard-gate rule: do not write code, scaffold, or invoke implementation skills before a design exists and the user approves it
|
|
26
|
+
- the "even simple projects need a design" anti-pattern, paraphrased as a principle
|
|
27
|
+
- the design-section approval pattern (present in sections, get approval per section)
|
|
28
|
+
- the spec self-review items: placeholders, contradictions, ambiguity, scope
|
|
29
|
+
- drop:
|
|
30
|
+
- the file path `docs/superpowers/specs/...` (project-specific to upstream usage)
|
|
31
|
+
- any DOT graph (too verbose for the distilled block)
|
|
32
|
+
- mentions of specific tools by name unless they are universal
|
|
33
|
+
- output shape:
|
|
34
|
+
- short "Approval gates" paragraph
|
|
35
|
+
- "Design self-review checklist" bullet list
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## writing-plans
|
|
40
|
+
|
|
41
|
+
- `source=superpowers/writing-plans`
|
|
42
|
+
- targets: `plan.md`
|
|
43
|
+
- extract:
|
|
44
|
+
- the plan-document header convention: Goal / Architecture / Tech Stack
|
|
45
|
+
- the bite-sized task granularity rule (one action per step, ~2-5 minutes)
|
|
46
|
+
- the "files map first, tasks second" principle
|
|
47
|
+
- the per-task structure: Files (Create/Modify/Test), then Steps with checkboxes
|
|
48
|
+
- drop:
|
|
49
|
+
- the literal save path `docs/superpowers/plans/...`
|
|
50
|
+
- language about "agentic workers" or specific sub-skill names from upstream — generalize to "downstream executor"
|
|
51
|
+
- output shape:
|
|
52
|
+
- "Plan header convention" block
|
|
53
|
+
- "File mapping before tasks" principle
|
|
54
|
+
- "Bite-sized step granularity" reminder
|
|
55
|
+
|
|
56
|
+
The conductor `<Plan_Format>` already defines phased tasks with `[ ] / [~] / [x]` checkboxes. The distilled block adds the *granularity and header* discipline on top, it does not override the conductor phase structure.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## test-driven-development
|
|
61
|
+
|
|
62
|
+
- `source=superpowers/test-driven-development`
|
|
63
|
+
- targets: `plan.md`, `review.md`
|
|
64
|
+
- extract for `plan.md`:
|
|
65
|
+
- red-green-refactor cycle as the default per-task implementation order
|
|
66
|
+
- the "watch it fail correctly" verification step
|
|
67
|
+
- the rule that production code without a failing test first is not allowed
|
|
68
|
+
- extract for `review.md`:
|
|
69
|
+
- reviewer expectation: every behavior change should have a test that previously failed
|
|
70
|
+
- reviewer expectation: refactor commits should keep tests green
|
|
71
|
+
- drop:
|
|
72
|
+
- the DOT cycle diagram (verbose)
|
|
73
|
+
- the "delete the code" rule worded as punishment — keep the rule but soften the framing
|
|
74
|
+
- output shape:
|
|
75
|
+
- `plan.md`: "Per-task TDD order" bullet list
|
|
76
|
+
- `review.md`: "TDD checks" bullet list
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## verification-before-completion
|
|
81
|
+
|
|
82
|
+
- `source=superpowers/verification-before-completion`
|
|
83
|
+
- targets: `plan.md`, `review.md`
|
|
84
|
+
- extract:
|
|
85
|
+
- "evidence before assertions" — never claim done without a verifying command and its observed output
|
|
86
|
+
- the rule that running tests in your head does not count
|
|
87
|
+
- the rule that linters / type-checkers / test runners are the source of truth, not memory
|
|
88
|
+
- output shape:
|
|
89
|
+
- `plan.md`: "Per-task verification command" reminder
|
|
90
|
+
- `review.md`: "Evidence-before-claims" checklist (ran what / observed what / where it lives)
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## systematic-debugging
|
|
95
|
+
|
|
96
|
+
- `source=superpowers/systematic-debugging`
|
|
97
|
+
- targets: `plan.md`, `review.md`
|
|
98
|
+
- extract:
|
|
99
|
+
- reproduce first, then form a hypothesis, then bisect
|
|
100
|
+
- one variable per experiment
|
|
101
|
+
- the rule that proposed fixes need a confirmed root cause, not a guess
|
|
102
|
+
- output shape:
|
|
103
|
+
- `plan.md`: "If a phase fails verification" debug protocol
|
|
104
|
+
- `review.md`: "Bug bisection trail" checklist for review of bugfix tracks
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## requesting-code-review
|
|
109
|
+
|
|
110
|
+
- `source=superpowers/requesting-code-review`
|
|
111
|
+
- targets: `review.md`
|
|
112
|
+
- extract:
|
|
113
|
+
- the shape of a good review request: scope, what to focus on, what *not* to focus on, known caveats
|
|
114
|
+
- the expectation that the requester runs verification before asking for review
|
|
115
|
+
- output shape:
|
|
116
|
+
- "Review request shape" section that the track owner fills in before asking for review
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## receiving-code-review
|
|
121
|
+
|
|
122
|
+
- `source=superpowers/receiving-code-review`
|
|
123
|
+
- targets: `review.md`
|
|
124
|
+
- extract:
|
|
125
|
+
- triage feedback before implementing — not every comment is a directive
|
|
126
|
+
- distinguish "questionable" from "wrong" — verify with evidence before pushing back
|
|
127
|
+
- the warning against performative agreement
|
|
128
|
+
- output shape:
|
|
129
|
+
- "Receiving review feedback" checklist
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## finishing-a-development-branch
|
|
134
|
+
|
|
135
|
+
- `source=superpowers/finishing-a-development-branch`
|
|
136
|
+
- targets: `review.md`
|
|
137
|
+
- extract:
|
|
138
|
+
- the structured options at branch finish: merge / PR / cleanup
|
|
139
|
+
- the precondition: implementation complete and tests passing before deciding
|
|
140
|
+
- output shape:
|
|
141
|
+
- "Branch finish gate" decision block
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## subagent-driven-development / executing-plans / dispatching-parallel-agents / using-git-worktrees
|
|
146
|
+
|
|
147
|
+
These are upstream *execution* skills. They are mostly fact-layer in nature (which agent runs which task) and overlap with conductor's own agent routing. Distill only when the user asks for them by name. Default behavior: skip.
|
|
148
|
+
|
|
149
|
+
If asked, write a single intent-layer block summarizing:
|
|
150
|
+
- "Plans drive execution; agents do not free-run"
|
|
151
|
+
- "Independent tasks fan out; dependent tasks stay sequential"
|
|
152
|
+
- "Use isolated worktrees when changes are large or risky"
|
|
153
|
+
|
|
154
|
+
Do not list specific tools, commands, or worktree paths.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## using-superpowers / writing-skills / receiving-code-review (meta)
|
|
159
|
+
|
|
160
|
+
`using-superpowers` and `writing-skills` are about authoring skills, not about doing project work. Skip by default.
|