-
Notifications
You must be signed in to change notification settings - Fork 0
Customization Types
The 12 primitive types crickets recognizes via its kind field. Each maps to a subdirectory in the repo and a destination path per host.
| Kind | Subdir | What it is | Hosts that consume it |
|---|---|---|---|
bundle |
bundles/ |
Multi-primitive package; manifest enumerates contents | (dispatches per content kind) |
skill |
skills/ |
Agent-invoked helper (SKILL.md body + optional scripts dir) |
claude-code, antigravity |
command |
commands/ |
User-invokable slash command | claude-code |
agent |
agents/ |
Specialized sub-agent for fan-out work | claude-code, antigravity |
hook |
hooks/ |
Pre/post tool-call shell script (e.g. kill-switch, steer, commit-on-stop) |
claude-code (today) |
mcp-server |
mcp-servers/ |
MCP server config + launcher | claude-code (Antigravity: TBD) |
status-line |
status-line/ |
Custom status line display | claude-code |
output-style |
output-styles/ |
Output formatting template | claude-code |
workflow |
workflows/ |
Antigravity multi-step workflow | antigravity |
rule |
rules/ |
Antigravity always-on rule | antigravity |
snippet |
snippets/ |
Fragment appended to AGENTS.md / CLAUDE.md at install time |
claude-code, antigravity |
settings-fragment |
settings-fragments/ |
JSON fragment merged into host settings.json
|
claude-code (Antigravity: TBD) |
Note
Gemini CLI host removed in v0.9.0 per ROADMAP item #15. Standalone Gemini CLI is no longer a supported host. Antigravity (Gemini-in-IDE) stays as a supported host — different surface. See ADR 0006 for the host-scope-reduction rationale.
| Kind | Installer support | Notes |
|---|---|---|
bundle |
✅ (dispatches to inner primitives) |
skill, agent, and hook kinds inside bundles are wired as of v0.7.0 |
skill |
✅ (v0.5.0; gemini-cli destination removed in v0.9.0) | Full dispatch to .claude/skills/<name>/, .agents/skills/<name>/
|
agent |
✅ (v0.6.0; gemini-cli destination removed in v0.9.0) | Full dispatch to .claude/agents/<name>.md, .agents/skills/<name>/SKILL.md (sub-agent-as-skill wrap for Antigravity) |
hook |
✅ (v0.7.0, claude-code only) | Full dispatch to .claude/hooks/<name>.{sh,ps1} plus idempotent deep-merge of the hook's settings-fragment-{bash,pwsh}.json into .claude/settings.json via scripts/merge-settings-fragment.py. Other hosts have no first-class hook surface today. |
| All others | Future toolkit versions add them as the catalog grows |
When a customization with an unsupported kind is encountered, the installer logs a warning and continues. The manifest still passes validation — the kind enum recognizes the value, the dispatch logic just doesn't have a handler yet.
| You want… | Use |
|---|---|
An agent-triggered helper that runs on a keyword or context match (e.g. pii-scrubber; design and memory skills live in Agent M since v2.0.0) |
skill |
A user-typed /something slash command |
command |
A specialized agent for a specific kind of task (e.g. evaluator, explorer) |
agent |
A single concept can ship as multiple primitives — e.g. an evaluator agent + a quality-gates bundle that references it from a skill that auto-invokes it.
| You want… | Use |
|---|---|
| One coherent unit with multiple primitive types (e.g. skill + hook + agent that work together) | bundle |
| Multiple independent customizations | Multiple standalone primitives |
A bundle is right when the primitives depend on each other — installing one without the others would break the design. If the primitives are independently useful, ship them standalone.
bundles/<bundle-name>/
├── bundle.md # manifest + bundle-level doc
├── skills/<inner-name>/SKILL.md # one inner skill (kind: skill)
├── hooks/<inner-name>.sh # one inner hook (kind: hook)
└── agents/<inner-name>.md # one inner agent (kind: agent)
The bundle's contents: list enumerates each inner primitive:
contents:
- skill: <inner-name>
- hook: <inner-name>
- agent: <inner-name>The installer resolves each entry by walking the bundle's matching subdir and dispatching to the right host destinations.
- Manifest Schema — the YAML frontmatter contract.
- Per-Host Paths — destination paths per kind per host.
-
Add a Skill — practical recipe. Plugin authoring lives in Agent M since v2.0.0. (
kind: bundleis reserved-future in v2.0.0; no bundles ship.)
🔧 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