Customization Model - alexherrero/crickets GitHub Wiki

Customization model

What a crickets customization is made of: the primitive kinds, and how plugins compose.

A crickets customization is a primitive โ€” a skill, command, agent, hook, or snippet โ€” described by a YAML manifest. Primitives that belong together live in one plugin, and the plugin is the unit you install. You author one primitive per file; its frontmatter says what kind it is and which hosts it runs on.

How it works

A primitive's kind field decides both what it does and where you author it โ€” src/<group>/<kind-dir>/<name>. The generator discovers it by walking that subdir, and a per-group group.yaml describes the plugin around it. Seven kinds ship today; the schema reserves four more (mcp-server, status-line, workflow, settings-fragment) with no instance yet.

Kind What it is
skill an agent-invoked helper โ€” the model triggers it on a context match.
command a user-typed /slash command.
agent a sub-agent for fan-out work.
hook a script the host runs at a session event.
snippet a standing instruction fragment.
output-style a host output style (e.g. terse).
rule a standing rule fragment (e.g. edit-over-write).

Plugins compose two ways. A plugin requires: another when it hard-depends on it โ€” it is then integrated, not standalone. A plugin enhances: another when it augments it only if both are installed โ€” the dependency is soft, and the enhancement is skipped when the target is absent.

How it fits

  • Plugins โ€” the unit primitives ship in. Each src/<group>/ is one plugin; group.yaml's requires: / enhances: are where one plugin's relationship to another is declared.
  • Build & distribution โ€” what reads these manifests. The generator switches on kind and supported_hosts to emit each plugin.
  • Host adapters โ€” where a primitive's supported_hosts + kind resolve to a real destination. The model declares intent; the adapter places the artifact.

See also

Detail:

Architecture ยท Reference ยท Home

โš ๏ธ **GitHub.com Fallback** โš ๏ธ