Codifying Context
Context hygiene was a phrase I used in the last post without fully unpacking it. That was deliberate — it deserved more than a paragraph, and I wasn't ready to give it more than a paragraph at the time. I've had longer to think about it since, and I've done something more useful than thinking: I've started to codify it.
You can find the skills repo on my GitHub.
The README explains the rationale more precisely than I'm going to here, but the short version is this: skills are structured context payloads, designed to be loaded deliberately into a session rather than accumulated passively by letting the model reach for whatever it can find. The methodology is built specifically around the constraints that matter — the ones that emerge when you're working with AI models on large codebases, where the model's window is finite, where loading the wrong context is actively harmful, and where the quality of the output is a direct function of the quality of what you put in.
That last point is the thing most people treat as background assumption and then wonder why their sessions degrade. The model doesn't have preferences about what goes in the window. You do. A skill is the formalisation of that preference — a decision, made once, about what this type of task actually needs loaded to produce good output. Not everything. The relevant subset, cleanly structured. It sounds simple. The discipline is in holding the line on what doesn't belong.
The approach borrows from the same logic as the CLAUDE.md philosophy I described in the previous post: separate the levels. Generic behavioural guidelines in one place. Task-specific context in another. Don't let them bleed into each other, because when they do, both become noisier and neither does its job cleanly. Skills are the task-specific layer, and they're portable — the same skill that works in one project works in any other project with the same requirements, because it was never project-specific to begin with. It was always about the task.
The repo also includes something worth calling out separately: a skill for integrating image generation into Claude Code using OpenAI's GPT Image 1.5, with a bring-your-own-keys approach. The reason this exists as a skill rather than a hardcoded integration is the same reason everything else in the repo is a skill — you want to load it when you need it and not carry it when you don't. The BYOK pattern keeps it genuinely portable across setups.
What I've come to believe, building this out, is that the skills pattern is really just applied context hygiene at a higher level of abstraction. Individual sessions benefit from deliberate context management. The skills repo is what that looks like when you lift it up one level and ask: across all sessions, across all projects, what are the reusable decisions worth encoding? The answer isn't everything. It's the things that cost you real quality when you have to reconstruct them from scratch — the things where the difference between loading them correctly and not loading them shows up in the output in ways you can actually measure.
That's the frame. Everything else is in the README.