Skip to main content

claude-kit

Evidence-gated SDLC for Claude Code

Turn Claude Code into a disciplined engineering team: one command — /sdlc <task> — runs your request through spec → review → code → test → security → PR, with a quality gate between every phase.

The differentiator is trust: every gate verdict must cite real command output, and the deterministic state layer refuses to close a gate out of order or with unresolved Critical/High findings; Medium findings require a separate, structured human risk acceptance. It installs as configuration, not a runtime — no application code in your repo and no daemon: Claude Code configuration, local hooks, and an optional CLI.

Proof over pitch: in the captured run in examples/real-run/, a unanimous review PASS triggered the adversarial devils-advocate — it caught a Medium bug every reviewer had missed, and the gate refused to advance until the fix landed. The run is checked in verbatim: state file, agent verdicts, diff, asciicast.

/plugin marketplace add ajyadav013/claude-kit
/plugin install claude-kit@claude-kit
/claude-kit:sdlc Add a /health endpoint that returns the build version

PyPI Python License: MIT Built for Claude Code CI Changelog

Quick start · 🧭 How it works · 🔁 The pipeline · ⚖️ Compare · 🔒 Security · 📚 Docs


What is this?

Claude Code is brilliant at single tasks — but a real change is never just one task. It's a spec, a plan, code, review, tests, a security pass, a PR. claude-kit turns that whole lifecycle into a pipeline of focused agents and installs it into Claude Code as configuration.

Your request flows through specialists — a spec writer, a developer, independent reviewers, testers, security scanners, a PR raiser — coordinated by an Orchestrator that runs independent work in parallel and refuses to advance until each phase's quality gate passes. Choose your stack, rigor, and team scope at init; everything else adapts.

Use claude-kit if you drive real repository changes with Claude Code and want a repeatable spec → review → test → security → PR workflow whose quality gates won't advance on an unproven verdict.

Skip it if you want a small prompt pack, don't want project config written into your repo, or need a standalone runtime/daemon. claude-kit is configuration for Claude Code, not a separate runtime — and its guard hooks are convenience guardrails (they need jq + a POSIX shell and no-op without them), not a hardened security boundary. See Known limitations.


Quick start

The fastest path to a gated run — no CLI install, no init, no restart:

/plugin marketplace add ajyadav013/claude-kit
/plugin install claude-kit@claude-kit        # qualified name: the claude-kit plugin from the claude-kit marketplace
/claude-kit:sdlc Add a /health endpoint that returns the build version

That's the whole loop in three lines: the standard pipeline runs immediately — spec → review → build → test, gate by gate — with every verdict backed by real output. (The proof run lives in examples/real-run/ — see the top of this page.)

When you want the pipeline tuned to your repo — your stack, commands, rigor profile, and the safety hooks — run init:

A) As a Claude Code plugin  (recommended)
/claude-kit:init        # Claude asks you the questions in chat, then runs the CLI non-interactively
# ↻ restart Claude Code so the project's agents, skills & hooks load
/sdlc Add a CSV export button to the reports page

/claude-kit:init needs the Python CLI on PATH (pipx install claude-code-kit) — it resolves your stack/profile and records checksums for safe upgrade. Details: docs/install.md.

B) As a pip package  (CI, onboarding, non-plugin workflows)
pip install claude-code-kit             # note: the pip name is claude-code-kit, not claude-kit

claude-kit init                 # interactive: prompts for stack, profile, MCP
claude-kit init --defaults      # non-interactive: React + Python/FastAPI + Postgres + standard

Prerequisites: Claude Code; Python ≥ 3.9 for the CLI; jq for the shell hooks (they no-op without it). Windows users: run mutating CLI commands in WSL on a filesystem with POSIX descriptor/lock semantics; native Windows mutation fails closed until a handle-anchored backend is available. Every install question, the init.yaml format, what lands on disk, and plugin-update steps: docs/install.md.


What you get

