diff --git a/skills/subagent-driven-development/spec-derived-e2e.md b/skills/subagent-driven-development/spec-derived-e2e.md index 10359cfd..b7146070 100644 --- a/skills/subagent-driven-development/spec-derived-e2e.md +++ b/skills/subagent-driven-development/spec-derived-e2e.md @@ -24,11 +24,45 @@ plan touches. Use superpowers:agentic-end-to-end-testing: -1. Dispatch a card-author subagent per its authoring-cards-from-a-spec.md. -2. Run its scripts/check-cards-against-spec yourself on the author's output - — self-attestation is not the gate. -3. Dispatch a runner subagent per its runner-prompt.md against the built - branch. +1. Require a clean working tree (`git status --porcelain` is empty) before + dispatching the card author. Record `E2E_BASE=$(git rev-parse HEAD)` before + any card or bootstrap-spec work. +2. Dispatch a card-author subagent per its authoring-cards-from-a-spec.md. Ask + the author to report every authored card path and, on the bootstrap path, + the governing spec path it changed. +3. Run `scripts/check-cards-against-spec` yourself on the author's output — + self-attestation is not the gate. Preserve the complete checker output and + compare the resulting paths with the author's report. +4. If the author changed the governing spec, present the spec-only diff to + your human partner and wait for explicit approval before continuing. This + approval gate is conditional: a pre-locked, already-approved scenario table + does not require a new approval. +5. Dispatch a runner subagent per its runner-prompt.md against the built branch + and the checked cards while those artifacts remain uncommitted. Retain the + runner report, ledger, and evidence; a successful card is not yet a shipped + artifact. +6. After every card passes, stage only the card paths reported by the author + plus the approved bootstrap spec path, if any. Do not stage product code or + unrelated evidence. Commit the unchanged successful artifacts with: + + ```text + test(e2e): add spec-derived scenario cards + ``` + +7. Dispatch a focused artifact reviewer for that commit, using the governing + spec, author report, independent checker output, and runner evidence. The + reviewer checks the exact artifact paths, their unchanged spec assertions, + and the evidence for every passing card. +8. If the focused review requires an artifact change, dispatch one separate + artifact-fix subagent with the review findings. The original card author and + focused reviewer remain finders, not fixers. Rerun the checker and every + affected card, stage only the corrected artifact paths (and approved + bootstrap spec path, if applicable), commit them with the same message, and + repeat the focused artifact review over the new commit range. +9. Before invoking superpowers:finishing-a-development-branch, require empty + `git status --porcelain` output and verify every authored path is tracked in + `HEAD` with `git ls-files --error-unmatch -- "$path"`. Report `E2E_BASE`, + the artifact commit range, reviewer verdict, and exact durable paths. ## Failure handling