---
title: Shipped the changelog apprentice
description: A post-commit hook hands every commit to Claude Opus 4.7. Most get skipped. The ones that ship write themselves into five surfaces.
section: meta
tags: [meta, changelog, automation, ai, opus]
genre: index
lastUpdated: 2026-04-18
url: https://fardiniqbal.com/docs/changelog/2026-04-18-shipped-the-changelog-apprentice
---


The page you're reading maintains itself now. A post-commit hook fires after every commit I make. It runs `scripts/changelog.ts --auto`, which hands the diff to Claude Opus 4.7 along with my last three published entries and an excerpt of the Axioms essay for voice calibration, and asks the model to decide whether this commit warrants an entry. Most don't. When one does, the model drafts the entry in my register, auto-publishes it to `content/docs/changelog/`, and creates a follow-up commit tagged to prevent the hook from firing on its own output.

Five downstream surfaces consume published entries from one source: this MDX page, `/feed.json` and `/feed.xml`, all three `/llms.txt` variants, a new `get_recent_activity` MCP tool at `/api/mcp`, and the chatbot's system prompt at `/api/chat`. One generator, five readers, all deterministic. The chatbot can now answer "what's Fardin worked on recently?" with real data instead of guessing from static content.

Same day, I rewrote the prompts and the anchor entries and backfilled four historical entries — the portfolio elevation, the essays drop, the AI-native skeleton, the redesign day. The apprentice's first month of drafts calibrate against writing I actually want to read.

The goal was never to automate my voice. It was to automate the archaeology — reading diffs, remembering what shipped, deciding what's worth noting — so I can stay in the writing seat without having to run a script or maintain a file.
