Skip to content
/

cestDone

cestdone · olkano/cestDone · ★ 2 · last commit 2026-05-19

Automate Director+Worker AI development by keeping the Director context-thin and giving each phase Worker a fresh session with only relevant context.

Best whenThe Director should never read code — only reports and diffs — so its context stays stable across arbitrarily long projects.
Skip ifHuman babysitting every step between planner and worker, Single-session agents whose context fills up mid-project
vs seeds
bmad-method's director+specialist split, but inverts the mechanism: BMAD injects personas into a single ongoing Claude Code session…
Primitive shape 9 total
Commands 6 Subagents 3
00

Summary

cestDone — Summary

cestDone is a TypeScript CLI that implements a director+coder split: a thin Director AI orchestrates through markdown files while Worker AIs execute in fresh sessions with only task-relevant context per phase. Given a plain-text spec file, the CLI spawns a Planning Worker to explore the codebase and write a .plan.md, then iterates through each plan phase by spawning a fresh Worker that implements the phase and writes a report, after which the Director reviews the report and code diff and decides to commit, retry, or escalate to the human. The Director never reads code directly — it sees only Worker reports and git diffs — keeping its context lean across long projects. Two backends are supported: the Claude CLI (using a Max/Pro subscription via claude -p, no per-token billing) and the Anthropic Agent SDK (API key). The two backends can be mixed per agent. Compared to seeds, cestDone is closest to BMAD-METHOD's director+specialist split, but with a key inversion: BMAD injects personas into a single Claude Code session, whereas cestDone uses separate OS processes per phase with file-based handoffs, achieving context isolation rather than persona management. Unlike claude-conductor's passive markdown scaffolding, cestDone actively spawns and supervises subprocesses.

01

Overview

cestDone — Overview

Origin

cestDone was built by olkano (single contributor). Version 0.1.0, TypeScript. Repository has 2 stars. Last pushed 2026-05-19.

Philosophy

From the README:

"The bottleneck in AI-assisted development isn't the AI — it's the human sitting between the planner and the worker. You paste context, copy instructions, re-explain what was already decided, and babysit every step. cestDone removes that bottleneck."

On context exhaustion:

"There's a second, subtler problem: context window exhaustion. When you drive an AI agent manually through a large project, the conversation fills up — the model forgets earlier decisions, loses track of files, and quality degrades. cestDone sidesteps this by keeping the Director thin — it orchestrates via markdown files and never does deep code analysis itself. Workers get fresh sessions per task with only the relevant context."

Key Design Opinions

  • Director is thin: The Director never reads code directly; it only reads Worker reports and git diffs. This keeps its context stable across a long project.
  • Workers are ephemeral: Each Worker gets a fresh process session with only the phase-specific context. No cross-phase contamination.
  • File-based communication: All Director↔Worker handoffs happen through .cestdone/reports/ markdown files — fully human-readable and debuggable.
  • Subscription-first: The Claude CLI backend uses a Max/Pro subscription (claude -p), avoiding per-token API billing.
  • Human opt-in only: The human only intervenes when explicitly requested (e.g., plan approval with --with-human-validation, or after 3 Worker retry failures).

Daemon Mode

cestDone also supports a daemon (cestdone daemon) with schedule- and trigger-based execution from a .cestdonerc.json config file.

02

Architecture

cestDone — Architecture

Distribution & Install

  • Distribution type: npm-package (local build, npm link)
  • Install: npm install && npm run build && npm link (from repo)
  • Binary name: cestdone
  • Version: 0.1.0
  • License: MIT (implied)
  • Required runtime: node>=22.0.0

Directory Tree (repo)

