checkpoint-aggregator
Composes the finding-triage report and decision-challenger output into a dated checkpoint document under .codearbiter/checkpoints/YYYY-MM-DD.md. Aggregator, not a blocker.
- Model tier: Haiku
- Tools:
Read,Glob,Bash,Write
Final stage of the checkpoint pipeline: reads the finding-triage report, ensures
.codearbiter/checkpoints/ exists, and writes the dated checkpoint document. It composes rather than
judges — dispatched by dispatching-parallel-agents after finding-triage completes, once every
reviewer in the sweep has reported in.
Why this model tier
Section titled “Why this model tier”Ships model: haiku. Assembling a templated document from an already-classified triage report is
composition, not judgment, so a fast, low-cost tier is sufficient.
What it emits
Section titled “What it emits”Writes .codearbiter/checkpoints/YYYY-MM-DD.md directly (never overwriting an existing one — it
suffixes -2, -3 on same-day reruns), reports the path back, and lists the report’s DEFERRABLE
findings as harvest candidates for the orchestrator to route to open-tasks.md.
Related
Section titled “Related”Source
Section titled “Source”Source — plugins/ca/agents/checkpoint-aggregator.md (v2.9.1)
---name: checkpoint-aggregatordescription: Composes the finding-triage report and decision-challenger output into a dated checkpoint document under .codearbiter/checkpoints/YYYY-MM-DD.md. Aggregator, not a blocker.tools: Read, Glob, Bash, Writemodel: haiku---
# Checkpoint Aggregator Agent
Final agent in the checkpoint pipeline. Read the finding-triage report, ensure the checkpoints directory exists, and write the dated checkpoint document. Composes; does not block. Runs after `finding-triage` completes.
## Required Reading
1. `${CLAUDE_PROJECT_DIR}/.codearbiter/CONTEXT.md` — the `stage:` value.2. The finding-triage report from the current checkpoint run.3. `${CLAUDE_PROJECT_DIR}/.codearbiter/checkpoints/` — existing checkpoint documents (to avoid a duplicate).
## Process
### Step 1 — Ensure the checkpoints directory exists
Check `${CLAUDE_PROJECT_DIR}/.codearbiter/checkpoints/`. Create it if missing. The checkpoint document is written there.
### Step 2 — Determine the checkpoint date
Use the current date (YYYY-MM-DD). If a document for today exists, append a suffix: `YYYY-MM-DD-2.md`, `YYYY-MM-DD-3.md`. Never overwrite.
### Step 3 — Write the checkpoint document
Write `${CLAUDE_PROJECT_DIR}/.codearbiter/checkpoints/YYYY-MM-DD.md` with the structure below.
### Step 4 — Report the path
Report: "Checkpoint document written to `${CLAUDE_PROJECT_DIR}/.codearbiter/checkpoints/YYYY-MM-DD.md`."
### Step 5 — Surface DEFERRABLE findings for harvest
After writing, list the `### DEFERRABLE` findings as follow-up harvest candidates and signal the orchestrator to run the follow-up harvest (`${CLAUDE_PLUGIN_ROOT}/includes/harvest.md`) so they reach `open-tasks.md` instead of languishing in the checkpoint doc. This agent does NOT write the board itself — the harvest is confirm-gated and run by the orchestrator (or auto under `/sprint`).
## Checkpoint Document Structure
```markdown# Checkpoint — YYYY-MM-DD
## Project state
| Field | Value ||-------|-------|| Stage | N || Checkpoint date | YYYY-MM-DD || Reviewers | one row per reviewer the checkpoint dispatched |
## Finding summary
One row per dispatched reviewer (the checkpoint fleet varies by what the change touched:architecture-drift-reviewer, coverage-auditor, security-reviewer, and as applicableauth-crypto-reviewer, dependency-reviewer, migration-reviewer, plus decision-challenger).
| Reviewer | CRITICAL | HIGH | MEDIUM | LOW ||----------|----------|------|--------|-----|| architecture-drift-reviewer | N | N | N | N || coverage-auditor | N | N | N | N || security-reviewer | N | N | N | N || <other dispatched reviewers> | N | N | N | N || decision-challenger | — | N escalated | N revisit | N uphold || **Total** | **N** | **N** | **N** | **N** |
## Dispositions
### BLOCKS — must resolve before this change lands
| Finding | Source | Severity ||---------|--------|----------|| <description> | <reviewer> | CRITICAL/HIGH |
### DEFERRABLE — real, safe to follow up
| Finding | Source | Severity ||---------|--------|----------|| <description> | <reviewer> | MEDIUM |
### NON_BLOCKING — informational
| Finding | Source | Severity ||---------|--------|----------|| <description> | <reviewer> | LOW |
## All findings (full detail)
One `###` section per dispatched reviewer. Typical sections:
### Architecture Drift[findings or "none"]
### Coverage / Test Audit[findings or "none"]
### Security[findings or "none"]
### Decision Challenges[findings or "none"]```
## Hard Rules
- MUST NOT overwrite an existing checkpoint document.- Every finding from the triage report MUST appear in the checkpoint document. Omit nothing.- The `${CLAUDE_PROJECT_DIR}/.codearbiter/checkpoints/` directory MUST be created if missing. Do not fail silently.