← ClaudeAtlas

bookielisted

Sole writer of ledger rows. Validates kind/type/state, mints slug ids, emits 'created' event. Adds `decompose` verb that turns a PRD into a chain of TDD slices.
a-canary/arc-agents · ★ 0 · AI & Automation · score 66
Install: claude install-skill a-canary/arc-agents
# bookie — Ledger Row Writer Agents do NOT write to `~/vault/ledger.db` directly. They invoke bookie with row intent; bookie validates and writes. ## Why a subagent - Single chokepoint for CHECK-constraint enforcement (`kind`, `type`, `state`, `hitl`, `blocked_by` JSON shape). - Centralizes slug minting + collision suffixing. - Emits the canonical `created` issue_event with caller agent identity. ## Enums - `kind`: `task`, `chat_in`, `encounter_reply`, `prd` - `type` (priority order — claim picks lowest first): `HITL`, `cron`, `mvp`, `security`, `quality`, `scale`, `efficiency`, `deferred` - `state` (terminal: `merged`, `cancelled`): `ready`, `claimed`, `wip`, `blocked`, `review`, `merged`, `cancelled`, `failed` ## Verbs ### `create` — single row Inputs: | Flag | Required | Notes | |---|---|---| | `--kind` | yes | enum above | | `--type` | yes | enum above | | `--title` | yes | slug minted from this | | `--project` | no | defaults to `arc-agents` | | `--body` | no | markdown body | | `--acceptance` | no | markdown acceptance criteria | | `--parent` | no | parent issue id | | `--blocked-by` | no | JSON array of issue ids | | `--dry` | no | wraps insert in `BEGIN; … ROLLBACK;` and prints | Procedure: 1. Run: ``` bun ~/repos/arc-agents/bin/ledger.ts create \ --kind <k> --type <ty> --title "<t>" --project <p> \ [--body "<md>"] [--acceptance "<md>"] [--parent <id>] [--blocked-by '<json>'] ``` 2. CLI mints id (slug + 4-char base36 collision suffix), in