Skip to content

How To Read The JSON

kadubon edited this page Jul 1, 2026 · 3 revisions

How To Read The JSON

The package returns JSON because agents, CI jobs, and other programs can inspect it reliably.

The Four Main Status Fields

Field Plain meaning
accepted The input envelope passed the checker for this command.
workflow_usable The report can guide the next workflow step. This is not settlement.
operationally_usable The report can guide routing under the selected profile.
operation_ready A TRC trace has required declared planning fields for a scoped candidate.
settled All scoped finite obligations were discharged. This is often false.

These fields are separate on purpose.

A report can be accepted and useful while still not settled.

Residual And Obligation Fields

Read these before treating any result as complete:

  • missing_obligations: work still required.
  • residual_ledger: unresolved debt, limits, uncertainty, or assumptions.
  • residual_summary: compact summary of unresolved work.
  • candidate_only_reasons: why a result stays candidate-only.
  • cannot_promote_because: why promotion is blocked.
  • settled_blockers: why settled=true is not allowed.
  • blockers: command-specific blockers.

Do not remove these fields to make output look cleaner. They are part of the safety contract.

Phase Ecology Lab Fields

Phase Ecology Lab records were introduced in v0.5.0. Useful fields include:

  • accepted_packet_count: packets that contribute to the graph.
  • candidate_only_packet_count: packets that remain diagnostic.
  • raw_external_volume_diagnostic_only: raw volume is not positive progress.
  • effective_node_count and effective_edge_count: graph structure that can be inspected.
  • execution_available_path_count: detected paths, not executed paths.
  • executed_path_count: must stay 0 in diagnostic routes.
  • protocol_relative_only: the observation is about the protocol record, not a real-world proof.
  • proves_real_asi, physical_truth_proven, oracle_truth_proven: safety boundary fields that stay false.

CCR Interop Fields

v0.6.0 adds CCR handoff records. Useful fields include:

  • schema_version: ccr.task.v0.1 or ccr.residual.v0.1.
  • candidate_only_until_checked: a downstream runtime must still verify it.
  • constraints.allowed_commands: empty in PIC-TS-emitted CCR tasks.
  • extensions.x_pic_safe_command_hints: command hints for review, not execution.
  • residual_policy: how unresolved work should stay visible.
  • pic_interop: provenance and recommended PIC/PIC-TS command hints.

TRC Operation Fields

pic-ts trc trace-check can include:

  • real_world_operation_gate.operation_ready: required planning fields are present.
  • real_world_operation_gate.blockers: missing authority, resource, rollback, witness, schedule, precondition, postcondition, or tolerance data.
  • executed: remains false for PIC-TS checks.
  • settled: remains false unless a separate verifier route discharges the scoped obligations.

Safe Commands

Some reports include safe_commands.

These are display recommendations or inspection hints. They are not permission to execute arbitrary commands.

The package does not run packet content, shell snippets, npm commands, Docker commands, repository mutation commands, or cloud commands from a report.

Good First Reading Order

  1. Check accepted.
  2. Check workflow_usable or operationally_usable.
  3. Check settled.
  4. If settled=false, read missing_obligations.
  5. Read residual fields.
  6. Read candidate-only and blocker fields.
  7. For CCR JSONL, check candidate_only_until_checked and constraints.allowed_commands.
  8. For TRC checks, read operation_ready, executed, and settled together.
  9. Treat task lists and route requests as recommendations for a reviewer or host runtime.

Common Pattern

{
  "accepted": true,
  "workflow_usable": true,
  "settled": false,
  "missing_obligations": ["identity-context", "verifier-route"],
  "candidate_only_reasons": ["external intake cannot reduce phase gaps"]
}

This is useful output. It says the workflow can continue, but the work is not complete.

Clone this wiki locally