Keep every contribution focused on one independently installable skill or one collection-level concern.
- Choose a unique kebab-case name.
- Create
skills/<name>/SKILL.mdwith valid frontmatter whosenamematches the directory. - Add runtime references, scripts, templates, or assets only when the skill needs them during use.
- Create the corresponding
evals/<name>/directory. - Add positive, negative, and boundary trigger prompts.
- Add synthetic, behavior-preserving fixtures when the skill edits code or artifacts.
- Run
./scripts/check_skill.sh <name>. - Run
./scripts/run_fixture_checks.sh <name>when fixtures provide executable checks. - Dry-run with
./scripts/install_skill.sh --dry-run <name>, then install with./scripts/install_skill.sh <name>. - Update the catalogue in
README.mdand the unreleased section inCHANGELOG.md. - Create coherent local commits with path-specific staging and reviewed staged diffs.
- Review all tracked content for secrets, personal paths, private research, and publication rights before pushing or publishing.
Run ./scripts/check_all_skills.sh and ./scripts/run_fixture_checks.sh before sharing a collection-level change. State exactly which optional checks were unavailable.
- Preserve existing skills and their public behavior.
- Keep runtime content out of
evals/and collection infrastructure out ofskills/<name>/. - Do not commit generated evaluation runs.
- Do not claim trigger accuracy, behavior preservation, or effectiveness without recording the relevant evaluation.
- Add a focused synthetic regression whenever an observed failure leads to a runtime change.
- Rerun the directly affected fixture, trigger, or boundary gates after every runtime modification.
- Before a release, rerun collection validation, the skill's full fixture suite, and any real-repository gate whose accepted runtime snapshot changed.
- Record portable summaries of release evidence, but keep raw sessions, temporary repositories, and generated logs in ignored result directories.