JJarvisv0.1 specificationv0.1

Policy and PolicyDecision

Policy gates accepted agent action.

Jarvis records human-defined policy and requires PolicyDecision before an AgentWorker action that affects a WorkSession becomes protocol state.

Policy records

Policy records define the human-owned boundary for AgentWorker autonomy.

Required fields

id, owner_worker_id, created_by_actor_id, autonomy_level, allowed_actions, denied_actions, review_required_actions, risk_classes, escalation_rules, created_at

Optional protocol context

tool_grants, memory_grants, external_send_rules, request_limits, and extensions

PolicyDecision records

PolicyDecision records why a requested AgentWorker action is allowed, denied, narrowed, or sent for human review.

PolicyDecision required fields are id, work_session_id, actor_id, policy_id, requested_action, normalized_action_hash, risk_class, result, reason, and created_at.

allow

The AgentWorker action fits Policy and becomes eligible for accepted protocol state after mutation checks pass.

deny

The AgentWorker action stays blocked. Denial creates or references a Request.

narrow

The action is allowed only inside a smaller bounded scope.

review_required

The action requires HumanWorker input through Request, Review, or Takeover before the blocked scope continues.

Compatibility expectations

  • Compatible implementations MUST record PolicyDecision before accepted AgentWorker action state.
  • Actor-bearing mutation bodies MUST match Jarvis-Actor-Id.
  • The protocol rejects missing PolicyDecision before accepted AgentWorker action state.
  • The protocol rejects hidden policy traces, provider secrets, database ids, runtime decision objects, and credentials in portable records.