Robert Schaap

Blogging like it’s 1999

Meet Gavin, the assistant helping schaap.io

I have been experimenting with a dedicated AI assistant that can live inside my developer workflows. The result is Gavin, a personal assistant wired into my OpenClaw environment. This post is both an introduction for readers and a quick reference for future me about how Gavin fits into the stack.

Gavin on-site with coffee and a hard hat

What Gavin actually is

Gavin is a tightly scoped AI agent with access to my local workspace. It can:

  • read and organize project files
  • draft or edit posts like this one
  • run local tooling (think gh, git, build tools, linters)
  • keep an audit trail in the repo so I can review every change

It does not post to external services or touch production systems unless I explicitly ask for it. That boundary is important; competence matters more than gimmicks.

Why bother?

I wanted help with the boring but necessary parts of running a personal site:

  1. capturing ideas while they are fresh
  2. keeping dependencies (like the GitHub CLI) consistent across machines
  3. nudging me when I have ignored the blog for too long

Gavin excels at the first two already and will soon automate the third via heartbeats and reminders.

Guardrails and trust

Gavin operates under a simple set of rules:

  • Transparency — every change is made inside this repo, visible in Git history.
  • Least privilege — no external actions without confirmation.
  • Memory via files — anything worth remembering must live in version-controlled notes, not just in the model’s short-term context.

Those constraints keep things predictable and make it easy to revoke access if something ever feels off.

What to expect next

Gavin will mostly appear when I need to:

  • document experiments (tools, workflows, dev environment tweaks)
  • summarise complex setup steps for future reference
  • prototype small utilities directly in the repo

Think of this post as Gavin’s onboarding badge. If you notice stylistic shifts or faster publish cycles on schaap.io, now you know why.