Conductor Distill
This means:
- Distilled blocks contain methodology (principles, gates, checklists, prompts, role expectations).
- 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.
- If a fact about the code belongs anywhere, it goes in the human-authored sections of
spec.md/plan.md, not inside distilled blocks. - Distilled blocks are clearly fenced with markers so reviewers can tell methodology from project-specific content at a glance.
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.
<!-- conductor:distilled BEGIN source=<source-id> target=<artifact> layer=intent version=YYYY-MM-DD -->
> Source: <human-readable origin>. This block is intent-layer guidance distilled from upstream methodology and contains no claims about the local code.
<distilled content here>
<!-- conductor:distilled END source=<source-id> -->
Rules:
<source-id>is stable: e.g.superpowers/brainstorming,superpowers/test-driven-development,bmad/agent-architect,bmad/template-prd.- One block per source per artifact. Re-running with
--refreshreplaces the block matched bysource=andtarget=. - Never nest blocks. Never split one source across multiple blocks in the same artifact.
- Outside the markers is human / conductor / code territory and must be preserved verbatim on re-runs.
See references/distillation-blocks.md for the full template per target artifact and the intent-only checklist used before writing each block.
Targets (read-write, one per active track):
.omc/conductor/tracks/<slug>/spec.md.omc/conductor/tracks/<slug>/plan.md.omc/conductor/tracks/<slug>/review.md(create if missing — start from a methodology-only template)
Track resolution:
- If
--track <slug>is provided, use it. - Else read
.omc/conductor/conductor-state.json:activeTrack. - If no active track, stop and tell the user to run conductor setup first.
Decide sources. From
--sourceand conversation context, picksuperpowers,bmad, orboth. Ifbmadis 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.Decide targets. From
--target, pick the artifacts to update. Defaultallmeansspec.md,plan.md, andreview.md.Load mappings. Read
references/superpowers-mapping.mdand/orreferences/bmad-mapping.mdto 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 reportunsupported-source: <name>in the per-file summary rather than silently omitting it.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.Plan writes. For each
(source, target)pair, build the distilled block. Compose the full block text including markers and the boilerplate> Source:line.Dry run or apply.
- 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 viaquestion. - Otherwise apply writes.
- If
Apply writes idempotently.
- For each target file:
- If the file is missing and the target is
review.md, create it from the review template inreferences/distillation-blocks.md. - For each block to write, search for an existing
<!-- conductor:distilled BEGIN source=<source-id> target=<artifact> ... -->...<!-- conductor:distilled END source=<source-id> -->region.- If absent: append the block at the bottom under a
## Distilled Methodologyheading (create the heading if missing). - If present and
--refreshis set: replace the region in place. - If present and
--refreshis not set: skip it and reportunchanged.
- If absent: append the block at the bottom under a
- If the file is missing and the target is
- Never modify content outside marker blocks.
- Never delete user content.
- For each target file:
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.
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.
| Source | spec.md | plan.md | review.md |
|---|---|---|---|
| superpowers/brainstorming | design-gate principles, "no implementation before approval" | — | — |
| superpowers/writing-plans | — | plan header, file-structure section, bite-sized step granularity, header reminder | — |
| superpowers/test-driven-development | — | red-green-refactor stages and "watch it fail" rule on each task | TDD checks |
| superpowers/verification-before-completion | — | per-task verification command convention | evidence-before-claims checklist |
| superpowers/systematic-debugging | — | debugging stage protocol when a phase fails | bug-bisection checklist |
| superpowers/requesting-code-review | — | — | review-request shape |
| superpowers/receiving-code-review | — | — | how to triage feedback before implementing |
| superpowers/finishing-a-development-branch | — | — | branch-finish gate (merge / PR / cleanup) |
| bmad/agent-analyst | analyst persona expectations for the spec | — | — |
| bmad/agent-pm + bmad/template-prd | PRD section skeleton (problem, users, success metrics, non-goals) | — | — |
| bmad/agent-architect + bmad/template-architecture | architectural-decision section skeleton, NFR prompts | — | — |
| bmad/agent-sm + bmad/template-story | story-driven task decomposition principles | story-shaped task units | — |
| bmad/agent-dev | dev-agent execution principles (one story at a time, evidence per change) | "per-task evidence" reminder | — |
| bmad/agent-qa | — | — | NFR gate, risk profile, traceability checks |
Each row maps to an intent-only block. None of them inject local file paths, code symbols, or test results.
- The block must read as methodology even if the repo were empty.
- The block must not name local files, symbols, branches, commits, or test counts.
- The block must not assert the project's current behavior.
- The block must not duplicate code that already lives in the repo.
- If a candidate sentence fails any of the above, rewrite it as a principle or drop it.
These guardrails enforce the user constraint: conductor's intent layer is document-driven and does not compete with code for the fact layer.