This repository packages personal workflow skills for Cursor and Claude Code. Humans and agents editing here should follow this guide.
skills/<skill-name>/SKILL.md # required
skills/<skill-name>/references/ # optional deep docs (one level deep from SKILL.md)
README.md # skill index — keep in sync when adding/removing skills
CLAUDE.md # imports AGENTS.md so Claude Code loads these conventions
scripts/check-skills.sh # enforces the invariants below; run before committing
.forgejo/workflows/validate.yml # runs the script on push/PR (origin is Forgejo)
renovate.json # keeps the workflow's action pins current
scripts/check-skills.sh checks what the Skills CLI does not: name matches the directory,
name is kebab-case and ≤64 chars, description is present and ≤1024 chars, code fences
balance, and the README index and skills/ directory agree in both directions.
Skills are discovered under skills/ by npx skills. Do not put SKILL.md only at the repo root.
---
name: my-skill # lowercase, hyphens, max 64 chars; must match directory name
description: >-
Third-person WHAT + WHEN with trigger phrases (max 1024 chars).
disable-model-invocation: true
---- Default
disable-model-invocation: truefor slash-command-style workflows (user-invoked only). - Omit it only when the agent should auto-apply from ambient context.
- Description is third person, includes what the skill does and when to use it.
- Keep
SKILL.mdunder ~500 lines. Move long checklists intoreferences/. - First steps should gather context by running commands (skills cannot use Cursor
!shell`` injection). - Do not rely on Cursor-only frontmatter (
mode:,allowed-tools:). Encode preferences in the body instead. - Prefer concrete steps, platform branches (GitHub vs Forgejo), and stop conditions.
npx skills init skills/my-skill(or createskills/my-skill/SKILL.mdby hand). The scaffold writesname: skills/my-skillverbatim — fix it toname: my-skill, or the frontmatter violates the "must match directory name" rule above.- Fill frontmatter + body; set
disable-model-invocationappropriately. - Add a row to the README skill index.
- Smoke locally:
sh scripts/check-skills.sh
npx skills add . --list
npx skills add . --skill my-skill -g -a cursor -y- Commit and push to
origin(the Forgejo source of truth — seegit remote -v). - Wait for the install mirror to sync, then consumers run
npx skills update -g.
When porting ~/.cursor/commands/*.md:
- Add
name:and keep/enrichdescription:. - Add
disable-model-invocation: truefor user-triggered workflows. - Replace every
!command`` context line with an explicit “run this command” step. - Drop
mode:/allowed-tools:; describe tool preferences in prose. - Preserve the original workflow fidelity (phases, confirmation gates, platform splits).
- Hand-edit consumer
skills-lock.jsonfiles in other projects (usenpx skills add/update). - Publish internal personal workflows to skills.sh unless intentionally made public.
- Duplicate the same workflow as both a Cursor command and a skill after migration.