cestDone/
├── src/
│   ├── cli/            # CLI entry point (commander)
│   ├── director/       # Director orchestration logic
│   ├── worker/         # Worker execution logic
│   ├── backends/       # Claude CLI and Agent SDK backends
│   ├── daemon/         # Daemon mode (scheduler)
│   ├── email/          # Email tool for Worker agents
│   └── shared/         # Shared types and utilities
├── .claude/            # Claude Code context
├── .cestdone/          # Project config and reports
│   └── reports/        # Phase prompt/report files
├── .cestdonerc.example.json  # Daemon config template
├── zz_Specifications/  # Project spec documents
├── zz_Tickets/         # Feature tickets
└── package.json

Two-Agent Architecture

spec.md → DIRECTOR → Planning Worker → .plan.md
                  ↓
           For each phase:
              WORKER (fresh session)
              ├─ Reads phase spec from .plan.md
              ├─ Implements: edit files, run tests
              └─ Writes report to .cestdone/reports/phase-N-report.md
                  ↓
              DIRECTOR (review)
              ├─ Reads report + git diff
              ├─ fix → retry Worker (max 3, then human)
              ├─ continue → Worker keeps going
              └─ done → commit, update plan

Two Backends

Backend Auth Billing Flag
Claude CLI (default) claude auth login Max/Pro subscription --backend cli
Anthropic Agent SDK ANTHROPIC_API_KEY env Per-token API --backend agent-sdk

Backends can be mixed: --director-backend cli --worker-backend agent-sdk

Target AI Tools

  • Claude (primary, both CLI and API)
  • No other AI tools are explicitly supported
03

Components

cestDone — Components

CLI Commands

Command Purpose
cestdone run --spec <path> Create plan and execute all phases autonomously
cestdone resume --spec <path> Resume from existing .plan.md
cestdone daemon --config .cestdonerc.json Start daemon with schedules and triggers
cestdone daemon status Show daemon status
cestdone daemon stop Stop running daemon
cestdone send-email Send email (used by Worker agent via Bash tool)

CLI Options for run

Option Purpose
--spec <path> Path to spec file (required)
--house-rules <path> Additional behavioral constraints for agents
--target <path> Target repository (default: .)
--director-model haiku/sonnet/opus Director model selection
--worker-model haiku/sonnet/opus Worker model selection
--with-worker / --no-with-worker Enable/disable two-agent mode
--backend cli/agent-sdk Shared backend for both agents
--director-backend Backend for Director specifically
--worker-backend Backend for Worker specifically
--with-human-validation Show plan for approval before execution

File-Based Communication Artifacts

File Written By Read By Purpose
spec.plan.md Planning Worker Director Phase plan
.cestdone/reports/phase-0-prompt.md Director Planning Worker Planning instructions
.cestdone/reports/phase-N-prompt.md Director Worker Phase implementation instructions
.cestdone/reports/phase-N-report.md Worker Director Implementation report
.cestdone/cestdone-diff.txt Worker Director Git diff for review

Daemon Configuration

.cestdonerc.json (example format):

  • Schedule-based runs (cron-style)
  • Trigger-based runs (e.g., on file change)
  • Per-spec director/worker model configuration

Subagent Roles

  1. Planning Worker — explores codebase, writes .plan.md with numbered phases
  2. Phase Worker(s) — one per phase; fresh session; implements one phase
  3. Director — orchestrates; reads reports and diffs; decides next action

Modes

  • Two-agent mode (default): Director + Workers; Director never reads code directly
  • Director-only mode (--no-with-worker): Director does everything in one session
05

Prompts

cestDone — Prompts

cestDone generates prompts dynamically at runtime from spec content and phase definitions. The primary prompt artifacts are the phase-N-prompt.md files written to .cestdone/reports/. No static prompt template files are shipped in the repo that were publicly accessible; the prompt construction logic is in TypeScript source.

