Git records what changed.Write-up records why.
Turns a finished piece of work into a self-contained HTML article, and those articles into a small local wiki. The reasoning is complete for about an hour after the work is done. This catches it while it is still there.
Ships as a Claude Code skill. The format and the tooling work with any agent.
Not a screenshot. That frame is the live article, rendering right now, written by the tool about itself.
What you get
A record, not a changelog.
Six fixed sections
Why, What, How, Decisions, Day by day, Highlights. Always that order, so anyone who has read one article can skim any other without learning a new shape.
Roads not taken, inline
Trade-offs are written into the prose as "chose X over Y because Z", so the approach you abandoned survives with the reason you abandoned it.
A wiki, not a folder
Generated front page with full-text search, status filters, hover previews, automatic backlinks, and glossary hovercards for the terms only you know.
Written from live context
No transcript mining. The model writes at the end of the session while it still holds the story, which is both cheaper and a better story than any reconstruction.
A hook that asks once
Fires only when a branch is genuinely finished: clean tree, pushed, ahead of the
default branch. Silent on main, silent everywhere else.
Nothing to install
The hook is a POSIX shell script and the pages are plain HTML. No runtime, no package manager, no framework, no network. Python is optional and only buys speed.
Install
Two commands.
/plugin marketplace add cwhitelam/write-up
/plugin install write-up@cwhitelam
# installs the skill and wires the Stop hook. No clone, no config editing.
Then, in any repo you want documented, ask Claude:
/write-up setup
# reads your git remote, writes .write-up.json with the right link patterns
Finish something, then say /write-up.