Agentic Covenants

Protect (PR) · Authorization

Authorization at the in agent layer

advisory · Bypassable by language alone

If the agent decides to violate this concern, what stops it at this layer?

What this cell does

Model instructions and scoped tool descriptions.

Artifacts (1)

tool-description-template.mdview on GitHub
# Tool-description template, Authorization scoping

Use this shape for every tool description in your agent's tool registry, MCP server, or Claude Code skill. The model reads the description; write it for the model.

---

## Template

```
{{ TOOL_NAME }}

Purpose:
  {{ ONE_SENTENCE_PURPOSE }}

Allowed inputs:
  - {{ ALLOWED_INPUT_1 }}
  - {{ ALLOWED_INPUT_2 }}

Not for:
  - {{ FORBIDDEN_USE_1 }}     (this is a hard scope boundary; do not use this tool for it)
  - {{ FORBIDDEN_USE_2 }}     (this is enforced at <client-side hook | server-side policy>)

When you are about to call this tool, check:
  1. Is the input within the allowed list?
  2. Is the action consistent with the operator's stated goal in this session?
  3. Will this action be reversible without operator intervention?

If any answer is no, stop and ask the operator. The lower-layer enforcement
will reject the call regardless; you will save a round-trip.
```

---

## Example: a `kubectl` wrapper tool

```
kubectl_get

Purpose:
  Read the state of Kubernetes resources in the operator's diagnostic namespace.

Allowed inputs:
  - kubectl get pods, services, deployments, configmaps in namespace=agent-claude-prod
  - kubectl logs of pods in namespace=agent-claude-prod

Not for:
  - kubectl delete, apply, patch, edit, exec, port-forward, cp, debug
  - any action targeting namespaces other than agent-claude-prod
  - any action with --all-namespaces or -A

When you are about to call this tool, check:
  1. Is the verb "get" or "logs"?
  2. Is the namespace agent-claude-prod?
  3. Are there no flags that broaden the scope (--all-namespaces, --as, --as-group)?

If any answer is no, stop and ask the operator. The cluster RBAC (Role
"claude-code" in namespace agent-claude-prod) will reject the call anyway,
but asking first is faster than waiting for the rejection.
```

## Notes

- Mention the lower-layer enforcement explicitly. "The cluster RBAC will reject this anyway" is a hint to the model that this tool is real-world scoped, not just norm-scoped.
- Keep the "When you are about to call this tool, check" list short. Three to five items, each answerable in one second.
- Use the imperative ("stop and ask"), not the suggestive ("you should consider").
- Do not include real production resource names in the example. The example must be obviously an example.

Cell notes

Authorization / In-agent

Control. Model instructions and tool descriptions that scope each tool to its safe operations and explicitly say what the tool is not for.

Strength. Advisory only. Model instructions are bypassable. Tool descriptions are slightly more durable because the model uses them for its own decision-making, but they are still not enforcement.

Tooling

None. The artifact is text in the system prompt and in each tool's description field.

Files in this directory

  • - tool-description-template.md, drop-in template for a tool description that names the tool's purpose, lists what it must not be used for, and includes a "if you are about to do X, stop and ask" line.

Verification

You cannot verify this layer the way you verify the others. The "verification" is a lint that confirms each tool description has scope and exclusion language. A linter like mcp-scanner (see ../../supply-chain/client-side/) can enforce a basic pattern.

Common mistakes

  • - Tool descriptions that say what the tool can do but not what it must not do. The asymmetry matters; models will assume capability when scope is silent.
  • - Treating the description as documentation for humans. The model reads it. Write it for the model first, the operator second.
  • - Embedding examples of forbidden inputs in the description. Models pattern-match; an example of a forbidden command can become a template the model uses.

Citation

Advisory; no direct framework mapping. Thematic: NIST AI RMF MAP 5.1 (likelihood and magnitude of impacts documented). OWASP LLM06 (Excessive Agency), mitigation principle. OWASP ASI02 (Tool Misuse), mitigation principle.

Primary bypasses

Documented, not hypothetical. A control whose bypass is undocumented is worse than no control, because somebody trusted it.

  • prompt injection
  • novel framing

Crosswalk

NIST CSF 2 0(advisory)
NIST AI RMFMAP 5.1
OWASP LLMLLM06
OWASP AGENTICASI02