Record ADLC-CR-0001Status OpenControl points 8Packages 31Human attestations 2
§1 Statement

The SDLC defends against human failure.
Your agents fail differently.

Models fail confidently, quickly, and at scale. A process built for forgetting and fatigue is not adequate for hallucination and reward hacking. ADLC gives every phase an explicit exit contract: deterministic gates leave machine-checkable evidence, and two human gates record attestation.

§2 Implement
curl -fsSL https://www.agenticlifecycle.ai/install.sh | sh

macOS and Linux, Node 18+. Then adlc init in your repository. Cursor and OpenCode need one manual step, which the installer prints. See what gets installed. Windows is not supported. Back-out: revert your repository, and uninstall the CLI separately.

Enforcement

In-session hooks are best-effort and harness-dependent. The commit-time CI gate is the unbypassable control.

§3 Chain

Eight control points. A gate closes every one.

Each phase ends on an exit code: 0 passes, 1 is an operational error, and 2 means the gate refused. That is what makes the lifecycle executable in CI rather than aspirational in a wiki.

  1. P0
    Triage
    Exit gaterouted
    At this phaseadlc ticket
    PASS0
  2. P1
    Interrogate
    Exit gatehuman gate
    At this phaseA person
    ATTEST
  3. P2
    Decompose
    Exit gatecold-start
    At this phaseadlc coldstart
    PASS0
  4. P3
    Rail
    Exit gateRED gate
    At this phaseadlc rails-guard
    PASS0
  5. P4
    Build
    Exit gategreen gate
    At this phaseadlc build-gate
    PASS0
  6. P5
    Prosecute
    Exit gatezero findings
    At this phaseadlc prosecute
    PASS0
  7. P6
    Integrate
    Exit gatehuman gate
    At this phaseA person
    ATTEST
  8. P7
    Distill
    Exit gatefeeds the next run
    At this phaseadlc lesson-foundry
    PASS0
Six gates a machine can checkTwo a person has to closeEvidence lands in .adlc/manifest.jsonlVerdicts shown are illustrative

Explore the phases and gates →

§4 The problem

Eight ways agents fail. None of them human.

Each one is answered by a specific gate at a specific phase, which is the only reason the register is worth writing down.

F1
Premature satisfaction
Declares victory the moment code plausibly compiles.
spec-lint · P1
F2
Sycophancy
Agrees with whatever framing the prompt implies.
prosecute · P5
F3
Context rot
Loses the plot as the session grows.
coldstart · P2
F4
Confident hallucination
Invents APIs, files, and facts with total certainty.
premortem · P1
F5
Reward hacking
Games the check instead of doing the work.
hollow-test · P3
F6
Finding-count prior
Stops at the usual dozen findings, whether or not more exist.
review-calibration · P5
F7
Generative bloat
Writes ten files where a diff would do.
lesson-foundry · P7
F8
Coherence loss
Switches models mid-task and leaves the seams showing.
model-router · P4

See which gate kills each one →

§5 Exhibits

Attached to this record: the gate, the question, and the verdict.

Two of these are refusals. They are here because a record that only attaches its passes is not evidence, it is marketing. A gate that never refuses is not a gate at all. The commands and the exit codes are real; the verdict line under each is the record's own one-line summary of the result, not a verbatim transcript of what the tool prints.

EXHIBIT 5.1Is the spec executable?
adlc spec-lintEXIT 0 - PASS
$ adlc spec-lint ticket.md
✓ PASS: every acceptance criterion names a verification method
EXHIBIT 5.2Are the frozen tests untouched?
adlc rails-guardEXIT 2 - REFUSED
$ adlc rails-guard --base main --ticket T42 --tickets .adlc/tickets.json
✗ FAIL: a frozen rail changed
EXHIBIT 5.3Do the tests detect behavior changes?
adlc hollow-testEXIT 2 - REFUSED
$ adlc hollow-test --test-cmd "npm test" --base main
✗ FAIL: one changed-code mutant survived
EXHIBIT 5.4Would review catch a planted defect?
adlc review-calibrationEXIT 0 - PASS
$ adlc review-calibration --review-cmd "adlc review --base {base}" --plants 3
✓ PASS: planted-defect recall met the configured threshold

All 31 packages, grouped by phase →

§7 Economics

Spend heavy at the ends, light in the middle.

The unit of account is cost per merged, verified change. Not tokens per developer per month.

This is the SDLC inverted, because misbuilding is expensive and building is cheap. Review stops being the bottleneck, and it goes deeper than a human team could sustain anyway. Every merge carries an evidence manifest, so auditors get an answer without an engineer translating. Seniortime goes to the two human gates instead of rubber-stamping diffs. And each run costs a little less than the last, as findings distill into lints and skills nobody has to learn twice.

The lifecycle gets cheaper ↗ADLC vs the enterprise SDLC →

§8 Disposition

Rolling this out across an org?

Unreviewable agent output is an audit problem, not just an engineering problem. ADLC produces a gate-by-gate evidence trail your auditors can actually read, and 6 of the 8 gates need no human in the loop to produce it.

Attestation · P1 Interrogate

Is this what I meant?

SIGNED BY A PERSON
Attestation · P6 Integrate

Is this what I meant, running?

SIGNED BY A PERSON
READ THE ROLLOUT →ATTESTThe other 6 close without one
ADLC gates this repository in its own CI handlers. Rails-guard on frozen paths, cross-model attestation on trust-root changes, and a mutation gate that refuses to report a kill rate when the baseline is red. The original essay series ↗This page is laid out as a change record. The commands, exit codes, gate names, and counts are real. The verdict line in each exhibit is this record's one-line summary of the result rather than a verbatim transcript — adlc spec-lint really prints a per-criterion table. ADLC-CR-0001 and its status are an illustrative framing, not a live ticket.
ADLC began as an essay series. Read the original theory at voodootikigod.com ↗MIT · @adlc on npmPrivacy