Area What you get
🔁 Pipeline & quality gates Explicit start/adopt lifecycle and ordered progression: Critical/High always block; Medium requires a distinct, structured accepted-risk record; conditional gates need configured not-applicable evidence; plus a fast-track and devils-advocate pass
🤖 Agent roster 29 tiered agents led by an Orchestrator that never writes code, plus per-database overlay agents and 6 org personas (full roster)
📐 Rules & skills 25 stack-agnostic core rules + 121 context-activated skills (58 core + 63 stack-collection), pulled into context on demand
🧱 Stacks & overlays A stack-agnostic core + 14 overlay rule files (React · FastAPI · Django · Go · Postgres · Mongo) wired to your exact commands and path-scoped to load only when you touch matching files
🛠️ Hooks & guards 20 event hooks — deterministic safety guards and advisory warnings — that no-op gracefully without jq
📊 Traceability & live board A git-native ticket per story with a work-log and commit linkage, plus claude-kit tickets — a terminal chart and a click-through browser Kanban board (gate strip, per-ticket issue view, agent/model/token/timing figures) that /sdlc opens for you when it creates the tickets (below)
📦 Distribution & lifecycle Plugin and pip from one source, 24 ready MCP fragments (version-pinned), edit-preserving upgrade, and a root AGENTS.md at init so non-Claude agents share the same standards

Profiles (lean · standard · enterprise), team scopes, autonomy levels, and org capability packs decide how much of this actually installs — see Profiles & what lands in your project.


How it works

Four ideas do the heavy lifting:

  1. Evidence or it didn't happen. Every gate verdict — PASS or FAIL — must cite the command that ran and its captured output. A verdict that's invented, assumed, or read off still-running work is an auto-Critical finding — the same severity as a hardcoded secret (quality-gates.md §2.5).
  2. Quality gates with a shared severity model. Every finding is classified Critical / High / Medium / Low / Cosmetic. Critical and High always block. Medium never becomes an ordinary pass: proceeding requires a structured, human-attested accepted-risk record tied to the current gate, commit, findings, and evidence. No silent advancement.
  3. RARV self-check. Every agent runs Reason → Act → Reflect → Verify and must show a green Verify (real commands run, not imagined) before handing off.
  4. Blind review + Devil's Advocate. Parallel reviewers judge independently; a unanimous PASS triggers an adversarial devils-advocate pass before the gate may close — an explicit guard against agents rubber-stamping each other.

See docs/architecture.md for the full diagrams, including how one source of truth ships as both a plugin and a pip package.


The pipeline

/sdlc reads the profile you chose and runs only that profile's gates:

flowchart TD
    REQ(["/sdlc request"]) --> CLS{"Classify"}
    CLS -->|"feature"| SPEC["Spec & Dev Docs"]
    SPEC --> EM{{"Gate: EM approved"}}
    EM -->|"pass"| STORY["Story breakdown + coverage gate<br/>story-planner"]
    STORY --> LANES["Parallel lanes:<br/>Senior Dev → Architect → Developer → Code Review"]
    LANES --> MR{{"Gate: Merge Reviewer"}}
    MR --> TEST["Unit · E2E · Integration + Senior verification"]
    TEST --> TCG{{"Gate: Test coverage<br/>+ Devil's Advocate"}}
    TCG --> SEC{{"Gate: Security Clear"}}
    SEC --> OPS{{"Gates: Pipeline Green ·<br/>Observability Ready · Acceptance"}}
    OPS --> PR["PR Raiser"] --> HUMAN(["Human review + deploy"])
    CLS -->|"fast-track (<5 files)"| FT["Developer → Review → Test → PR"] --> HUMAN
Profile Gates that run
lean code-review · build-green
standard spec-complete · em-approved · code-review · build-green · contract-clear* · test-coverage · security-clear
enterprise standard + pipeline-green · observability-ready · acceptance

* contract-clear (API breaking-change diff) is conditional: when the stack exposes no API surface, it may be marked not-applicable only with the configured condition and current evidence. A fast-track mode collapses small changes (< 5 files) to Developer → Code Reviewer → Tester → PR; organization scope at regulated strictness adds accessibility-clear (WCAG-AA on changed UI).

The state layer does not infer that a run has begun. claude-kit pipeline start opens a fresh run at its first active gate; work already in flight must use pipeline adopt with a reason and adopting identity. Gate results are recorded with close-gate, not-applicable, or accept-risk, then the run ends explicitly with complete or abort. Before any gate transition, record-findings binds all five exact severity counts to a project-contained report and the current commit; a new commit or report requires a fresh record. status and validate --json expose adoption and accepted-risk records without translating them into PASS.

See the real captured run in examples/real-run/ — a feature driven through every gate on a Go project, with the verbatim state file, agent verdicts, diff, and an asciicast — or the synthetic walkthrough of the default stack. To capture your own publishable run: docs/capture-a-real-run.md.


Parallel lanes and the live ticket board

