Customization Types - alexherrero/crickets GitHub Wiki

Customization types

crickets recognizes seven primitive kinds. You declare the kind in each primitive's kind field. You author a primitive under its kind's subdir inside a plugin group. You use the path src/<group>/<subdir>/<name>. The generator emits it into that group's plugin. It emits for each host in its supported_hosts. See Per-host paths for where each lands. See Manifest Schema for the frontmatter contract.

⚡ Quick Reference

Kind Authored in What it is Effective on
skill skills/<name>/SKILL.md agent-invoked helper — the model triggers it on a context match both
command commands/<name>.md user-typed /slash command both
agent agents/<name>.md specialized sub-agent for fan-out work both
hook hooks/<name>/ script the host runs at a session event (Hooks) both — observe-only on Antigravity
snippet snippets/<name>.md standing instruction fragment — emits as an Antigravity rules/ file; Claude plugins can't ship instruction files, so it's dropped and the convention is carried directly in CLAUDE.md / AGENTS.md instead Antigravity
output-style output-styles/<name>.md named output-style — agent reads it when referenced by name (e.g. terse); adjusts verbosity or format both
rule rules/<name>.md standing behavioral rule — merged into the agent's context as a persistent instruction (e.g. edit-over-write) both

These seven ship today. The kind enum also reserves mcp-server, status-line, workflow, and settings-fragment. No primitive uses them yet. The generator emits none. The full enum lives in Manifest Schema.

Note

Group-level scripts/ is not a kind. A src/<group>/scripts/ dir holds verbatim helper scripts (e.g. code-review/scripts/cross-review.sh, development-lifecycle/scripts/agentm_bridge.py). These scripts lack frontmatter. They lack a kind. The system does not discover them as primitives. The generator copies the whole dir wholesale into the plugin at <plugin>/scripts/. It excludes __pycache__. This happens for both hosts. A primitive references a bundled script through the host's plugin path. You use ${CLAUDE_PLUGIN_ROOT}/scripts/<name> on Claude Code. You use a relative scripts/<name> on Antigravity. Antigravity runs primitives from inside the plugin dir. It sets no plugin-root variable. See src/SCHEMA.md § Group-level assets.

Choosing skill vs command vs agent

You want… Use
a helper the agent triggers on a keyword or context match (e.g. pii-scrubber) skill
a user-typed /something command command
a specialized agent for a specific task (e.g. evaluator, explorer) agent

You can ship one concept as several primitives. For example, you can ship an evaluator agent plus a skill that auto-invokes it.

Grouping primitives into a plugin

Primitives that belong together live in one group. You place them in src/<group>/. The generator emits this group as one installable plugin. The group's group.yaml declares its dependencies. It declares whether the group is standalone or requires another group. It declares what the group enhances. See Manifest Schema for that contract. You place independent customizations in separate groups.

Related

  • Plugin anatomy explains what a plugin is. It describes the overall structure.
  • Per-host paths details where each kind lands in the plugin. It shows this per host.
  • Manifest Schema defines the frontmatter contract. It defines the group.yaml contract.
  • Hooks provides the hook catalog. It explains how hooks run.
  • Add a skill gives a worked authoring recipe.
⚠️ **GitHub.com Fallback** ⚠️