Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

VKirill/claude-lane-stack

Open more actions menu

Repository files navigation

Claude Lane Stack — a multi-agent AI coding conveyor: one human, one AI project manager, worker lanes, auto-merge to main

🏭 Claude Lane Stack

A small AI coding factory for one person · v1.6.0

Multi-agent orchestration for Claude Code — you talk to one AI project manager, it runs durable AGY or Grok work through acceptance, merges finished code to main, and sends independent review/fixes through the night shift. No five chats. No manual merges.

License: MIT Release Claude Code Beginner guide Telegram

🌍 README: Русский · 简体中文 · 日本語 · Español · Deutsch · Français · 한국어 · Português 🐣 Beginner guide: EN · RU · 中文 · 日本語 · ES · DE · FR · KO · PT


📌 Table of contents


💡 Why this exists

Working with AI coding tools usually looks like this: five chat windows, copy-pasted snippets, branches you merge by hand at midnight, and no one checking anyone's work.

Claude Lane Stack turns that into a conveyor:

😩 Five chats 🏭 Lane Stack
You re-explain context to every model One PM holds context, workers get task cards
Models overwrite each other's files Each card lists owned paths — workers stay in their lane
Nobody reviews the AI's code A typed night review/fix loop (Codex → AGY/Grok → re-review)
You merge branches manually The PM merges to main after checks pass
Next morning: "what were we doing?" /resume-project — Now / Blocked / Next in seconds
Onboard is a thin CLAUDE stub Deep forensic passport on mature repos
Long writer runs die at ~2 min run-controller + user-systemd — the whole lifecycle survives host cleanup
You cannot tell if work is alive One visible run-supervisor + exact Board runtime stages
Parallel tasks wait for the slowest Progressive accept — detached AGY/Grok + separate provider/verify pools

No task database. No required cloud service. Plain files + plain git — everything is inspectable in your repo.


👥 Who it's for

  • 🧑‍💻 Solo developers who want an agentic coding workflow — parallel AI agents without chat chaos
  • 🚀 Indie hackers who'd rather describe features than babysit branches
  • 🧠 Vibe-coders — you know what you want; the factory handles how
  • 🏢 A one-person agency running several client repos with the same discipline

Tip

Never heard the word "orchestration"? Start with the Beginner guide — it explains everything as a small factory, zero jargon.


🧩 How it works

Three worker lanes — fast write, heavy write, review — merging into the main branch under the PM's control

You talk to one agentdev-orchestrator, the project manager. It routes work across lanes:

flowchart LR
    subgraph you ["🧑 You"]
        A["Plain language:<br/>«add dark mode»"]
    end
    subgraph pm ["🤖 PM — dev-orchestrator"]
        B["Plan → task cards<br/>.agents/runs/"]
    end
    subgraph lanes ["👷 Worker lanes (optional)"]
        D["🔧 AGY / Grok — heavy writes"]
        E["🌙 Codex — night review"]
    end
    A --> B
    B --> D
    D -->|exact checks| F[("📦 main")]
    F -.-> E
    E -.->|typed findings / writer fixes| B
Loading
Role Who What they do
👑 Owner You Say what you want (chat may be any language)
🤖 Project manager Claude Code agent dev-orchestrator Plans, dispatches, verifies, merges
🔧 Write lane AGY 3.6 or Grok (optional) Implement task cards (detached via lane-bg)
🔍 Review / write / onboard Codex (optional) Night review/re-review, emergency write, project passport
🗂️ Task cards YAML in .agents/runs/ Factory floor — fully inspectable
📦 Official code Git branch main Where every successful job ends

Language policy: durable files (contracts, CLAUDE, reports, docs) are English. Chat with the human may be Russian (or your language) — the PM translates. See docs/LANGUAGE.md.

Models (Codex): GPT-5.6 only — Sol (review / deep / high-risk), Terra (scoped write / docs), Luna (trivia only). No 5.5. See docs/ROUTING.md.

Note

Only Claude Code is required. Missing workers are fine — agents-doctor detects what's installed and the PM adapts, down to pure claude-only mode. Linux AGY/Grok writer lanes additionally require bubblewrap (sudo apt install bubblewrap on Ubuntu) for the read-only .agents boundary.


🚀 Quick start (3 commands)

# 1️⃣  Install the stack — once per computer
git clone https://github.com/VKirill/claude-lane-stack.git
cd claude-lane-stack && git checkout v1.6.0 # or: main
./install.sh
export PATH="$HOME/.agents/bin:$PATH" # or open a new terminal

