My personal library of agent skills. Reusable instruction packs that Claude Code and other agents load on demand, so I stop re-explaining the same workflow every session.
A skill is a directory under <category>/skills/ holding a SKILL.md. The YAML frontmatter sets name, description, and optionally disable-model-invocation. The rest of the file is the instructions the agent follows.
| Category | What's in it |
|---|---|
| coding | Design, build, review, debug: TDD, code review, domain modeling, bug diagnosis. |
| general | Thinking and handoff: grill a plan, research, unslop. |
| productivity | Conversations into plans, tickets, docs, and repeatable setup. |
| personal | Machine-specific one-offs. |
Each category README lists its skills. It marks which ones you invoke by typing /<name> and which ones the agent invokes on its own.
The visual catalogue shows every skill as a card, with the invocation flag on each one. It is generated from the SKILL.md frontmatter into docs/index.html, so it cannot drift from the skills. Build it locally with node tools/build-catalog.mjs. The catalog workflow rebuilds it whenever a SKILL.md changes.
Both methods point at this repo, so git pull or /plugin update brings in new skills. Pick one.
This needs no clone and works on any machine.
/plugin marketplace add joaopinto15/skills
/plugin install coding@skills
/plugin install general@skills
/plugin install productivity@skills
The marketplace holds one plugin per category, so install only the ones you want. personal@skills is there too, but it only helps on my own machines.
To test a change before you push it, point the marketplace at your clone instead: /plugin marketplace add ~/projetos/skills.
git clone https://github.com/joaopinto15/skills.git ~/projetos/skills
~/projetos/skills/setup.shsetup.sh creates a symlink in ~/.claude/skills for every skill in the repo, and replaces any link that is already there. Run it again after you add a skill, then restart Claude Code.
To link into a project instead of your home directory, set dst in setup.sh to <repo>/.claude/skills.
- Create the directory:
mkdir <category>/skills/<skill-name>. - Write
SKILL.mdwithnameanddescriptionin the frontmatter. To stop the agent from invoking the skill on its own, adddisable-model-invocation: true. - Add a line for the new skill to that category's README.
- If you use linked skills, run
setup.shagain. If you use the plugin, raiseversionin<category>/.claude-plugin/plugin.jsonand push.
setup.sh links every skill directly into ~/.claude/skills, so skill names must be unique across categories.