← joshdavidoff.com

AI uplift

AI workflow governance suite

Scheduled tasks record every AI coding session and brief me each morning. Nothing they propose takes effect until I approve it.

The problem

After eight months of building with coding agents across about twenty projects, I had no lasting record of any of it. The only history sat in the agents' session caches, which clear themselves out. The most useful moments, when I rejected a step or corrected the agent or a test failed, disappeared when each session ended.

The obvious fix was to let an agent maintain its own instructions and memory. I did not want that. An agent that edits its own operating rules unattended is the automation-bias failure I argue against in The Bot Stops Here. So the system collects and summarizes everything on its own, and nothing it proposes takes effect until I approve it.

What it does

Collecting

  • When a session starts, a hook logs when and where it ran and which model it used. It saves nothing from the conversation, which keeps work and financial details out of the record.
  • When a session ends, a second hook notes where it happened and what the code looked like afterward.
  • Each night a script reads every session and project touched since the last run. It keeps what I typed, every place I overruled the agent or a test failed, and what changed.

Summarizing

  • Overnight, a scheduled task turns that digest into a brief on what broke, what to build next, and how the setup could improve.
  • Before an idea reaches the brief, two different AI models (Opus, Sonnet) judge separately whether it is worth building. A third (Fable) settles any disagreement, and only ideas that pass go on the list.
  • Open suggestions carry over from night to night until I decide on them, and anything left for a week gets flagged.
  • Bigger items go to scheduled reviews. A Monday sweep checks tests and model versions, a review of the agents' instructions runs twice a month, and a security review runs monthly. Each one reports and proposes but changes nothing.

Deciding

  • Nothing in the suite changes code or the agents' instructions on its own. Every proposal reaches me as a one-line suggestion, and I make the change myself in a live session.
  • The brief arrives as a Claude Doc. I rule on each idea in a comment, and the next night's run records the verdict.
  • A /log command turns my description of what I built into a project note, private unless I mark it public.
  • The project cards on this site's homepage are generated from the notes marked public, so a project can appear here while its full write-up stays private.
  • Routine lookups and edits go to smaller, cheaper models. Judgment calls, and anything a wrong answer would quietly spread from, stay with the strongest one.

Architecture

Hooks and a nightly digest collect → an overnight brief synthesizes and hands off to the sweeps → every proposal reaches me → I act in a live session and log the outcome, which the next night's digest reads.

Safeguards

The register also tracks which AI model versions my deployed tools depend on, since a retired model breaks a scheduled job with no one watching. It doesn't guess which models are current. It marks each one as checked against my reference list, seen working on a given date, or unverified. A weekly sweep also runs the workspace's twenty-five test suites and flags any project that has outgrown its tests. A hook refuses any commit an agent makes unless the message records whether a reviewer agent checked the change or why the review was skipped.

The guardrails also run inside the coding agent, as add-ons that check each command before it runs. They block recursive deletes and git commands that destroy history, allow one connection to my server at a time, and refuse a commit that claims a review no reviewer ran. Each "never do this" correction I give becomes a hard block. Another add-on flags AI-sounding phrasing in public copy, this page included.

All projects