AI-driven SDLC + agent workflow runner — drives Claude through any pipeline you
declare in .aidlc/workspace.yaml. Use it through the VS Code Builder UI or
straight from the terminal.
This is a monorepo managed with pnpm workspaces.
| Package | Path | Purpose |
|---|---|---|
aidlc (extension) |
packages/extension/ |
VS Code extension. Builder UI for workspace.yaml, sidebar for active runs, run-state commands. Marketplace + Open VSX as hueanmy.aidlc. |
@aidlc/core |
packages/core/ |
Pure-TypeScript engine: Zod schema, workspace loader, runner registry (DefaultRunner shells out to claude), pipeline state machine. No import 'vscode' — runs identically in CLI / tests / cloud. |
aidlc (CLI) |
packages/cli/ |
Standalone terminal CLI. Manages workspace.yaml, drives runs end-to-end via Claude, no VS Code required. See packages/cli/README.md. |
# (when published to npm)
npm install -g aidlc
# (locally during development)
pnpm install && cd packages/cli && npm linkaidlc init # scaffolds .aidlc/workspace.yaml
aidlc preset apply code-review # or: sdlc, release-notes
aidlc validate # check schema
aidlc doctor # verify claude binary + authaidlc run start review-pipeline --context epic=ABC-123
aidlc run exec <runId> # spawns claude, streams output, advances on success
# or fully unattended:
aidlc run exec <runId> --auto-approveaidlc watch # live-rendered table of all runs
aidlc tail # one-line stream of state transitions
aidlc dashboard # browser UI on http://127.0.0.1:8787Install the extension. Edits made by either side update within ~200ms because
both consume the same .aidlc/workspace.yaml and .aidlc/runs/*.json.
pnpm install # installs all packages + creates symlinks
pnpm build # tsc -r in every package
pnpm test # @aidlc/core unit tests
pnpm package:extension # build .vsix for the extensionThe full reference lives in packages/cli/README.md.
aidlc init # scaffold .aidlc/workspace.yaml + skills/ + runs/
aidlc validate # parse + Zod-validate workspace.yaml
aidlc doctor # workspace + claude binary + auth + env health checks
aidlc list [--json] # print agents, skills, pipelines
aidlc skill add | list | show | remove # 5 built-in templates
aidlc agent add | list | show | remove
aidlc pipeline add | list | show | remove
aidlc preset apply | save | list # built-ins: code-review, release-notes, sdlc
aidlc epic list [--status pending|in_progress|done|failed] [--json]
aidlc epic status <id> # phase-by-phase view of one epic
aidlc run start <pipeline> [--id …] [--context epic=ABC-123]
aidlc run mark-done <runId> # validate produces, advance or await review
aidlc run approve <runId> [--comment …]
aidlc run reject <runId> --reason …
aidlc run rerun <runId> [--feedback …]
aidlc run delete <runId> [--force]
aidlc run open <runId> [--path]
aidlc run exec <runId> [--until …] [--auto-approve] [--dry-run]
aidlc run verify <runId> # re-check recorded artifacts still exist (drift check)
aidlc run report <runId> [--format md|json] [--output <file>]
aidlc step start <runId> <step> # → awaiting_work, moves pointer
aidlc step done <runId> <step> [--reason …]
aidlc step skip <runId> <step>
aidlc step reset <runId> <step> # → pending
aidlc step set <runId> <step> <status> # raw any StepStatus
aidlc step jump <runId> <step> # auto-approve earlier pending steps
aidlc watch [runId] # cli-table3 view, redraws on any state change
aidlc tail [runId] # streams transitions as one-line events
aidlc dashboard [--port …] [--host …] # browser UI with action buttons
aidlc agent run <agentId> [--message …] [--context epic=ABC-123] [--dry-run]
<step> accepts a 0-based index or an agent id. Pass -w <path> (or
AIDLC_WORKSPACE=<path>) to point at a workspace other than cwd.
┌────────────────────┐
│ workspace.yaml │ ← single source of truth
│ (Zod validated) │
└──────────┬─────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
│ CLI │ │ Extension │ │ Future │
│ (Node) │ │ (VS Code)│ │ cloud │
└─────┬─────┘ └─────┬─────┘ └───────────┘
│ │
└────────┬─────────┘
│
┌──────▼──────┐
│ @aidlc/core │ ← shared engine
│ (no UI) │
└──────┬──────┘
│
┌──────▼──────┐
│ DefaultRunner│ → spawns `claude --print --append-system-prompt …`
└─────────────┘
│
┌──────▼──────┐
│.aidlc/runs/ │ ← state, watched by both UIs (live sync)
│ *.json │
└─────────────┘
Both surfaces read and write the same files; the OS handles atomic renames so neither side ever sees a half-written run state.
- VS Code Marketplace: hueanmy.aidlc
- Open VSX: hueanmy.aidlc
MIT