Capability Language Core

A common language for what an agent may do.

Identity establishes who is acting. CLC defines the authority itself: which action, with what parameters, under which constraints, and why a request is allowed or denied.

CLC-v1 · Preview CLC-A + CLC-D Machine-readable corpus Apache-2.0

Identity is not authority

An authenticated agent can still be asked to do the wrong thing. CLC makes the authorization decision explicit before execution.

01

Who

Certificates and tokens bind a cryptographic key to an agent and, through AIC, to an accountable principal.

02

What

CLC names the permitted action and the parameter boundary. The authority is more precise than “database access” or “tool use.”

03

Under what limits

Constraints, runtime policy, delegation depth, and unresolved obligations remain explicit rather than hidden in application code.

One decision model across the stack

CLC separates the grant, the requested operation, the decision, and the evidence surrounding that decision.

GrantWhat authority is available
OperationWhat the agent asks to do now
EntailmentDoes the grant cover it?
ResolveDischarge or preserve obligations
Decisionallow · allow_unresolved · deny
grant:
  id: std/database-v1:query:SELECT
  params: { limit: 100 }

operation:
  id: std/database-v1:query:SELECT
  params: { limit: 50 }
ALLOW
50 ≤ 100 stays inside the granted parameter boundary.
DENY
Request limit: 150 → params_exceed_grant.
A recognized constraint that cannot be evaluated locally becomes allow_unresolved. It is never silently treated as fully authorized.

What CLC standardizes

The language is intentionally small. Its value comes from closing the semantic gaps between systems.

Capability identifiers

A structured namespace and path grammar for actions, with explicit wildcard rules and fail-closed coverage checks.

Parameter bounds

Numeric bounds, enums, cardinality, nested objects, optional keys, steps, and scheme-declared domains such as quantity and path prefixes.

Minimum privilege by intersection

Multiple grants combine by narrowing. A later source can restrict authority but cannot create authority absent from an earlier source.

Stable reason codes

Denials identify the semantic layer that failed, so implementations produce comparable outcomes rather than free-form error strings.

Delegation containment

CLC-D checks whether a child grant stays inside a parent grant and keeps constraints, carrier modes, and chain authentication in their proper layers.

Decision records

Inputs, context, and verdict can be bound into a canonical record suitable for reproducible verification and audit evidence.

Why it matters

CLC is a shared semantic layer, not another credential format.

Portable authority

The same grant and operation semantics can be projected from different carriers, policy systems, and execution environments.

Least privilege that composes

Principal grants, agent capabilities, gateway policy, and delegated scopes can be intersected without silently widening authority.

Deterministic enforcement

Canonical JSON, type-sensitive equality, bounded numeric handling, and ordered decision layers reduce cross-language disagreement.

Testable specification

The normative text ships with executable vectors, property cases, and cross-language runners rather than prose alone.

A specification with an executable corpus

Every semantic rule is expected to have a reproducible observation — positive, negative, or property-based.

154
CLC-A authorization vectors
64
CLC-D containment vectors
1,184
intersection/property cases
17 × 2
reference pages · EN / 中文
Conformance scope is stated explicitly. CLC-A and CLC-D are the claimed baseline classes. The evidence-side corpus is implemented, but CLC-E is not claimed. Agreement among the current Go, Python, and TypeScript implementations is a same-author regression test, not independent third-party validation.

Clear boundaries make better standards

CLC does not try to absorb identity, transport, evidence, or legal accountability into one layer.

Not an identity formatX.509, JWT, SPIFFE, and other carriers establish identity. CLC evaluates authority.
Not a transport protocolTLS, mTLS, HTTP, or an application protocol carries the artifacts.
Not an evidence protocolEvidence systems decide how facts are issued and verified; CLC composes their outcomes.
Not a policy engineCLC defines semantics. A deployment supplies policy, revocation, clocks, plugins, and local trust inputs.

Start with the language, then inspect the implementation.

Read the concise reference, follow a grant to a decision, or run the machine-readable corpus against a CLC implementation.