Audit Trail
The upfront binary captures every thinking record produced during /feature runs and writes structured events to a local JSONL queue.
How it works
Section titled “How it works”A PostToolUse hook fires after every /feature skill invocation. The hook:
- Parses the thinking record from the tool response
- Writes a structured event to
.upfront/audit.jsonl - Optionally flushes to a remote endpoint
Events are stored locally first (durable — survives network failures), then flushed to your observability stack.
CLI commands
Section titled “CLI commands”upfront status # Queue depth, last event, configupfront log # View audit events (last 50)upfront log --feature checkout --phase 1 # Filter by feature/phaseupfront flush # Push queued events to remoteupfront purge # Delete events older than TTLRemote integration
Section titled “Remote integration”Configure .upfront/config.json or ~/.upfront/config.json:
{ "endpoint": "https://your-langfuse.example.com/api/public/ingestion", "auth_header": "Bearer pk-lf-...", "ttl_days": 90, "project_name": "my-project"}Compatible with Langfuse, Arize Phoenix, Helicone, Portkey, or any endpoint that accepts JSON POST.
What managers see
Section titled “What managers see”Three metrics without reading a single spec:
- Adoption — percentage of features that went through
/feature - Depth — how many phases were completed (all 4 = thorough, 1-2 = bailed early)
- Effectiveness — rework rate difference between spec’d and unspec’d features
The audit trail is 30-second triage: decide whether to read the spec or send it back.