{
  "plumbline_version": "0.1.0",
  "run": {
    "run_id": "fixture_plumbline_public_001",
    "harness": {
      "name": "synthetic-agent-harness",
      "version": "fixture-1",
      "entrypoint": "browser-demo"
    },
    "started_at": "2026-06-19T17:00:00Z",
    "ended_at": "2026-06-19T17:04:12Z",
    "model": "fixture-model",
    "plan": {
      "source": "approved_plan",
      "statement": "Add a rate-limit guard to a public fixture API and verify it with the test suite.",
      "items": [
        {
          "id": "p1",
          "text": "Read the current API entrypoint",
          "status": "completed"
        },
        {
          "id": "p2",
          "text": "Patch the sanctioned middleware config",
          "status": "completed"
        },
        {
          "id": "p3",
          "text": "Run the fixture test suite",
          "status": "completed"
        }
      ]
    },
    "outcome": {
      "status": "completed",
      "summary": "Rate-limit middleware added through config; fixture tests passed. One network lookup was guard-denied and escalated instead of bypassed."
    }
  },
  "steps": [
    {
      "step_id": "s1",
      "parent_step_id": null,
      "caused_by": null,
      "subagent_id": null,
      "kind": "mode_change",
      "started_at": "2026-06-19T17:00:01Z",
      "attributes": {
        "harness.mode.kind": "permission_mode",
        "harness.mode.from": "default",
        "harness.mode.to": "acceptEdits"
      }
    },
    {
      "step_id": "s2",
      "parent_step_id": "s1",
      "caused_by": null,
      "subagent_id": null,
      "kind": "llm",
      "started_at": "2026-06-19T17:00:03Z",
      "ended_at": "2026-06-19T17:00:16Z",
      "status": "ok",
      "attributes": {
        "gen_ai.request.model": "fixture-model",
        "gen_ai.usage.input_tokens": 1840,
        "gen_ai.usage.output_tokens": 220,
        "gen_ai.response.finish_reasons": [
          "tool_use"
        ],
        "agent.reasoning": true
      }
    },
    {
      "step_id": "s3",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "tool_call",
      "started_at": "2026-06-19T17:00:18Z",
      "ended_at": "2026-06-19T17:00:20Z",
      "status": "ok",
      "attributes": {
        "gen_ai.tool.name": "Read",
        "gen_ai.tool.call.id": "call_read_1",
        "tool.arguments": {
          "file_path": "fixture/src/api.py"
        },
        "tool.result.kind": "read"
      }
    },
    {
      "step_id": "s4",
      "parent_step_id": "s2",
      "caused_by": "s3",
      "subagent_id": null,
      "kind": "decision",
      "started_at": "2026-06-19T17:00:22Z",
      "attributes": {
        "agent.decision.kind": "proceed_sanctioned",
        "agent.decision.rationale": "Route the change through the approved middleware config instead of editing the public entrypoint directly.",
        "agent.decision.on_plan": true,
        "agent.decision.plan_ref": "p2"
      }
    },
    {
      "step_id": "s5",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "agent",
      "started_at": "2026-06-19T17:00:28Z",
      "ended_at": "2026-06-19T17:01:02Z",
      "status": "ok",
      "attributes": {
        "agent.type": "code-reviewer",
        "agent.name": "fixture reviewer",
        "agent.model": "fixture-review-model",
        "agent.spawns_subagent_id": "agent_rev1"
      }
    },
    {
      "step_id": "s6",
      "parent_step_id": "s5",
      "caused_by": null,
      "subagent_id": "agent_rev1",
      "kind": "tool_call",
      "started_at": "2026-06-19T17:00:34Z",
      "ended_at": "2026-06-19T17:00:36Z",
      "status": "ok",
      "attributes": {
        "gen_ai.tool.name": "Read",
        "gen_ai.tool.call.id": "call_read_2",
        "tool.arguments": {
          "file_path": "fixture/config/middleware.py"
        },
        "tool.result.kind": "read"
      }
    },
    {
      "step_id": "s7",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "tool_call",
      "started_at": "2026-06-19T17:01:10Z",
      "ended_at": "2026-06-19T17:01:11Z",
      "status": "interrupted",
      "attributes": {
        "gen_ai.tool.name": "Bash",
        "gen_ai.tool.call.id": "call_bash_1",
        "tool.arguments": {
          "command": "curl https://fixture.example/rate-limit-defaults"
        },
        "tool.result.kind": "bash"
      }
    },
    {
      "step_id": "s8",
      "parent_step_id": "s2",
      "caused_by": "s7",
      "subagent_id": null,
      "kind": "hook",
      "started_at": "2026-06-19T17:01:11Z",
      "attributes": {
        "harness.hook.name": "fixture-egress-guard",
        "harness.hook.event": "PreToolUse",
        "harness.hook.verdict": "deny",
        "harness.hook.prevented_continuation": true,
        "harness.hook.target_step_id": "s7",
        "harness.hook.reason": "Outbound network egress to a non-allowlisted fixture host."
      }
    },
    {
      "step_id": "s9",
      "parent_step_id": "s2",
      "caused_by": "s8",
      "subagent_id": null,
      "kind": "decision",
      "started_at": "2026-06-19T17:01:14Z",
      "attributes": {
        "agent.decision.kind": "escalate",
        "agent.decision.rationale": "Egress was guard-denied, so the run uses local fixture defaults and records the event.",
        "agent.decision.on_plan": true
      }
    },
    {
      "step_id": "s10",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "memory",
      "started_at": "2026-06-19T17:01:22Z",
      "attributes": {
        "harness.memory.op": "write",
        "harness.memory.scope": "fixture",
        "harness.memory.key": "lessons/fixture-egress-denied"
      }
    },
    {
      "step_id": "s11",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "tool_call",
      "started_at": "2026-06-19T17:02:05Z",
      "ended_at": "2026-06-19T17:02:18Z",
      "status": "ok",
      "attributes": {
        "gen_ai.tool.name": "Edit",
        "gen_ai.tool.call.id": "call_edit_1",
        "tool.arguments": {
          "file_path": "fixture/config/middleware.py",
          "old_string": "RATE_LIMIT = None",
          "new_string": "RATE_LIMIT = 'fixture-default'"
        },
        "tool.result.kind": "edit",
        "tool.result.user_modified": false
      }
    },
    {
      "step_id": "s12",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "tool_call",
      "started_at": "2026-06-19T17:03:40Z",
      "ended_at": "2026-06-19T17:04:06Z",
      "status": "ok",
      "attributes": {
        "gen_ai.tool.name": "Bash",
        "gen_ai.tool.call.id": "call_bash_2",
        "tool.arguments": {
          "command": "pytest -q fixture/tests/test_rate_limit.py"
        },
        "tool.result.kind": "bash",
        "tool.result.exit_code": 0
      }
    },
    {
      "step_id": "s13",
      "parent_step_id": "s2",
      "caused_by": null,
      "subagent_id": null,
      "kind": "compaction",
      "started_at": "2026-06-19T17:04:08Z",
      "attributes": {
        "harness.compaction.reason": "auto",
        "harness.compaction.tokens_before": 142000,
        "harness.compaction.tokens_after": 38000
      }
    }
  ]
}
