sudo
What sudo is built on: a grafted tree. The stack it assumes is the soil, a pinned copy of a skill flow is the rootstock, five third-party skills are grafted onto it, sudo's carried and separately referenced skills grow in the canopy, and a dashed arrow marks the planned fork sync.
sudo holds the skills three agents use for product work. Claude Code loads them as the
sudo-skills plugin, so every skill runs as /sudo-skills:<name>. The OpenClaw
gateway reads this directory directly. A change merged into main reaches gateway
agents in their next session, and Claude Code sessions once the plugin updates.
Any agent running a sudo skill can propose a change to it. The improve-skill skill
turns a lesson from a session into a pull request against main, made in a fresh clone
so neither the plugin cache nor the gateway's checkout is edited in place. A change
reaches the agents once the maintainer merges it.
Matt Pocock's skill flow is the rootstock, copied at a pinned upstream commit. Five skills from other makers are grafted onto it and keep their own licences. sudo's own skills are the new growth at the top. The stack sudo assumes is the ground. A fork and a reviewed upstream-sync command are planned; the diagram marks that path as planned rather than shipped.
Install
Claude Code
sudo-skills is one of the plugins in the sudo marketplace, a catalog kept in
sudo-labs-uk/sudo-marketplace:
claude plugin marketplace add sudo-labs-uk/sudo-marketplace
claude plugin install sudo-skills@sudo
The plugin carries no version number, so each commit on main counts as a release.
claude plugin update sudo-skills@sudo fetches the latest one, and turning on
auto-update for the sudo marketplace in /plugin does the same in the background.
To try an edit before it merges, start a session with claude --plugin-dir pointing at
your checkout.
Block separately installed copies of sudo's skills with a Skill(...) deny rule, such
as humanizer, Compound Engineering's ce-noslop (sudo's no-slop), or a Matt
Pocock plugin's tdd, code-review and pr. Otherwise both copies sit side by side
under different prefixes.
OpenClaw
node bin/sudo-skills.mjs install --dry-run # report, write nothing
node bin/sudo-skills.mjs install # the OpenClaw gateway
node bin/sudo-skills.mjs status # what is installed where
The installer writes one load path pointing at this checkout into the gateway config, and one entry listing the agents. That single entry gives the skills to every listed agent, so the installer writes nothing into any agent workspace.
The installer changes nothing when run a second time and reports that result. It
creates a dated backup beside any file it edits and changes only the keys it owns.
Every other plugin's entry, every other load path and its position, and any disabled
sudo entry all survive. It stops if it cannot parse the gateway config.
Passing --agents sets which agents the entry is for. A plain re-run keeps whatever
list is already there and cannot widen one that was narrowed. The installer writes the
gateway config as two-space JSON, so a config in another layout comes back reindented.
The skills
Ten come from Matt Pocock's set (MIT): grill-with-docs and the two skills it
calls, grilling and domain-modeling, plus to-spec, to-tickets,
implement-spec, tdd and the codebase-design vocabulary it calls, code-review
and pr. sudo's copies write specs to Linear
and open tickets as GitHub issues that reference the spec, and they ask the user one
question at a time.
Five are copied from other makers. design-is and pathfinder come from
claude-mem (Apache-2.0), show-me from HumanLayer (MIT). Two more cover prose:
humanizer (MIT) removes AI writing patterns from a draft, and no-slop (MIT)
tests each sentence for clarity. The planned product-work sequence will require both
passes before a spec, ticket, PR body or repository document is published. Each
skill's UPSTREAM.md lists what sudo changed, if anything.
Six are sudo's own. ask sets how every skill puts a question to the user: one
question per turn, through AskUserQuestion in Claude Code and numbered buttons on
Telegram. sudo-setup configures a repo's Linear team and GitHub repo
once, verify drives the running app and screenshots what a user sees, audit checks
a finished change against its ticket's acceptance criteria from a fresh session,
cut-release tags and publishes, and improve-skill turns a lesson about any of
these skills into a pull request on this repo.
Impeccable, agent-problem-solving and cairn are installed separately. See
docs/referenced-plugins.md for the reason in each case.
Vendored work
Every vendored skill directory carries its upstream licence and an UPSTREAM.md
naming the repo, the path, the commit it was taken at, and what sudo changed.
The two Apache-2.0 skills also carry the upstream NOTICE. The ten Pocock skill
directories record the commit that a future fork will use as its merge base.
Tests
npm test
The tests check that the plugin manifest names sudo-skills with no pinned version,
that the installer writes no Claude Code skills, and that a second run and a dry run
both write nothing. They also check what the installer must preserve: another
plugin's entry and load-path order survive with a backup beside the file, a disabled
entry stays disabled, an agent filter survives a plain re-run, and a symlink config
stays a symlink. An unparseable config stops the install before any write. The
command-line flags have their own tests; a mistyped --dry-run must stop the run
rather than installing. A provenance test checks that every known vendored skill
carries its licence and upstream record, including the two Apache notices.