skills/papi-sdlc-task-fulfilment-audit/SKILL.md
Create or work with fulfilment audit tasks that check forward and backward mappings between user stories and the capabilities declared in component specifications. [PAPI SDLC]
npx skillsauth add stainsby/papi papi-sdlc-task-fulfilment-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A fulfilment audit checks alignment between user stories and the capabilities declared in component specifications, in both directions.
It is the middle rung of the PAPI audit ladder:
| Audit | Compares | Forward | Backward | |-------|----------|---------|----------| | Charter | charter ↔ stories | charter → stories | stories → charter | | Fulfilment | stories ↔ capabilities | story → capability | capability → story | | Compliance | capabilities ↔ code | spec → code | code → spec |
The fulfilment audit asks two questions:
The output is a findings list with a disposition for each finding: update the stories, update the component specs, or accept-with-note.
This needs the PAPI long task skill.
This audit examines artefacts (user stories, component
specifications, the capability links between them). It does NOT
execute tests, demos, or run the system. Whether stories can be
performed end-to-end through the real interface is a separate
question handled by the papi-sdlc-task-acceptance-test skill — not
this audit.
Before the two phases, the audit MUST run a lightweight structural pre-pass:
papi-sdlc-user-stories' user-story-template.md,
the user-stories index conforms to user-stories-template.md, and
each component spec referenced by a cited or in-scope capability
conforms to papi-sdlc-component-specification's
component-specification-template.md. Record any structural drift
(missing sections, renamed fields, stale guidance, undocumented
additions) as findings with a disposition: update document /
update template / accept with note. This pass separates
"format outdated" from "content wrong" before Phase A goes deeper.A fulfilment audit MUST then run in two directions and reconcile the results:
Phase A — Top-down (story → capability): for each user story in
scope, gather the user-facing capabilities whose **Users:** field
cites that story, and check:
**Users:** field
cites one or more user stories; internal and composition
capabilities MUST NOT cite stories)**Role:** matches the role recorded against it in
each citing capability's **Users:** fieldPhase B — Bottom-up (capability → story): Phase B sweeps only
user-facing capabilities, i.e. those whose **Users:** field
cites at least one user story (capabilities marked internal or
composition are out of scope for this audit and belong in the
Excluded list).
For each user-facing capability in scope, resolve the user stories it cites. Check:
**Role:** fieldCapabilities citing no real in-scope story are orphan candidates. Capabilities whose cited stories exist but carry a mismatched role are role-coverage gaps (the capability is in use, but misattributes who it serves).
An orphan capability is one of two kinds:
(A capability that is genuinely not user-facing should never reach
this list — if one does, the finding is mismarked user-facing:
update the spec to mark it internal or composition.)
Phase C — Reconciliation: merge Phase A gaps, Phase B orphan capabilities, and Phase B role-coverage gaps into a single findings list. For each finding, record the agreed disposition:
internal or composition; correct a **Users:**
role list)Running only Phase A is a CRITICAL FAILURE: it lets user-facing capabilities that serve no story persist in the specs unchallenged. Both phases must be evidenced in the report.
Every Phase B orphan capability MUST be brought to the user for a disposition decision before the audit closes. Do NOT auto-classify the orphan kind — the choice between scope creep and missing story is a strategic call that belongs with the user.
papi-sdlc-task-compliance-audit) checks
capabilities ↔ code. A fulfilment audit should generally be run
before compliance, because a capability with no covering story
may need to be removed from the spec — and there is no point
auditing dead capabilities against code.papi-sdlc-task-charter-audit) checks charter ↔
stories. Run this before fulfilment when both are due — fixing
Charter-level drift first avoids re-doing fulfilment work on
stories that may need to change.papi-sdlc-task-acceptance-test) is NOT an
audit; it exercises stories through the real interface with the
appropriate role discipline. Run after compliance and fulfilment
pass, not instead of them.Recommended order when all are due:
Charter audit → Fulfilment audit → Compliance audit → Acceptance test
Reading these skills is REQUIRED to understand and execute this skill:
papi-tasks-understandpapi-templates-understandpapi-sdlc-user-storiespapi-sdlc-component-specificationRead these as needed:
papi-sdlc-task-charter-audit (peer, often run before)papi-sdlc-task-compliance-audit (peer, often run after)papi-sdlc-task-acceptance-test (peer, separate
activity)assets.assets/fulfilment-audit-task-template.mddevelopment
Plan and perform user-acceptance testing for user stories - exercise each story end-to-end through the real user interface in the appropriate role, with evidence. [PAPI SDLC]
development
Create or work with charter audit tasks that check alignment between the project's Charter and its user stories — both top-down and bottom-up. [PAPI SDLC]
development
Create, understand, or work with the project charter. [PAPI SDLC]
development
Manage a task with many repeated steps, or a long running task with many steps, so that it is tracked and resumable over more than one session if needed.