Skip to content
# Components
[Home](/en/ai)
[Catalog](/en/ai/catalog)
What ai_stp components are and how they get into a setup.
## Pages
[Publishing and authoring](/en/ai/docs/authoring)
[CLI commands](/en/ai/docs/commands)
[Supported harnesses](/en/ai/docs/harnesses)
[Overview](/en/ai/docs)
[Quickstart](/en/ai/docs/quickstart)
[Security checks](/en/ai/docs/security-checks)
[Trust and safety](/en/ai/docs/trust)
[Catalog](/en/ai/docs/catalog)
[CLI](/en/ai/docs/cli)
[Install telemetry](/en/ai/docs/cli/telemetry)
[agent](/en/ai/docs/components/agent)
[command](/en/ai/docs/components/command)
[hook](/en/ai/docs/components/hook)
[Components](/en/ai/docs/components)
[instruction](/en/ai/docs/components/instruction)
[mcp](/en/ai/docs/components/mcp)
[plugin](/en/ai/docs/components/plugin)
[setting](/en/ai/docs/components/setting)
[skill](/en/ai/docs/components/skill)
[Concepts](/en/ai/docs/concepts)
[Publishing](/en/ai/docs/publishing)
[Setups](/en/ai/docs/setups)
[Troubleshooting](/en/ai/docs/troubleshooting)
[Trust and safety](/en/ai/docs/trust-and-safety)
## Content
# Components Components are the building parts of a setup. Each has a kind, a version, provenance, compatibility constraints and a passport. One kind does not stand in for another. An MCP server stays an `mcp`, and the instructions for using it stay the content of an `instruction` or a `skill`. ## Choosing quickly | If you need to | Kind | Why | | --- | --- | --- | | Add rules, memory or a working style | [`instruction`](instruction.md) | it is textual policy for the agent or the harness | | Describe a repeatable agent workflow | [`skill`](skill.md) | a skill holds the procedure, its material and its helper scripts | | Connect an external tool to the agent | [`mcp`](mcp.md) | MCP gives the agent a managed interface to a service or a local tool | | Act on a harness event | [`hook`](hook.md) | a hook is bound to the lifecycle and needs care | | Give a person or an agent a named command | [`command`](command.md) | a command makes a repeatable entry point clear and checkable | | Add a role or a specialised subagent | [`agent`](agent.md) | an agent describes an area of responsibility and its limits | | Extend the harness itself with a package | [`plugin`](plugin.md) | a plugin installs a native harness extension | | Pin parameters and modes | [`setting`](setting.md) | a setting holds configuration, without secrets and without behaviour | ## The component matrix | Kind | What it holds | What `ai_stp` checks | The typical risk | | --- | --- | --- | --- | | `instruction` | Markdown, rules, memory, constraints | provenance, version, compatibility, scope | rules that are too broad or contradict each other | | `skill` | `SKILL.md`, assets, scripts, references | structure, compatibility, executable helpers | hidden side effects in scripts | | `mcp` | the MCP server description and how it starts | source, permissions, no secrets in the passport | external access to data or tools | | `hook` | the event, the action, the conditions | the event, the target, recovery, confirmation | state changed automatically | | `command` | a slash or CLI command and its arguments | the name, the scope, the help, command conflicts | an ambiguous or dangerous shortcut | | `agent` | the role, its instructions, its limits | the role's boundaries, compatibility, permissions | a subagent with authority that is too wide | | `plugin` | a native harness extension | the package, the version, the source, the install route | supply chain and post-install behaviour | | `setting` | parameters, modes, preferences | allowed values, and that there are no secrets | leaked private data, or configuration drift | ## How a component gets into a setup === "1. Passport" A component is described by a passport: kind, version, source, compatibility, constraints and check results. The passport is what the CLI, the catalog and the agent can all read. === "2. Candidate" `ai_stp` draws candidates from the public catalog, the local registry, or the user's exactly pinned objects. The trust line decides whether an object may be shown and installed automatically. === "3. Setup graph" The setup compiler builds the component graph and checks that versions, the harness, dependencies and constraints are consistent with one another. === "4. Provider" Only the harness's public provider writes the target's final state. Before anything changes there is a plan, a digest and a backup. ??? warning "Why files cannot simply be copied into a target" Harnesses differ in formats, directories, safety rules and lifecycle. Copying directly breaks provenance and rollback. So `ai_stp` builds a checkable plan first, and only then hands the applying to the provider. ## Versions A published component version is immutable and has the form `X.Y`. If the content changes, there is a new version. ## Compatibility A component can fit one harness and be inadmissible for another. Mechanical compatibility constraints apply before any reasoning by the agent. More on the statuses: [supported harnesses](../harnesses.md).
ai_stp