Skip to main content

local-sdlc-kit

A small, harness-neutral AI-native SDLC you can drop into any git project.

CI Docs License: Apache-2.0 Python 3.11+ Platform: Linux, macOS, WSL Dependencies: none

Every non-trivial change goes through six stages. Each stage ends in a committed file, and "done" is decided by a gate command, not by opinion.

intent  ->  spec  ->  plan  ->  test  ->  code  ->  review
   |          |         |        (red)                 |
intent.md  spec.md  plan.md   seen failing        REVIEW.md      gate: python3 scripts/sdlc_check.py

Works with Claude Code, Codex, Gemini CLI, GitHub Copilot, Cursor and MiniMax Code: the process lives in AGENTS.md and plain SKILL.md files, and every other harness file only points there.

Why

  • State survives the chat. Intent, spec and plan are files in git, so the work outlives /clear, context compaction and a switch of agent.
  • Tests come first, and it is proven. sdlc_check.py --red exits 0 only when the new test fails now, for the right reason.
  • Gates decide, not opinion. A plan box is ticked only after the gate exited 0 in the same session; review is done by a fresh agent that sees only the artifacts and the diff.
  • Nothing to learn per tool. One AGENTS.md, one skill directory, thin adapters. Standard library only, POSIX only.

Quick start

pip install local-sdlc-kit
cd my-project
local-sdlc-kit-install          # then start with /sdlc (Claude Code) or "use the sdlc skill" (others)

The installer never overwrites a file your project owns and never deletes anything. Not on PyPI yet? Use the git-clone form under Install in detail. Full documentation: https://senssei.github.io/local-sdlc-kit/

Install in detail

The gate runner needs Python 3.11+; on an older python3 it re-runs itself under a python3.11 or newer found on PATH.

pip install local-sdlc-kit                     # or from a git clone: python3 ~/local-sdlc-kit/install.py
cd my-project
local-sdlc-kit-install                         # all harnesses; same flags as the git-clone shim
local-sdlc-kit-install --harness claude,codex  # a subset
local-sdlc-kit-install --dry-run               # see what it would do (it cannot predict OS errors)

Git-clone form (works without a PyPI release):

git clone <this repo> ~/local-sdlc-kit
cd my-project
python3 ~/local-sdlc-kit/install.py                       # the top-level shim re-exports sdlc_kit.install.main
python3 ~/local-sdlc-kit/install.py --harness claude,codex
python3 ~/local-sdlc-kit/install.py --dry-run

The git-clone shim and the PyPI wheel expose the same installer with the same flags. Both produce the same files in the target project.

Then fill in three things, by hand or by asking an agent to do it:

  1. AGENTS.md: the <!-- TODO --> parts (project, commands, project rules).
  2. sdlc.toml: the test command, the one-test command for --red, optional extra checks and the changelog rule.
  3. intent.md and spec.md: the problem, constraints, non-goals, invariants. The operator approves intent.md.

Optional: git config core.hooksPath .githooks runs the gate before every commit.

What you get

Path Owner Role
AGENTS.md project The process table, the process rules, and your project rules. The single source of truth
sdlc.toml project Your gate: commands for the checks and for running one test
intent.md, spec.md, plan.md, REVIEW.md project The stage artifacts (blank templates)
.agents/skills/sdlc*/SKILL.md kit Five skills: sdlc (find the stage), sdlc-plan, sdlc-implement, sdlc-review, sdlc-release
scripts/sdlc_check.py kit The gate runner and --red
.githooks/pre-commit kit Opt-in hook calling the runner
CLAUDE.md, GEMINI.md, MCODE.md, .github/copilot-instructions.md project Adapters, a few lines that point to AGENTS.md
.cursor/rules/sdlc.mdc, .claude/skills (symlink) kit Cursor rule, Claude Code skill discovery

Kit-owned files are refreshed by install.py --update, which prints a diff of what it replaced, so put your customisations in AGENTS.md (project-owned), not in the skills. Project-owned files are created once and never overwritten; --update only prints a diff against the current template. The installer never deletes anything.

If your project already has an AGENTS.md, CLAUDE.md, GEMINI.md or Copilot instructions, they are left alone and the installer ends with a manual step needed list: merge the process section into your AGENTS.md, and make the adapters point to it.

Documentation

Full documentation: https://senssei.github.io/local-sdlc-kit/

  • Process: the six stages and the five skills.
  • Harnesses: how Claude Code, Codex, Gemini CLI, GitHub Copilot, Cursor and MiniMax Code pick the process up.
  • The gate: sdlc.toml, sdlc_check.py and the red-first --red proof.

Develop the kit

python3 sdlc_kit/sdlc_check.py      # compile + tests
python3 -m build                    # sdist + wheel into dist/
python3 -m twine check --strict dist/*
pip install -e ".[docs]" && mkdocs serve   # preview the documentation site

See AGENTS.md, intent.md, spec.md and plan.md in this repository: the kit follows its own process.

Releasing

Releases use PyPI trusted publishing (no tokens), TestPyPI first, then PyPI from a v<__version__> tag. The procedure is in Releasing.

License

Apache-2.0

Release files for local-sdlc-kit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for local-sdlc-kit 0.1.0
File Size Uploaded
local_sdlc_kit-0.1.0.tar.gz 37.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for local-sdlc-kit 0.1.0
File Interpreter ABI Platform
local_sdlc_kit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 80.9 kB

Release files / local_sdlc_kit-0.1.0.tar.gz

Download URL local_sdlc_kit-0.1.0.tar.gz
Size 37.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f403a784446d1c9e0976ac58c4c67d1ef1b66aedd802274e02d78c853d463296
BLAKE2b-256 checksum
How to use checksums
68b0ccc9a4ace3eeadeb8eb4ebd10fb9c5c5703adffc342de5d6dc3db4af2a4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / local_sdlc_kit-0.1.0-py3-none-any.whl

Download URL local_sdlc_kit-0.1.0-py3-none-any.whl
Size 43.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bda7a685b754761af7e477bd8199fc0f854de1ded431e67e33a3981c55b6ad81
BLAKE2b-256 checksum
How to use checksums
b3a18020cef43d11b4d21e892e46209c2776daffda5299c69cc3334a9fc2ccc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release 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