Add PRD to steel thread skill - #1
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Engagement example of skill being used on a real feature that was shipped.Running agent with skillRunning.agent.with.skill.movInternal agent asking human questions (guided by skill)Ravi.asking.human.questions.guided.by.skill.movInternal agent asking human questions for further clarification after creating steel thread docRavi.asking.human.questions.for.further.clarification.after.creating.steel.thread.doc.movSteel thread ready!The next step is to run Usually the PRD itself is fed into |
bsigney
left a comment
There was a problem hiding this comment.
Really like this. What makes it work for me: steel thread as Slice 0 and solo before anything fans
out, infrastructure only in the slice that exercises it, and "capacity is a ceiling, not a target" —
that last one is the opposite of how most plans get written. Flat Slice 0..N instead of lanes and
1a/1b keeps it readable too. Repo side's clean: validate passes, links stay inside the skill,
README row's there.
Just a few inconsistencies to sort out — mostly the same rules written in several places, and a
couple have already drifted apart from each other. Comments inline.
| ### 8. Confirm the roadmap and write the artifact | ||
|
|
||
| Present the proposed Slice 0, later slice boundaries, deferred items, PR mapping, dependency | ||
| sequence, and parallel groups. | ||
|
|
||
| **Gate:** obtain explicit human confirmation before writing the final artifact. | ||
|
|
||
| Then write `steel-thread.md` next to the source PRD using | ||
| [templates/steel-thread.md](templates/steel-thread.md). Include a ready-to-paste hand-off for | ||
| the confirmed SDD planning/design step. The hand-off must carry forward the slice sequence, | ||
| demo gates, dependencies, pair capacity, parallel groups, and just-in-time infrastructure | ||
| without introducing technical design decisions. | ||
|
|
There was a problem hiding this comment.
This list also lives at
references/vertical-slice-method.md100–106- and twice in
templates/steel-thread.md(127–132, 148–149)
they don't match. This copy drops verbatim wording and PRD traceability; the reference keeps them.
Step 8 is what the agent actually executes, so the hand-off it writes won't carry the verbatim
rule — then check 187 ticks to say it did.
Fix: make the template's hand-off section the only copy and have this step point at it.
|
|
||
| ## Sequence at a glance | ||
|
|
||
| | # | Slice | Proves / delivers | JIT infrastructure | Demo-ready gate | Depends on | Parallel group | Dev+agent pairs | Recommended PRs | |
There was a problem hiding this comment.
Dependencies, pair counts and parallel groups are each stored in 2–3 places:
- the glance table,
- the slice section,
- and the parallel plan.
"Slice 2 depends on 1" gets written as the table'sDepends oncolumn, as**Depends on:**(L75), and asStarts after:(L97).
So if I ask for a dependency change at the step 8 gate and the agent updates the slice section
but misses the other two, the doc ends up asserting two sequences at once, with nothing flagging it:
Table: Depends on 1
Slice section: Depends on 0
Parallel group: Starts after 1
L124 says this document is "the confirmed delivery sequence" — so whichever copy the planner
reads first wins. Read the table and Slice 2 gets scheduled behind Slice 1, which loses the
parallelism the whole analysis was for, and nobody notices.
Suggested Fix: let the slice sections own these fields and cut the table back to number / slice / delivers.
One copy, nothing to desync. Same reason I'd drop Parallel-safe with (L77) — it's Parallel group (L79) restated per-slice.
| demo gates, dependencies, pair capacity, parallel groups, and just-in-time infrastructure | ||
| without introducing technical design decisions. | ||
|
|
||
| ## Completion checks |
There was a problem hiding this comment.
This section restates the rules block rather than checking the output. verbatim is now asserted
six times across the skill — L45, L67, L134, L187, plus reference L88 and L103.
That matters because the checklist isn't a summary, it's a second set of instructions, and it's
the last thing the agent reads. Say we later allow long task descriptions to be summarised with a
link back to the PRD: I edit L45 and L134, and L187 still says
[ ] Original PRD requirement and task descriptions are preserved verbatim.
The agent hits that last, treats it as binding, and copies verbatim anyway. The change silently
doesn't land. Recency means the copy I forgot is the copy that wins.
Fix — Make the items verify the artifact rather than re-assert rules, so they can't contradict the rules block:
- "Infrastructure appears only when first needed" (rule) → "No slice provisions infrastructure it
doesn't exercise in its own demo gate" (checkable against the output) - "Every later slice is traceable, demo-ready…" (rule) → "Every slice's demo gate names observable
behaviour and how to exercise it, not that a component exists" - drop the ones that are pure restatement (L180, L187)
And the check I'd most want is missing: every in-scope PRD requirement appears in exactly one
slice, or in Deferred/Excluded with a reason. A requirement quietly disappearing between PRD and
roadmap is the worst failure here, and no rule or gate currently catches it.
| # PRD Input Template | ||
|
|
||
| This generic product-focused structure shows the inputs `prd-to-steel-thread` expects. A source | ||
| PRD does not need these exact headings, but equivalent information should be located or gaps | ||
| raised with the human. Do not infer missing content. | ||
|
|
There was a problem hiding this comment.
minor tweak: two H1s - this section can be copied over as part of real PRD. Comment it out like in L107-108
Why
Product PRDs describe what to build, but technical planning benefits from first identifying the thinnest end-to-end steel thread and then sequencing the remaining scope as demo-ready vertical slices. This skill creates that bridge without embedding organization-specific domain knowledge.
Parallelism must be considered while slices are formed, not added after technical tasks are generated. Capturing Dev+agent pair capacity, dependencies, safe parallel groups, and synchronization points in
steel-thread.mdgives Spec Kit/speckit.planor an equivalent SDD planning step the delivery constraints needed to produce an executable design without forcing unsafe concurrency.What changed
prd-to-steel-threadskillsteel-thread.mdwith a solo steel thread, demo-ready slices, JIT infrastructure, and capacity-aware parallelism