opschain admin trust node-ceiling set
packs:agentspacks:agent-governance
opschain admin trust node-ceiling set --where <predicate>... --ceiling <advise|supervised|autonomous> [--id <id>] [--note <text>] [--server <url>] [--auth-token <token>]
Writes one node-classification tier ceiling (POST /api/trust/ceilings/nodes,
or PUT /api/trust/ceilings/nodes/{id} with --id). At
every node whose effective metadata matches all --where
predicates, an agent's effective tier is capped at --ceiling, whatever its
grants or type ceiling say:
effective = min(grant tier, type ceiling, every matching node ceiling)
Matching evaluates the compiled effective-metadata snapshot at the frozen
target on each request, so classifying a node (e.g. setting
core.criticality) moves the clamp on the very next request, and
multiple matching rules resolve min-wins. The canonical posture rule:
opschain admin trust node-ceiling set \
--where 'core.criticality=critical' \
--ceiling supervised \
--note 'critical estate stays supervised'
The write is governance-determined, exactly like the per-type ceilings:
- Step-up floored — on a session-backed admin plane the verb
trust.ceiling_writerequires a live elevation (ceiling writes are grant-class writes). - Pack-gated — the surface requires
packs:agent-governance. - Audited — every write lands an
info:trust:node_ceiling_setevent carrying the rule and, on a rewrite, the previous predicates and ceiling. - Validated — a predicate naming a metadata field no adopted profile registers refuses by name (it would never match), and an empty predicate list refuses (it would clamp every node).
Flags
| Flag | Meaning |
|---|---|
--where <predicate> | A metadata predicate every covered node must match: <field>=<value>, <field> in <v1>,<v2>, <field> before|after <YYYY-MM-DD>, or <field> is true|false|unclassified|elapsed (repeatable; predicates AND; required). |
--ceiling <tier> | The ceiling tier: advise, supervised or autonomous (required). |
--id <id> | Rule id to replace (omit to create a new rule). |
--note <text> | Audit note (e.g. the classification policy the rule enforces). |
--server <url> | Server base URL. Default: the active context, then OPSCHAIN_SERVER. |
--auth-token <token> | Admin bearer token override. Default: your opschain login session, then $OPSCHAIN_ADMIN_TOKEN, then the token stored by opschain admin login for that server. |
Output
The stored rule: id, predicates, ceiling, note, updated_by,
updated_at.