design: nothing in the 39-skill corpus produces a PRD #123
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found during the #99 ADR-0020 retrofit and the follow-up audit pass on
refactor/adr0020-skill-retrofit. A dangling route was fixed there; the underlying gap was left open on purpose, because closing it is a build-or-declare decision, not an edit.What was found
bin/write-docs/SKILL.mdrouted PRD requests toto-prd— twice:to-prddoes not exist anywhere in this repo and has not since the great refactoring — that milestone's own scope line says "delete stale bin skills (to-issues, to-prd)". Grepping the tree now, the name survives only indocs/research/,docs/notes/, and one kyberforge research example; noSKILL.mdanywhere.Commit
03abcffremoved the dangling name. Both lines now route togrill-me/grill-with-docs.Why that is a route repair, not a fix
Neither target emits a PRD.
grill-meis an interview loop: it interrogates a plan until shared understanding is reached. Its output is the conversation.grill-with-docsis the same loop with documentation side effects — it updatesCONTEXT.mdinline as terms are sharpened, and offers an ADR when a decision crystallises.So of the three things
write-docsdisclaims, two are genuinely covered — "decision doc" and "architecture proposal" aregrill-with-docs' ADR authoring, and that is a real artifact with a real format (grill-with-docs'sADR-FORMAT.md). "PRD" is not covered by anything.write-docsnow points a PRD request at a skill that will have a good conversation with the user and write an ADR.That is more honest than pointing at a skill that does not exist, and it is still wrong.
Origin, and the shape the answer was going to take
docs/research/ai-coding-factory/ai-coding-factory-implementation-guidance.md:112records the upstream pattern as worth adopting:|
/to-prdskill | Converts conversation into a structured PRD artifact | Adopt the forcing-function pattern: refuse to proceed until synthesis is complete |and line 236 maps it onto a
write-issue-specskill:| Pocock/skills |
to-prd/SKILL.md| Pattern only — forcing-function approach |.agents/skills/factory/write-issue-spec/SKILL.md|write-issue-specwas specified in some detail (ai-coding-factory-skills-index.md:38— EARS-format requirements, delta tags for brownfield, scale-adaptive depth, outputs a Gitea issue body for human review rather than posting it) and never built.docs/notes/factory-research-gaps-conflicts.md:64already flags the seven factory meta-skills, this among them, as "not in the current roadmap at all".The decision
Two acceptable outcomes, and doing nothing is not one of them because
write-docscurrently makes a routing promise the corpus cannot keep:write-issue-specper the research, not as a literalto-prd— this repo's unit of pre-work is a Gitea issue with an EARS spec (ADR-0007, and the implementation guidance's "issue spec precedes code" rule at line 85), not a standalone PRD document. Then repointwrite-docs.write-docs' two lines to say a PRD has no owner here and stop implying a destination, and record why in the factory notes so it is not rediscovered a third time.Worth noting that option 1 has a boundary question attached: a
write-issue-specthat drafts an issue body sits next totriage, which already owns issue-workflow state, and next togitea-issues, which owns the posting. That boundary needs drawing before the skill is written.Files
plugins/bin/.apm/skills/write-docs/SKILL.md— "Do not use when" and "Failure handling"docs/research/ai-coding-factory/ai-coding-factory-implementation-guidance.md:85,112,236docs/research/ai-coding-factory/ai-coding-factory-skills-index.md:38docs/notes/factory-research-gaps-conflicts.md:64Related