agentleFS
ShiningPlagueShiningPlague/shiningplague-studio/skills/story-done/SKILL.md

story-done

Skill0 starsChanged 4 months agoMITView on GitHub

Close an implemented story. Verifies every acceptance criterion against real evidence, checks the required test or evidence doc exists, records any GDD/ADR deviation, flips the story to Status: Complete, and syncs the registry and implementation status. Runs after /dev-story and /code-review. Never mark a story complete by hand — run this.

10 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use vertical-slice.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • hongyuancSkill

    vertical-slice

    Build and evaluate a production-quality vertical slice before advancing from Pre-Production to Production.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run the project's verification command for the test — see /verification-before-completion for the per-change-kind commands.

    line 68
  2. Very specific:

    Check whether /code-review has run over the changed files (its report, or the LP-CODE-REVIEW verdict in the session state).

    line 74
  3. Very specific:

    Not reviewed → offer to run /code-review [files] now.

    line 79
  4. Distinctive:

    Only after steps 1–4, and only with the user's go-ahead:

    line 99
  5. Distinctive:

    Ask before writing: *"May I mark [story] Complete and write the close notes?"*

    line 105

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Story Done

The close gate. A story is complete when its acceptance criteria are verified against evidence that exists — not when the code was written.

🌱 ShiningPlague Studio skill. The pipeline step /create-stories → /story-readiness → /dev-story → /code-review → /story-done.

If an artifact named here is absent: say so plainly in one line, skip that step, and continue. Never invent the file to satisfy a checklist, and never fail a close because an optional artifact was never created.

Usage

/story-done [story-path]

Inputs

InputPath
Story fileproduction/epics/<epic-slug>/<story>.md
Test filethe path named in the story's Test Evidence section
Evidence docproduction/qa/evidence/<slug>-evidence.md (template: .claude/docs/templates/test-evidence.md)
Governing ADRdocs/adr/NNN-<slug>.md
System GDDdocs/gdd/[system].md or the master docs/GDD.md
Registrydata/_schemas/system_registry.json
Status docdocs/implementation-status.md

Procedure

1. Walk the acceptance criteria

Take the criteria one at a time. For each, state the evidence and the verdict:

AC1: [criterion verbatim]
  Evidence: [test name that passes / file:line / screenshot path / manual step run]
  Verdict: MET | NOT MET | UNVERIFIABLE

UNVERIFIABLE is an honest answer — use it rather than guessing. A criterion with no evidence is not met.

2. Evidence gate by story type

Story TypeRequired before closeIf missing
Logicthe named test file exists and passesBLOCKING — do not close
Integrationthe named test file, or a documented playtestBLOCKING — do not close
Visual/Feelevidence doc in production/qa/evidence/ + sign-offADVISORY — close is allowed, record the debt
UIevidence doc or manual walkthrough recordADVISORY — close is allowed, record the debt
Config/Dataa smoke pass over the changed dataADVISORY

Run the project's verification command for the test — see /verification-before-completion for the per-change-kind commands. Paste the real output into the report. A test that was never run is not evidence.

3. Confirm the code was reviewed

Check whether /code-review has run over the changed files (its report, or the LP-CODE-REVIEW verdict in the session state).

  • Reviewed and APPROVE → continue.
  • CONCERNS → continue, and carry the concerns into the report.
  • Not reviewed → offer to run /code-review [files] now. If the user declines, close anyway and record "closed without code review" in the deviations.

4. Capture deviations

Compare what was built against what was specified:

  • GDD deviation — behaviour differs from the system GDD. Record it and ask whether the GDD should be updated (a shipped behaviour that contradicts its GDD is the drift /consistency-check will find later).
  • ADR deviation — the implementation departs from the governing ADR's Implementation Guidelines. Record it. A repeated deviation is a signal the ADR needs revisiting via /architecture-decision.
  • Scope deviation — files touched outside the story's Out of Scope contract. Record it; consider /scope-check.

Deviations do not block a close. Silence about them does the damage.

5. Close the story

Only after steps 1–4, and only with the user's go-ahead:

  • Set the story's Status: field to Complete and stamp the date.
  • Append the evidence paths to the story's Test Evidence section.
  • Append any deviation notes to the story under ## Deviations at close.

Ask before writing: "May I mark [story] Complete and write the close notes?"

6. Sync the state files

  • data/_schemas/system_registry.json — move the system's status forward if this story changed it (planned → wip → partial → active). The registry is the authoritative "is it built?" source; a close that leaves it stale is a close that lied.
  • docs/implementation-status.md — update the system's row.
  • production/session-state/active.md — append a one-line close extract.

7. Report

## Story Done: [story title]

**Verdict:** CLOSED | BLOCKED

| Acceptance criterion | Evidence | Verdict |
|---|---|---|
| ... | ... | MET |

**Evidence gate:** [pass / BLOCKING — test file missing at <path>]
**Code review:** [APPROVE / CONCERNS: ... / not run — closed anyway at user's direction]
**Deviations:** [none / GDD: ... / ADR: ... / scope: ...]
**State synced:** [registry row, implementation-status row, session state]

Next: [next story path, or `/sprint-plan status` if this was the last one]

What blocks a close

Exactly two things:

  1. A Logic or Integration story with no passing test.
  2. An acceptance criterion marked NOT MET.

Everything else is recorded and carried, not blocked. If the user wants to close over a blocker, say plainly what is being accepted and let them decide — then record it as a deviation.

Recommended next steps

  • More stories in the sprint → /story-readiness [next-story]
  • Last story in the sprint → /qa-plan [sprint] then /retrospective
  • Five or more commits since the last sync → /update

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.