The orchestrator never writes code — it splits work, spawns agents, and refuses to advance a gate. Once the spec clears the EM gate, story-planner produces stories and marks which ones are independent. Each independent story becomes a lane: its own ticket, its own branch, its own implement → review → test loop, running at the same time as the others.

flowchart LR
    STORY["story-planner<br/>(marks independents)"] --> TK["One OPEN ticket per story"]
    TK --> L1["Lane A — backend<br/>senior-backend-dev → code-review"]
    TK --> L2["Lane B — frontend<br/>senior-frontend-dev → code-review"]
    TK --> L3["Lane C — …"]
    L1 --> MR{{"Gate: Merge Reviewer<br/>(the join)"}}
    L2 --> MR
    L3 --> MR
    MR --> T1["unit-tester"]
    MR --> T2["e2e-tester"]
    MR --> T3["senior-tester<br/>(independent verification)"]
    T1 --> TCG{{"Gate: Test coverage<br/>+ Devil's Advocate"}}
    T2 --> TCG
    T3 --> TCG
    TCG --> DONE["Tickets → DONE,<br/>commits linked"]

Two things make this observable rather than a black box:

  • A ticket is opened before any lane starts and accumulates a work-log entry per meaningful step — what changed, why, which files, what was decided (ticketing-and-traceability). Commits carry the ticket id, so git log --grep= walks it in either direction.
  • Lanes are branches, and telemetry is keyed on the branch. claude-kit tickets reads the Claude Code session transcripts (metadata only — usage counters, model id, agent name, timestamp) and attributes tokens, cache, elapsed time, and the agent that ran to whichever ticket names that branch.

The board

claude-kit tickets                # board: one row per ticket, in-progress first
claude-kit tickets --watch 5      # re-render every 5s while a run is in flight
claude-kit tickets --graph        # dependency DAG — what is blocked by what
claude-kit tickets --graph-git    # the commit graph with each commit's ticket attached
claude-kit tickets CKIT-74        # one ticket: full work log + per-lane telemetry
claude-kit tickets --html         # a Kanban board in your browser
claude-kit tickets --open         # the same board, opened for you

--html writes a self-contained page to .claude/state/ticket-board.html and prints a file:// URL; --open does that and launches your browser (and quietly falls back to the printed path on a headless box). /sdlc runs --open for you the moment it creates the tickets, before any implementation agent starts — so you watch the run rather than reading chat for status.

It is a file, not a server — the page refreshes itself and the capture-ticket-telemetry Stop hook rewrites it after each turn, so an open tab tracks a running pipeline live with nothing daemonised. A header strip shows which gate the pipeline is on, and clicking any card opens a full issue view — spec, design, stage, files, commits, per-agent telemetry and the work log — all with no JavaScript at all, so the page makes zero network requests and leaks nothing:

The claude-kit ticket board — a pipeline gate strip above Kanban columns for in progress, in review, actionable, blocked and done, each card showing model, tokens, cache, elapsed time, branch, commits and the acting agent's initials; below the board, one ticket's issue view is open with its status, spec, design, stage, files, commits, per-agent telemetry and work log

Token counts are deduplicated by request id — streaming rewrites the same usage block many times, and a naive sum overstates output by ~3× — and cache reads are counted separately from fresh input because they routinely differ by three orders of magnitude. Full reference: docs/cli.md.


Profiles & what lands in your project

The profile you pick decides how much lands in .claude/. Measured on a React + FastAPI + PostgreSQL project, individual scope:

Profile Agents Skills Rules
lean 8 15 36
standard (default) 26 43 36
enterprise 31 108 36
  • Rules are profile-independent — every profile installs the same 25 core rules + the selected stack's overlays (11 for this stack = 36); rigor changes the agents and gates, not the rule set.
  • Installs are stack-true — every lane offers none, and a lane you don't have installs nothing: a backend-only project gets no React rules, frontend skills, or npm commands.
  • enterprise installs the whole skill collection — including stacks you didn't select. That's disk footprint, not always-resident context, but prefer standard for a tighter install. See docs/skill-audit.md.

Organization scope adds teams, 5 autonomy levels, review strictness, and capability packs — see docs/org-capabilities.md.


How claude-kit compares

The closest alternative is just using Claude Code's own subagents — and that's the comparison that matters most: native gives you the agents; claude-kit gives you the governance.

