One GitHub repo for every Claude skill: Claude Code, claude.ai and Cowork install from it and update on every…
Claude skills starter
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
One GitHub repo for every Claude skill you write. Claude Code, claude.ai and Cowork all install from it and update themselves whenever a change lands on main, so there are no more .skill uploads and no more copies drifting apart.
Built by Serious AI from the setup we run ourselves: 63 skills in six plugins, one repo. On the day we consolidated, twelve of our skills had edits that had never reached claude.ai, and nothing showed it until we compared every copy. This template is the setup, minus our skills.
The easy way: let Claude set it up
Open Claude Code in a terminal and paste:
Claude checks your tools, makes your own private copy, brings in the skills you already have, and saves them to GitHub. For the two steps it isn't allowed to do itself (installing plugins into Claude Code, and the clicks in the desktop app), it gives you the exact command or click, one at a time. Plan on roughly an hour, most of it gathering the skills you already have.
The rest of this page is the manual route and the reference.
What you get
- **A plugin marketplace skeleton:** .claude-plugin/marketplace.json and one plugin, plugins/my-skills/, with two working example skills:
- house-voice: a writing voice, with its mechanical rules enforced by a check rather than remembered
- build-check: search for an existing tool before building a new one
- **Versions that bump themselves.** Installed plugins only update when the version moves. The pre-commit hook raises the patch version of every plugin that changed and validates the manifests.
- **Every commit reaches every surface.** claude.ai and Cowork re-sync a marketplace only when a pull request merges into main, never on a plain push. The post-commit hook pushes each commit to its own sync/ branch, opens a pull request and merges it, in the background.
- **Rules that hold every run.** The house-voice skill ships a Vale style (a free, open-source prose linter). A hook in the plugin blocks outbound email drafts that break the rules, and flags them in files and Notion pages.
- **Skills that fire when they should.** A skill's description only fires when the model happens to match it. hooks/nudges.json maps prompt patterns to the skill that should run, and holds the first new 80+ line code file of each session until build-check has run.
- **End-of-turn auto-sync.** scripts/autosync.sh commits and pushes any uncommitted change after every Claude turn, for this repo and for your scheduled routines if you put them in git too.
Quick start
1. **Use this template** (the green button on GitHub) to make your own copy. Keep it private if your skills hold anything you wouldn't publish.
2. Clone it, then turn on the git hooks: git config core.hooksPath .githooks. The post-commit hook uses the GitHub CLI, so install it and sign in once: brew install gh, then gh auth login.
3. Rename my-skills in .claude-plugin/marketplace.json and plugins/my-skills/.claude-plugin/plugin.json to your own name, and put your skills in plugins/my-skills/skills/ /SKILL.md. Add more plugins as folders under plugins/ to group skills you'll want to switch off together.
4. Install Vale for the voice check: brew install vale (or see vale.sh for other platforms). Edit the rules in plugins/my-skills/skills/house-voice/vale/styles/HouseVoice/.
5. Validate and commit: claude plugin validate . and claude plugin validate plugins/my-skills, then commit on main. The hooks bump the version and land the commit through a merged pull request. If git status -sb ever shows "ahead" or "behind", read .git/last-push.log.