Boring survives.
We rejected databases, dashboards, auto-magic. Every choice prioritises portability and longevity over cleverness. This is what we kept — and what we threw out.
Markdown only
No database. No server. No framework. No runtime dependency except bash and whatever Claude Code already runs.
If the toolkit disappeared tomorrow, every file it wrote would still be a readable markdown document that tells the next human what was decided, what's missing, and what to do next.
Idempotent
Every command is safe to re-run.
- •
/beforeon a tiny task skips itself and tells you why. - •
/shipon a clean diff says "nothing to check" and exits. - •
/session lastdoesn't modify anything — just reads.
No "did I already do this?" anxiety. Just run it.
Never delete history
- • A closed gap becomes
shipped YYYY-MM-DD (commit: <hash>)— the section stays, the work is remembered. - • A superseded ADR becomes
superseded by ADR-NNN— you can always trace the reasoning chain. - • An archived doc gets a banner pointing to its replacement, not a deletion.
Deletion loses context. Marking status preserves it. The cost is a few bytes.
Adaptive, not rigid
/ship reads the diff before asking anything. It only asks about the things your changes actually touched — no checklist bloat.
/before decides for itself whether the task deserves a plan. Typo fix? Skip. New feature? Plan.
Project-agnostic
No hardcoded paths. No language assumptions. No framework coupling. The skills read CLAUDE.md and the docs/ files relative to the current working directory.
The loop matters. Not the commands.
Any individual command can be skipped. What matters is doing these four steps, in order, every session.
Plan
Before coding: /before
Decide
Trade-offs appear: /decision
Ship
Before commit: /ship
Hand off
End of session: /session
Skip any of these and the next session pays the cost. Do them all and a new session picks up where the last one left off, with full context.
What we threw out
- Databases and dashboards
You'd need to install them, back them up, keep them running. Markdown just works.
- Auto-generated changelogs
They describe what, not why. The commit message + ADR do better.
- Granular permission models
Anyone who can edit the repo can edit the docs. Solve with branch protection, not tool features.
- Framework magic
No scripts that modify code automatically. Claude reads the rules and applies them — the rules are the tool.
What made it in
- Simple text files
Anyone can read them. Any editor can edit them.
- Explicit approval gates
For risky actions (commits, overwrites). Nothing silently mutates your repo.
- A single index
So nothing gets orphaned.
CLAUDE.mdis the source of truth for rules. - Preservation of history
By default. Closures and supersession leave a trail.
This is meant to be boring.
Boring survives.