Docs / Guides
Map your first capability
Turn a real-world ability into a capability ID, host boundary, policy rule, invocation context, result, and evidence expectation.
Plain English
Start with something someone can do, then name the host that owns it and the rules for calling it.
Why it exists
Good capability maps prevent demos from hiding lifecycle, authorization, and failure semantics.
Formal definition
A capability map is an implementation planning artifact that identifies actor, capability, host, policy, context, result, lifecycle, version, and evidence.
Concrete example
Ground the concept before the schema.
Map schedule_technician before writing the host so denial and unavailable outcomes are known up front.
Finds an available qualified technician and reserves a service window.
Policy boundary
Approval requiredmanager_approval
A manager must approve technician scheduling before the host returns a confirmed appointment.
Invocation trace
- 01 Actor
Planning Agent
- 02 Capability
schedule_technician
- 03 Host
ServiceOpsHost
- 04 Policy
manager_approval
- 05 Context
job_context
- 06 Result
Confirmed Appointment
{ "id": "service-ops-host", "version": "0.1.0", "protocol_version": "0.1", "kind": "service", "capabilities": [{ "id": "schedule_technician", "version": "1.0.0", "description": "Finds an available qualified technician and reserves a service window.", "status": "experimental", "modes": ["sync"], "emits": ["execution_started", "execution_completed", "execution_denied"], "policy": { "risk_tier": "high", "auth_required": true, "approval_required": true, "allowed_actors": ["agent://planning-assistant"] }, "metadata": { "required_permissions": ["service:dispatch"], "lifecycle": "invokable" } }], "evidence": { "store": "local-append-only", "append_only": true }}Relationships
Where this sits in the protocol.
Each concept should explain its neighbors so implementation teams can preserve the boundary across manifests, invocation, evidence, and tests.
Capability mapping feeds manifest design.
Policy mapping feeds invocation safety.
Result mapping feeds composition and evidence.
Visual model
- 01Name the actor and ability.
- 02Assign a host and policy boundary.
- 03Define result, lifecycle, version, and evidence.
Implementation notes
- Use the interactive mapper for the first pass.
- Write one unavailable-path test and one policy-denial test.
- Move the map into a manifest only after the boundary is clear.
Common mistakes
- Starting with a framework tool schema before naming the host.
- Treating approvals as comments instead of protocol outcomes.
- Skipping the result contract.
Related concepts