Cross-surface Claude Code / Codex / opencode / claude.ai skills authored by Matt Stone.
All skills are namespaced stone-* so they install into a shared central store
(~/.agents/skills) without colliding with same-named skills from other packs.
The prefix only changes the explicit slash command (/stone-commit) — natural-language
triggers ("commit this", "write a journal") are unaffected.
Pick your path by the app you run. There are two mechanisms: a filesystem install (one command, covers every coding agent) and a manual zip upload (for the claude.ai chat app, which has no filesystem).
Two different "desktop apps" — don't conflate them. The Claude Code desktop app (Anthropic's coding tool, Mac/Windows) is a filesystem agent — use the npx path. The claude.ai desktop app (the chat app, same as the iOS/Android app) has no filesystem — use the zip path.
| Your app | Path |
|---|---|
| Claude Code — terminal CLI | npx, or the plugin marketplace |
| Claude Code — desktop app (Mac/Win) | plugin marketplace (no terminal), or npx — shares ~/.claude/skills with the CLI |
| Codex / opencode | npx (filesystem) |
| claude.ai — desktop app / web / mobile | zip upload |
npx skills@latest add stonematt/stonematt-skillsPick the skills and agents in the interactive prompt. The CLI copies them into
~/.agents/skills and symlinks them into each agent. Re-run to update.
The Claude Code desktop app reads the same user-scope ~/.claude/skills/ as
the terminal CLI, so a single install on a machine serves both. If a skill
doesn't appear in the desktop app after installing, restart it (or re-run the
command) so it re-scans the skills directory.
Developing this repo? Live-symlink the working copy into ~/.claude/skills instead:
./scripts/link-skills.shThis links the working-copy skills into both ~/.claude/skills and
~/.agents/skills for Claude Code and Codex dogfooding.
Claude Code (CLI or desktop app) can install the whole pack as a plugin straight
from this repo — handy if you'd rather not run npx in a terminal:
/plugin marketplace add stonematt/stonematt-skills
/plugin install stonematt-skills@stonematt-skills
Skills load namespaced as /stonematt-skills:stone-commit (natural-language
triggers like "commit this" are unchanged). Claude Code only — Codex and opencode
have no plugin system, so use the npx path above for those.
claude.ai (the chat app — not the Claude Code desktop app above) has no CLI or filesystem install. Upload a zip by hand via Settings → Customize → Skills. Uploaded skills are tied to your claude.ai account, so one upload is available wherever you're signed in (web, desktop, mobile). This path is best-effort for the MVP until bundle compatibility is validated against the current uploader. Build one per skill:
./scripts/build-claudeai-zip.sh stone-commit # → stone-commit.zipengineering/ — stone-commit, stone-merge, stone-promote-settings
productivity/ — stone-ai-sniff-test, stone-client-report
personal/ — stone-journal, stone-journal-status
The generic persona skills (voice, email, define-voice) and their tooling are
parked on the feat/voice-personas branch for future re-integration.
The pack is versioned with SemVer. The canonical number
lives in .claude-plugin/plugin.json; every
release tag (vMAJOR.MINOR.PATCH) on main matches it, and each is published as
a GitHub Release. See
CHANGELOG.md for what changed.
Am I on the latest?
./scripts/check-latest.shCompares your installed version against the newest release (curl only — no gh
or jq needed). Works for plugin-marketplace installs and repo clones. The
npx skills add path copies individual skill dirs without the pack manifest, so
it has no local anchor yet — per-skill frontmatter stamping is the planned
follow-up. claude.ai zips carry a VERSION file at the zip root.
Cutting a release (maintainer): bump version in plugin.json and add a
CHANGELOG.md section on the dev→main release PR, then once it lands on main:
./scripts/release.sh # tag + push + GitHub Release; --dry-run to previewIt refuses unless run from a clean main, the tag is new, and the CHANGELOG has
a matching section — so the version number, the tag, and the release never drift.
- See
CLAUDE.mdfor agent skill configuration (issue tracker, triage labels, domain docs) - See
CONTEXT.mdfor the project's vocabulary - See
docs/adr/for architectural decisions
Run the lightweight pre-merge gate before merging to main:
./scripts/test.shThis validates skill naming/index consistency, the claude.ai zip smoke test, and the release-script guards.
MIT — see LICENSE.