-
Notifications
You must be signed in to change notification settings - Fork 0
Add A Skill
Note
Goal: Add a new standalone skill to crickets and ship it via the installer.
Prereqs: You know what the skill does and which hosts it targets; crickets cloned locally.
-
Pick a name (
CamelCase-With-Dashesper filename convention; globally unique across all customizations):SKILL_NAME=my-new-skill
-
Create the directory:
cd ~/Antigravity/crickets mkdir -p skills/$SKILL_NAME
-
Create
skills/<name>/SKILL.mdwith full frontmatter:--- name: my-new-skill description: One or two sentences describing when this skill triggers and what it does. kind: skill supported_hosts: [claude-code, antigravity] version: 0.1.0 install_scope: project --- <skill body — operational instructions for the agent>
See Manifest Schema for the full field list and validation rules.
-
Write the skill body. Keep it operational — preconditions, workflow, hard rules, output contract. See
skills/pii-scrubber/SKILL.mdas a reference. -
Validate locally:
python3 scripts/validate-manifests.py
Output should be:
validate-manifests: clean (X bundle(s), Y standalone skill(s))withYincreased by one. -
Test the dispatch by installing into a scratch dir:
TARGET=$(mktemp -d) cd $TARGET && git init -q bash ~/Antigravity/crickets/install.sh $TARGET ls $TARGET/.claude/skills/$SKILL_NAME/ # should contain SKILL.md ls $TARGET/.agents/skills/$SKILL_NAME/ # same # Note: .agents/skills/ removed in v0.9.0 (Gemini CLI host dropped per ROADMAP #15). rm -rf $TARGET
-
Commit your changes. The pre-push hook will scan your changes for PII before the push goes out — fix any findings before pushing.
If the skill only makes sense on one host (e.g. a Claude Code hook that has no Antigravity equivalent), narrow supported_hosts:
supported_hosts: [claude-code]The installer skips the dispatch for hosts not in the list.
Skills can ship more than just SKILL.md. Place supporting files under the same dir:
skills/<name>/
├── SKILL.md # manifest + body
├── scripts/
│ └── <helper>.sh # invoked from the skill body
└── templates/
└── <template>.md # used by the skill at runtime
The installer copies the whole dir (managed-dir wipe-and-recreate on --update). Reference supporting files from SKILL.md body via relative paths.
To package multiple primitives together, group them in one plugin (src/<group>/) — see Plugin anatomy.
After adding the skill:
-
python3 scripts/validate-manifests.pyexits 0. -
bash scripts/smoke-install-bash.shexits 0 (the expected-files list might need updating if your skill is in the smoke test's assertion list — but for net-new skills not in the smoke list, the test still passes since it only asserts a subset). - The skill body's instructions actually do what they claim — test by invoking the skill in your host.
- Manifest Schema — frontmatter contract.
- Per-Host Paths — where the skill lands per host.
- Customization Types — when a skill is the right kind vs. command/agent/hook.
- Plugin anatomy — packaging primitives into a plugin.
🔧 How-to
- Plugin anatomy
- Repo layout
- Compatibility
- CI gates
- Troubleshooting
- Customization Types
- Manifest Schema
- Per-Host Paths
- Hooks
- Evaluator
- Antigravity Limitations
- Wiki Watch Config
- Style-learning loop
- Modify a plugin
- Add a skill
- Add a plugin
- Named plans
- Coordinator roles (pending)
- Obsidian vault backend (pending)
- GitHub Projects
- Testing Conventions
- Releasing Conventions
- Design Docs