Skip to content
Development
Skill

/work-story

Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open the PR, and update the tracker. Use when given an issue key like PROJ-1234, ENG-42, or #123. This is the orchestration playbook for hosts without a

From plugin
fullstack-dev-kit
1412 skills7 agents3 commands3 hooks
+1
Install
$ npx -y skills add theam/claude-dev-kit --skill work-story --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/work-story

Context preview

The summary Claude sees to decide when to auto-load this skill.

Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open the PR, and update the tracker. Use when given an issue key like PROJ-1234, ENG-42, or #123. This is the orchestration playbook for hosts without a

SKILL.md

work-story.SKILL.md
name: work-story
description: Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open the PR, and update the tracker. Use when given an issue key like PROJ-1234, ENG-42, or #123. This is the orchestration playbook for hosts without a dedicated orchestrator subagent (Codex, and other Agent-Plugins clients); on Claude Code the `/work-story` command + `coding-agent` subagent do this instead.

Work Story (orchestration)

You are the story orchestrator. Input: an issue key from the team's tracker. Output: a pull request that satisfies the story's acceptance criteria with verified quality gates, and a tracker ticket that reflects it. **You run every step yourself, in order** — invoke the kit's other skills as the steps below call for them; there is no separate orchestrator process here.

If no issue reference is given, ask for one — don't guess. Accept the shapes the configured tracker uses (`PROJ-1234` Jira, `ENG-42` Linear, `#123` GitHub/Azure).

**Stack-agnostic.** Carry no assumptions about language, framework, or test runner. Read the repo's `AGENTS.md` / `CLAUDE.md` and `.claude/` for build/test/lint/coverage commands and conventions, and follow them exactly; when silent, detect conventions from the repo — never impose a stack. The always-on rules in `instructions/secure-coding.md` and `instructions/testing-standards.md` bind every step.

1. Context

  • If `.claude/dev-kit.json` is missing, run **`dev-kit-setup`** first (one-time bootstrap:

tracker, project/team, field IDs).

  • Run **`issue-fetch`** for the ticket and show the summary.
  • If the ticket references Figma, run **`figma-fetch`** and summarize the UI intent.
  • Read the repo's project instructions and load the baseline stack profile

(`instructions/stacks/<id>.md` for the `stacks` in `.claude/dev-kit.json`); the repo's own instructions always win, the profile fills gaps.

2. Plan — WAIT FOR APPROVAL

Validate assumptions against the running product when feasible (boot the app / exercise the flow) before writing the plan. Then present, **in the chat**, the ticket summary and a full plan — Understanding, Affected areas, numbered Implementation steps, Test plan, Open questions — and **wait for the user's explicit approval**. Write no code until they approve (unless the invocation says the plan is pre-approved, e.g. an automated run).

3. Implement

  • Follow the repo's conventions and architecture. Keep the diff scoped to the story — no

opportunistic refactors.

  • Update every side of any changed contract (payload/route/enum/schema/validation) together.
  • For user-facing frontend work, write accessible markup as you go (semantic HTML, labels,

`alt`, keyboard/focus) — cheaper than fixing it at review.

4. Verify (gates — adaptive to the project)

Apply the gates that fit the project (detect its setup each run; see `instructions/testing-standards.md`). Report each as passed, failed (with output), or **not applicable** (reason + recommendation) — never silently skip. A `gates` policy in `.claude/dev-kit.json` can force `required`/`off`; default is auto-detect.

  • Unit tests for touched files pass — if the project has a test framework (don't scaffold one).
  • **`coverage-check`** — if the project has coverage tooling (touched files meet the bar,

default ≥ 95%, no regression). If none: recommend, don't fail.

  • **`e2e-generate`** for user-facing changes — if the project already does e2e.
  • Lint clean on touched files (when the project lints).
  • **Security pass (always applies):** review the diff against `instructions/secure-coding.md`;

any automatic-blocker is a gate — fix and re-check.

5. Self-review

Run **`pr-review`** on the full diff. Fix blocking findings (its counterpart playbook is **`fix-pr`**) and re-verify; note the non-blocking ones.

6. Ship

Run **`create-pr`**. Report the PR URL, the verification evidence, and any follow-up risks.

7. Update the ticket

Run **`issue-update`**: comment a product-facing summary (plain language) plus the PR link, and transition the ticket to the team's review status. The story isn't done until the tracker reflects it.

8. Track follow-ups (offer — never force)

If the story left **loose ends** (out-of-scope notes in the PR, deferred `pr-review`/`fix-pr` findings, deliberate TODOs), run **`follow-ups`**: offer to create them as tracked work items linked to this story. Approval-gated — present the list, create nothing until approved; the user may edit or skip. No genuine loose ends → say so and skip. Never fabricate follow-ups.

Reporting

At every step, state plainly what passed, what failed (with output), and what was skipped. Never report a gate as passed without having run it.

Read more
Ships withfullstack-dev-kit

An open-source Claude Code plugin by The Agile Monkeys: a stack-agnostic issue-to-PR workflow with enforced quality gates. Also runs on OpenAI Codex, Cursor, and other Agent Plugins 1.0.0 clients.

Get the whole plugin

Other skills on fullstack-dev-kit.