
minh-tam-solution/sdlc-enterprise-framework
Developer toolsAI+Human software delivery methodology with risk-tiered governance, executable gates, an evidence-based lifecycle and tool-agnostic agent integration. MIT.
Overview
Latest release: v7.1.2-alpha · Main: Unreleased · Release status: ALPHA : 7.0.0 (the framework version live docs are verified against, read by scripts/check-version-declared.sh) | : MIT : ACTIVE : @dttai71 : first-time readers and teams deciding whether to adopt the framework : 2026-12-26 Who reads this: anyone deciding whether to adopt the framework, or opening this repo for the first time. When: before anything else. It takes ten minutes; the layout and reading order are at the end of this page. Version 7 is the framework's second generation: rebuilt, not upgraded. The first generation (v6 and earlier) is archived unmodified in archive/; what still holds was harvested into this tree, one row per source in MIGRATION-MAP.md. Nothing from the first generation applies unless it has a row there. 1. A methodology for building software with AI agents and a few people — often one. 2. You own four assets. Vendors supply the rest: agents, models, runtimes, in-session orchestration. 3.
README
SDLC Enterprise Framework
Latest release: v7.1.2-alpha · Main: Unreleased · Release status: ALPHA
Version: 7.0.0 (the framework version live docs are verified against, read by scripts/check-version-declared.sh) | License: MIT
Status: ACTIVE Owner: @dttai71 Consumer: first-time readers and teams deciding whether to adopt the framework Review by: 2026-12-26
Who reads this: anyone deciding whether to adopt the framework, or opening this repo for the first time. When: before anything else. It takes ten minutes; the layout and reading order are at the end of this page.
What the framework is
Version 7 is the framework’s second generation: rebuilt, not upgraded. The first generation (v6 and earlier) is archived unmodified in archive/; what still holds was harvested into this tree, one row per source in MIGRATION-MAP.md. Nothing from the first generation applies unless it has a row there.
- A methodology for building software with AI agents and a few people — often one.
- You own four assets. Vendors supply the rest: agents, models, runtimes, in-session orchestration.
- Rules sit in three classes. Only deterministic checks block.
- Controls scale with the risk of the thing being built, not with team size.
- A rule names a runnable command and the real incident (burn case) that justifies it.
- A rule without a command is reference material, not a rule.
- Gates default to ADVISORY with a counter and a deadline, and climb only on measured rates. A narrow control against irreversible harm may enter MACHINE directly — only under the exception contract in
controls/rule-contract.md. - Incidents flow back into rules through one path (
lessons-to-rules). - The framework gates itself in CI: doc count, rule tables, version declarations.
- Promise: fewer rules, more of them enforced. Every section says what it shortens.
The four assets you own
| Asset | What it is | Where it lives |
|---|---|---|
| Policy | tiers, rules, hats (role files), approvers | one policy repo (adoption) |
| Repo knowledge | domain context an agent needs: AGENTS.md, pointers to sources |
each product repo |
| Runnable gates | scripts with exit codes 0/1/2 and a --selftest |
scripts/ here; the policy repo |
| Eval set | fixed cases with a published taxonomy, to compare agents and configs | the policy repo |
Everything else is rented: agent CLIs, subagents, skills, hooks, models, CI runners.
Adapters to them are generated and disposable. The policy is not. This repo’s skills/ are such adapters: they route an agent to the files that hold the rules, and are not a fifth asset.
Shortens: you build and maintain nothing a vendor already ships.
Tier by risk of the artefact, not headcount
| Tier | Any one of these, derived from evidence | Skip risk if under-tiered |
|---|---|---|
| LITE | no production deploy · the only user is the author · no real data | low — a sandbox breaks |
| STANDARD | real internal users · git revert restores state · no money, customer or personnel data |
colleagues blocked for hours |
| PROFESSIONAL | others decide on its numbers or commands · schema migrations on live data · users outside the team | wrong numbers drive decisions for a cycle; code rollback cannot undo a migration |
| ENTERPRISE | money path · customer or personnel PII · accounting or contracts · irreversible side-effects | money lost, data leaked, invoices issued — not undoable |
- Tier = max(repo evidence, declared service metadata, deploy evidence). Declare up only; below evidence is a violation.
- One person building ENTERPRISE gets ENTERPRISE gates. Three people building a sandbox get no ritual.
- Detail:
controls/tiers.md.
Three classes
| Class | Definition | On failure |
|---|---|---|
MACHINE |
deterministic; same input, same result; no judgement | blocks (fail-closed) |
REVIEW |
a named reviewer judges defined evidence | flags, does not block |
ADVISORY |
a lens; no pass/fail criterion | counted, with a deadline |
A probabilistic model is never MACHINE, however accurate. It adds a differently-blind check. It never replaces a deterministic one.
Gate contract
Every gate is a script you own. Exit 0 = pass. Exit 1 = cannot measure — the default code of anything that crashes lands here, so a crash is never reported as a violation. Exit 2 = violation, and the script must return it on purpose. ≥3 is reserved. No exit $? that passes another tool’s code through. The last stdout line is a label: result=pass|insufficient_evidence|violation gate= reason= [fix=…]. Every gate ships --selftest with at least one red case that must fail and one green case that must pass. A gate nobody has made red is unmeasured, not green. Full contract and rule table: controls/rule-contract.md.
Adopt in a repo
- Policy repo. One repo holds tiers, rules, hats, approvers, gates. Product repos pin a release tag; generated files record the resolved SHA.
- Generated adapters.
adapters/gen.shwrites the vendor files (for example Claude Code and Qwen Code settings) from the policy. A hand edit is drift; CI catches it. - Reusable workflow. Product CI calls the policy repo’s workflow at the pinned ref. The tier comes from the policy, never from an input the product sets.
Day one for a developer: clone, open the agent CLI. Nothing to remember. Detail: adoption/adoption.md.
Layout of this repo
Folders are named by what kind of document they hold. Nothing is named after a version: the version is in each file’s SDLC Framework Version field, in git tags and in CHANGELOG.md, so paths survive the next major version.
| Folder | Kind | Files |
|---|---|---|
core/ |
methodology that outlives tools | constitution · lifecycle (ten stages) |
policies/ |
how this repository’s own artifacts are governed | artifact-lifecycle |
controls/ |
rules and gates that a machine checks | rule-contract · tiers · gates · risk-floor-paths · review-and-ci-evidence |
standards/ |
what every repo follows | project-structure · documentation · testing · security · change-and-deployment · observability · integration-and-data · collaboration |
ai-engineering/ |
working with agents | context-and-hats · agent-operations |
adoption/ |
bringing the framework to an organisation or repo | adoption |
practices/ |
how to do it well | lessons-to-rules |
templates/ |
copy-and-edit files: agent context, project docs | templates/ |
scripts/ |
gate scripts, each with --selftest |
scripts/ |
skills/ |
agent skills that point to the files here; non-normative, the cited file is the authority | skills/ |
archive/ |
v6.x and earlier, read-only; where each old document went: MIGRATION-MAP.md, rows in migration-map/ by live area |
— |
Reading order:
| You are | Read |
|---|---|
| deciding whether to adopt | constitution → tiers → adoption |
| a developer starting a repo | lifecycle → project-structure → documentation → testing → security |
| shipping and running a service | change-and-deployment → observability |
| building or consuming an API, event or shared data | integration-and-data → testing → change-and-deployment |
| handing work over, escalating, or recording a decision | collaboration → context-and-hats |
| writing or switching on a gate | rule-contract → gates → risk-floor-paths |
| renaming, moving or retiring anything here, or cutting a release | artifact-lifecycle |
writing AGENTS.md or a hat |
context-and-hats |
| running agents on shared repos, or approving their changes | agent-operations → review-and-ci-evidence |
| closing an incident | lessons-to-rules |
Website: the v6 site remains at its last deployment; v7 has no site (no new components).
Lineage
v7 is the second generation of one methodology, not a new framework: the first generation (v1–v6.x) evolved release by release; the second was rebuilt. The goals never changed: know what each member (human or AI) is doing, know what they have done, coordinate them.
| Generation | Era | How it tried | What happened |
|---|---|---|---|
| First (v1–v6.x) | documents (v1–v5) | documents and stages describe the process | people had to remember it |
| First (v1–v6.x) | platforms (v6.x) | platforms routed work through custom software (orchestrator, agent gateway) | vendors shipped execution; the control plane left was friction, and usage went to zero |
| Second (v7) | — | read the traces work already leaves (PRs, CI, deploy logs); build only policy, gates, eval, repo knowledge | this repo |
- What the first generation got right stays. The ten stages, the
docs/00–09project layout and the documentation standards are kept, shortened, incore/lifecycle.mdandstandards/. The second generation adds gates that check them instead of relying on memory. - v6.x reached 189 live files and was archived on 2026-09-25. Today the framework governs its documents by owner, consumer and review date (DOC-2), not by a document ceiling. The history stays in
CHANGELOG.md. - Archive rule. Archive, never delete. From 2026-09-26 an archived file is not edited at all; where its content went is recorded in
MIGRATION-MAP.md. (Files archived on 2026-09-25 carry a legacy note; those notes stay.) A file that changes meaning without a record breaks the past silently — no later gate catches that. - Ownership rule. Every live doc names an Owner, a Consumer and a Review-by date; a missing field or a passed date blocks (
scripts/check-doc-ownership.sh). The doc count above 40 is only flagged (scripts/check-doc-count.sh): forty docs with owners and readers beat thirty that merge five topics to pass a number. Each doc ≤150 lines. SeeCONTRIBUTING.md.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add minh-tam-solution/sdlc-enterprise-framework