Changelog

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