SLA audit reads the artifact deliverable, not just the chat text

↗ view on GitHub · Eli Ziff · 2026-07-28 · 94e0a02a

The smoke run exposed the gap: for a file-producing task the draft
audit read the chat message ("I've created the document...") and scored
0 matched / 59 source-only - then sent the model a repair prompt about
anchors that were sitting in the DOCX all along. The ledger now
snapshots the library (documentId -> current_version_id) at build;
collectSlaDeliverable diffs the library against that snapshot and folds
the text of documents created or revised during the turn into the
audited draft (deterministic auditor only - artifact text never enters
the model context; the model still sees only typed findings). Repair
instructions are artifact-aware: library-document deliverables are
revised via tools, not pasted into chat. Receipts record which
artifacts were audited.

Store-backed test proves the smoke shape (chat-only text: 0 matched)
and the fix (created artifact: 0 source-only). Field-name trap fixed en
route: listLocalLibrary returns the wire shape (current_version_id).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018bhP89cYSdEEjHNPnxacns
Repository eliziff/Beaver
Author Eli Ziff <eliasziff@gmail.com>
Authored
Parents ea39e713
Stats 3 files changed , +197 , -7
Part of Deterministic legal-text tools ("SLA audit organs")

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-94e0a02a.md from inside the repo you want the change in.

⬇ Download capture-commit-94e0a02a.md