Skip to content
Beta Multi-model support (OpenAI, Gemini, and more) launching soon.

Authoring standards

The catalog accepts seven kinds of artifact. Each has its own authoring standard. Pick the one that matches what you’re contributing — the validator (npm run validate) gates every PR against these rules.

For the security model behind every standard — the threats they exist to defend against and the validator rules that enforce the deterministic parts — see Security & guardrails.

ArtifactStandard
Plugin bundlePlugin authoring standards
Skill (standalone or bundled)Skill authoring standards
Agent (standalone or bundled)Agent authoring standards
Slash commandSlash command standards
MCP server configMCP server standards
HookHook authoring standards
ResourceResource authoring standards

Each standard is written in two layers, in this order:

  1. Anthropic’s best practices — the official, vendor-recommended way to build this artifact, drawn from Anthropic’s Claude Code documentation. This is the part that transfers everywhere: it’s true whether you’re shipping into this catalog, into a client repo, or into your own ~/.claude/. Learn it once.
  2. How RBA tailors this — the thin layer RBA adds on top so the artifact is consistent, discoverable, and installable in this catalog: slug rules, optional facets (platforms, disciplines, outcomes, lifecycle, tags, plus the optional primitive: true flag), standalone vs. plugin-bundled packaging, tighter least-privilege defaults, and what the validator enforces.

The rule of thumb: if Anthropic says it, follow it. Where Anthropic leaves a choice open, RBA picks one so the catalog stays coherent. When the two ever appear to conflict, the Anthropic baseline wins on correctness and the RBA layer narrows it — RBA never asks you to do something Anthropic warns against.

Most artifact types can ship standalone or inside a plugin bundle:

  • Standalone lives at the repo root (skills/<slug>/SKILL.md, agents/<slug>.md, etc.). It’s the low-friction path — one file, one PR, no full plugin scaffold. Standalone artifacts surface in the catalog but aren’t installable via claude plugin install.
  • Plugin-bundled lives at plugins/<plugin-name>/<type>/.... It’s the path for related artifacts that ship together and need to be installable via the marketplace.

The difference is packaging, not quality — both go through the same validator and surface in the same browse pages, source-labeled.

  1. Read Anthropic’s layer for the artifact type and build to it first.
  2. Pick the right shape (standalone for one-offs; plugin bundle for a set of related artifacts that ship together).
  3. Apply the RBA layer (slug, facets, placement, least-privilege).
  4. If you’re working in the repo directly, run npm run validate before opening the PR.
  5. If you’re submitting via an issue form, the bot runs the validator for you and surfaces errors back to the issue.