Release history
CAF Initiator is at v0.1.11, and CAF Orchestrator is at v0.2.0 — this page will keep growing with future releases.
Unreleased
Oct 2026- caf-design and caf-breakdown are written without the DRAFT banner (their dispatch tests passed), so a new Planner is pointed at both
- caf-architect is no longer offered in the agent picker: the Planner writes design.md. A caf-architect.md already in a repo is left alone
Orchestrator v0.2.0
Oct 2026- Terminal UI, pnpm tui (pnpm start:tui after a build): starts and stops the web server, worker and Cloudflare tunnel; shows queue and Redis / DB / HTTP health, summary cards, the run list, a text Agent Floor, live logs, a command palette (ctrl+p) and a failed-job list with retry. No browser, login or running web server needed
- Cloudflare tunnel runner, pnpm tunnel, so Linear and GitHub webhooks reach a local machine. TUNNEL_NAME, TUNNEL_URL, TUNNEL_TARGET_URL and CLOUDFLARED_BIN in .env; also controlled from the TUI
- Dashboard login page at /dashboard/login with a signed, HttpOnly session cookie (12 hours) and a Log out button, replacing browser Basic Auth. Same dashboard.basicAuthUser and DASHBOARD_BASIC_AUTH_PASSWORD credentials
- DASHBOARD_DEFAULT_VIEW (dashboard or agent-floor) chooses what /dashboard shows. The Agent Floor moved from /dashboard/agent-floor to /dashboard/floor/*, and its header shows total and average cost per run
- Validation gate chosen from the checkout: caf-validator (validate-report.md) when .claude/agents/caf-validator.md exists, otherwise caf-qa. The docs step is skipped, not failed, when there is no caf-documentation agent (SDD-04a)
- Acceptance-criteria summary at the top of the PR body, and the rule that a PASS report whose criteria are all UNVERIFIED becomes NEEDS_HUMAN. The gate is stored as validate; a stored qa is still read (SDD-04b, 04d)
- Clarify via the ticket: a NEEDS_CLARIFICATION spec, or a DRAFT with an unanswered BLOCKING question, stops the run and asks in a ❓ CAF-CLARIFY comment (SDD-04c, 04d)
- Spec gate: tickets with the spec-approval label stop at a Draft PR that holds the spec until /caf-approve-spec; a resumed run that succeeds marks the PR Ready for review (SDD-04c, 04d)
- readFixReviewLog ends comment blocks on a ## line only after the Status line and outside a code fence (SDD-04e)
- Restricted validator: caf-validator runs under dontAsk with an allowlist of Bash commands, writes limited to .caf/tasks/ and a stripped environment; agents.validator.restrictBash and allowedCommands (SDD-04f)
- Git authentication without a token in the workspace: each network command uses a per-process extraheader. Needs git 2.31 or newer (SDD-04g)
v0.1.11
Oct 2026- caf-design skill and design.md: the Planner writes a technical design when a ticket spans apps, changes a schema or changes a contract (SDD-05a)
- caf-breakdown skill and breakdown.md: the Planner proposes how to split a request with several outcomes and stops; /caf-plan may create the tickets one at a time after a yes (SDD-05b)
- Planner artifact contract names design.md and breakdown.md in one place; an outline spec has no acceptance criteria and says Tidak ada (SDD-06)
- Clearer agent text: ## Coverage in tasks.md, the reviewer's verdict for a finding only a human can settle, the validator's checklist scope and pipes in report tables (SDD-07)
- caf-spec v4, aligned with the Planner: Tidak ada for an empty section, Assumption A-n:, and a fourth Status value NEEDS_HUMAN (SDD-10)
- The Planner writes its artifacts in the language of the ticket author, not of text the ticket quotes (SDD-11, SDD-12)
- CAF.md aligned with the spec-driven behavior (SDD-09)
v0.1.10
Oct 2026- Spec-driven Planner: Specify → Clarify → Plan → Tasks, requirements.md with numbered acceptance criteria and a Status line; caf-spec and caf-traceability skills (SDD-01, SDD-02)
- Spec-aware implementation agents, Reviewer and review commands: read the spec first, stop on an unclear spec, report evidence per criterion, never edit an approved spec (SDD-03b, 03d)
- New caf-validator agent and /caf-plan are part of the default scaffold, in place of caf-qa; the validator runs Verify: command: lines under strict rules (SDD-03b1, 03c2, 03e)
- Five agents and eight commands are no longer scaffolded: Documentation, DevOps, PM, UX Designer, Auditor and the discovery, audit, design-ticket, qa-check, review-ticket and feature-catalog commands. Existing files stay (SDD-03c1)
- SINGLE_REPO now gets caf-frontend and caf-backend instead of caf-implementer (SDD-03c3)
- /caf-run-pipeline is now /caf-run, and /caf-plan-ticket is no longer written (SDD-03c2c)
- Skill caf-verify renamed caf-self-verify, with a skill-renamed warning in curate audit (SDD-03c2d)
- curate skips agent files of an unknown kind and reports them instead of rewriting them (SDD-03g)
- curate reads the app list back from the Input of QA and Reviewer agents, so a sync no longer drops it; rollout warnings for frontmatter tools, skill pointers and the Planner's Constraints (SDD-03a2, 02d)
v0.1.9
2026- CAF skills (CAF-SKILLS-01): caf-init scaffold skills writes five universal skills into .claude/skills/ — caf-verify, caf-scope-discipline, caf-no-guess, caf-escalate, caf-piv
- Agent definitions get an optional ## Skills section with Read pointers to the skills; agents generated after the skills exist get their pointers automatically
- Existing agents are offered the ## Skills section with a preview and per-file confirmation — written only when the result is the old file plus exactly that one section
- caf-verify is built from the scripts detected in package.json; a missing script leaves a TODO line and a DRAFT banner, and agents ignore a DRAFT skill
- curate --check-drafts now covers skills: missing skill files, pointers to DRAFT skills, open TODOs without a banner, and a half-removed DRAFT banner
- /caf-complete-drafts handles DRAFT skills and never invents a verification command
- README rewritten
v0.1.8
2026- SINGLE_REPO support: a repo without workspaces is now a first-class mode, not an error — the repo root is the only app
- New --mode flag (single or mono) on scaffold, docs and curate to override repo-mode detection
- Single-repo implementation agent caf-implementer, with --scope to limit it to directories and --role frontend or --role backend to generate it as caf-frontend.md / caf-backend.md for CAF Orchestrator
- AI-assisted draft completion: scaffold complete-drafts generates the /caf-complete-drafts command — it fills TODOs from the code and asks first for human-owned content
- curate --check-drafts: a read-only check of completed drafts (changed tracked sections, non-existent scripts, leftover placeholders, missing golden-example paths)
- A leftover generate-time template placeholder now aborts the write
- MONOREPO output is frozen by a snapshot test
v0.1.7
2026- Role-aware Report Format and Retry Logic for the qa and reviewer kinds
- caf-qa.md gets its own Report Format: qa-report.md with a Status line of PASS or FAIL, matching what CAF Orchestrator parses
- QA and Reviewer Retry Logic now name their own report file instead of verify-report.md
v0.1.6
2026- Kind-aware Report Format for caf-reviewer (CAF-REVIEWER-FORMAT-01)
- caf-reviewer.md gets its own Report Format section — fixed Verdict skeleton (APPROVE / CHANGES REQUESTED / DEFER) written to .caf/tasks/review-notes.md
- Previously only the auditor kind had a Report Format; reviewer branch added to buildReportFormatSection(kind)
- buildAuditContractSections(kind): reviewer gets Report Format only (no What to Look For — scoped to the Verdict contract, not review criteria)
- Skeleton copied verbatim from caf-orchestrator's buildInitialReviewPrompt() to stay word-for-word compatible with report-reader.ts's strict/loose Verdict parsers (no shared import between packages — drift risk noted in code)
- Regression tests added: test/reviewer-report-format.test.js
- README updated
v0.1.5
2026- Content-level section tracking system (CAF-CURATE-DIFF-01)
- curate command: content-level section tracking (baseline/current/template 3-way diff → IN_SYNC/DRIFT/CUSTOMIZATION/CONFLICT/UNTRACKED)
- curate baseline command — backfills the manifest for untracked sections, never edits content
- Section parsing is now fence-aware (handles ``` blocks, avoids false section boundaries)
- Retry logic added for discovery agents and section guards
- devops added to KNOWN_KINDS (fixes misclassification as implementation, a privilege-escalation risk)
- Discovery section builders (Tools/Input/Output) got real pm/ux-designer branches — no more generic-fallback DRIFT false positives
- Idempotency check aligned with the webhook's initial review posting method
- Test script added to package.json plus a large test suite expansion (agents sync, manifest gen, devops handling, retry logic, Discovery sections)
- Docs updated: section tracking and retry logic explained
v0.1.0
2026- Initial CAF release: PIV discipline (Plan → Implement → Verify), one retry before handing off to a human
- CAF Initiator — CLI scaffold generator with automatic stack detection
- CAF Orchestrator — self-hosted webhook receiver (Fastify + BullMQ + Redis)
- 5-layer architecture: Project Knowledge Base, Agent Definitions, Artifact Handoff, Quality Gates, Orchestration
- Tracker integration: Linear (Jira planned)
- Git host integration: GitHub (GitLab planned)
- Mandatory human-review checkpoint at every phase — no auto-merge