work-story
Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open…
First-use bootstrap for the dev kit. Detects the team's issue tracker, discovers what it can via MCP/CLI, asks only what cannot be discovered, and persists the result to .claude/dev-kit.json in the consuming repo. Use when that file is missing, when the user asks to set up or
Claude Code
$ npx -y skills add theam/claude-dev-kit --skill dev-kit-setup --agent claude-code
Codex
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a codex -y
Cursor
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a cursor -y
Gemini CLI
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a gemini-cli -y
GitHub Copilot
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a github-copilot -y
OpenCode
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a opencode -y
Windsurf
$ npx skills add theam/claude-dev-kit --skill dev-kit-setup -a windsurf -y
name: dev-kit-setup description: First-use bootstrap for the dev kit. Detects the team's issue tracker, discovers what it can via MCP/CLI, asks only what cannot be discovered, and persists the result to .claude/dev-kit.json in the consuming repo. Use when that file is missing, when the user asks to set up or reconfigure the kit, or when issue-fetch cannot resolve its configuration.
Make the kit self-sufficient: detect the tracker, discover everything possible automatically, ask the user only for genuine choices, and persist the result so **nobody on the team has to configure anything again**.
Pick `tracker.type` with the least friction:
1. If the triggering reference makes it obvious, use it (`PROJ-1234`/`ENG-42` → Jira/Linear key style; `#123` → GitHub/Azure). 2. Check which backends are actually available: is an Atlassian or Linear MCP authenticated? Is `gh` logged in for this repo? Is Azure DevOps configured? 3. If still ambiguous, **ask the user once** which tracker the team uses: Jira, Linear, GitHub Issues, or Azure DevOps.
Then run the matching discovery below. For any MCP/CLI that is not authenticated, **offer to set it up for them** (users are encouraged to just ask "connect my Jira" — do the work, don't only hand back a command):
Run the command for them when you can; the OAuth/browser sign-in is always the user's step. Then stop — never continue with invented values until the backend is actually reachable.
Identify the tech stack from the project's files so the kit can load the right baseline commands. Match against the profiles in `instructions/stacks/` (each profile lists its detection signals), e.g.:
| Signal | Stack id | |---|---| | `package.json` | `node` | | `angular.json` | `angular` | | `react` / `react-dom` in `package.json` | `react` | | `vue` in `package.json` | `vue` | | `pyproject.toml` / `requirements*.txt` | `python` | | `*.csproj` / `*.sln` | `dotnet` | | `pom.xml` / `build.gradle` | `java` | | `go.mod` | `go` | | `Gemfile` | `ruby` | | `composer.json` | `php` | | `Cargo.toml` | `rust` |
A JS/TS frontend matches **both** `node` and its framework — prefer the **more specific** one (`angular`/`react`/`vue`); those profiles reference `node` for the shared toolchain. A monorepo may match several — record all of them (e.g. `["dotnet", "angular"]`). If nothing matches a shipped profile, record the closest label anyway and tell the user there is no stack profile yet (the kit still works from the repo's `CLAUDE.md` and generic rules — and contributing `instructions/stacks/<id>.md` is one small PR).
Write `.claude/dev-kit.json` at the consuming repo root. Only the active tracker's block is required:
{
"tracker": {
"type": "jira",
"site": "https://<org>.atlassian.net",
"cloudId": "<discovered-cloud-id>",
"authMode": "mcp",
"projectKey": "PROJ",
"fields": {
"acceptanceCriteria": "customfield_XXXXX",
"sprint": "customfield_XXXXX",
"storyPoints": "customfield_XXXXX"
},
"reviewState": null
},
"stacks": ["node"],
"prHost": "github",
"gates": {
"coverage": { "mode": "auto", "min": 95 },
"e2e": { "mode": "auto" }
},
"test": {
"coverageCommands": []
}
}Shape of `tracker` per type: **jira*
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…
Create a branch, commit the work, and open a pull request for a completed user story, after all quality gates pass. Use when the…
Delegate an approved backlog to a real async coding agent (GitHub Copilot coding agent) so several stories are worked in parallel…
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.