# 2️⃣  In YOUR project — detect available workers, once per repo
cd /path/to/your-project
agents-doctor --apply .

# 3️⃣  Start the PM and talk normally
claude --agent dev-orchestrator

Then in chat:

Command When
/project-onboard First time on a repo — passport + docs (auto minimal/full + fast/deep)
/project-onboard deep Force forensic analysis
/resume-project Cold start after a break — Now / Blocked / Next

Important

/resume-project is a "welcome back" command — not an installation step.

📖 Walkthrough: docs/BEGINNER.md · Release notes: v1.6.0


🧭 Onboard 2.0 — scenario + depth

First-time setup is not a thin stub. project-onboard + Codex build a real passport.

Axis 1 — Scenario (what to seed)

🟢 minimal 🟣 full
When score < 5 (small / greenfield) score ≥ 5 or multi-package monorepo
Seeds CLAUDE · AGENTS · ARCHITECTURE · memory · plans + GOTCHAS · GLOSSARY · TESTING · deployment · nested apps/*/CLAUDE.md · SECURITY when domain-heavy

Axis 2 — Depth (how hard Codex digs)

fast 🔬 deep (default on full)
Explore top dirs + manifests entrypoints, top modules, 3–7 flows, wiki↔code, run tests
Model gpt-5.6-terra high gpt-5.6-sol high
Report passport filled MODULES_READ · FLOWS · WIKI_MISMATCHES · VERIFY
project-onboard . # auto scenario + depth
project-onboard . --deep # force forensic
project-onboard . --minimal --fast

Writes:

  • .agents/onboard.scenario.yamlscenario + depth + score
  • .agents/runs/_onboard/artifacts/001/deep-scan.md — evidence pack for Codex
  • Prefer pointers to existing wiki (gotchas.md) over UPPERCASE duplicates

Full guide: docs/ONBOARD-SCENARIOS.md


🏃 Lanes that finish — background survival

Claude Code kills foreground Bash around ~2 minutes. That is a host limit, not lane-exec.

Long AGY/Grok jobs start through the typed control plane. AGY 3.6 is the default; choose Grok explicitly with --provider grok:

RUN_DIR="$(run-init "$(pwd)" "$SLUG" --score 7)"
run-validate --run-dir "$RUN_DIR" --phase pre-dispatch
run-controller start --run-dir "$RUN_DIR" --project-cwd "$PROJECT_CWD" --provider grok
run-controller watch --run-dir "$RUN_DIR" --timeout 240
run-controller status --run-dir "$RUN_DIR" --json
Tool Role
run-controller durable DAG dispatch, persisted AGY/Grok retry, typed Codex fallback, progressive owns/verify/accept
lane-ctl typed start/status/events/tail/retry/fallback/cancel/verify/accept control plane
lane-bg low-level transient user-systemd service; explicit nohup fallback
lane-exec activity-aware idle + absolute max on the detached process
lane-session resumes AGY/Grok context and runs one-shot Codex fallback; provider default 5/max 10

One read-only run-supervisor visibly watches the durable controller until the run is accepted or blocked. lane-supervisor remains a one-action diagnostic profile. Verification has a separate default 2/max 10 pool. Details: docs/LANE-EXEC.md

AGY and Grok no longer relearn the repository on every task in a run. The first task creates a conversation; later related tasks resume it. A busy conversation is never shared concurrently—parallel tasks lease another slot (five by default, configurable from one to ten). Sessions rotate after seven successful tasks by default, on failure, or when the worktree/model changes. Codex review stays independent and does not reuse writer context. For a sanitized model/catalog/quota/auth/transport availability failure, the controller records a 30-second retry deadline, replays the exact selected request once, then may use one fixed gpt-5.6-sol + high writer attempt. It still requires the same report digest, ownership, verification, and acceptance receipts; this is recovery, not silent model substitution or daytime review.

Typed night shift

The unattended path is a receipt-driven review and repair loop:

night-shift /path/to/project          # one repository
night-shift-all --jobs 2              # active repositories, bounded 1–10

Codex uses the installed night-review profile: gpt-5.6-sol, xhigh, read-only, approval never. It reviews bounded diff chunks and stores every concrete or systemic issue under .agents/findings/<fingerprint>.json; daily REVIEW, OPEN, and TODO files are projections. The selected AGY/Grok repair writer runs without subagents in an isolated worktree. If two primary attempts end in a classified model/catalog/quota/auth/transport availability failure, the runner may use the same single fixed Codex Sol high recovery attempt as the daytime controller. A finding closes only after registered verification, ownership checks, a fresh Codex xhigh re-review, and acceptance.json.

Night merge/push is disabled unless the project opts in:

# .agents/night-shift.yaml
auto_merge: false
verification_executables: [] # optional project-specific executable basenames

Unsafe generated shell commands become needs_human; they are never executed. Schema-v2 verification is also enforced by lane-ctl itself: the allowlist is snapshotted at start and the parsed argv runs directly without a shell.


⚡ Durable progressive accept — visible, no join-wait

Multi-task runs no longer wait for the slowest concurrent lane before accepting finished ones.

  1. Source-read-only run-supervisor starts one durable controller and stays visible through bounded watches.
  2. The detached controller releases lane-bg → lane-exec → lane-session → provider tasks from the DAG.
  3. Complete report → ownership check → independent verification → acceptance; AGY/Grok retries once, then only eligible availability failures may use one Codex Sol high fallback.
  4. acceptance.json is written immediately; the next ready task fills the free slot (provider default 5/max 10).

Claude uses one visible supervisor per run, not one agent per provider. The deterministic controller survives if that Claude task or session exits. There is no daytime LLM review; the typed night shift remains separate. See docs/LANE-EXEC.md · skills/orchestrator-lanes.

📋 Task cards: how workers stay in their lane

Each worker cell has a job card — a YAML contract listing goal, owned files and verification commands

Every job is a small YAML contract in .agents/runs/ — created by the PM, obeyed by workers (English):

schema_version: 2
id: "001"
title: Add dark mode
risk: low
lane: grok             # default writer; agy remains supported
project_cwd: /absolute/path/to/worktree
read_first: [AGENTS.md]
interfaces: ["ThemeToggle(settings)"]
invariants: ["Existing light theme remains the default"]
out_of_scope: ["Server-side account preferences"]
expected_outputs: ["Persistent accessible theme toggle"]
objective: Dark theme toggle on the settings page
owns_paths: # 🔒 the ONLY files this worker may touch
  - src/settings/**
  - src/theme.css
never_touch:
  - .env*
depends_on: []
acceptance:
  - Theme choice persists across reloads
verify: tests
verification:
  - command: npm test
    cwd: /absolute/path/to/worktree
    timeout_sec: 600
  • 🔒 owns_paths — parallel workers can't collide: check-owns-paths fails the task if a worker strays
  • verify — merge is blocked until checks pass
  • 📜 Cards stay in git history — audit trail of what every agent did

Details: docs/FILE-CONTRACT.md


📦 You never merge — the PM does

The PM robot places verified code into the main vault while the developer relaxes with coffee

The end of every successful job is the same: verified code lands on main, merged by the orchestrator via wt-merge-main after exact acceptance checks. Independent review and repair run at night. Workers build in isolated git worktrees.

Warning

If an agent ever asks you to resolve branches — that's a bug in the flow. Tell the PM: «merging is your job».

Rules: docs/SOLO-ORCHESTRATION.md


🧾 Commands cheat-sheet

You type these

Command / phrase What it is When
./install.sh Install kit into ~/.agents Once per computer
agents-doctor --apply . Detect CLIs → routing profile Once per project
claude --agent dev-orchestrator The only chat you need Every session
/project-onboard Passport via Codex (scenario + depth auto) First time on a repo
/project-onboard deep Force forensic onboard Mature / messy repos
«Add dark mode…» Work request — any language Features & fixes
/resume-project Now / Blocked / Next After a break
«It's stuck» PM checks silent workers Long silence
🤖 Usually only the PM / implementers type these
Command What it is
run-board Job scoreboard
run-init / run-validate / run-finalize Versioned run contract lifecycle
run-controller start/watch/status Durable daytime lifecycle + exact live status
lane-session status --run-dir .agents/runs/<slug> Inspect that run's AGY/Grok session pool
wt-create / wt-merge-main Worktree + merge into main
check-owns-paths Did the worker stay in its file list?
lane-ctl Typed detached lifecycle control + verify + acceptance receipt
lane-bg / lane-exec / lane-session Low-level process lifetime, activity timeouts, and warm provider pool
lane-heartbeat / lane-stall-check Alive? Silent?
project-onboard Shell seed + deep-scan (Codex fills)
docs-maintain-project Nightly/daily docs honesty
project-memory-init PROGRESS / LESSONS
night-audit Housekeeping
night-review Typed read-only review + canonical findings
night-shift / night-shift-all Resumable review → AGY/Grok repair → re-review

🚦 Capability profiles

agents-doctor detects both writer CLIs. It prefers AGY when both are healthy; use --writer-provider grok to select Grok for a project.

Profile You have Write lane Review lane
full AGY and/or Grok + Codex Grok default; AGY selectable Codex Sol
claude-agy AGY AGY Claude
claude-grok Grok Grok Claude
claude-codex Codex Codex Terra/Sol Codex Sol
claude-only Claude Code only Claude subagents Claude subagents
agents-doctor # report
agents-doctor --apply . # save into project

More: profiles/README.md · docs/ROUTING.md


🧱 What's in the box

claude-lane-stack/
├── agents/ # claude PM + agy/grok/codex lanes (implementers, onboard, review)
├── bin/ # agents-doctor, project-onboard, lane-ctl, lane-bg, lane-exec, lane-session,
│ # wt-*, run-board, docs-maintain-*, …
├── skills/ # orchestration, contracts, memory, onboard,, …
├── profiles/ # full → claude-only
├── hooks/ # shell guard, code-quality, session ledger
├── templates/ # ARCHITECTURE, GOTCHAS, TESTING, deployment, README anamnesis, …
├── docs/ # beginner + deep dives (table below)
└── install.sh # → ~/.agents

Inside your project after onboard:

your-app/
├── CLAUDE.md # always-on rules (≤200 lines body)
├── AGENTS.md # pointer → CLAUDE.md
├── PROGRESS.md / LESSONS.md # living memory
├── .agents/
│ ├── onboard.scenario.yaml # scenario + depth + score
│ ├── routing.profile.yaml # agents-doctor
│ └── runs/ # 🏭 factory floor
└── docs/ # architecture, gotchas, deployment, plans/…

❓ FAQ

Do I need AGY, Grok, and Codex all installed?

No — only Claude Code is required. Everything else is optional. agents-doctor adapts down to claude-only.

How is this different from plain Claude Code?

Plain Claude is one worker in one chat. Lane Stack adds management: task cards with ownership, durable parallel AGY/Grok lanes, a visible run supervisor, nightly independent review/fix, auto-merge to main, deep onboard, and cold-start recovery.

My run dies after ~2 minutes — is that lane-exec?

Usually no. Claude kills foreground Bash and may reap ordinary nohup descendants. Current runs start through lane-ctl, while lane-bg uses a transient user-systemd service. See docs/LANE-EXEC.md. After upgrading, start a fresh dev-orchestrator session.

minimal vs full vs deep — which do I pick?

Usually nothing — auto. Toy repo → minimal + fast. Mature monorepo → full + deep. Override with /project-onboard deep or project-onboard . --full --deep.

Does it need a database or cloud service?

No. State is files in your repo (.agents/runs/) + git.

Will it work on my existing project?

Yes. agents-doctor --apply . then /project-onboard. Existing wiki pages are linked, not blindly duplicated (gotchas.md wins over GOTCHAS.md).

Is my code safe?

Each CLI talks only to its own vendor. No extra servers. Don't put secrets in task YAML; use the review lane for auth/pay. SECURITY.md.


📚 Documentation map

Topic Doc
🐣 Plain-language walkthrough docs/BEGINNER.md
🧭 Onboard scenarios + depth docs/ONBOARD-SCENARIOS.md
⏱️ Lane timeouts + background docs/LANE-EXEC.md
🌐 Language policy (EN files / RU chat) docs/LANGUAGE.md
🔀 Who writes / who reviews (Sol/Terra) docs/ROUTING.md
⚖️ Comparison with alternatives docs/COMPARISON.md
🧑‍✈️ Solo rules — you never merge docs/SOLO-ORCHESTRATION.md
🗂️ Task card YAML docs/FILE-CONTRACT.md
🛡️ Safety hooks docs/HOOKS.md
🧠 Project memory docs/PROJECT-MEMORY.md
📝 Ideas backlog docs/TODOS.md
🔌 MCP (lean / hybrid) docs/MCP-LEAN.md · docs/MCP-HYBRID.md
📰 Changelog CHANGELOG.md
🚀 Release v1.6.0 GitHub Releases
🤝 Contributing CONTRIBUTING.md
🔐 Security SECURITY.md

📜 License

MIT — LICENSE. Use it, fork it, build your own factory.


Кирилл Вечкасов

Кирилл Вечкасов · @VKirill · Telegram: Помогающий маркетолог

I build working conveyors, not another chat with an LLM.

If the conveyor idea clicks — star the repo. It helps solo builders find it.

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.