# Capability Detail
Open any capability and you see the complete picture: what the capability is called, what category it belongs to, what prompt defines its behavior, and exactly which agents carry this knowledge. No guessing whether an agent knows your conventions—**the assignment list tells you definitively**.

{{< thumbcard src="/images/ui/capabilities/capability-detail-definition.png" alt="Capability detail showing Definition tab" caption="Key, category, and prompt binding—the anatomy of encoded expertise" >}}

## What this page covers

- Capability header and navigation
- Two detail tabs: Definition and Assignments
- Editing capability properties
- Managing agent assignments

## Capability header

Every capability detail page shows:

- **Breadcrumb** — One click back to the capability list
- **Capability key** — The unique identifier (e.g., `planning.vmp`)
- **Tab navigation** — Definition and Assignments tabs

The key is your reference. When you bind capabilities to agents, you use this key.

## Definition tab: what this capability is

The Definition tab shows the capability's identity:

### Key

The unique identifier used for lookups and bindings. Keys are normalized to lowercase on save.

**Naming convention:** Use dot notation to create hierarchy:
- `typescript.core` — Base TypeScript capability
- `typescript.testing` — Testing specialization
- `acme.ui.components` — Team-specific UI rules

### Category

Optional grouping label for filtering and organization. Common categories:
- `operations` — Agent lifecycle, observability
- `planning` — Feature planning workflows
- `documentation` — Writing standards
- `typescript` — Language patterns
- `audit` — Validation and verification

Leave blank if no category fits. You can add one later.

### Prompt Binding

The most important field. This links the capability to actual instructions.

When you select a prompt, you see:
- **Prompt name** — Human-readable title
- **Prompt ID** — ULID for unique identification
- **Prompt role** — `SYSTEM`, `GUIDE`, or `CHECKLIST`

Without a prompt binding, a capability is just a label. With a prompt binding, the capability delivers actual behavior to every agent that has it assigned.

> [!TIP]
> **Double-click to edit.** Both the key and category fields support inline editing. Double-click, change the value, and the capability updates.

## Assignments tab: who has this capability

{{< thumbcard src="/images/ui/capabilities/capability-detail-assignments.png" alt="Capability detail showing Assignments tab" caption="Three agents share this planning capability—each inherits the same prompt" >}}

The Assignments tab shows every agent with this capability:

### Agent cards

Each assigned agent displays:
- **Agent name** — Click to open the agent detail
- **Type badge** — `bot`, `human`, or `ci`
- **Handle** — The `@handle` for referencing this agent
- **Category override** — If the agent uses a different category
- **Prompt binding** — The prompt this agent receives

### Adding agents

Click **+ Add Agent** to assign this capability to another agent. The agent will immediately inherit the bound prompt in future sessions.

### Removing agents

Click **Remove** next to any agent to unassign the capability. The agent will no longer receive this prompt in future sessions.

> [!NOTE]
> **Assignments take effect on next session.** If an agent is currently running, it continues with its existing capabilities. The new assignment applies when the agent restarts.

## Use cases

### Verifying agent knowledge

Question: "Does our TypeScript agent know about our testing standards?"

1. Open the `typescript.testing` capability
2. Check the Assignments tab
3. If your agent is listed, it has the capability

### Spreading expertise to new agents

Scenario: You've created a new documentation agent and want it to follow your team's writing standards.

1. Open capabilities like `author.documentation.structure` and `author.documentation.validation`
2. Go to the Assignments tab
3. Click **+ Add Agent** and select your new documentation agent
4. Repeat for each relevant capability

### Auditing capability distribution

Question: "Which agents have our planning capabilities?"

1. Open `planning.vmp`
2. The Assignments tab shows all agents with planning expertise
3. Compare against your full agent roster to find gaps

### Updating capability behavior

When you want to change what a capability does:

1. Update the bound prompt in the Prompts registry
2. The capability automatically uses the new prompt content
3. All assigned agents receive the updated behavior on their next session

No need to re-assign—the binding stays intact, the content changes.

## Capability editing

### Changing the key

Double-click the key field to edit. Note:
- Keys are normalized to lowercase
- Changing the key doesn't break existing assignments (they track by ID, not key)
- Use meaningful, hierarchical names

### Changing the category

Double-click the category field to edit. Leave blank to clear.

### Changing the prompt binding

Click the prompt selector to choose a different prompt. The new prompt applies to all assigned agents on their next session.

## Local-first storage

Capability definitions and assignments live in your local workspace. They persist across sessions and survive application restarts—but they're stored on your machine.

> [!NOTE]
> **Export for backup.** Consider exporting your capability registry periodically. This protects against data loss and enables sharing capability packs with other team members.

## Next steps

- **[Capability List](../capability-list/)** — Browse all capabilities
- **[Team Capabilities Guide](/valdr/docs/valdr-packs/team-capabilities/)** — Learn to encode your team's expertise
- **[Prompts](../../prompts/)** — Create prompts to bind to capabilities

**Open a capability now** and check its Assignments tab. See exactly which agents carry this knowledge—and decide if others should too.