Compared to… What it is What claude-kit adds
Native Claude Code subagents / Agent Teams Spawn parallel agents on demand; you define workflow and verification yourself each time A fixed, sequenced pipeline with owned gates, an evidence requirement for every verdict, the devils-advocate anti-rubber-stamp pass, and structured resume from the pipeline state file
wshobson/agents & similar collections Large libraries of individual subagent prompts you pick from A smaller, opinionated set wired into a sequenced pipeline — agents are stages that hand off and block on each other, not a menu
GitHub spec-kit Spec-driven development as a platform: constitution → spec → tasks → analyze, plus label-driven CI stages The same coverage-gate idea absorbed into a broader in-session lifecycle — review, security, build, test, release, and observability gates with enforced severity blocking. Complementary: their CI stages, this kit's gate depth (details)
claude-flow / multi-agent runtimes Runtime orchestrators that execute swarms of agents Portable configuration, not a running process — no daemon, no lock-in, no app code
dotfiles / CLAUDE.md starters A single rules file or settings snippet A catalog-driven generator: resolves your stack/profile/scope into the right subset of 25 rules, 29 agents, 121 skills, gates, and hooks — kept upgradeable with your edits preserved

Choose claude-kit when you want a consistent, gate-enforced autonomous-SDLC setup that's the same across every repo and stack, installs in seconds, and ships nothing you have to run. It is not a runtime or a code library — it's the configuration that makes Claude Code's agents behave like a disciplined team.


Use beyond Claude Code (export)

init already emits a repo-root AGENTS.md so teammates on Cursor, VS Code, or Copilot get the kit's standards from day one. claude-kit export projects the full config into their native formats:

claude-kit export . -t cursor -t agents -t copilot

Fidelity is honest: rules, the project charter, and MCP servers port cleanly; the enforced gates and reviewer subagents are Claude-Code-only and travel as a single-agent checklist instead — every exported document says so. Full fidelity matrix: docs/cursor-export.md.


Influences & reuse-first

claude-kit evolves by reviewing excellent open-source projects and industry material, then adopting only the genuinely-new ideas — each review fetches the real source, adversarially maps it against the kit's existing files, and ships only the non-duplicative gaps (many reviews conclude with "0 new agents/skills/rules" on purpose). The full adoption history — from Agentic Design Patterns through the alibaba/microsoft/google/Meta/Netflix·aws·apple org reviews — lives in docs/influences.md, with per-release detail in the CHANGELOG.


Security & trust model

claude-kit installs configuration only — no application code, no Docker, nothing that runs as a service. Its controls span several trust boundaries; the label matters more than the word "gate":

Control Enforcement type Trust boundary
Gate order and lifecycle Mechanically enforced Python pipeline layer
Test result Agent-enforced today; mechanical parsing is planned Agent report and cited artifact
Hook guard Hook-enforced Requires the Claude hook runtime, POSIX shell, and jq
Security scanner result Externally verified or Agent-enforced, depending on scanner External tool output or scanner agent
Accepted risk Human-attested Structured record bound to gate, commit, evidence, and findings
MCP permissions Externally verified plus local policy External server and Claude Code; not a sandbox
Local evidence hash Mechanically enforced content-integrity check Detects artifact drift; a writer can change both file and ledger

Other prose requirements are Advisory unless one of those layers enforces them. Three honest caveats before you rely on the system:

  • The guard hooks are convenience, not a hardened boundary. They raise the cost of a mistake but don't sandbox the agent; they need a POSIX shell + jq and silently no-op without them. Seatbelts, not walls.
  • Most quality results are agent protocols, not independently parsed test results. The Python layer mechanically enforces lifecycle, order, allowed transition types, bindings, and evidence hashes; it does not prove that an arbitrary evidence file means the tests passed. A capable model can still be wrong or skip a step — keep a human in the loop for anything that matters. Relatedly: the agents' permissionMode confinement (read-only reviewers) binds only in init-scaffolded projects — plugin-loaded agents ignore it, so run the pipeline from a scaffolded project when that confinement matters.
  • MCP servers are third-party code. Each fragment runs an external package — pinned to an exact version, never @latest — that claude-kit references but does not vendor or audit. Review a server's source and license before enabling it.

Releases are published to PyPI via OIDC Trusted Publishing with PEP 740 build attestations. Report vulnerabilities privately — see SECURITY.md.


Docs & deeper reference

