A workspace of zero-dependency, gate-shaped Node.js CLIs for running software development the way frontier models actually behave — not the way humans do.
The SDLC is 60 years of defenses against human failure modes (forgetfulness, ego, fatigue). Models have a different flaw profile: premature satisfaction, sycophancy, context rot, confident hallucination, reward hacking. The Agentic Development Lifecycle (ADLC) redesigns every phase, gate, and loop around those flaws. Read the full thesis in ADLC.md.
Every phase, gate, and loop in this lifecycle must trace to a specific model failure mode it defends against, or a specific model property it exploits. If it traces to a human failure mode instead, cut it.
Each tool is a small CLI that enforces one machine-checkable gate. They share a runtime
convention (.adlc/ for tickets, ledgers, and gate evidence) and a common contract
(see CONVENTIONS.md) so 22 independently built tools feel like one
product.
One command installs the gate toolkit and the native ADLC integration for every agent harness it finds on your machine:
curl -fsSL https://www.agenticlifecycle.ai/install.sh | shThen cd into a repo and run adlc init.
Requires macOS or Linux and Node.js 18+ — the installer checks Node and stops if it is missing rather than installing a runtime for you. Harnesses you do not have are left alone.
Automated: Claude Code, Codex, GitHub Copilot, pi, Google Antigravity, herdr. Two need a step the installer cannot take for you, and it prints them: Cursor installs plugins through its in-app marketplace, and OpenCode scaffolds the current directory, so it must be run inside your repo rather than from wherever you invoked the installer. pi is also skipped below Node 22.19, which is its own floor.
Windows is not supported yet. A windows-latest run of the core gate suites
passed 6 of 28: the shared bin-resolution path builds D:\D:\… from an
already-absolute Windows path, and most gates die on it. Use WSL until that is
fixed. (adlc fleet is POSIX-only by design regardless.)
Piping a remote script to a shell is a real tradeoff — see ADR-0010 for why we serve one and what controls sit behind it.
For CI, or to read it first, fetch and run as separate steps:
tmp=$(mktemp -d) \
&& curl -fsSL https://www.agenticlifecycle.ai/install.sh -o "$tmp/install.sh" \
&& [ -s "$tmp/install.sh" ] \
&& sh "$tmp/install.sh"Every link matters, including the first: if mktemp fails, $tmp is empty and
an unchained curl -o "$tmp/install.sh" resolves to /install.sh — a write to
the filesystem root. Without the non-empty check, a failed download still runs
sh on an empty file and reports success anyway.
In the piped one-liner the exit status is sh's, not curl's — a failed or
empty download makes sh read nothing and exit 0, reporting success having
installed nothing. Two steps make a failed download fail.
Each package publishes independently under the @adlc npm scope. For normal use,
install the dispatcher and run tools through the stable adlc <tool> surface:
npm install -g @adlc/cli
adlc spec-lint <spec.md>
# or run without installing
npx @adlc/cli spec-lint <spec.md>Individual packages can still be installed for package development, but Codex skills, hooks, CI, and lifecycle docs should use the dispatcher.
| Phase | Packages |
|---|---|
| Spec & ticket shaping | parallax · spec-lint · premortem · coldstart · ticket-prune |
| Execution supervision & rails | preflight · model-router · merge-forecast · rails-guard · build-gate · flail-detector · consensus-fix · runner |
| Review evidence & calibration | behavior-diff · gate-manifest · hollow-test · prosecute · review-calibration · model-ratchet · gate-fuzzing |
| Compounding defenses | lesson-foundry · rejection-mining · skill-rot |
| Shared foundation | @adlc/cli · @adlc/core |
See docs/package-reference.md for binaries, command forms, and per-package detail, and docs/toolkit.md for how the packages fit the ADLC flow.
This repo is also a Claude Code plugin — it makes the whole lifecycle usable from
inside the editor (phase-routing skill, ticket/distill/maintain commands, a
prosecutor subagent, and hooks that fire the gates automatically), with no API
keys (Claude is the model via --prompt-only).
Recommended: install with plugins, the
vendor-neutral installer that auto-detects your agent tools and installs the plugin
into each (Claude Code today; other harnesses as their plugin packages publish — each
has a native install path below; see ADR-0009
for why this is the preferred path):
npx plugins add voodootikigod/adlc # install the plugin into your agent tool(s)
npm install -g @adlc/cli # the gate toolkit the plugin shells out to
/adlc:adlc-init # bootstrap .adlc/ in your repo (once)Already using Claude Code's native plugin marketplace? That path still works:
npm install -g @adlc/cli
/plugin marketplace add voodootikigod/adlc
/plugin install adlc@adlc
/adlc:adlc-initSee docs/integrations/claude-code.md for the full adoption guide.
Each agent tool has its own native integration. See the guides:
- Codex — hooks-based integration.
- Cursor — preToolUse rails dispatcher, hook parity, command suite + prosecutor loop, rules.
- Google Gemini — native plugin system.
- OpenCode — full phase-router coverage.
- Pi — TypeScript Extension integration.
For the ~70 harnesses that support skills.sh but have no native ADLC plugin, the harness-neutral skill catalog is one command:
npx skills add voodootikigod/adlc # the harness-neutral skill catalog
npm install -g @adlc/cli # the gate toolkit the skills shell out to
adlc init # bootstrap .adlc/ in your repo (once)This channel installs skills only — the phase router, the bootstrap guide,
and the P5 prosecution workflow, all driven through the adlc CLI. It does
not install hooks, MCP tools, agents, or in-session rail enforcement. If
your agent is one of the seven with a native plugin above, install that
instead: it is a strictly stronger integration. With the skills catalog, the CI
rails-guard job in docs/ci/rails-guard.yml is
your only rail control — wire it and make it a required check.
| Directory | Contents |
|---|---|
packages/ |
The toolkit: 22 zero-dependency, gate-shaped CLIs |
plugins/adlc-claude-code/ |
Claude Code integration (skill, commands, hooks, subagent) |
plugins/adlc-codex/ |
Codex integration (hooks and skills; no TypeScript package) |
plugins/adlc-gemini/ |
Google Gemini integration — Antigravity and JetSki (native plugin system, skills, hooks) |
plugins/adlc-pi/ |
Pi harness integration package (TypeScript, skills, tests) |
docs/ |
Lifecycle thesis, integration guides, ADRs, CI templates |
.claude/commands/ |
Maintainer commands for this repo (release workflow) |
scripts/ |
Release, smoke test, and CI helper scripts (not published; run by npm test and CI) |
.adlc/ |
Runtime data directory (tickets, gate evidence — gitignored except example) |
.claude-plugin/ |
Repo-root marketplace manifest (marketplace.json) — the index npx plugins add voodootikigod/adlc (and the native /plugin marketplace add voodootikigod/adlc) read to resolve the plugin. See ADR 0003 for the subdirectory-source assumption and Pre-GA checklist. |
Every tool follows the same contract (CONVENTIONS.md):
- Zero runtime dependencies — Node 18+ built-ins and
@adlc/coreonly. --prompt-onlyon every LLM-backed tool — print the exact prompt and exit, so the tool is usable with zero API keys (paste into any harness).--jsonon every tool — machine-readable output for orchestrators.- Exit codes are the gate:
0= gate passes ·1= operational error ·2= gate fails. - Never mutate the working tree without a flag — writers default to dry-run.
- Tests run offline — no network, no API keys, no trace left behind.
git clone https://github.com/voodootikigod/adlc.git
cd adlc
npm install
npm testRequires Node.js 18 or newer.
- ADLC.md — the full lifecycle thesis and flaw inventory.
- docs/integrations/claude-code.md — adopt the ADLC inside Claude Code (plugin).
- docs/integrations/codex.md — native Codex integration guide.
- docs/integrations/pi.md — pi coding-agent harness integration guide.
- docs/ — toolkit guide, package reference, ADRs, and narrative essays.
- CONVENTIONS.md — the contract every package follows.
Contributions are welcome. Please read CONTRIBUTING.md for the dev setup, the package contract, the testing requirements, and the PR process. By participating you agree to our Code of Conduct.
MIT © Chris Williams