crewship policy
Manage per-crew autonomy and behavior-mode policy. Each crew carries anautonomy_level (strict | guided | trusted | full) and a behavior_mode (warn | block) that together drive every HITL decision the orchestrator makes — memory writes, skill creation, behavior-monitor escalations, ephemeral spawns. The dial lives in crews.autonomy_level / crews.behavior_mode (v98 migration) and is consumed by every PR-B / PR-C subsystem via the shared policy.Resolver.
Subcommands
Levels and modes
Autonomy levels (closed set):
Behavior modes (closed set):
The combination
autonomy_level=full with behavior_mode=block is
rejected by the API (opt-in trust paired with opt-in restriction is
incoherent).crewship policy get
Fetch the current policy + audit triple for one crew.
Sample output:
--format json and --format yaml pass the wire object through verbatim so jq/yq pipelines see the canonical field names (crew_id, autonomy_level, behavior_mode, set_by_user_id, set_at, reason).
crewship policy set
Update a crew’s policy. Atomic single PUT; on success the shared resolver cache is invalidated server-side so downstream subsystems (memory write gating, skill creation HITL, behavior monitor, ephemeral spawn) see the new state immediately rather than waiting for the 10s TTL.
Validation order:
--crew,--levelpresence checks (no round-trip on missing flags).- Enum check for
--leveland--behavior— invalid values reject locally with a friendly error rather than letting the API return400. --reasonrequirement for--level=full— matches the same rule the API enforces, but failing fast here keeps the network out of the loop on operator typos.- Loose-transition confirmation (any →
trustedorfull) unless--yes.
crewship policy list
Show every crew’s policy in the current workspace, sorted by crew name (case-insensitive). Useful for fleet-wide audits and for spotting crews still on the default guided/warn pair.
CREW column is enriched from /api/v1/crews because the policy API only returns crew_id; sorting on a CUID would be stable but useless to a human reader. If the crew-name fetch fails, the column falls back to — and the list still renders — the policies themselves are usable without the friendly name.
Errors
Related
- PR-B F2 PRD section (
PRD-AGENT-EVOLUTION-2026.md, internal spec) — autonomy slider design rationale. crewship system aux-status— diagnostic surface for the parallel PR-B F3 auxiliary-model assignment.crewship approvals— inspect the inbox items the autonomy dial routes through.