Skip to main content

SDLCKit — AI-governed SDLC lifecycle engine with SAGE loop

Project description

SDLCKit

Governed AI quality loops for every SDLC phase.

Beta Python 3.11+ License: Apache 2.0

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 config
  • sdlc-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 with 10+ 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


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

sdlckit-0.3.3.tar.gz (131.4 kB view details)

Uploaded Source

Built Distribution

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

sdlckit-0.3.3-py3-none-any.whl (85.8 kB view details)

Uploaded Python 3

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

Hashes for sdlckit-0.3.3.tar.gz
Algorithm Hash digest
SHA256 595908590e1a12c0adc76ec5fcbd2d3ccb43056c0bd13ca170ac623f274bde00
MD5 6232ed87ec586cb2694e21d2db9b794f
BLAKE2b-256 4c0dfb2c1251f7876c0d0b79e89bee8ada0ee344a792ce4674deaccb52967631

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdlckit-0.3.3.tar.gz:

Publisher: publish.yml on atishio/sdlc-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 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

Hashes for sdlckit-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 42f0ed1dbbec5b9279ae64ef4703c9daacd98420b9fb8ccf730c6207e7575d27
MD5 a08a77052786cb914da4a72025bf9ba7
BLAKE2b-256 324e96644b1e0d953430ec1890838d60161da7f2a9b2f41b31aaa6d3d4ca7f65

See more details on using hashes here.

Provenance

The following attestation bundles were made for sdlckit-0.3.3-py3-none-any.whl:

Publisher: publish.yml on atishio/sdlc-kit

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page