/ca-audit — promotion packet
Everything codeArbiter logs, it logs append-only and scattered: overrides.log, triage.log,
decisions/, sprint-log.md, checkpoints/. This command assembles them into the one document a
team lead, compliance reviewer, or auditor actually asks for: what happened in this window, who
authorized it, and what is still open. Read-only over every source; its only write is the packet.
Window
<from-ref> <to-ref> — two tags/SHAs (e.g. v1.2.0 v1.3.0).
--since-checkpoint — from the last-checkpoint record to HEAD.
--since <date> — ISO date to HEAD.
- No argument → from the most recent tag to HEAD (no tags → last checkpoint; neither → BLOCK and
ask for an explicit window).
Flow
- Resolve the window to a commit range and a time range; both appear in the packet header.
- Gather, citing each source file:
- Commits —
git log over the range, grouped by Conventional-Commit type; merge commits
listed with their PR reference.
- Overrides — every
overrides.log line in the time range, verbatim (including
SECURITY-OVERRIDE and DEV: entries), each with its BY: identity.
- Triage — every small-lane classification in
triage.log in range.
- Decisions — ADRs created or superseded in range (from
decisions/ file dates and the
supersede chains), each with its Decided-by attribution.
- Sprint auto-decisions — entries from
sprint-log.md in range; list every low-confidence
entry verbatim, count the high ones.
- Open questions — all currently-unresolved
[CONFIRM-NN] items.
- Checkpoint findings — from the most recent
checkpoints/*.md: findings still open.
- Write the packet to
<project-root>/.codearbiter/audits/<YYYY-MM-DD>.md (second run the
same day appends -2, -3, … — an existing packet is never overwritten). Surface the path and
a three-line summary: commits, overrides, open items.
Hard gate
Read-only over every source — MUST NOT modify any log, decision, or checkpoint while assembling.
MUST NOT overwrite an existing packet. MUST quote override and low-confidence sprint entries
verbatim — never paraphrase an audit line. An empty section is stated as empty, never omitted —
"no overrides in window" is itself the finding.
When NOT to use
- Live project state right now →
/ca-status.
- Triggering reviews →
/ca-checkpoint (this command only reports what reviews already found).
1---2name: ca-audit3description: Assemble the governance record for a range — commits, overrides, ADRs, sprint auto-decisions, open questions, checkpoint findings — into one dated audit packet. Read-only.4---5
6# /ca-audit — promotion packet
7
8Everything codeArbiter logs, it logs append-only and scattered: `overrides.log`, `triage.log`,
9`decisions/`, `sprint-log.md`, `checkpoints/`. This command assembles them into the one document a
10team lead, compliance reviewer, or auditor actually asks for: *what happened in this window, who
11authorized it, and what is still open.* Read-only over every source; its only write is the packet.
12
13## Window
14
15- `<from-ref> <to-ref>` — two tags/SHAs (e.g. `v1.2.0 v1.3.0`).
16- `--since-checkpoint` — from the `last-checkpoint` record to HEAD.
17- `--since <date>` — ISO date to HEAD.
18- No argument → from the most recent tag to HEAD (no tags → last checkpoint; neither → BLOCK and
19 ask for an explicit window).
20
21## Flow
22
231. Resolve the window to a commit range and a time range; both appear in the packet header.
242. Gather, citing each source file:
25 - **Commits** — `git log` over the range, grouped by Conventional-Commit type; merge commits
26 listed with their PR reference.
27 - **Overrides** — every `overrides.log` line in the time range, verbatim (including
28 `SECURITY-OVERRIDE` and `DEV:` entries), each with its `BY:` identity.
29 - **Triage** — every small-lane classification in `triage.log` in range.
30 - **Decisions** — ADRs created or superseded in range (from `decisions/` file dates and the
31 supersede chains), each with its Decided-by attribution.
32 - **Sprint auto-decisions** — entries from `sprint-log.md` in range; list every `low`-confidence
33 entry verbatim, count the `high` ones.
34 - **Open questions** — all currently-unresolved `[CONFIRM-NN]` items.
35 - **Checkpoint findings** — from the most recent `checkpoints/*.md`: findings still open.
363. Write the packet to `<project-root>/.codearbiter/audits/<YYYY-MM-DD>.md` (second run the
37 same day appends `-2`, `-3`, … — an existing packet is never overwritten). Surface the path and
38 a three-line summary: commits, overrides, open items.
39
40## Hard gate
41
42Read-only over every source — MUST NOT modify any log, decision, or checkpoint while assembling.
43MUST NOT overwrite an existing packet. MUST quote override and low-confidence sprint entries
44verbatim — never paraphrase an audit line. An empty section is stated as empty, never omitted —
45"no overrides in window" is itself the finding.
46
47## When NOT to use
48
49- Live project state right now → `/ca-status`.
50- Triggering reviews → `/ca-checkpoint` (this command only reports what reviews already found).