prd-to-steel-thread
Skill2 starsChanged 4 months agoMITView on GitHub
Create or revise a product PRD's steel-thread roadmap: first prove the thinnest end-to-end path, then sequence demo-ready vertical slices with just-in-time infrastructure and capacity-aware parallelism. Saves a resumable steel-thread.md draft, approved for input to Spec Kit /speckit.plan or an equivalent SDD technical planning step. Use when identifying a steel thread, vertically slicing a PRD, revising a roadmap, reorganising PRD tasks, planning parallel Dev+agent workstreams, or preparing product requirements for technical design.
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- codebase-discoverySkill
- knowledge-curationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
23 rules. About 0 are common, 20 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈20
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Use the input to locate the source PRD and any existing task list.
- Distinctive: line 35
Read references/vertical-slice-method.md before slicing.
- Distinctive: line 36
Use templates/steel-thread.md for the output.
- Distinctive: line 43
Ask clarification questions one at a time.
- Distinctive: line 47
Every slice ends with a functional result that an engineer can review and a product stakeholder can demo.
- Distinctive: line 49
Add infrastructure only in the first slice that needs it.
- Very specific: line 54
Keep the roadmap flat as Slice 0..N.
- Distinctive: line 61
Use the output template's Planning progress section as portable session state.
- Very specific: line 67
Keep Status as Draft - incomplete.
- Distinctive: line 85
before any write: If it does, read it in full and ask which action the human wants:
- Distinctive: line 91
Do not change the existing file until the action is confirmed.
- Distinctive: line 105
Read the PRD and existing task file in full.
- Distinctive: line 111
every task description that must be preserved verbatim.
- Distinctive: line 115
Ask the human to reconfirm the saved decisions before relying on them, even when inputs appear unchanged.
- Distinctive: line 118
If the prior input version is unavailable, ask what changed rather than claiming it is unchanged.
- Very specific: line 131
Ask which SDD workflow will consume steel-thread.md: Spec Kit, another named workflow, or no framework.
- Distinctive: line 144
Ask, one question at a time:
- Distinctive: line 151
Use linked technical material when available, but have the human resolve ambiguity.
- Distinctive: line 163
Do not ask for or emit personal names unless the human volunteers them and explicitly wants them included.
- Distinctive: line 203
After Slice 0, build a dependency graph and identify slices that can proceed concurrently.
- Distinctive: line 204
Use the confirmed pair capacity as an upper bound.
- Distinctive: line 216
Keep dependencies, pair allocations, and group membership in each slice section rather than repeating them in the parallel execution plan.
- Distinctive: line 220
Do not create artificial sub-slices merely to occupy every pair.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
User Input
$ARGUMENTSUse the input to locate the source PRD and any existing task list. If a path is missing or ambiguous, ask for it rather than guessing.
Purpose
Convert a product-focused PRD into steel-thread.md, a delivery input for technical planning
and design. The document starts with the smallest real end-to-end user outcome that proves the
architecture works, then sequences the remaining scope as lean, demo-ready vertical slices.
steel-thread.md sits between product specification and technical planning:
PRD -> steel-thread.md -> SDD plan/design -> implementation tasksFor Spec Kit, it is an input to /speckit.plan after the feature specification exists. For
another SDD tool, hand it to the equivalent planning or design step. Do not turn the PRD into a
technical design inside this skill.
Read references/vertical-slice-method.md before slicing. Use templates/steel-thread.md for the output. If the source PRD does not follow a known structure, use templates/prd-input-template.md as an interpretation guide, not as permission to fill gaps.
Non-negotiable rules
- The PRD is the product source of truth. Do not invent requirements or silently resolve gaps.
- Ask clarification questions one at a time. Do not assume architecture, infrastructure, team capacity, delivery assignments, framework commands, or task boundaries.
- Preserve original requirement and task descriptions verbatim when mapping them to slices.
- Slice 0 is the steel thread: solo, first, deployable, and end-to-end.
- Every slice ends with a functional result that an engineer can review and a product stakeholder can demo.
- Add infrastructure only in the first slice that needs it. Never create an infra-first phase.
- Decompose only when doing so accelerates feedback, reduces risk, or makes a large story deliverable within a few days.
- Parallelise only independent work. Capacity is not a reason to force unsafe concurrency.
- Record capacity as the number of Dev+agent pairs, not personal names.
- Keep the roadmap flat as
Slice 0..N; express concurrency through dependencies, parallel-safe annotations, pair counts, and parallel groups. - Save progress in the roadmap itself, not only in conversation. An incomplete draft is not approved input to technical planning.
Saving progress
Use the output template's Planning progress section as portable session state. After each
human answer or approval, save the confirmed value in its relevant section and record what
was confirmed, when, any unresolved questions, and the next step before continuing.
Save proposed slices and parallel groups as drafts as they are developed; a proposal is not
an approval. Use Pending for unknown values rather than filling them from assumptions.
Keep Status as Draft - incomplete; not ready for technical planning until step 8 is
approved and the completion checks pass. Record approval of Slice 0 separately from approval
of the whole roadmap. If a confirmed input or slice changes, mark affected decisions and
dependent approvals as needing confirmation and clear final approval. Preserve unaffected
content and human edits; do not regenerate the document wholesale unless replacement was
explicitly chosen.
Re-read the selected output before each save. If it appeared or changed unexpectedly, preserve it and ask how to reconcile conflicting edits before writing. If a save fails, report it and stop rather than treating conversation-only progress as durable. After an interruption, compaction, or new session, follow steps 0 and 1 again; never infer approvals from populated template fields or reconstruct missing decisions from memory.
Procedure
0. Select the artifact and protect existing work
The default output is steel-thread.md next to the source PRD. Check whether it exists
before any write. If it does, read it in full and ask which action the human wants:
- resume an unfinished draft or revise the existing roadmap in place;
- save a separate version at a human-confirmed, unused path, leaving the original untouched;
- replace the existing file and discard its contents, only with explicit permission.
Do not change the existing file until the action is confirmed. If no action is authorised, stop without writing. For a separate version, clarify whether to carry forward the existing content or start fresh; carried-forward decisions still require reconfirmation. Check the chosen path for collisions as well, and use that path consistently in all hand-off references.
For a new file, explain that it will be saved incrementally and confirm its path before creating it. Once authorised, initialise or update the selected document using templates/steel-thread.md, retaining existing content when resuming or revising. Mark it as an incomplete draft, with any prior confirmations awaiting reconfirmation and no current final approval. Do not carry over a ready-to-paste invocation as usable while the document is a draft.
1. Read and assess the inputs
Read the PRD and existing task file in full. Extract:
- desired outcome, users, scope, and explicit exclusions;
- user stories, functional requirements, acceptance criteria, and business rules;
- data, UX, non-functional, reporting, audit, and operational requirements;
- constraints, dependencies, risks, unresolved decisions, and future work;
- every task description that must be preserved verbatim.
On every resume or revision, compare current inputs with the saved context before updating that context, and summarise the saved decisions, approvals, progress, and relevant changes. Ask the human to reconfirm the saved decisions before relying on them, even when inputs appear unchanged. Clarify missing, changed, or conflicting decisions one at a time; reopen affected gates and downstream slice or parallelism decisions rather than silently carrying them forward. If the prior input version is unavailable, ask what changed rather than claiming it is unchanged. Record the source paths and available revision identifiers, or a dated summary of the inputs reviewed, in Planning progress, retaining enough prior context to explain revisions.
Resume gate: saved decisions are explicitly reconfirmed or corrected and persisted before dependent work resumes. Continue from the first unresolved step; do not repeat unaffected work. An already-approved roadmap still needs fresh final approval after revision.
Summarise the intended outcome and list gaps that would materially affect slicing. Ask about each blocking gap one at a time. Do not start slicing while the source meaning is uncertain.
2. Confirm the SDD hand-off
Ask which SDD workflow will consume steel-thread.md: Spec Kit, another named workflow, or no
framework. If a framework is selected, confirm the command or step that performs technical
planning/design. Consult official documentation when tools permit and the mapping is unknown;
otherwise ask the human. Never invent framework commands or artifact contracts.
Record only the confirmed hand-off. Spec Kit commonly uses /speckit.plan, but use it only
when Spec Kit is selected and that mapping is valid for the project.
Gate: the target planning/design step is confirmed, or the human chooses a standalone document.
3. Confirm architecture and just-in-time infrastructure
Ask, one question at a time:
- Which layers define an end-to-end slice for this feature?
- Which existing stack, services, repositories, and deployment path must be reused?
- What real data path can prove those layers work together?
- Where and how is infrastructure provisioned, and what already exists?
Use linked technical material when available, but have the human resolve ambiguity. Do not design the architecture here.
Gate: the vertical architecture path and existing delivery constraints are confirmed.
4. Confirm capacity
Ask:
How many Dev+agent pairs will work on this feature concurrently?
One human working with one coding agent counts as one pair. Record a positive whole number. Do not ask for or emit personal names unless the human volunteers them and explicitly wants them included.
Capacity informs the proposed schedule, not the number of slices. Slice 0 remains one pair even when more pairs are available.
5. Propose and confirm Slice 0: the steel thread
Identify the thinnest real user-story fragment that:
- traverses every required layer;
- uses real integration and persistence where those are part of the architecture;
- can be built, deployed, tested, reviewed, and demonstrated;
- establishes only the infrastructure and contracts it immediately needs.
State the PRD items it thins down, what it proves, its demo-ready gate, its just-in-time infrastructure, and why it is the smallest credible slice.
Gate: get explicit human confirmation of Slice 0 before decomposing the remaining scope.
6. Evaluate stories and form later slices
Evaluate each story against a few-days, testable-deliverable bar. Keep an atomic story whole unless decomposition produces earlier learning, lowers risk, or creates a usable demo sooner.
For each proposed slice define:
- goal and user-visible outcome;
- source PRD requirements and original tasks, verbatim;
- dependencies and contracts it relies on;
- infrastructure first needed in this slice;
- demo-ready gate;
- recommended PR boundary;
- number of Dev+agent pairs required.
Push work later when it is not required for the steel thread or current user outcome. Keep out-of-scope and future items out of the roadmap.
7. Plan safe parallelism
After Slice 0, build a dependency graph and identify slices that can proceed concurrently. Use the confirmed pair capacity as an upper bound.
A parallel group is valid only when its slices have stable prerequisites and can be worked on without conflicting ownership of the same unstable contracts, migrations, or files. Prefer a linear sequence when concurrency would increase coordination or merge risk.
For every parallel group record:
- slices in the group;
- why the work is parallel-safe;
- the synchronization point before dependent work begins.
Keep dependencies, pair allocations, and group membership in each slice section rather than repeating them in the parallel execution plan. The document header records total available capacity.
Do not create artificial sub-slices merely to occupy every pair.
8. Confirm the roadmap and finalise the artifact
Present the proposed Slice 0, later slice boundaries, deferred items, PR mapping, dependency sequence, and parallel groups. For a revision, also summarise changes from the previous roadmap and their impact on any existing technical plan or tasks; do not update those downstream artifacts as part of this skill.
Gate: obtain explicit human confirmation of the complete current roadmap before marking it approved. Saving drafts earlier does not satisfy this gate.
Prepare the final hand-off and apply the completion checks. Once they pass and final approval
is recorded in Planning progress, set
Status to Approved - ready for technical planning, and save to the selected output path.
Include a ready-to-paste hand-off for the confirmed SDD planning/design step, pointing to that
path. Follow the template's SDD planning/design hand-off section; it is the canonical
definition of the information that the hand-off must preserve. If approval is withheld, save
the outstanding questions and next step, and leave the document as an incomplete draft.
Completion checks
- The output path and any action on an existing file were explicitly authorised; unrelated content and human edits were preserved unless replacement was chosen.
- Planning progress durably records confirmed decisions, source context, Slice 0 approval, and the next step; saved decisions were reconfirmed on any resume.
- The human explicitly approved the current roadmap, with no outstanding blocking gaps or invalidated approvals. Only then may the document be marked ready for planning.
- The source PRD and task paths in
steel-thread.mdidentify the inputs that were read in full. - Unresolved source gaps appear in Open questions and PRD gaps with their planning impact; the roadmap contains no silent assumptions.
- Confirmed planning context records the agreed architecture path, infrastructure context, SDD hand-off, and Dev+agent pair count.
- Slice 0 traverses the confirmed end-to-end path, has one pair, and names observable behaviour that proves the path works.
- Every in-scope PRD requirement and task appears in exactly one slice, or in Deferred / pushed down or Excluded from this roadmap with a reason.
- Every slice's demo-ready gate names observable behaviour and how to exercise it, rather than only confirming that a component exists.
- No slice provisions infrastructure that it does not exercise in its own demo-ready gate.
- Each parallel group fits within total pair capacity and its safety rationale addresses dependencies, contract stability, and conflicting ownership.
- The SDD hand-off is fully populated for the confirmed workflow and points technical planning to the completed roadmap.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

