toothpaste-kit 0.4.0
Version 0.4.0 is a MINOR release under docs/releasing.md. It adds three skills and three scripts, each script with a gate, and it carries the fix for issue #11, which includes one BREAKING skill change.
Three new skills
skills/merge-proxy/lets an agent run and push a merge into a trunk, for the session it is invoked in, on a repository whose remote is internal or absent. It first explains the whole plan and halts for approval of each merge, and it never runs on a GitHub or other internet remote. The decision stays the person's; only the typing moves.skills/weekly-review/is a once-a-week pass over a task board's slower lanes: each Waiting blocker chased, carried work named by its count, the Done lane read back against each task's own verification, and one important task given a day, never a due date.skills/monthly-review/is a once-a-month pass: each Someday/Maybe item adopted, kept or rejected, long-stalled Waiting work questioned, and the archive candidates chosen by the person. It is the only review that archives a task the board has been holding.
The two reviews propose and ask; they move nothing the person did not answer.
Three new scripts, each with a gate
scripts/remote-level.shis the remote classifier thatmerge-proxyruns first. It reportsnone,internalorexternalfrom where a repository's remotes point, andexternalwhenever a host cannot be proven internal.scripts/reorientis the observing half ofskills/orient/, which shipped without it. Mail is off unlessREORIENT_INBOX_REPOis set.scripts/check-workspace-stubs.pychecks that the stubs inexamples/workspace/match the filesdocs/standing-documents.mddescribes.
Installing, and a shorter quickstart
docs/installing.md is a new installing guide: where each part of the kit goes among Claude Code's features, symlink or copy, enabling the hooks, updating, removing, and how a workspace grows. docs/quickstart.md is now one path in six steps, each ending with what you should now see. It copies the new example workspace, examples/workspace/. Both were reported in issue #11.
How skills are versioned
docs/releasing.md gains three sections. Skill revisions: a skill's vN lives only in its own CHANGELOG.md, and each release names the skills whose revision moved. A skill's interface: six surfaces, and what counts as breaking, labeled BREAKING before 1.0. Deprecation: announced in one release and removable no earlier than the second after it.
One BREAKING change
skills/session-close/ v5 writes provenance to the layer the tree's CLAUDE.md names, instead of a path from the tree it was written in. Where CLAUDE.md names none, the skill now stops and asks instead of writing to agents/claude/context/. To migrate, name your provenance layer in your CLAUDE.md. The change skips the deprecation window as a safety fix: the old default could put session reasoning in a repository that later gains a public remote.
Also fixed
The em dash and private task ID gates in scripts/gates.sh searched .git, and passed when grep could not run at all. Both now fail on a grep error.
Sources
Every claim above comes from the "0.4.0 (2026-10-13)" section of CHANGELOG.md.