Verbatim Excerpt 1 — README Architecture Description (Director's Prompt Philosophy)

From README.md:

How It Works

Planning (once per spec):
1. Planning Worker — A Worker explores the codebase and writes a structured 
   .plan.md with numbered phases
2. Validation — The plan format is validated; if invalid, a revision Worker 
   fixes it
3. Approval — If --with-human-validation, the plan is shown for approval 
   before execution

Execution (per phase):
1. Execute — Worker implements the phase (or the Director, in director-only mode)
2. Review — Director reads the Worker's report and code diff to verify
3. Complete — Director updates .plan.md, commits verified work, moves to next phase

Technique: The Director is explicitly designed to be a thin context-light orchestrator. Its "prompt" is the phase spec from .plan.md + the Worker's report + the git diff — no code content, just structured human-readable markdown. This prevents context accumulation.

Verbatim Excerpt 2 — File-Based Communication Pattern (README)

File-Based Communication

The Director and Workers communicate exclusively through markdown files 
in .cestdone/reports/:

  phase-0-prompt.md      ← Planning Worker's prompt (what the Director asked)
  phase-1-prompt.md      ← Phase 1 Worker's instructions
  phase-1-report.md      ← Phase 1 Worker's report (status, summary, files changed)
  phase-2-prompt.md      ← Phase 2 Worker's instructions
  phase-2-report.md      ← Phase 2 Worker's report

Additionally:
  spec.plan.md           — the plan file (written by Planning Worker, read by Director)
  .cestdone/cestdone-diff.txt — git diff of changes (written by Worker, 
                                read by Director during review)

This gives full traceability of every Director↔Worker interaction.

Technique: Explicit prompt persistence — every instruction given to a Worker is saved as a phase-N-prompt.md file. This is both an audit log and a re-entrypoint: cestdone resume re-reads these files to reconstruct state without a database.

Prompting Pattern Assessment

  • Prompt chaining via files: Each Worker's output (report) becomes the next Director decision's input via markdown file.
  • Context isolation: Workers receive only their phase spec + project files, never the Director's full history. This is a structural context-compaction technique.
  • Director-as-reviewer: The Director's prompt in review mode is: plan phase spec + Worker report + git diff. No code reading required.
  • House rules injection: --house-rules <path> injects a constraint file into all agent prompts.
09

Uniqueness

cestDone — Uniqueness & Positioning

Differs from Seeds

cestDone is closest to BMAD-METHOD's director+specialist split, but inverts the implementation: BMAD injects persona instructions into a single ongoing Claude Code session via skill files, while cestDone uses separate OS processes per phase, achieving true context isolation rather than persona management. The thin-Director / fresh-Worker pattern solves context exhaustion structurally (by never letting the Director read code) rather than through compaction strategies like claude-flow's or claude-conductor's. Unlike spec-driver's sequential skill chain (which is a single-session instruction sequence), cestDone genuinely produces independent agent processes. The --backend agent-sdk option and per-agent model selection (Opus Director + Sonnet Worker) make it the only framework in this batch with explicit cost-optimization through model tier routing that is built into the CLI flags. The daemon mode with .cestdonerc.json is also unique — no seed framework supports scheduled autonomous execution.

Positioning

cestDone targets developers running large, multi-phase projects where a single Claude context window would exhaust before completion. The subscription-first billing model (Claude CLI, no per-token charge) and per-process session isolation are explicit answers to the two failure modes of prolonged agentic workflows: context exhaustion and API cost overrun.

Observable Failure Modes

  • Worker 3-retry escalation: If a Worker fails 3 times on the same phase, the human must intervene. There is no alternative recovery strategy (e.g., breaking the phase into sub-phases).
  • Plan format sensitivity: If the Planning Worker produces a malformed .plan.md, a revision Worker is invoked, but if revision also fails, the pipeline blocks.
  • Director review accuracy: The Director reviews only reports and diffs, not code. A Worker that produces plausible-looking reports but broken code can advance phases.
  • No parallel execution: Phases are strictly sequential. Large projects with parallelizable work cannot exploit multiple Workers concurrently.
  • npm-link-only distribution: No npm registry package; installation requires cloning the repo and building locally.

Explicit Antipatterns (from README philosophy)

  • Human sitting between planner and worker (removing this is the goal)
  • Single-session agents that accumulate context until quality degrades
  • Director reading code directly (kept thin for context stability)
04

Workflow

cestDone — Workflow

Phases

Phase Description Artifact
Planning Planning Worker explores codebase and writes structured plan spec.plan.md
Plan validation Director validates plan format; revision Worker fixes if invalid Updated spec.plan.md
Plan approval (optional) Human reviews and approves plan Human confirmation
Phase execution Fresh Worker implements one phase; writes report + diff phase-N-report.md, cestdone-diff.txt
Review Director reads report + diff; decides fix/continue/done Decision
Commit Director commits verified work; updates plan Git commit
Repeat Next phase execution loop

Phase-to-Artifact Map

Phase Artifact
Planning spec.plan.md
Phase execution .cestdone/reports/phase-N-prompt.md, .cestdone/reports/phase-N-report.md
Review .cestdone/cestdone-diff.txt (written by Worker, read by Director)
Commit Git commit

Approval Gates

Gate Type Trigger
Plan approval --with-human-validation flag Optional; human reviews plan before execution starts
Worker retry limit Automatic After 3 failed Worker retries, escalates to human
Director review Agent decision Each phase; Director decides fix/continue/done

Flow Diagram (from README)

spec.md → DIRECTOR
           ↓ Planning Worker → .plan.md
           For each phase:
           ┌─────────────────────────────────────────────────────────┐
           │ WORKER (fresh session)                                  │
           │ ├─ Reads phase spec from plan                          │
           │ ├─ Implements: edit files, run tests                   │
           │ └─ Writes report to .cestdone/reports/                  │
           │         ↓                                              │
           │ DIRECTOR (review)                                       │
           │ ├─ Reads report + code diff                            │
           │ ├─ fix → retry Worker (max 3, then human)              │
           │ ├─ continue → Worker keeps going                       │
           │ └─ done → commit, update plan                          │
           └─────────────────────────────────────────────────────────┘
06

Memory Context

cestDone — Memory & Context

State Storage

File-based, in .cestdone/reports/ within the project:

  • phase-N-prompt.md — instruction sent to each Worker (persistent)
  • phase-N-report.md — Worker implementation report (persistent)
  • spec.plan.md — the plan document, updated by Director as phases complete
  • .cestdone/cestdone-diff.txt — git diff of most recent Worker changes (overwritten per phase)

Persistence Scope

Project-scoped. All state lives in .cestdone/ in the target project. cestdone resume reads from this directory to re-enter mid-workflow.

Context Design Philosophy

cestDone's core architectural innovation is structural context isolation:

  • The Director never accumulates code context. It only sees: plan phase spec, Worker report, git diff. Context stays stable across an arbitrarily long project.
  • Each Worker starts fresh with: the phase spec + only the relevant files it needs to read. No history from prior phases bleeds in.
  • All "memory" is externalized to markdown files — effectively, the .cestdone/reports/ directory is a persistent, human-readable conversation log.

Cross-Session Handoff

Yes — cestdone resume --spec <path> reads the existing spec.plan.md to identify completed vs pending phases, then re-enters execution. No database; state is in markdown files and git history.

Context Compaction

The Director+Worker split is itself a context compaction strategy. Workers are fresh processes; the Director only reads summaries. No explicit token-counting or LLM compaction mechanism is implemented — the compaction is structural (per-process sessions with bounded input).

Search Mechanism

None. The Director and Workers search code using the Claude agent's built-in file tools (read, bash, grep) within their process session.

07

Orchestration

cestDone — Orchestration

Multi-Agent Support

Yes — explicitly. Director + Planning Worker + Phase Worker(s). Each Worker is a separate OS process (subprocess) with independent context.

Orchestration Pattern

Hierarchical — Director is the permanent orchestrator; Workers are ephemeral executors spawned per phase. The Director decides whether to retry, continue, or commit after each phase. This is the "director+coder split" pattern.

Isolation Mechanism

Process — each Worker is a separate claude -p subprocess or Agent SDK invocation with its own session context. No git worktrees or containers.

Multi-Model Support

Yes, explicitly:

  • --director-model haiku|sonnet|opus
  • --worker-model haiku|sonnet|opus
  • Can be different models (e.g., Opus Director, Sonnet Worker for cost efficiency)
  • Can use different backends per agent (Claude CLI vs Agent SDK)

Execution Mode

One-shot per cestdone run invocation, with resume capability. The loop continues autonomously until all phases are complete or a human escalation is triggered.

Crash Recovery

Yes — cestdone resume re-enters from the last completed phase. State is reconstructed from spec.plan.md and .cestdone/reports/ files.

Approval Gates

  • Optional plan approval (--with-human-validation)
  • Automatic escalation to human after 3 consecutive Worker retry failures

Consensus Mechanism

None. The Director makes unilateral decisions after reviewing Worker reports.

Prompt Chaining Pattern

Yes — each Worker's phase-N-report.md becomes the Director's input for the review decision, which produces the phase-(N+1)-prompt.md for the next Worker.

Max Concurrent Agents

1 Worker at a time (sequential phase execution). The Director is persistent; Workers are ephemeral and sequential.

08

Ui Cli Surface

cestDone — UI & CLI Surface

Dedicated CLI Binary

Yes — cestdone (TypeScript, compiled to Node.js, installed via npm link).

Commands

run, resume, daemon, daemon status, daemon stop, send-email

The binary is not a thin wrapper over Claude. It is an orchestration runtime that spawns Claude CLI subprocesses or uses the Anthropic Agent SDK directly.

Local UI / Dashboard

None. cestDone is a pure CLI tool; no web dashboard or TUI is present.

IDE Integration

None. The .claude/ directory in the repo contains Claude Code context for developing cestDone itself, not for deploying it.

Observability

  • .cestdone/reports/ — all Director↔Worker interactions persisted as markdown files; human-readable audit trail
  • spec.plan.md — living document showing phase completion status
  • .cestdone/cestdone-diff.txt — most recent git diff for debugging

Daemon Mode

cestdone daemon runs a persistent process with .cestdonerc.json configuration:

  • Schedule-based execution (cron-like)
  • Trigger-based execution (e.g., file changes)
  • pm2 integration (cestdone-pm2.cjs, ecosystem.config.cjs)

Worker Email Tool

cestdone send-email is a Worker-accessible Bash tool for sending notifications from within agent sessions. This is an unusual capability suggesting cestDone targets long-running autonomous workflows where stakeholder notification is needed.

Terminal Output

Commander.js CLI with standard stdout/stderr. No progress bars or streaming display of Worker output (Workers are subprocesses with their own I/O).

Related frameworks

same archetype · same primary tool · same memory type

CodeMachine CLI ★ 2.5k

JavaScript-DSL workflow orchestration engine that captures repeatable AI coding agent workflows with tracks, condition groups,…

Codexia ★ 690

Tauri desktop app providing visual control plane, task scheduler, git worktree manager, and headless REST API for Codex CLI +…

Kagan ★ 88

Kanban TUI for AI coding agents with a structurally enforced human review gate (REVIEW → DONE cannot be automated) — one git…

oh-my-claudecode (Yeachan-Heo) ★ 35k

Zero-learning-curve teams-first multi-agent orchestration for Claude Code with autopilot (6-phase lifecycle), ralph (PRD-driven…

Paseo ★ 6.8k

Multi-provider AI coding agent orchestration daemon with cross-device access (phone/desktop/CLI) and git worktree isolation.

CCG Workflow ★ 5.4k

Routes Claude + Codex + Gemini to task-appropriate collaboration strategies (direct-fix through full-collaborate) with hook-based…