Skip to content

chore: release 0.4.0 - #42

Merged
pallaoro merged 5 commits into
mainfrom
often-i-want-to-know-if
Sep 11, 2026
Merged

pallaoro merged 5 commits into
mainfrom
often-i-want-to-know-if

Conversation

@pallaoro

Copy link
Copy Markdown
Member

Ships /wrap (#40) and the Claude Code plugin-channel installer fix (#41).

0.3.0's installer copies commands and skills into ~/.claude/, which duplicates everything the greybeard plugin already provides — so the fix only reaches users once it's on npm.

The end-of-session question — can I close this and delete the worktree? —
gets answered by feel, and both failure modes cost: closing on an unpushed
branch or an hour of dead ends that only lived in the context, or leaving
half-finished worktrees nobody dares delete.

/wrap forces one of two rulings: finish it now, or wrap it into something
durable and say it's safe to delete. The test is what dies when the worktree
dies, not what feels important. Four hard stops force finishing (the world
outside the repo is mid-change, the trunk is worse than you found it, what's
left is minutes of work, or you can't write the brief). Otherwise it picks
the cheapest durable form that carries the work — sidenote, committed doc,
issue, or pushed branch plus draft PR — writes a five-line brief including
the approaches already rejected, confirms the artifact landed outside the
worktree, and ends on a verdict line.

A PR needs at least one commit, so "a PR with only a description" is either
an issue or a PR whose diff is the brief committed as a doc; the ladder
routes accordingly.

Installer: the three hardcoded command copies become a COMMANDS array,
mirroring SKILLS, so the next command is a one-word edit.
…plicates

Claude Code could get greybeard two ways at once: the plugin (skills and
commands, namespaced, updated with `claude plugin update`) and this installer
copying the same files into ~/.claude/skills and ~/.claude/commands. Anyone
who had both carried two copies of every command in the resolver, and they
drift the moment one side updates — on the machine this was found on, the
plugin was 11 commits behind while the copied files were current, so
/pressure-test and greybeard:pressure-test were different commands.

installClaude now fences the guidelines into CLAUDE.md and hands everything
else to Claude Code's own plugin manager: `marketplace add` + `install` when
the plugin is absent, `marketplace update` + `update` when it's there. State
comes from `claude plugin list --json` rather than matched out of human
output, and only a real version change is reported, so a re-run stays a true
no-op. Without the claude CLI on PATH it warns with the two commands to run.

The old copies are removed on every run, install or uninstall, so an existing
machine de-duplicates itself on the next `npx @clawnify/greybeard` — same
migration trick already used for the pre-rename scalable.md.

Docs: both READMEs stopped telling people to cp the files into ~/.claude,
which was the instruction that created the duplicate, and now point at the
plugin (noting the commands arrive namespaced). Copying stays documented for
harnesses that have no plugin manager.
@pallaoro
pallaoro merged commit d5f7745 into main Sep 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant