Thanks for contributing to this repository.
Each top-level skill directory is intended to be a shippable unit. A complete skill may include:
SKILL.mdreferences/evals/test-cases/- optional helper files such as
assets/orscripts/
Keep changes focused. If you are editing a skill, update its supporting references and evals in the same pull request when needed.
Run the repo validator before opening a pull request:
bash .github/scripts/validate-skills.shRecommended additional checks:
npx markdownlint-cli2 "**/*.md"
lychee --no-progress "./**/*.md"If you do not have those tools installed locally, rely on GitHub Actions for final verification.
- Keep frontmatter valid YAML with both opening and closing
---delimiters. - Match the
name:field in eachSKILL.mdto the containing directory name. - Keep referenced files relative to the skill directory and ensure they exist.
- Prefer concrete instructions over generic advice.
- Update eval fixtures when behavior or expected outputs change. Evals are encouraged but not required for every skill.
- Use a short title that describes the behavioral change.
- Explain what changed and why.
- Note any new references, templates, or release implications.
- Include validation results in the pull request description.
Releases are tagged from main and documented with changelogs. Skills are distributed via npx skills add jdevalk/skills — no build artifacts. Do not rename skill directories casually because the skills CLI, versions.json, and validation assume stable names.