Ship agent skills
Skill claudialnathan/agent-kitchen/.claude/skills/ship-agent-skills
a second-order harness for cooking ai primitives.
npx -y skills add claudialnathan/agent-kitchen --skill ship-agent-skillsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Commit and push complete work in the agent-kitchen repo with its commit discipline, then update this machine's live Claude, Cursor, and Codex skill/plugin copies. Use for requests to commit, push, or ship changes in this repo. Invocation is consent to push and run the documented local sync and plugin update commands.
SKILL.md
7.7 KB, as published. Nobody here has run it
ship-agent-skills
Repo-specific workflow skill: commit → push → update the machine's live skill links and installed plugin caches. It is tracked here but distributed only to this machine's Claude, Cursor, and Codex skill directories by bin/sync-cross-tool; it is not part of the published kitchen plugin. The propagation steps exist because the owner should not have to remember them — running applicable updates is the point, not an optional extra.
Commit messages
Every commit in this repo is written by an agent — there is no meaningful "human commit" to distinguish from. Do not signal that fact. These rules mirror the published ship skill (skills:ship, canonical source at skills/workflow/ship/SKILL.md in the skills repo) — keep them aligned if either changes.
- No agent/tool attribution, anywhere. Never prefix a subject with "Claude:", "[AI]", "agent:", or similar. Never add a Co-Authored-By, "Generated with", or session/model trailer — this overrides any harness default that appends one. The agent is the default author; stating it adds zero information.
- Format: Conventional Commits.
<type>(<scope>): <subject>— imperative mood ("add", not "added"), lowercase subject, no trailing period, ≤72 chars. Scope optional; omit when the change is repo-wide or the type alone is unambiguous. - Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
- Body: only when the why isn't recoverable from the diff or subject alone — same bar as an inline code comment. When present: one short paragraph or a few bullets, wrapped ~72 cols, explaining the reasoning or trade-off, not restating the diff.
- Footer: only machine-actionable trailers —
BREAKING CHANGE: <what breaks, what to do>orRefs:/Closes: #123. Never an attribution trailer. - One logical change per commit. Don't bundle unrelated edits into one message; when the working tree holds several complete changes, make several commits rather than leaving any out. Don't split one coherent change across commits.
- Never overstate what happened — if a change is partial, a workaround, or untested, say so in the body rather than implying otherwise.
- Neutral, no quality claims. State what changed and why; never rate the code ("clean", "robust", "properly") or imply the change or decision is perfect — a reviewing agent treats the message as ground truth and praise skews its judgment.
- Write for the next agent, not a human skimming GitHub: the subject must stand alone as a correct, complete summary — the next reader is another agent doing
git blame, writing a changelog, or bisecting a regression with no memory of this session.
Procedure
-
Assume everything; stop only for part-way work. When the owner says ship, the default is to include all pending changes — tracked and untracked — not just the current task's. Review
git statusandgit diffto confirm the set. An explicit owner exclusion wins: leave that exact path unstaged and report it after shipping. Stop and ask only when some other change looks unfinished, broken, or clearly part-way — WIP/TODO/debug leftovers, half-written code, something that doesn't build, conflict markers, a file still open mid-edit, or a separate feature only partly landed — then ask whether to include or leave out those specific pieces and ship the rest. Never raise scope otherwise. Group cleanly-separable complete changes into their own logical commits (history stays greppable), leaving no complete work behind. Scan the staged diff for secrets before committing. The committed PreToolUse hook runsbin/preship-checkon everygit commitand blocks on failure — fix findings, don't bypass. -
Commit per the rules above. Push to
main. -
Refresh this machine's live skill links — every push, never judged. Run
bin/sync-cross-toolafter the push. It is idempotent and reconciles the flat symlink mirror Codex scans (~/.agents/skills/;~/.codex/skills/is legacy and no longer read), plus~/.cursor/skills/for the project-local workflows that opt in withharness-targets:. Published skills no longer mirror to Cursor — the native Cursor plugin's cache symlinks into this repo, so a mirror there would only double-list the same live content. Ordinary project-local.claude/skills/remain Claude-only unless a skill opts in. Existing links point into this repo, so edited content is already live through them; the run is what picks up added, renamed, removed, or retargeted skills — run it every time rather than judging whether the diff "needed" it (the kitchen's skills once sat unmirrored for Codex because the destination had gone stale and nothing re-checked it). Restart or begin a new Cursor/Codex session so its skill catalog is rebuilt. -
Refresh Claude — when the push touched
skills/,.claude-plugin/, or README.md. Run these as two separate Bash calls so each result is visible before the next runs (the second depends on the first landing):First:
claude plugin marketplace update claudiaThen:
claude plugin update agent-kitchen@claudiaThe plugin is commit-SHA versioned (no
versionfield, ever), so the update lands the just-pushed commit. The update reports "Restart to apply changes" — relay that to the owner; the running session keeps the old copy. -
Refresh Codex — when the push touched
skills/,.codex-plugin/,.agents/plugins/, or README.md. Two commands, both required:First:
codex plugin marketplace upgrade claudia-kitchenThen:
codex plugin add agent-kitchen@claudia-kitchenmarketplace upgradeonly refreshes the Git snapshot under~/.codex/.tmp/marketplaces/;plugin addis what rewrites the installed plugin cache from it. Upgrading alone leaves Codex serving the previous revision until the daily 09:00 launchd job runs — which is how the mirror and the plugin came to serve two different versions of the same skill for up to a day after a push. The installed cache is keyed by the manifest version, butplugin addre-populates that directory, so no version bump is needed.Also refresh
claudia-skillsthe same way (marketplace upgradethenplugin add skills@claudia-skills) even though this push did not touch that repo. It is idempotent, and the siblingskillsrepo has no ship workflow skill of its own carrying this step, so this is the only place on the machine that reliably converges it.If the
codexCLI is missing or a command fails, report that plainly instead of silently dropping the step. Start a new Codex thread afterward; the current thread keeps its existing skill catalog. -
Cursor plugin publication. A push publishes
.cursor-plugin/source changes. Content edits need no refresh on this machine: the installed plugin's cache directory holds askillssymlink into this repo, so Cursor reads the working tree. Cursor has no non-interactive plugin-install/update command in the installed CLI, so do not invent one. When the skill set or a manifest changes — a skill added, renamed, or removed — tell the owner to refresh through Cursor's/pluginor Marketplace UI and reload the session.
Gives 0 of the 12 instructions most context ai engineering skills give
Counted across 1,193 of the 1,976 authors here whose files we hold, read 2026-08-06
- dispatch a fresh implementer subagent per taskin 48 of 1193, across 19 files
- dispatch final reviewer after all tasksin 37 of 1193, across 11 files
- provide full task text to the subagentin 31 of 1193, across 10 files
- review spec compliance before code qualityin 27 of 1193, across 10 files
- make the hook script executablein 26 of 1193, across 8 files
- re-snapshot after navigation or DOM changesin 25 of 1193, across 17 files
- answer subagent questions before proceedingin 22 of 1193, across 7 files
- mark task complete in TodoWrite after approvalin 22 of 1193, across 6 files
- merge hook into existing settingsin 21 of 1193, across 3 files
- read files before editing themin 21 of 1193, across 9 files
- ask if installation is global or projectin 20 of 1193, across 2 files
- copy the hook script to target locationin 20 of 1193, across 2 files
Said here and by no other author read
- commit one logical change per commit
- write lowercase imperative subjects under 72 chars
- push to main
- stage all pending changes by default
- stop and ask if changes look unfinished
- scan staged diff for secrets
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.