Articles
Written properly
Longer pieces on vibecoding, AI slop and building the apps on m7kni.io. Finished when they publish. Shorter working notes live in notes.
Pinned to a release that already had the fix
SHA-pinning a shared GitHub Actions workflow locks out regressions and locks in bugs the maintainer has already fixed, because nothing tells a consumer a newer pin exists.
Retiring long-lived GitHub PATs for a per-job mint
Replacing standing GitHub PATs across three orgs with GitHub OIDC brokered through OpenBao into hour-lived App installation tokens, and the traps that arrangement produced.
Agent profiles, part six: measuring the agents
Three layers of telemetry over two coding-agent CLIs, what each one can and cannot see, and the metrics contract that stops a count from being read as a result.
Agent profiles, part five: what a green run still gets wrong
Every lane passed its acceptance check, the gate came back green, and the wave still shipped something wrong. The failures that survive a working process, and what each one cost.
Agent profiles, part four: the fan-out campaign model
How I brief long-running, multi-agent campaigns across Claude Code and Codex: the goal file, the run contract, what compaction actually does, and roles instead of model names.
Agent profiles, part three: backup and automation
How eight agent profiles get backed up to a self-hosted git server, a homelab knowledge repo built the same way, and the tooling that keeps two shared documents honest across 41 repositories.
Agent profiles, part two: config is a build artefact
Rules, skills and hooks for eight agent profiles come from one source repository and a deterministic renderer, with a receipt proving which commit is actually running.
Agent profiles, part one: one profile is not enough
Running two coding agents across personal, mobile and security work broke down under one shared config. Here is the profile split that replaced it, and the launcher boundary that makes it safe.