Reference — generated from the toolkit
Source of truth: toolkit/skills/pfd-drafting/spec.md. Edit it there; this page is regenerated on build.
Skill: pfd-drafting
- Owner: AI + Product
- Version: 0.1.0
- Lifecycle: draft
- Phase: definition
Trigger
Discovery is done and a PFD needs writing: SME notes and a research pack exist, and the PO wants a structured first draft rather than a blank template. The skill-ified successor to the PFD first-draft prompt — invoked once per product/feature entering Definition, and re-invoked when new research materially changes the picture.
Inputs → outputs
- Inputs: SME notes, the discovery research pack (cited and confidence-rated), the domain brief, and the product glossary.
- Outputs: a draft PFD per the PFD template — every section attempted, every gap surfaced as an explicit open question (triaged blocking vs non-blocking), plus a list of every domain term used so the glossary check is mechanical. Status is always
draft; outputs are checked by thepfd-reviewskill before the Definition of Ready gate.
Procedure
- Ingest the research pack, SME notes, domain brief and glossary; index claims by source and confidence.
- Map material to PFD sections — problem/JTBD, personas, scope (in and out), domain rules, success metrics, NFRs, compliance constraints (UK GDPR, FCA Consumer Duty, EU AI Act classification where AI features are proposed), commercial section.
- Draft acceptance criteria per the acceptance-criteria standard: Given/When/Then, with a positive, negative and boundary example per rule; name the insurance boundaries (renewal dates, backdating, MTAs, rounding) explicitly.
- Where the source material cannot support a section or example, write an open question — never a plausible guess. Judgement is used to triage questions as blocking/non-blocking, not to answer them.
- Emit the draft plus the domain-term list for glossary reconciliation.
- Hand off to PO + SME; the draft is a starting point, never a finished PFD.
Guardrails & permissions
- Read-only on all inputs; writes only the draft PFD and term list. Standard agent guardrails apply.
- Uses only the supplied pack and notes — no independent web research mid-draft (unverified claims would bypass the confidence-rating done in discovery).
- Never sets PFD status beyond
draftand never records SME sign-off — humans pass the Definition of Ready gate, not the skill. - Gaps become open questions; inventing domain rules is out of scope absolutely — a plausibly-wrong rule here is built at agent speed downstream.
Failure modes
- Filling gaps with plausible-but-unsourced content (detected:
pfd-reviewcross-checks claims against the pack; mitigated: explicit no-invention instruction and gap-flagging step). - Vague, untestable ACs (detected: ambiguity lint at the gate — banned words like "appropriate", "quickly"; mitigated: three-example discipline).
- Orphan domain terms (detected: glossary reconciliation against the emitted term list).
- Mis-triaging a blocking question as non-blocking (mitigated: PO reviews the triage; the gate blocks on any remaining blocking question).
Golden scenarios
| Scenario | Input | Expected output | Pass criterion |
|---|---|---|---|
| Complete research pack | fixture pack + SME notes (MTA feature) | full draft PFD, ACs with 3 examples per rule | section completeness + ambiguity lint clean |
| Seeded gaps | pack with 3 known missing facts | all 3 surfaced as open questions, none filled | 100% of seeded gaps flagged, 0 invented |
| Unsupported claim bait | notes containing an SME aside contradicting the pack | contradiction raised as a blocking question | contradiction flagged, not resolved silently |