work-story
Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open…
Create a branch, commit the work, and open a pull request for a completed user story, after all quality gates pass. Use when the user asks to open/create a PR or as the final step of the story workflow.
Claude Code
$ npx -y skills add theam/claude-dev-kit --skill create-pr --agent claude-code
Codex
$ npx skills add theam/claude-dev-kit --skill create-pr -a codex -y
Cursor
$ npx skills add theam/claude-dev-kit --skill create-pr -a cursor -y
Gemini CLI
$ npx skills add theam/claude-dev-kit --skill create-pr -a gemini-cli -y
GitHub Copilot
$ npx skills add theam/claude-dev-kit --skill create-pr -a github-copilot -y
OpenCode
$ npx skills add theam/claude-dev-kit --skill create-pr -a opencode -y
Windsurf
$ npx skills add theam/claude-dev-kit --skill create-pr -a windsurf -y
name: create-pr description: Create a branch, commit the work, and open a pull request for a completed user story, after all quality gates pass. Use when the user asks to open/create a PR or as the final step of the story workflow.
Final step of the story workflow. Runs when the **applicable** gates pass (gates are adaptive to the project — see `instructions/testing-standards.md`).
1. Unit tests for touched files pass — *when the project has a test framework*. 2. `coverage-check` passes — *when the project has coverage tooling* (project's bar, default ≥ 95%, no regression). 3. Related e2e tests pass — *when the project does e2e* (`e2e-generate` ran for user-facing changes). 4. Lint passes for touched files — *when the project lints*. 5. A `pr-review`-style self-review found no unresolved blocking findings. 6. Security pass has no blocking findings (**always applies**).
A gate that **does not apply** (no test/e2e/lint setup) is not a blocker — but it must be **called out in the PR "How it was verified" section** as *not applicable, recommend adding*, never omitted. A gate that applies and **fails** stops the PR: report what's missing instead of opening it. (A `gates` policy in `.claude/dev-kit.json` can force `required`/`off`.)
1. Branch from the repo's default integration branch. Naming: `<type>/<TICKET-KEY>-<short-slug>` (e.g. `feat/PROJ-1234-payment-status-filter`). Follow the repo's convention if one exists. 2. Stage only files related to the story. List anything intentionally left out. 3. Commit message: `<type>: <TICKET-KEY> <imperative summary>` plus a short body of key changes. Follow the repo's convention if one exists.
**Before creating, check the branch doesn't already have an open PR** (`gh pr view <branch> --json number,state,url`, or `gh pr list --head <branch> --state open`). If one is **open**, update it instead of opening a duplicate. If the only PR for the branch is **closed/merged**, do **not** reuse its number — push to a fresh branch and open a new PR. Never assume a PR number from earlier in the session.
Open the PR on the configured host (`prHost` in `.claude/dev-kit.json`; default `github`). Branch/commit/push are the same everywhere (plain git); only the "open the PR" call differs:
The body must include (adapt field names to the host — GitHub/GitLab render Markdown; Bitbucket PR descriptions accept Markdown too):
 ## <TICKET-KEY>: <story title> ### Summary <the product-facing summary: what was delivered in user terms and the decisions taken, plain language — same content as the tracker comment> ### What changed - ... ### How it was verified - Unit tests: <command + result> - Coverage on touched files: <summary — meets the project's bar> - E2E: <suites run + result> - Security pass: <verdict> - Lint: clean ### Notes for reviewers - <risks, follow-ups, technical decisions> ### Delivery readiness <Include only the lines that apply — skip this whole section for trivial/internal changes; don't pad.> - Rollback: safe to revert this PR on its own? Flag anything that isn't. - Migrations: reversible and safe on a live DB (no long locks; backfill plan)? - Config/secrets: new keys have safe defaults; nothing required-but-undocumented. - Docs/contract: user-facing or API changes reflected in the docs. - Breaking change / behind a feature flag: called out explicitly. Issue: <link to the tracker item> --- 🤖 Generated with [Claude Code](https://claude.com/claude-code) via the fullstack-dev-kit plugin. Plan approved by a human before implementation; human review still required before merge.
Use the repo's PR template instead if one exists (`.github/PULL_REQUEST_TEMPLATE.md`), adding the badge, summary, verification evidence, and AI footer into it.
**AI traceability metadata**, best effort after creation:
**Report only the PR URL/number the create call actually returned** — capture it from `gh pr create`'s output (or read it back with `gh pr view <url> --json number,state,url`), never a number you assumed or remembered. Then report the verification evidence and any follow-up risks explicitly.
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.
Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open…
Run the repo's unit tests with coverage and verify that every file touched in the current change keeps line, branch, and function…
Delegate an approved backlog to a real async coding agent (GitHub Copilot coding agent) so several stories are worked in parallel…
First-use bootstrap for the dev kit. Detects the team's issue tracker, discovers what it can via MCP/CLI, asks only what cannot…
Create or update end-to-end tests for a user-facing flow that changed, using whatever e2e framework the repo already uses. Use…
Extract frame/component structure and all visible text from a Figma design URL. Use whenever a prompt or a fetched issue contains…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.