Doc What's in it
docs/install.md Every install detail: prerequisites, Windows, plugin updates, all init questions, init.yaml, what lands on disk
docs/cli.md Full CLI command reference, safe-upgrade mechanics, troubleshooting
docs/agents.md How to drive the agents + the full 29-agent roster and per-run cost
docs/architecture.md Diagrams: distribution, catalog resolution, the state machine — and how to extend via the catalog
docs/influences.md The reuse-first adoption history: what we learned, shipped, and deliberately skipped
docs/autonomous-operation.md Unattended runs: permission modes × autonomy levels, headless mode, the bounded loop script, CI-trigger design
docs/cursor-export.md Export fidelity matrix and .mdc mapping
docs/org-capabilities.md Organization scope: packs, personas, autonomy, review strictness
docs/skill-audit.md Per-profile skill footprint and context economics
docs/KNOWN_LIMITATIONS.md What the kit deliberately does not claim
examples/real-run/ The captured, gated real run (evidence, not marketing)
CONTRIBUTING.md Contributor workflow; CLAUDE.md covers developing the kit itself

Contributing

Issues and PRs welcome — see CONTRIBUTING.md. To dogfood a local checkout:

# As a plugin:  /plugin marketplace add .   then   /plugin install claude-kit@claude-kit
# As the CLI:   pip install -e '.[dev]'   then   claude-kit init ./ck-demo --defaults   &&   pytest

License

MIT © Arjunsingh Yadav

claude-kit is an independent open-source project — not affiliated with or endorsed by Anthropic.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_code_kit-0.83.0.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_code_kit-0.83.0-py3-none-any.whl (3.2 MB view details)

Uploaded Python 3

File details

Details for the file claude_code_kit-0.83.0.tar.gz.

File metadata

  • Download URL: claude_code_kit-0.83.0.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for claude_code_kit-0.83.0.tar.gz
Algorithm Hash digest
SHA256 233f5957ab8df6e601bab21eab670b39424d2b3f2ded83bbdeec5789a2098ed2
MD5 cb9e009304c95050baaeba94745c51bd
BLAKE2b-256 6934e70ccc80d579263f463c644e573c5cf2f318b734e4f402f3fbdde001a056

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_code_kit-0.83.0.tar.gz:

Publisher: publish.yml on ajyadav013/claude-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file claude_code_kit-0.83.0-py3-none-any.whl.

File metadata

File hashes

Hashes for claude_code_kit-0.83.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd959d22facf25e22c6549e7d65730a92e46079c9ce4c1ddecaf0235258c3c62
MD5 d364cc0a2beb2eb8dccd87d8f6791253
BLAKE2b-256 b069cbd830d125fd6306710f55681c716bd575ccaacd5f9f06da96d0818563d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for claude_code_kit-0.83.0-py3-none-any.whl:

Publisher: publish.yml on ajyadav013/claude-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.84.0

2 files

This release

0.83.0 This release

2 files

0.82.0

2 files

0.81.0

2 files

0.80.0

2 files

0.79.0

2 files

0.78.0

2 files

0.77.0

2 files

0.76.0

2 files

0.75.0

2 files

0.74.0

2 files

0.73.0

2 files

0.72.0

2 files

0.69.0

2 files

0.68.0

2 files

0.67.0

2 files

0.66.0

2 files

0.65.0

2 files

0.64.0

2 files

0.63.0

2 files

0.62.0

2 files

0.61.0

2 files

0.60.0

2 files

0.59.0

2 files

0.58.2

2 files

0.58.1

2 files

0.58.0

2 files

0.57.0

2 files

0.56.0

2 files

0.55.0

2 files

0.54.0

2 files

0.53.0

2 files

0.52.0

2 files

0.51.0

2 files

0.50.0

2 files

0.49.0

2 files

0.48.0

2 files

0.47.0

2 files

0.46.0

2 files

0.45.0

2 files

0.44.0

2 files

0.43.0

2 files

0.42.0

2 files

0.41.0

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.0

2 files

0.35.0

2 files

0.34.0

2 files

0.33.0

2 files

0.32.0

2 files

0.31.0

2 files

0.30.0

2 files

0.29.0

2 files

0.28.0

2 files

0.27.0

2 files

0.26.1

2 files

0.26.0

2 files

0.25.0

2 files

0.24.0

2 files

0.23.0

2 files

0.22.0

2 files

0.21.0

2 files

0.20.0

2 files

0.19.0

2 files

0.18.0

2 files

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.17.0

2 files

0.16.0

2 files

0.15.0

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.3

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.1

2 files

0.7.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page