Filed 2026-07
Platform engineer & builder
Developer Activity Ledger
A local evidence pipeline for engineering recaps
Project brief
BetaProblem
A developer's real work is scattered across commits, agent sessions, tickets, and manual notes.
Outcome
A local-first pipeline that gathers a developer's scattered activity (commits, IDE and CLI chat sessions, ticket references, manual notes) and synthesizes it into structured recap and narrative records. One local tool server serves the same logic to multiple AI coding assistants.
Evidence
- Each IDE or CLI integration discovers the same skills and talks to one local tool server; none holds its own copy of the logic.
- A single local server, bound to loopback only, groups dozens of tools into capture, recap, ticketing, and analytics modules.
Key decisions
- Hosts: Each IDE or CLI integration discovers the same skills and talks to one local tool server; none holds its own copy of the logic.
- Tool server: A single local server, bound to loopback only, groups dozens of tools into capture, recap, ticketing, and analytics modules.
- Local storage: An append-only, checksummed event log sits alongside the older event store, migrated forward without breaking existing recaps.
- Redaction boundary: Emails, IDs, and other sensitive fields are stripped before any data reaches a model, an external API, or disk.
001Why keep a ledger
One local tool server sits behind every AI coding host, turning raw activity into recap artifacts through an append-only local event log.
A developer's real work lives scattered across chat threads, commits, and a ticketing tool, and disappears unless someone journals it by hand.
002The tool server
I built a local-first ledger that keeps the AI-facing surface thin: each IDE or CLI host discovers the same skills and calls into one local tool server, while durable logic (capture, storage, redaction, recap synthesis) lives in a single local package and data store.
003Audit trail: one recap request
Underneath, an append-only event log (checksummed segments, single-writer append, file locks, fsync, schema-gated reads) sits alongside the earlier event store rather than replacing it outright.
A recap request flows from host to tool server to local sources and back, crossing a redaction boundary before any content reaches the model.
- 01Requesthost asks the local tool server to build a recap prompt
- 02Gather contextcollect commits, IDE/CLI sessions, events, and checkpoints from local sources
- 03Redact & compressGateddedupe, redact sensitive values, and summarize before anything leaves the machineRedaction boundaryEmails, IDs, and other sensitive fields are stripped before any data reaches a model, an external API, or disk.
- 04Model synthesishost model turns the prompt into a recap narrative
- 05Persistrecap artifacts saved to local storage only when requested
004Access & review posture
Ticket-system writes stay disabled and review-gated, and the tool server binds to loopback only.
005Where the trail continues
Dual channels and rule layers is the prompt-hygiene sibling. Agent-ready compression is why the ledger prefers structured facts over chat residue.
006Related work & writing
007Built with
Portfolio graph
Maps how the work here connects. Open the Portfolio graph →
- Professional
- Personal
- Skill
- Writing