{
  "schema": "naestro-public-trajectory-example/v1",
  "illustrative": true,
  "externalActions": false,
  "runs": {
    "interrupted": [
      {
        "id": "intent",
        "name": "Intent",
        "status": "Recorded",
        "tone": "good",
        "title": "One goal. An explicit boundary.",
        "description": "Review a dependency update and prepare a reproducible change. Publishing is outside this run’s authority.",
        "fields": [
          [
            "Goal",
            "Evaluate a dependency update"
          ],
          [
            "Input",
            "Fixture revision A"
          ],
          [
            "Allowed",
            "Read · test · prepare a patch"
          ]
        ]
      },
      {
        "id": "plan",
        "name": "Plan",
        "status": "Ready",
        "tone": "good",
        "title": "Make the work inspectable.",
        "description": "The plan separates inspection, testing and release review. Each step has an expected output.",
        "fields": [
          [
            "Step 1",
            "Inspect the dependency diff"
          ],
          [
            "Step 2",
            "Run the isolated test fixture"
          ],
          [
            "Step 3",
            "Attach results for review"
          ]
        ]
      },
      {
        "id": "tools",
        "name": "Tool",
        "status": "Unavailable",
        "tone": "warn",
        "title": "A failed tool is still a failed tool.",
        "description": "The test runner is unavailable. No test result is created, and the trajectory retains the failed attempt.",
        "fields": [
          [
            "Tool",
            "Isolated test runner"
          ],
          [
            "Result",
            "Unavailable"
          ],
          [
            "Test evidence",
            "Missing"
          ]
        ]
      },
      {
        "id": "policy",
        "name": "Policy",
        "status": "Refused",
        "tone": "warn",
        "title": "A request is not permission.",
        "description": "A proposed publish action is refused. The scope permits preparing a patch, and the required test evidence is absent.",
        "fields": [
          [
            "Requested",
            "Publish package"
          ],
          [
            "Policy",
            "Review-only / revision 1"
          ],
          [
            "Decision",
            "Refuse: outside scope + missing evidence"
          ]
        ]
      },
      {
        "id": "checkpoint",
        "name": "State",
        "status": "Checkpoint",
        "tone": "neutral",
        "title": "Keep what the next session needs.",
        "description": "The goal, plan, input revision and failed attempt remain together. The next step is to restore the runner, not claim success.",
        "fields": [
          [
            "Retained",
            "Goal · plan · attempt · decision"
          ],
          [
            "Next action",
            "Restore test runner"
          ],
          [
            "Published",
            "Nothing"
          ]
        ]
      },
      {
        "id": "review",
        "name": "Record",
        "status": "Incomplete",
        "tone": "warn",
        "title": "Missing evidence stays visible.",
        "description": "A reviewer can see what was attempted and why progress stopped. The record is incomplete because tests did not run.",
        "fields": [
          [
            "Review state",
            "Needs test evidence"
          ],
          [
            "Outcome",
            "Paused"
          ],
          [
            "Evidence type",
            "Illustrative local fixture"
          ]
        ]
      }
    ],
    "continued": [
      {
        "id": "intent",
        "name": "Intent",
        "status": "Retained",
        "tone": "good",
        "title": "Continue the original goal.",
        "description": "The input revision and objective are carried forward from the interrupted run. A continuation does not quietly become a new task.",
        "fields": [
          [
            "Goal",
            "Evaluate a dependency update"
          ],
          [
            "Input",
            "Fixture revision A — unchanged"
          ],
          [
            "Continuation",
            "From run A checkpoint"
          ]
        ]
      },
      {
        "id": "plan",
        "name": "Plan",
        "status": "Updated",
        "tone": "good",
        "title": "Change only what recovery requires.",
        "description": "Restore the runner, repeat the missing test step, and prepare a review package. The original failed attempt stays in the record.",
        "fields": [
          [
            "Changed",
            "Runner restored"
          ],
          [
            "Retained",
            "Inspection result + original attempt"
          ],
          [
            "Next",
            "Repeat test step"
          ]
        ]
      },
      {
        "id": "tools",
        "name": "Tool",
        "status": "Completed",
        "tone": "good",
        "title": "Attach an actual fixture result.",
        "description": "In this deterministic example, the restored runner returns the fixture’s expected result. This is demonstration data, not a product benchmark.",
        "fields": [
          [
            "Tool",
            "Isolated test runner"
          ],
          [
            "Fixture outcome",
            "Expected result returned"
          ],
          [
            "Evidence",
            "Result attached to this step"
          ]
        ]
      },
      {
        "id": "policy",
        "name": "Policy",
        "status": "Admitted",
        "tone": "good",
        "title": "Different scope. A different decision.",
        "description": "Policy revision 2 permits exporting a review package when test evidence exists. Publishing remains outside the granted scope.",
        "fields": [
          [
            "Requested",
            "Export review package"
          ],
          [
            "Policy",
            "Review export / revision 2"
          ],
          [
            "Decision",
            "Admit: scope + evidence satisfied"
          ]
        ]
      },
      {
        "id": "checkpoint",
        "name": "State",
        "status": "Continued",
        "tone": "good",
        "title": "Recovery adds history. It does not erase it.",
        "description": "The continuation links the earlier failure to the new attempt. An engineer can inspect both decisions and the changed policy.",
        "fields": [
          [
            "Retained",
            "Interrupted run A"
          ],
          [
            "Added",
            "Continuation B + new result"
          ],
          [
            "Published",
            "Nothing"
          ]
        ]
      },
      {
        "id": "review",
        "name": "Record",
        "status": "Reviewable",
        "tone": "good",
        "title": "An outcome with its context attached.",
        "description": "The review package includes the inputs, attempts, policy decisions and fixture result. A reviewer can see why this continuation progressed.",
        "fields": [
          [
            "Review state",
            "Fixture record complete"
          ],
          [
            "Outcome",
            "Prepared for human review"
          ],
          [
            "Evidence type",
            "Illustrative local fixture"
          ]
        ]
      }
    ]
  }
}
