SDLCKit — AI-governed SDLC lifecycle engine with SAGE loop
Project description
SDLCKit
Governed AI quality loops for every SDLC phase.
SDLCKit wraps each phase of the software development lifecycle in a SAGE loop — a governed cycle where humans declare intent, AI produces artifacts, and independent scorers review against weighted quality dimensions. The result: measurable confidence in AI-generated artifacts before they reach production.
SDLCKit is a governance layer, not an SDLC. You keep your existing process and add SDLCKit on top.
Why Governance?
AI agents can produce code, specs, and designs — but without governance, there is no measurable quality signal. SDLCKit provides that signal through four properties:
| Property | What It Means |
|---|---|
| Independent Scoring | Scorer agent is sandboxed (read-only tools). Cannot collude with producer. |
| Dimensional Confidence | Not pass/fail. N weighted dimensions scored independently (e.g., clarity 0.35, completeness 0.30). |
| Bounded Fix Loops | Max N automated iterations. Oscillation detection stops thrashing. |
| Human Gates | Two-pass: (1) deterministic structural check, (2) human quality review with scorecard. |
The SAGE Loop
Every phase — refine, architect, build, review — runs the same governed cycle:
SCOPE SAGE LOOP
+------------------+ +------------+
| User input | +--->| ANALYZE |
| Discovery output | | | Frame goal + constraints |
| Feedback signals |------>+ +-----+------+
| Prior state | | |
+------------------+ | v
| +------------+
| | GENERATE |
| | AI produces artifacts |
| +-----+------+
| |
| v
| +------------+
| | EVALUATE |
| | Independent scorer scores |
| | N weighted dimensions |
| +-----+------+
| |
| confidence < threshold?
| |
| YES: Fix Loop (target weakest dim)
| |
| NO: Human Gate
| |
| [Approve] -> advance
| [Revise] -> feedback
+----[Pause] -> save state
Quick Start
Prerequisites
- Python 3.11+
- An AI coding assistant: Claude Code, GitHub Copilot CLI, Cursor, or Windsurf
Install
pip install sdlckit
Initialize a Project
sdlckit init
Scaffolds your project with sdlc.yaml, skills, templates, schemas, and the /sdlc slash command.
Customize
After init, update these for your team:
sdlc.yaml— lifecycle phases, scoring dimensions, thresholds, plugin configsdlc-memory/conventions/— layered convention files loaded in sorted order:00-architecture.md— diagram standards, contract registry format, component identity (built-in)01-security-architecture.md— trust zones, data classification (built-in)10-your-team.md,11-your-domain.md— add your own with10+prefix
Run a Phase
# In your AI coding assistant:
/sdlc refine "user onboarding feature"
The SAGE engine produces REFINE.md, scores it across weighted dimensions, runs fix loops if below threshold, then presents the human gate.
Check Status
/sdlc status
Commands
Slash commands (in your AI coding assistant):
| Command | What It Does |
|---|---|
/sdlc <phase> "input" |
Run a phase with direct input |
/sdlc <phase> |
Run a phase (inputs auto-resolved from upstream) |
/sdlc <phase> amend "feedback" |
Re-enter a completed phase with feedback |
/sdlc status |
Lifecycle dashboard |
/sdlc reconcile |
Re-run stale phases after an amendment |
/sdlc signal list|show|dismiss|inject |
Manage feedback signals |
CLI commands:
| Command | What It Does |
|---|---|
sdlckit init [--type component|initiative] |
Scaffold a project |
sdlckit assign <path> |
Import an assignment into a component repo |
sdlckit observe <title> --components <names> |
Record an operational observation |
sdlckit archive <name> |
Pre-merge cleanup (manifests, state) |
sdlckit update [--migrate-config] [--dry-run] |
Update framework files; optionally migrate config |
sdlckit --version |
Show installed version |
Project Layout
After sdlckit init, your project has two state roots:
my-project/
├── sdlc.yaml # Lifecycle config
├── sdlc-memory/ # Persistent state (git-committed)
│ ├── conventions/ # Team conventions (customizable)
│ ├── contracts/ # Contract registry + spec files
│ │ └── registry.yaml # Components, contracts, interfaces
│ ├── knowledge/ # Patterns and anti-patterns (YAML)
│ ├── components/ # Component profiles (YAML)
│ ├── observations/ # Operational observations
│ └── work/ # Per-initiative work artifacts
├── .sdlckit/ # Runtime state (gitignored)
│ ├── runtime/lifecycle-state.yaml # Phase state, tokens, timestamps
│ ├── events.jsonl # Event log
│ ├── feedback/ # Feedback signals
│ └── reconciliation/ # Reconciliation sessions
└── .claude/ # AI harness files (or .codex/, etc.)
├── skills/sdlc-* # Phase and CLI skill wrappers
├── commands/sdlc.md # /sdlc slash command
└── sdlckit/ # SAGE engine core + templates
Two Modes
Component mode (sdlc.yaml) — single project, linear phase sequence: refine -> architect -> build -> review.
Initiative mode (sdlc-initiative.yaml) — multi-component, multi-repo projects. Discovery and Delivery stages with per-component SAGE loops, stage reviews, knowledge extraction, and assignment handoffs.
Extending with Plugins
SDLCKit separates engine (how the loop runs) from domain knowledge (what the loop produces). Plugins provide richer implementations:
- Phase plugins replace built-in phases with specialized skills, agents, dimensions, and templates
- Connector plugins deliver scored artifacts to external systems (Jira, CI/CD, etc.)
See docs/developer-guide.md for plugin authoring.
Architecture Decision Records
Design decisions for medium-to-complex changes are documented as ADRs in docs/adr/. Pull requests should reference the relevant ADR.
See docs/adr/README.md for the format and process.
Documentation
- Consumer Guide — installation, configuration, daily usage
- Contributor Guide — engine internals, testing
- Developer Guide — building plugins, skills, agents, schemas
- AGENTS.md — AI assistant rules (MUST/SHOULD for Claude, Copilot, Cursor, etc.)
- Architecture Reference — SAGE engine, state management, plugin model, agent model
- ADRs — architecture decision records
- Reverse Architect Quickstart — scan existing codebases
License
Apache License 2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sdlckit-0.3.3.tar.gz.
File metadata
- Download URL: sdlckit-0.3.3.tar.gz
- Upload date:
- Size: 131.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
595908590e1a12c0adc76ec5fcbd2d3ccb43056c0bd13ca170ac623f274bde00
|
|
| MD5 |
6232ed87ec586cb2694e21d2db9b794f
|
|
| BLAKE2b-256 |
4c0dfb2c1251f7876c0d0b79e89bee8ada0ee344a792ce4674deaccb52967631
|
Provenance
The following attestation bundles were made for sdlckit-0.3.3.tar.gz:
Publisher:
publish.yml on atishio/sdlc-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sdlckit-0.3.3.tar.gz -
Subject digest:
595908590e1a12c0adc76ec5fcbd2d3ccb43056c0bd13ca170ac623f274bde00 - Sigstore transparency entry: 1856896893
- Sigstore integration time:
-
Permalink:
atishio/sdlc-kit@8d501d1b2c9cd14827fd5ea0054a2d7ab017d8ad -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/atishio
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8d501d1b2c9cd14827fd5ea0054a2d7ab017d8ad -
Trigger Event:
release
-
Statement type:
File details
Details for the file sdlckit-0.3.3-py3-none-any.whl.
File metadata
- Download URL: sdlckit-0.3.3-py3-none-any.whl
- Upload date:
- Size: 85.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42f0ed1dbbec5b9279ae64ef4703c9daacd98420b9fb8ccf730c6207e7575d27
|
|
| MD5 |
a08a77052786cb914da4a72025bf9ba7
|
|
| BLAKE2b-256 |
324e96644b1e0d953430ec1890838d60161da7f2a9b2f41b31aaa6d3d4ca7f65
|
Provenance
The following attestation bundles were made for sdlckit-0.3.3-py3-none-any.whl:
Publisher:
publish.yml on atishio/sdlc-kit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sdlckit-0.3.3-py3-none-any.whl -
Subject digest:
42f0ed1dbbec5b9279ae64ef4703c9daacd98420b9fb8ccf730c6207e7575d27 - Sigstore transparency entry: 1856896977
- Sigstore integration time:
-
Permalink:
atishio/sdlc-kit@8d501d1b2c9cd14827fd5ea0054a2d7ab017d8ad -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/atishio
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8d501d1b2c9cd14827fd5ea0054a2d7ab017d8ad -
Trigger Event:
release
-
Statement type: