From 572f9215ac4cbd41c01993d385a84e91517aa7b9 Mon Sep 17 00:00:00 2001 From: Scout Date: Sat, 26 Sep 2026 23:52:47 -0400 Subject: [PATCH] PR-H: E2E preregistration for the token-save-practice stack (frozen tasks, metrics, gate, procedure) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Freezes the E2E preregistration half of full-save/PLAN.md step 9 (the baseline-receipt half already merged via #369) before any organic run: 77 frozen task definitions (16 reused Claude + 15 reused Codex information needs from #296/#343's receipts, 46 seeded/control tasks), every AA §8.3 metric/threshold/guardrail/outcome rule with its three "proposed" bounds now stated as frozen, the AA §8.1b capability gate, the AA §8.4 procedure, the AA §8.5 overturn conditions, the identity scheme, the Q1 blind-process qualification, the Workflow script that will run arms B/A/A0 (syntax-checked only, never executed), and the measurement runbook. Corrected on independent Claude review (11 findings, 95 turns) and a GPT-6 cross-family review (2 findings, 1 high) plus one combined repair round (13/13 addressed with failing-first evidence): relocated from blueprints/token-practice-e2e/ to evidence/artifacts/token-adoption-e2e-20260926/ per adoption-audit/PLAN.md line 402; moved the Workflow script out of examples/claude-native/workflows/ to avoid that directory's shared PACKET/ROUTING contract test, which this one-off frozen script correctly does not match; corrected PR-A's status (its base branch merged as #369 -- baseline only, tooling-fix scope still open); added the six AA §6 machine-readable policy fields the JSON was missing; fixed a wrong Codex arm-A lifecycle binding; blocked the one information need (an otel-tui receiver task) that no current role may legally run, pending a named permitted role; froze the coordinator's own main-dispatch task at xhigh instead of max; fixed a denylist word-boundary gap that let underscore-qualified MCP names slip past; and sealed the five normative files' SHA256 with an append-only amendment rule. Also refreshes PR #376 and #364's status to merged (both landed while this unit was in review), while recording that #364's field-preservation gap (workflow.run_id/tool_use_id still missing from collector.yaml) persists after its merge. Co-Authored-By: Claude Sonnet 5 --- .gitignore | 4 + .../token-adoption-e2e-20260926/README.md | 614 ++++ .../token-adoption-e2e-20260926/RUNBOOK.md | 613 ++++ .../fixtures/events.jsonl | 640 ++++ .../fixtures/table.json | 1 + .../preregistration.json | 3200 +++++++++++++++++ .../token-e2e-run.mjs | 203 ++ manifests/evidence.json | 39 +- tests/test_token_e2e_preregistration.py | 426 +++ 9 files changed, 5738 insertions(+), 2 deletions(-) create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/README.md create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/RUNBOOK.md create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/preregistration.json create mode 100644 evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs create mode 100644 tests/test_token_e2e_preregistration.py diff --git a/.gitignore b/.gitignore index 8c919180d..ca730a18b 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,10 @@ node_modules/ # CLAUDE_CONFIG_DIR fixture (docs/token-efficiency-stack.md#hosted-ci-coverage-2026-09-26): # clearly labelled synthetic content, not host history. !fixtures/ccusage-synthetic-claude/**/*.jsonl +# PR-H's frozen public synthetic log fixture (blind-lane positive control and +# seed-log-symbol tasks, evidence/artifacts/token-adoption-e2e-20260926/preregistration.json): +# clearly labelled synthetic content, not host history. +!evidence/artifacts/token-adoption-e2e-20260926/fixtures/*.jsonl adoption/hosts/*.json !adoption/hosts/example.json !adoption/hosts/macos-example.json diff --git a/evidence/artifacts/token-adoption-e2e-20260926/README.md b/evidence/artifacts/token-adoption-e2e-20260926/README.md new file mode 100644 index 000000000..bce38fdb2 --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/README.md @@ -0,0 +1,614 @@ +# Token-practice E2E preregistration — PR-H + +Status: **frozen protocol, not executed or accepted**. Merge this preregistration +before any organic run. This unit supplies the preregistration half of full-save +§5 step 9; the historical receipt already merged through #369 is +[child-lane-baseline-20260926](../../../evidence/artifacts/child-lane-baseline-20260926/README.md). +It is retained measurement evidence, not a model run or a new acceptance. + +**Dated scope note, 2026-09-26:** AA §6's `baseline.json` is deferred to PR-A's +remaining measurement-tool and baseline scope (full-save §5 step 4). It is not +fabricated or silently omitted here. #369 is a **pre-fix reference baseline only**; +it cannot supply the post-fix baseline required before organic execution. + +## Sources, boundaries and freeze + +**AA** means *Token-tool adoption in Claude children and Codex workers: one +integration plan*, 2026-09-26, including its review resolution. **full-save** +means *Full-save token foundation plan*, revision 1, 2026-09-26. These section +labels identify the supplied specifications; no machine-local location is part +of the protocol. The builder read both complete specifications. The native +script contract is the official [Workflow reference](https://code.claude.com/docs/en/workflows), +“Pass input”, “What the saved script looks like”, “Edit a saved script”, +“Prompt caching”, and “Behavior and limits” (supplied 2026-09-26 snapshot, +lines 230–238, 292–334, 348–368). AA §8.1 supplies the explicit role/model/effort +options; the public Workflow page alone does not enumerate every option. + +The normative artifacts are [preregistration.json](preregistration.json), which +holds the task/arm inventory, minimum opportunities, structured M/G thresholds, +M3 exception classes, strict-blind candidate/gate, outcome rule and overturn +conditions; [the Workflow script](token-e2e-run.mjs), which enforces dispatch +and binding checks; and [RUNBOOK.md](RUNBOOK.md), which specifies collection, +independent grading and restoration. All are kept together in this evidence directory +rather than under `examples/claude-native/workflows/`: **integrator +correction.** That directory's own `test-envelope.mjs` sweeps every file +declaring `export const meta` and requires the shared, byte-identical +`PACKET` worker-prompt prefix and a hardcoded `ROUTING` table shared across +its small set of reusable coordinator-dispatched workflows +(`review-changes.js`, `readiness-audit.js`, `layer-verdict-lane.js`). This +script is a one-off, frozen, bespoke-schema E2E protocol script, not one of +those reusable packets, so it does not and should not match that contract; +placing it there without conforming would fail `test-envelope.mjs`, and +making it conform would misrepresent what it actually does. The Workflow +tool's `scriptPath` accepts any committed path — this location works +identically at launch (RUNBOOK.md's exact invocation). The integrator-supplied +source base is `34c56340`; the builder did not inspect Git state. Record the +actual merged preregistration commit, artifact hashes and execution revision +before launch +(AA §8.4). No task, eligibility rule, threshold, exception or check can be +changed after looking at organic results. Amend and merge the protocol first +if a prerequisite requires changing an input. Retain failed attempts and +unknowns. A top-up under AA's incomplete rule uses the same frozen task/check +definitions and a new recorded attempt; it is never retroactive recoding. + +These are repository integration contracts and synthetic fixtures, following +[the evidence policy](../../../docs/acceptance-evidence-policy.md). Their local +tests cannot establish upstream acceptance, organic adoption, provider savings +or the complete foundation acceptance rule below. + +## Task inventory and provenance — AA §5, §8.1–§8.3 + +There are **77 frozen definitions**: 16 reused Claude information needs, 15 +reused Codex information needs, and 46 seed/control definitions. The Claude +receipt has 16 `tools[]` entries. The Codex receipt has **17 entries for 15 +distinct tools**, including two retained attempts each for jcodemunch and qmd. +Both retry pointers survive; a historical retry is not another task or organic +opportunity. + +Receipt sources are +[#296](../../../evidence/artifacts/token-e2e-ultracode-20260925/receipt.json) and +[#343](../../../evidence/artifacts/token-e2e-codex-20260926/receipt.json). +The JSON preserves exact array pointers, real `tool` identifiers and the +original `task` or `commands` field provenance. Receipt text is sometimes +truncated and describes historical failures. It is not silently completed or +recast as current success. The short task prompts preserve the information +needs without tool names; long answer/notes excerpts and the original +tool-prescribing commands never become child prompts. The source receipts +remain authoritative historical records, including their failure limitations. + +The reused table task freezes the **60-row** array at +`catalogs/landscape/component-evidence-matrix.json#/summary/needs_host/macos-arm64` +(#296 `/tools/9`, #343 `/tools/16`) from the **preregistration commit**. +Both tasks use `` and the JSON's `frozen_input` serialization, +SHA256 and byte count. Extract and verify that pointer before probes; the +execution checkout's regenerated matrix is never the source or grading input. +The 24-row fixture below is for seeds only. +The command-fidelity receipts do not retain all six original command identities. +Their recoverable checker compares newest commit subject, test count and status +for `tests.test_host_requests`. Recover and seal missing source command inputs +before probes; do not select substitutes. A missing retained history report also +blocks launch. Neither limitation permits replacing a reused information need. + +| Frozen id | Short information need | Receipt entry pointer (zero-based) | +| --- | --- | --- | +| `reuse-296-00` | Command-output fidelity | #296 `/tools/0 (rtk)` | +| `reuse-296-01` | Large handbook summary | #296 `/tools/1 (context-mode)` | +| `reuse-296-02` | Selected-history round trip | #296 `/tools/2 (headroom)` | +| `reuse-296-03` | Definition retrieval | #296 `/tools/3 (jcodemunch)` | +| `reuse-296-04` | Release pin decision | #296 `/tools/4 (qmd)` | +| `reuse-296-05` | Definition and references | #296 `/tools/5 (serena)` | +| `reuse-296-06` | Request trust boundary | #296 `/tools/6 (socraticode)` | +| `reuse-296-07` | Historical host-lane decision | #296 `/tools/7 (ai-memory)` | +| `reuse-296-08` | Selected-file overview | #296 `/tools/8 (repomix)` | +| `reuse-296-09` | Structured table fidelity | #296 `/tools/9 (toon)` | +| `reuse-296-10` | Structural call sites | #296 `/tools/10 (ast-grep)` | +| `reuse-296-11` | Caller graph | #296 `/tools/11 (codebase-memory)` | +| `reuse-296-12` | Documentation completeness | #296 `/tools/12 (context-hub)` | +| `reuse-296-13` | Document conversion fidelity | #296 `/tools/13 (markitdown)` | +| `reuse-296-14` | Session archive visibility | #296 `/tools/14 (agentsview)` | +| `reuse-296-15` | Scoped span visibility | #296 `/tools/15 (otel-tui)` | +| `reuse-343-00` | Session archive visibility | #343 `/tools/0 (agentsview, attempt 1)` | +| `reuse-343-01` | Historical host-lane decision | #343 `/tools/1 (ai-memory, attempt 1)` | +| `reuse-343-02` | Structural call sites | #343 `/tools/2 (ast-grep, attempt 1)` | +| `reuse-343-03` | Caller graph | #343 `/tools/3 (codebase-memory, attempt 1)` | +| `reuse-343-04` | Documentation completeness | #343 `/tools/4 (context-hub, attempt 1)` | +| `reuse-343-05` | Large handbook summary | #343 `/tools/5 (context-mode, attempt 1)` | +| `reuse-343-06` | Selected-history round trip | #343 `/tools/6 (headroom, attempt 1)` | +| `reuse-343-07` | Definition retrieval | #343 `/tools/7 (jcodemunch, attempt 1); /tools/8 (jcodemunch, attempt 2)` | +| `reuse-343-09` | Document conversion fidelity | #343 `/tools/9 (markitdown, attempt 1)` | +| `reuse-343-10` | Release pin decision | #343 `/tools/10 (qmd, attempt 1); /tools/11 (qmd, attempt 2)` | +| `reuse-343-12` | Selected-file overview | #343 `/tools/12 (repomix, attempt 1)` | +| `reuse-343-13` | Command-output fidelity | #343 `/tools/13 (rtk, attempt 1)` | +| `reuse-343-14` | Definition and references | #343 `/tools/14 (serena, attempt 1)` | +| `reuse-343-15` | Request trust boundary | #343 `/tools/15 (socraticode, attempt 1)` | +| `reuse-343-16` | Structured table fidelity | #343 `/tools/16 (toon, attempt 1)` | + +Seed definitions and checks are in the same JSON: + +- `seed-web-table-1..5` and `seed-codex-web-table-1..5`: two-page + documentation questions plus eight-record uniform tables. Each family has + five organic fetch tasks, providing at least five remote fetches in Codex B + (AA §8.2). The selected table is a neutral-path byte copy of + `fixtures/headroom-records.json`; its original 24 flat public records are + preserved. +- `seed-catalog-history-1..5`: five questions in the actual indexed + `catalogs/us-equities` corpus paired with five prior-decision questions. + The source-only checks do not substitute for successful scoped retrieval. + The reused release-pin task's known index gap does not count toward qmd + eligibility (AA §5; #343 `/tools/10` and `/tools/11`). +- `seed-log-symbol-1..5`: five ranges of an 84,003-byte public synthetic log + paired with real definition/call-site questions in `scripts/host_receipts.py`. + The log has 640 records, ten ERROR records and a formula fixed in the JSON. +- `seed-acceptance-1..5`: explicit inventory/line-count observations and + acceptance commands that emit the entire log plus their fixed summary. + The raw output exceeds 5 KB; the returned answer needs the exit code and + summary only. This is not an excuse to exclude the full output from M3. +- Two scout tasks, two isolated edit/test tasks, five small blind packets, + one large blind positive control, a main-actor observation, and an Agent-tool + path observation complete AA §8.2's roles and paths. +- `seed-review-diff` adds the explicit large-diff evidence-reviewer scenario: + the existing 52,631-byte `blueprints/retrieval-quality-v2/run-efba31d5.patch`, + with a fixed header/hunk/count and opening-contract check. The two reused + symbol reviewer tasks remain separate, covering both AA §8.2 scenarios. +- `seed-binding-1..5` freezes the Codex lifecycle matrix: no history, bounded + history of 2 turns, full history with the researcher role, full history + without a role, then a resumed finished researcher child. Arm A repeats + `seed-binding-1` (none, retaining its researcher role as requested in repair 1) + and `seed-binding-4` (all, without a role or agent_type). Only the full-history + A case moves; this retained none case is an explicit exception to AA §8.2's + no-role wording. M13's separate 2-worktree × 20-repetition probe + does not satisfy the organic minimum. +- Optional overview and HTML-conversion seeds are reported, never gating. + full-save §1a, §2.3 and §8 finding 6 supersede AA's PDF seed with HTML: + `fixtures/markitdown-multi-element.html`. PDF extras need separate + qualification. The optional graph seed is **blocked until Q3 [nv]**; + blocked is not “ineligible” or an N/A substitution. + +Only `task_text` reaches a child's prompt. The only substitutions bind +``, `` and `` to pre-recorded +neutral paths and the run token; no instructions are appended. Identical source +bytes and observation contracts apply across arms. Freeze all six distinct +builder checkouts plus the per-arm observation checkouts and disposable clones. +These are prepared bindings: B's `isolation: worktree` may create another tree. +For builder tasks, derive the actual tree and starting revision from the child's +native transcript and `meta.json`, and read the diff there, per +`builder_worktree_policy`. Missing or conflicting identity blocks grading. +A/A0 use their prepared control trees when the harness creates no separate tree. +Keep the role's isolation; RUNBOOK's builder section freezes the hooks preflight +and restore procedure. Retained-history, table and HTML input paths are +supplied explicitly, and resolved +prompts must pass the same denylist. Eligibility tags, receipt tool +identifiers, checks and the denylist are evaluator metadata. The explicit +denylist includes every `rows[].component_id` in +[the canonical component inventory](../../../docs/token-efficiency-stack.json) plus +[handbook lines 106–151](../../../docs/token-session-handbook.md), spelling variants +and relevant entry-point names. Both checks treat underscores as separators +using case-insensitive ASCII-alphanumeric boundaries, including qualified MCP +names. No LANES block is appended to experimental +prompts: AA §8.1's no-tool-names rule and the PR-H task contract control this +experiment; AA §9.2 remains guidance for ordinary coordinator packets. + +### Counted organic arm-B opportunities + +Each count is unique child-task definitions with arm B, `opportunity=organic` +and the named tag. Main, optional, blocked and positive-control tasks do not +count. These are frozen eligibility counts, not observed successful calls. +The tests independently pin the required lane set and fail below five. +Cross-cutting M rows have explicit tags too; their successful-call or error +denominators remain those in AA §8.3, not the task counts in this table. + +| Required lane | Metric | B child-tasks | Eligibility source and rule | +| --- | --- | ---: | --- | +| ctx-containment | M3, M5 | 14 | Output likely over 5,120 bytes; a derived answer suffices. AA §5 excludes edit bytes, original line citations and frozen exact-byte requirements. | +| fetch | M4 | 10 | Multi-page web documentation question, AA §5; remote nested fetches remain in the denominator. | +| rtk-claude | M6 | 8 | Claude task has an RTK-supported shell observation outside the exactness exceptions; acceptance exits run raw/proxy. PR-A owns part classification. | +| rtk-codex | M6c | 6 | Codex task needs supported shell inventory/read commands; exceptions are excluded from coverage denominator. | +| toon-seeded | M7 | 10 | A seeded uniform array of at least five flat records must enter context; strict round trip is checked. | +| symbol-references | M8 | 9 | Definition/reference question in the starting client's own indexed checkout; capability/source binding must pass. | +| qmd | M8 | 5 | Answer lies in the named indexed catalog collections. The reused release-repin gap is excluded from this lane. | +| ai-memory | M8 | 7 | Prior project decision/history with a scoped source witness, checked as untrusted history. | +| adoption | M1, M2 | 44 | Non-blind, non-scout child-task with at least one eligible token lane; M1 is assessed separately per required retrieval/containment lane. | +| guidance | M11 | 71 | Any organic preregistered child launch with a frozen route/carrier; blocked loopback task excluded. | +| blind | M12 | 5 | Stripped blind packet; controls never contribute to the five organic opportunities. | +| binding | M13 | 5 | Organic Codex child-task with a per-tree sentinel; the separate 2 worktrees x 20 probe repetitions do not count here. | +| attribution | M14 | 71 | Organic child-task with client/session/call identity and native transcript; blocked loopback task excluded. | +| mcp-errors | M15 | 40 | Task with an eligible granted MCP lane; classify infrastructure failures by server independently of command exits. | + +M1's ≥90% and M8's ≥80% both apply where required; the latter does not relax the +former. Report per-role and per-family populations alongside the common +minimum, and never substitute task counts for call counts (AA §8.3; full-save +§4.0/§4.3). + +## Arms, roles and exact execution counts — AA §8.1/§8.2 + +Claude arm order is **B, A, A0**. B uses the role table; A uses +`general-purpose` on the identical task text and model; A0 omits +`agentType` on the identical task text and model. This deliberate A0 omission +is the preregistered experimental exception to AA §9's ordinary dispatch rule. + +| Frozen role in B | Explicit model | Explicit effort | Carrier | +| --- | --- | --- | --- | +| stack-researcher | opus | max | #376 role body, after merge/install proof | +| stack-verifier | sonnet | max | #376 role body, after merge/install proof | +| isolated-builder | sonnet | max | Existing role plus #376 additions | +| evidence-reviewer | opus | max | Existing role body | +| source-scout | sonnet | max | Existing role plus #376 additions | +| blind-lane-reviewer / blind-judge | opus | max | Existing stripped blind bodies; no skill preload | + +The Workflow inventory reserves **49 B, 43 A, 43 A0 children**, in JSON order, +one active child at a time. Five organic blind packets and the positive control +run in B only; A/A0 repeat every non-blind workflow task. Outside this script +there is one B and one A Agent-tool child, one B main-actor observation, and +six strict-process repeats of the blind packets. That is **137 Claude children, +one main observation, six strict processes**. These exact counts replace +AA §8.2's approximate planning estimate; its role/path minimums remain covered. + +**Blocked before launch (repair 1, 2026-09-26):** `reuse-296-15` retains the +loopback receiver information need and every arm slot, but `source-scout.md:11` +forbids network use. No equivalent permitted Sonnet/max role with the same +absence of worktree isolation is evidenced in this checkout. Its role is +unbound and its opportunity is blocked pending a dated, merged role amendment +and capability qualification. The script refuses the entire selected arm before +any child starts; it never drops this task. Thus the counts above are planned, +not presently runnable. Do not weaken source-scout's no-network rule. + +The coordinator stays at **xhigh under Ultracode**. Never set +`CLAUDE_CODE_EFFORT_LEVEL`: it overrides child effort. Every child call +specifies model and max effort; M11 checks the resolved route, not just the +request ([AGENTS.md](../../../AGENTS.md), Workers; AA §3.3/§8.1/§9.1). +Matching model, effort, type, tool set, schema and cwd permit native cache +sharing; no cache or tool-discovery override is introduced (Workflow reference, +“Prompt caching in a fan-out”). The sequential schedule is a frozen bounded +choice, not a savings claim. Size guidance is advisory; do not shrink the task +list to satisfy it. + +Codex order is **B, A, N**, with `gpt-6-astra`, max effort and live web search +held fixed. Each arm has **20 exec task launches**, scheduled as two concurrent +owned worktrees in waves. B also has five lifecycle child-tasks; A has two; +N has none. There are **25 B / 22 A / 20 N child-task outcomes** before retries. +The graph seed remains blocked and excluded from these scheduled counts. +These exceed AA §8.2's exec minima and keep one task identity per exec launch. + +B uses the pending `stack-worker` profile and qualified custom agents. +A uses user config. N uses `--ignore-user-config -c features.hooks=false +-c features.plugins=false`; it is **config-free**, not guidance-free, unless +Q2's prompt-input plus rollout read-back passes. Until then M6c compares B +with A, not N (AA §3.2). Full-history/no-role and resumed child behavior must +be observed, not inferred from the profile. Compaction remains untested if it +does not occur (AA §10). + +`source-scout` and `evidence-reviewer` are **Claude-only role lanes**. AA §6:372 +names only `stack-researcher` and `stack-verifier` as Codex carriers. Shared +Codex exec information needs retain their text and receipt provenance but bind +no nonexistent Claude role name; the arm's exec profile supplies their carrier. +`codex_role_exclusions` and each affected task record this distinction. + +## Identity table — AA §7, §8.1 + +Identity format: `...`. Angle-bracket tokens describe +fields; they are not fabricated identities. Record actual identifiers privately. + +| Field | Frozen meaning | +| --- | --- | +| run | Coordinator-supplied token for this complete experiment | +| arm | B/A/A0 for Claude; B/A/N for Codex; client column disambiguates | +| task | Exact frozen JSON id; no source retry is silently renumbered | +| attempt | Positive integer; every retry/interruption is retained | +| client / actor / parent | Claude main, Workflow child, Agent child, strict process, or Codex exec/sub-agent; explicit parent | +| workflow / transcript | Actual arm `workflow.run_id`, transcript and child metadata locator | +| thread / conversation | Actual Codex `thread.started` id and observed rollout relation | +| call join | Claude `session.id + tool_use_id`; Codex `conversation.id + call_id` | +| observation window | Start/end, exporter flush status, native route and usage source | + +Arm IDs and task labels are different identifiers. Resource +`ecosystem.task.id=` tags the Claude process and its in-process children +**[nv until reconciliation]**. Each arm has its own observed workflow ID. +Claude strips `OTEL_*` from subprocess environments. Codex launches therefore +set `-c otel.environment=...` **[nv]** explicitly and +record the thread ID as fallback. Exporter configuration must also be supplied +for config-free N launches (AA §7). No unjoined event is assigned by guesswork. + +## Capability gate — AA §8.1b + +The following is the source gate; internal section references in this quotation +refer to AA. This gate precedes organic execution and is not performed by PR-H. + +Organic adoption does not start until each capability is shown to work. + +- **Explicit runs.** For each role and tool pair that §5 marks eligible, run an explicitly instructed task: two discriminating fixtures, 3 repetitions each (GPT-6 Claude side, stage 3; GPT-6 tools, stage 3). +- **What is checked.** Verify the executed call, the successful result and the source identity (a sentinel only the child's tree holds), not the model's own claim. +- **Where the capability truly exists, pass means 100%.** +- **Negative controls must fail the gate:** a disabled server, or a wrong-root binding. +- **Native harness option: `claude plugin eval`.** + - It covers plugin-shipped tools only. On this host that is context-mode; qmd is a user-scope server (`mcp__qmd__*`). + - Use `--mocks off` with a named grant, `--allow-tools "mcp__plugin_context-mode_context-mode__*"`. Keep evidence that the real server ran against the fixture: the sentinel in its result. + - `--allow-real-servers` alone keeps answering mocked tools from their mock files, and real tools need the grant in either mode (plugin-evals.md:320-323, 361, 381-382 [doc]). +- **Probe.** The Agent-tool blind-lane probe from §3.1(d) runs here, in a scratch session. +- **Separation.** Capability-gate runs never count toward the organic minimums (§8.3). + +Use AA §5's actual role × tool eligibility, including allowlists, tree bindings, +static memory scope and the qmd corpus. Freeze the matrix, two discriminating +fixtures and their expected source witnesses before probes. An installed +binary, tool listing, self-reported success or current-host historical receipt +cannot replace the successful executed calls. The scripted organic prompts +remain tool-name-free even though capability probes are explicitly instructed. + +## Metrics and thresholds — AA §8.3, frozen here + +The following copies AA §8.3, with only its three “proposed; PR-H freezes” +qualifications changed to **frozen**. The 20,480 B ceilings, B≤A byte bound and +10% unclassifiable-fetch ceiling are fixed. Source-relative section references +refer to AA. “Baseline today” denotes AA's historical populations, not this +unrun experiment or #369's different window. + +**Common rules.** +- **Required lanes** (gating): ctx containment (M3, M5), fetch (M4), RTK (M6, M6c), TOON (M7 seeded), symbol references, qmd and ai-memory (M8), and M1, M2 and M11–M15. +- **Optional lanes** (reported, never gating): repomix and markitdown (M9), headroom MCP (M10), natural TOON payloads (M7), socraticode where granted, and codebase-memory if Q3 passed. +- **An opportunity** is a child-task that the preregistered eligibility rule marks eligible for a lane. It is coded from the frozen task list before the run, and checked against the transcript afterwards. +- **Minimums.** A required lane needs at least 5 eligible opportunities in arm B from the organic run; capability-gate runs never count. + - With fewer, the lane is **incomplete**, and an incomplete required lane makes the E2E **incomplete**, never a pass. + - An optional lane with fewer than 5 is reported as N/A. +- "Successful" means `tool_result` is not an error. + +| Id | Metric | Population | Baseline today | Pass | +|---|---|---|---|---| +| M1 | Eligible-lane adoption: opportunities where the child made at least one successful call to the eligible lane | Arm B role children; required lanes | Not measurable retroactively. Proxy: `general-purpose` children with any MCP call 19.2%, with non-ctx MCP 6.2%; `workflow-subagent` 1.1% | **≥90%** per required lane | +| M2 | Children with at least one successful token-tool call, MCP or CLI lane | Arm B children except `source-scout` and blind | 19.2% (`general-purpose`, MCP only); 1.1% (`workflow-subagent`) | **≥90%** | +| M2b | MCP share of tool calls. **Descriptive only**: never a pass/fail row or an overturn condition (§0.1: no MCP-share target). | stack-researcher, stack-verifier, isolated-builder; evidence-reviewer | 1.9% (`general-purpose`); 49.1% (evidence-reviewer) | – (reported by role, beside M1 and M3) | +| M3 | **Context containment.** Tool results over 5,120 B entering context, from every carrier: Bash, `rtk proxy`, WebFetch, Read, Grep/Glob, ctx, other MCP. Preregistered exceptions are left out:
- a Read of a file the child then edits;
- original source that the answer quotes or cites by line;
- output whose exact bytes the frozen check requires. | Arm B children | Shell and web only: median 10 per child, p90 26 (`general-purpose`); 2 (`workflow-subagent`); 56.7% / 56.2% of Bash bytes. All-carrier figures come from PR-A. | - Median **≤1** non-exception result over 5 KB per child.
- **≤20%** of non-exception result bytes from results over 5 KB.
- **No** non-exception result over 20,480 B.
- B's total non-exception bytes over 5 KB **≤** A's, on the same tasks.
The last two bounds are frozen by PR-H.
`rtk proxy` results count in every measure, and PR-A counts them the same way. An acceptance command whose output may exceed 5 KB runs inside a shell `ctx_execute`, with an explicit cwd, printing its exit code and summary lines verbatim (PR-B stack-verifier body, §9.2). | +| M4 | Fetch routing: remote fetches through `ctx_fetch_and_index`. Fetches inside ctx code count in the denominator (PR-A item 8). | stack-researcher; Codex B | 9.8% (this session); 1.4% (all sessions); Codex workers 39.5%. All three leave out fetches inside ctx code. | **≥90%**. Unclassifiable fetches are listed. If they exceed 10% of fetch operations, M4 is incomplete (the 10% is frozen by PR-H). | +| M5 | ctx result discipline | All B children using ctx | 29% of results over 5 KB (`general-purpose`); 25% (evidence-reviewer) | - **≤10%** of ctx results over 5 KB.
- **≤20%** of ctx result bytes from results over 5 KB.
- **No** ctx result over 20,480 B (frozen by PR-H). | +| M6 | RTK, Claude side | All Bash children | not_logged 25 of 15,144; 451 `rtk proxy` calls, unclassified | not_logged **≤1%**; 100% of `rtk proxy` calls are acceptance or exception commands | +| M6c | RTK, Codex side | Codex B, compared with A. N is used only if its §3.2 read-back passed. | 67.4% of all commands prefixed. N: 78.6%, with the global AGENTS.md pointer present (§1.2). | **≥90%** of eligible commands; **0** exception commands wrapped in `rtk` | +| M7 | TOON on eligible payloads (uniform arrays of 5 or more rows) | All B | 4 eligible payloads, 0 encodes | - Seeded, at least 5 payloads (required): 100%.
- 100% strict round-trip equality.
- 0 encodes of non-eligible JSON.
- Natural payloads (optional): ≥80%, N/A under 5. | +| M8 | Code, catalog and memory lanes on eligible tasks: symbol references (serena or jcodemunch), qmd, ai-memory. socraticode where granted, and codebase-memory if Q3 passed, are optional. | Children given that lane | 0 of 19 evidence-reviewer children used serena, socraticode, jcodemunch or ai-memory; qmd 6 children | **≥80%** per required lane, with correct answers | +| M9 | Rare lanes: repomix, markitdown | Seeded tasks | – | Optional: used, with a correct answer. Reported, not gating. | +| M10 | Headroom MCP calls | All | 5 | Optional: N/A. A call in a default role is a finding to explain. | +| M11 | Guidance delivery and resolved routes | All lanes | – | 100% on each of the following:
- `meta.json` `agentType` equals the requested one;
- every Claude child's model and effort equal the preregistered ones. Effort is checked per run with `--require-effort max`; the model comes from the transcript and `subagent_completed`;
- Agent-tool children that received context-mode's block return inline;
- Codex prompt-input has the RTK body and the exceptions;
- across the §8.2 launch matrix, each Codex sub-agent's model, effort, developer text and tool bindings equal its role TOML. Where no role applies, they equal the parent's (D1; child_config.rs:64-91; subagents.md:354-363). | +| M12 | Blind lanes | blind-* on the Workflow path; the strict process (§3.1c) | 3 historical transcripts: 0 injected rows | - **0** MCP, Skill or Bash calls; **0** memory or index access; **0** routing markers.
- The first prompt has no server instructions or connector block.
- **Blind evidence** needs **0** `hook_additional_context` rows from any hook event.
- **Positive control:** the Workflow child that reads a file over 50 KB shows ≥1 PreToolUse:Read row. A 0 there means the counter is blind, and M12 is incomplete. That child's verdict is never blind evidence.
- The strict process replaces the Workflow blind lane only if all of this holds on it. | +| M13 | Codex binding, cm-audit row 3 | 2 concurrent worktrees × 20 repetitions, and spawned sub-agents | 17 wrong-root results historically | Each tool class reads a sentinel file that only its own tree holds, with no explicit cwd:
- the shell tool;
- `ctx_execute` without a cwd;
- `ctx_execute_file` with a relative path;
- `ctx_index`, then `ctx_search`;
- serena or jcodemunch, where granted.
**100%** own-tree sentinels and **0** wrong-root results. `pwd` alone never counts. | +| M14 | Attribution and reconciliation | All | – | Calls are reconciled by state:
- attempted (transcript `tool_use`);
- decided (`tool_decision` accept or reject);
- executed (`tool_result`);
- failed (`success` false);
- cancelled or unfinished (no result).
IDs are qualified by client and session: Claude `session.id` + `tool_use_id`, Codex `conversation.id` + `call_id`. Each call belongs to exactly one root, child or worker.
Pass: **≥99%** of executed calls matched transcript ↔ Loki, with 0 duplicates; every rejected call present in `tool_decision`; per-run counts agree within **2%**; unknowns listed, never zero-filled; no global counter labelled per child. | +| M15 | MCP infrastructure errors: approval, boundary, binding, timeout, module, connection | Per server | Codex ctx 7.1% of calls failed, all classes together (cm-audit FINAL §1: 182 of 203 our configuration or usage) | **≤1%** infrastructure-class errors. A non-zero exit from the command the child ran is excluded: that is `isError` by design (cm-audit row 5). Every ctx error is classified by cm-audit row, and a new class counts as our misuse until reproduced on upstream-recommended config. | + +**Guardrails, all required.** +- **G-Q, correctness.** Every B task passes its frozen check, and B passes at least as many tasks as A. +- **G-C, cost.** The **priced token estimate** per successful task, B over A, is **≤1.10×**. + - It includes cache writes, cache reads, retries, and failed or interrupted attempts, all priced at list price. + - **Claude tokens** come from each child's transcript, and from Loki `api_request` grouped by the arm's own `workflow.run_id`. + - **Codex tokens** come from rollout `token_count` records, differencing cumulative totals per thread and attempt. `turn.completed` carries cumulative thread totals, `turn.failed` carries none, and an interrupted turn emits neither (event_processor_with_jsonl_output.rs:118-127, 509-562). + - This is an estimate, never billed cost: subscription usage is not billed per token (costs.md:20,23). Plan-quota use is reported separately, where the provider shows it. + - Prometheus is not used until G1 is fixed. +- **G-T, wall time.** B is at most 1.25× A. +- **G-P, first prompt.** The stack-researcher median is below the `general-purpose` median of the same E2E (WP5 criterion). +- **G-S, security.** 0 credential-path reads, and 0 commands that escaped the secret guard through ctx execution. This is inspected until H6 is decided. + +**Outcome.** +- **Pass:** every required M row and every G row passes. M2b is descriptive, and optional rows are reported. +- **Incomplete:** a required lane had fewer than 5 eligible opportunities, or its positive control failed. The E2E is then neither pass nor fail: the lane is topped up and rerun. +- **Fail:** anything else. The failing lane is recorded, defaults do not switch, and one repair round follows before a rerun. + +### Measurement interpretation and exclusions — full-save §4.0/§4.3–§4.5 + +**Three views, never summed:** execution; each tool's own scoped window delta; +provider usage and its priced token estimate including failures, retries and +interrupted attempts. “Every baseline states its tool, window and denominator. +Numbers with different denominators are neither compared nor added.” +Unknown is not zero; global/session counters are never per-child counters. +Only exact o200k comparison via `token_manifest.py compare` establishes an +artifact reduction. These are full-save §4.0's rules. + +M3 exceptions are coded only as: a Read of a subsequently edited file; original +source quoted/cited by line; exact bytes required by the frozen check. Record +the task, result and proof for each exclusion. Summarizable logs and acceptance +output are not excluded because they are large. Raw/proxy and every other +carrier still enter the measures (AA M3; full-save §4.2, quoted scope only). + +The priced estimate is the sum across **all** attempts of ordinary input, +cache-write, cache-read and output tokens multiplied by the dated published +price for that model/tier, divided by tasks passing their frozen checks. +Claude categories are separate; Codex cached input is a subset, so subtract +it from total input before ordinary-input pricing. Do not add reasoning output +again when it is a subset. Missing usage stays unknown (full-save §4.5; +[convergence architecture §6](../../../docs/convergence-architecture.md)). +Subscription use is not billed per token. No numeric model price is frozen +without a dated source; freeze the applicable price sheet before the run. + +**Dated baseline disposition, 2026-09-26:** `baseline.json` is deferred to PR-A's +remaining scope; #369 is a pre-fix reference baseline only. Publication of a +sanitized regenerated baseline remains a merge-before-run gate (AA §6:412; +full-save §5 step 4). + +All-carrier baselines, M-R1/M-R3 and per-child token measurement belong to +PR-A. full-save §4.1/§4.2 are outside this unit's implementation scope. We +neither regenerate nor redefine them. **Integrator addendum, verified with Git +access the builder did not have:** PR-A's own base branch, +`claude/child-lane-usage-measurement-20260926` at `152f49c2`, did merge, as +**#369** — confirmed directly, not inferred: #369's real file list +(`examples/claude-native/workflows/{child-usage.mjs,test-child-usage.mjs, +README.md,SHA256SUMS}`, `tools/skill-usage/{skill_usage.py,README.md}` and +tests) matches AA §6's PR-A file list exactly, and full-save §8 (revision-1 +review, finding #8) independently records the same merge. #369 delivered only +the baseline snapshot (`evidence/artifacts/child-lane-baseline-20260926/`), +measured with the **current, pre-fix** tooling: +`examples/claude-native/workflows/child-usage.mjs:277` on `main` still +examines only `SubagentStart` rows, exactly the gap AA §6 change item 1 names +as still needing a fix. No branch or PR continuing PR-A's remaining +tooling-fix scope exists (checked directly: `git branch -a`, and every open +PR's file list, as of this preregistration's build). So #369's baseline is +retained measurement evidence, but it is not proof that PR-A's remaining +measurement extensions (all-carrier M3/M5, M-R1/M-R3, nested fetches, all-hook +injection, call states, per-thread Codex usage) exist yet. + +## Blind qualification and controls — AA §3.1c/d, §3.2, Q1–Q4 + +The selected strict candidate is **`--safe-mode` [nv]**, not an accepted route. +Q1 must observe native sign-in with no key supplied, the requested model/effort, +the exact Read/Glob/Grep inventory and effective deny rules, no marker/server +instructions/CLAUDE.md in the first prompt, zero hook rows, and verdict parity. +Its documentation's built-in-plugin allowance is specifically checked: the +installed context plugin must not load. The runbook gives the native command. + +Blind Workflow verdicts require zero `hook_additional_context` rows from +**every** hook event. Keep small packets below 50 KB and consume the session's +once-only Read/Grep tips in the coordinator first; these practices never +replace the zero-row gate. Contaminated verdicts are retained and excluded, +then repeated on the qualified strict route (or a fresh checked Workflow child +until that route qualifies). Never launch an organic blind role through the +Agent tool. Its one explicitly contaminated path probe runs only in a separate +scratch capability session (AA §3.1a/d; §8.1b). + +The >50 KB positive control must fire the Read injection; its verdict is never +blind evidence. Its frozen task reads only the first five records of the +84,003-byte fixture: AA §3.1 Path 2 says the advisory uses file size and fires +on every Read (context-mode v1.0.169, hooks/core/routing.mjs:848–866). +This bounds the requested result without changing the hook condition. +All its returned bytes remain in normal M3 accounting; there is no blanket +control exemption. Strict repeats must remain clean. A zero positive-control +count makes M12 incomplete, not a pass. `--bare` remains a separate API-key +route requiring the user's decision, never an automatic fallback (AA Q1). +Q2 isolation is **[nv]** until prompt-input and own-rollout show no global +instructions, skills catalog or project layer and only preregistered tools. +Q3 graph qualification is **[nv]** on a disposable clone only. Q4's model-selected +multi-agent-v2 inference remains source-read, not probed (AA D2/§10). + +## Procedure — AA §8.4 + +1. **PR-H is merged.** Its commit time must precede the run. Resolve the + dependency gates below, Phase 1b qualifications and coordinated windows A/B. +2. Snapshot every AA §7 counter. Freeze tool versions/pins, carrier and skill + hashes, settings truthiness, the actual execution checkout HEAD, the private + identity table and Q1's chosen strict process. The execution cwd is the main + checkout and is recorded independently of the preregistration commit. + AA's “93 commits behind” is historical context, not a current assertion. +3. Run the capability gate, including disabled-server and wrong-root negatives. + Only after it passes, run separate Claude Workflow runs B, A, A0 and tagged + Codex launches B, A, N; record every native workflow/thread id. Handle the + main, Agent-path and strict controls separately as frozen above. +4. Snapshot the same counters again, at the same scopes. +5. Run `child-usage.mjs --require-effort max` separately for + each Claude arm. Then run `child-usage.mjs --lanes-sweep` and + `skill_usage.py --lanes` over the fixed run window (commands in RUNBOOK). +6. Prove every arm's tagged events arrived and every exporter flushed before + querying Loki by each workflow ID, `ecosystem.task.id`, and the Codex + environment tag. Field preservation remains a prerequisite, not an assumption. +7. Reconcile call states under M14 and Codex cumulative usage per thread/attempt + under G-C. Retain unsuccessful, interrupted and superseded attempts. +8. Write a sanitized aggregate receipt quoting retained output only. Apply the + pass/incomplete/fail rule and the independent reviews; do not run a new E2E + to fill this preregistration PR. + +## Overturn conditions — AA §8.5 + +- **WP5 table:** overturned if B's correctness falls below A's, or its priced estimate exceeds A's by more than 10%. +- **Allowlist lever:** overturned if stack-researcher, which keeps Bash, does no better than `general-purpose` on M1 and M3. +- **SubagentStart-for-Workflow evidence:** withdrawn if a release note or a rerun shows a `workflow-subagent` child without `hook_additional_context`. +- **D2:** overturned by the spawn probe. +- **Strict blind process:** `--safe-mode` is withdrawn if any hook, plugin, MCP or CLAUDE.md content reaches it, or if verdict parity fails. `--bare` then waits for the user's decision on an API-key route. + +## Foundation acceptance — full-save §4.6 (verbatim) + +Section references inside this quotation refer to full-save (or AA where named). +The M-R1/M-R2/M-R3 clause is quoted, not redefined or implemented by this unit. + +The foundation counts as accepted only when all of these hold: +- The E2E passes by AA §8.3's outcome rule: + - every **required** M row passes: M1, M2, M3, M4, M5, M6, M6c, M7 (seeded), M8's required lanes, and M11–M15; + - every G row passes: G-Q, G-C, G-T, G-P and G-S; + - a required lane with fewer than 5 eligible opportunities, or a failed positive control, makes the E2E incomplete, never a pass. +- Optional rows are reported without thresholds: M7 on natural payloads, M9, M10, socraticode where granted, and codebase-memory if Q3 passed. So is M2b. An optional row's N/A never blocks acceptance, and N/A never counts as a pass of a required row. +- M-R1 ≥ 95% of eligible parts, M-R2 = 0 and M-R3 = 0. +- The capability gate (AA §8.1b) passes for every lane that §1 marks as a target. +- Every §2 switch has its receipt. +- Reviews follow AA §8.7: the Claude evidence-reviewer, then the GPT-6 cross-family review, then one repair round. + +The first-full-seven-day M-R1 window and baseline remain PR-A's responsibility +(full-save §4.1; §5 step 4 supplies the continuation and regenerated baseline). +PR-H freezes M-R1 after PR-A's baseline (full-save §4.1:547); that freeze remains +pending. The ≥95% value above is the quoted foundation target. Step 13 is the +E2E and seven-day measurement, not PR-A's continuation. This adoption E2E does not establish WP8 savings: +WP8 needs at least 30 matched pairs per family, at least three repeats, cold +and warm cache separately, fixed routes, one change per arm, all overhead and +uncertainty (AA §8.6). No savings-inside-noise result is accepted. + +## Merge-before-run dependencies and unverified boundaries + +Statuses below were frozen at this preregistration's build, not claimed as +current host adoption. No dependent live action was run here. + +| Dependency | Real build status | Required before organic execution | +| --- | --- | --- | +| [PR #376](https://github.com/seathatflowsinourveins/native-agent-stack/pull/376), `claude/stack-agents-dispatch-20260926` | **Merged** at `623d34fa` (2026-09-27T03:38:47Z) — confirmed after this preregistration's own repair round, by `origin/main`'s advancement past this unit's base. `adoption/agents/claude/{stack-researcher,stack-verifier,security-reviewer}.md` are present on `main`, mirrored under `examples/claude-native/agents/`. | Prove actual installed role bytes and real child `meta.json` types at the execution checkout's HEAD (AA §8.4 step 2) — a repo-tree merge is not yet a host install/read-back proof. This supplies B's role table. Security-reviewer is a carrier addition, not a fabricated AA §8.2 E2E role. | +| Codex `stack-worker` carrier | **Unmerged, in progress, not a PR and not pushed**. Local checkpoint `a6ed3c57` on `claude/codex-lane-token-stack-20260926` is supplied build-status evidence. Candidate files: `adoption/templates/codex.stack-worker.config.toml`, `tools/adoption/apply_codex_lane.py`, `tools/adoption/prove_codex_lane.py`, `docs/decisions/2026-09-26-codex-worker-lane.md`. | Resolve the author's recorded cleanup-liveness, pass/fail-verdict and evidence-README overclaim defects; publish, review and merge; qualify profile/custom-agent read-back and binding. It is never an accepted carrier merely because that checkpoint exists. | +| [PR #364](https://github.com/seathatflowsinourveins/native-agent-stack/pull/364), telemetry writer identity | **Merged** at `c71d66d0` (2026-09-27T02:45:15Z) — confirmed after this preregistration's own repair round. **The field-preservation gap persists after merge**: `origin/main`'s `observability/collector/collector.yaml` `keep_keys` lists (resource-level and attribute-level) still omit `workflow.run_id` and `tool_use_id`, checked directly against the merged file, not the pre-merge head this preregistration originally cited. | Prove all requested joins and exporter flushing once a follow-up adds the missing fields — merge status alone no longer blocks this row, but the field gap still does. See RUNBOOK's conditional queries and pinned sources. | +| PR-A | The builder's search (no Git access) found no PR; **integrator addendum**: PR-A's base branch (`claude/child-lane-usage-measurement-20260926` @ `152f49c2`) did merge, as **#369**, confirmed by its exact AA §6 file-list match — but only the baseline snapshot, measured with current, pre-fix tooling (`child-usage.mjs:277` still examines only `SubagentStart`). No branch/PR continues the remaining tooling-fix scope. | Merge the full-save §5 step 4 / AA §6 measurement extensions (not #369, which is already merged) and publish their baselines before relying on all-carrier containment, nested fetches, all-hook injection, call states or complete usage. | +| PR-R | Token-practice records/recipes on `claude/rtk-recipes-records-20260926`; full-save F1–F9. | Separate records work, **not PR-D**, roles or the Codex profile. No acceptance is inferred from a possible `docs/decisions/2026-09-26-token-practice-f1-f9.md`. | + +The real pending-profile invocation is `codex exec -p stack-worker -m gpt-6-astra +-c model_reasoning_effort="max" -c web_search="live" -s ...`, +from its candidate template header line 3. That source was read as a local +candidate; this builder did not establish its commit ancestry or host acceptance. + +Preserve AA §10's **[nv]** boundaries: restricted-allowlist server instructions; +plugin-scoped preload; whether profile layers carry hooks; the D2 spawn inference; +strict blind/Q2 isolation; per-key telemetry settings reload; the per-launch +Codex tag and Workflow-child resource propagation; and persistence of failed-turn +`token_count` usage. Compaction is untested if absent. Non-daemon bridge calls +and missing usage stay unknown. A sandboxed Codex worker may not write RTK +history. The secret-guard bypass through context execution remains inspected +under G-S until H6 is decided. No flag, metadata file, syntax test or old receipt +silently promotes any of these to verified behavior. + +## Sealing + +Repair 1 seal, **2026-09-26**, before any organic run. Recompute these SHA256 +values from the merged preregistration commit before capability probes and +before launching any arm; a mismatch stops launch. A hash establishes byte +identity, not merge chronology or a completed model run. The integrator must +record the actual merge revision/time and prove it precedes execution. + +| Artifact | SHA256 | +| --- | --- | +| `preregistration.json` | `e04c1a08de610356e2f24cf8d1f59a70e8b630e093c93934cd03ab0a8091bee4` | +| `token-e2e-run.mjs` | `6ca129d94d51c6c99c5a9430e2b7fb0d23b0919001acf789bf5d59d74c7cb828` | +| `RUNBOOK.md` | `a8ee0e09ce001db21269f66dc5ec4a4aa39abc3020e86e37d610a4aa9236c5a4` | +| `fixtures/table.json` | `fdf314394a9854039da18b2f827f8caf2d8ffb3651594733eb84699f74c09448` | +| `fixtures/events.jsonl` | `81ef838c18cc81006269024e7270b991dbdfcb72bf223dec324f2fba9307930e` | + +The reused table pointer is separately sealed by each task's `frozen_input`; +it must be extracted from the preregistration commit, not a regenerated matrix. +The existing `receipt_sources` hashes remain historical source identities. + +Any future change to this preregistration requires an **append-only, dated +Amendment section**, never a silent rewrite. Preserve prior amendments and seal +tables, identify the rules/artifacts being superseded, state the reason and +whether any results were already observed, and record the replacement hashes +and merge chronology before execution. No retroactive eligibility or threshold +recoding is permitted. Source: [retrieval-quality-v2 Sealing and Amendments](../../../blueprints/retrieval-quality-v2/PREREGISTRATION.md#sealing). + +## Amendment 1 (2026-09-26): repair after independent reviews, before execution + +This authorized repair changes the unexecuted preregistration in response to +the Claude and GPT-6 reviews. No Workflow, model, capability probe or organic +experiment ran during the repair. The new seal above covers the corrected +artifacts. The original public fixtures and all 77 information-need definitions +remain; a blocked task is retained, never deleted or credited as passed. + +| Finding | Correction and source | +| --- | --- | +| 1 | JSON now holds the five-opportunity minimum, every AA §8.3 M/G criterion, three M3 exceptions, Q1 strict candidate, outcome and §8.5 overturn rules (AA §6:405–411). | +| 2 | Arm A moves from binding-3 to binding-4 for full history, with no role/agent_type; binding-1's none/role case is expressly retained by the repair request (AA §8.2:581). | +| 3 | Builder checks follow the observed child tree, preserve isolation, and require hooks preflight/restoration (`isolated-builder.md:7,10`; `test-envelope.mjs:418`; `harness-defaults.md:89`). | +| 4 | AA §6's baseline.json is explicitly deferred; #369 is pre-fix reference evidence. M-R1 freeze follows PR-A's baseline (full-save §4.1:547; §5 step 4, not step 13). | +| 5 | The runner error now names preregistration.json. | +| 6 | Python/JavaScript denylist checks recognize underscore-separated names and include the nine omitted handbook entry points (handbook 106–151; Python re lookaround semantics). | +| 7 | Denylist sources are the canonical 24-component inventory and handbook; scratch-only carrier citation removed. | +| 8 | Recursive evidence privacy and explicit model/effort/count guards now cover this standalone runner; mutation checks demonstrate their sensitivity. | +| 9 | This seal and amendment procedure follow retrieval-quality-v2's retained-history convention. | +| 10 | Reused tables bind the hashed preregistration-commit pointer through retained-input, following the existing retained-history binding. | +| 11 | Claude-only scout/reviewer role lanes are explicitly excluded from Codex bindings; shared exec needs remain (AA §6:372). | +| 12 | The loopback task is blocked until an equivalent permitted role is named and qualified; source-scout's network prohibition is unchanged. All arms refuse to start with this unresolved slot. | +| 13 | The sole main task is xhigh; every child remains max (AA §8.2 Claude main; AGENTS.md Workers). | + +The task-specific anti-pattern log is this amendment table, with enforceable +contracts in `tests/test_token_e2e_preregistration.py`. It records the proven +mistakes without promoting offline checks to organic adoption evidence. diff --git a/evidence/artifacts/token-adoption-e2e-20260926/RUNBOOK.md b/evidence/artifacts/token-adoption-e2e-20260926/RUNBOOK.md new file mode 100644 index 000000000..226ff6a10 --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/RUNBOOK.md @@ -0,0 +1,613 @@ +# Measurement runbook — PR-H + +**Prospective only. Do not run the E2E from this PR.** Follow +[README.md](README.md) after it and its dependency gates have +merged. This file freezes collection and interpretation; no command below is +a claim that a model, capability probe or telemetry query has run. + +## Freeze and preflight — AA §7, §8.1, §8.4 steps 1–2 + +Record the merged preregistration commit, its merge/start chronology, hashes of +all frozen files and fixtures, actual execution checkout revision, tool +versions/pins, agent/profile/skill bytes, settings truthiness and Q1's strict +process. Record the actual identity table with the format +`...`; keep native session/workflow/thread/call IDs and +host paths private. Freeze task input bindings before capability probes: +source receipts, original source revision, private task-output directories, +isolated builder worktrees and two different per-tree sentinels. Do not +replace missing retained source bytes with a convenient new fixture after a run. +The two reused history tasks require the original retained 150-entry report. +The two reused table tasks require the pointer value from the preregistration +commit, not the execution checkout. Extract +`/summary/needs_host/macos-arm64` from the committed +`catalogs/landscape/component-evidence-matrix.json`, serialize with Python +`json.dumps(value, sort_keys=True, ensure_ascii=False, separators=(',', ':'))` +as UTF-8 with no trailing newline, and retain those exact bytes at the neutral +`` path. Verify the JSON's `frozen_input` SHA256, 6,552-byte +length and 60-record count before probes and again before grading. Use the +same bytes in every arm. Missing bytes or a mismatch blocks launch. +The two reused command-fidelity tasks require recovery of the original six +observation command identities, whose receipt fields are truncated; the frozen +test target is `tests.test_host_requests`. Their checker compares newest commit +subject, test count and result status against exact originals. Missing inputs +block launch before probes. A changed information need requires a merged +protocol amendment, not an operator-selected replacement. + +The four merge gates are #376, the unfinished Codex profile/checkpoint, +#364 **with preservation fixes**, and PR-A. **Dated update, after this +preregistration's own repair round:** #376 and #364 have both since merged +(`623d34fa`, `c71d66d0`); #376's remaining gate is a host install/read-back +proof, not the merge itself, and #364's field-preservation gap +(`workflow.run_id`/`tool_use_id` still absent from `collector.yaml`) persists +after its merge. See the preregistration for full, current statuses. +**Dated scope note, 2026-09-26:** AA §6's `baseline.json` is deferred to PR-A's +remaining scope (full-save §5 step 4); do not fabricate it or silently treat it +as supplied. #369 is a **pre-fix reference baseline only**. PR-A's +all-carrier M3/M5, nested fetches, all-hook context, call-state and token +extensions are not supplied by this PR. + +Use these shell variables as **operator inputs**, with real values recorded +privately: `E2E_DIR` (owned private output directory), `RUN_TOKEN`, +`SINCE`/`UNTIL` (UTC ISO timestamps, half-open run window), +`CLAUDE_ROOT` (projects transcript root), `CODEX_SESSIONS` (rollout root), +`CLAUDE_B_DIR`/`CLAUDE_A_DIR`/`CLAUDE_A0_DIR` (actual workflow transcript +directories), and `WF_B`/`WF_A`/`WF_A0` (observed workflow IDs). +These variable names are runbook inputs, not new CLI flags. Use the main +checkout as the dedicated headless coordinator's cwd (AA §8.1). + +Before starting that process: + +```sh +test -z "${CLAUDE_CODE_EFFORT_LEVEL+x}" +export RTK_DB_PATH="${E2E_DIR}/rtk.db" +export OTEL_RESOURCE_ATTRIBUTES="ecosystem.task.id=${RUN_TOKEN}" +``` + +Stop if the first check fails; the coordinator environment must leave +`CLAUDE_CODE_EFFORT_LEVEL` unset. Do not set it to xhigh or max, and do not +modify it in the workflow. The coordinator uses Ultracode/xhigh, while every +child explicitly requests max ([AGENTS.md](../../../AGENTS.md), Workers). +AA §7 is the source of the two exported run variables. This resource tag's +propagation to in-process Workflow children is **[nv until reconciliation]**. +Claude withholds `OTEL_*` from subprocesses; it does not automatically tag +a Codex worker launched through a shell. + +If selected and the collector accepts traces, AA §8.1 permits process-local +`CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` and `OTEL_TRACES_EXPORTER=otlp`. +Do not infer exact child attribution from logs alone. Native transcripts and +the qualified call-ID join remain authoritative (AA D5/§7). + +## Three accounting views — full-save §4.0 + +**Three views, never summed:** + +1. Execution: what ran, per child, worker, role and tool. +2. Tool-reported savings: each tool's own counter at its own scope, taken as a + window delta. +3. Provider usage and its priced token estimate: the whole task, with failures, + retries and interrupted attempts included. It is never labelled billed cost. + +**“Every baseline states its tool, window and denominator. Numbers with +different denominators are neither compared nor added.”** Unknown is not zero. +A host/session counter is never labelled per child. Exact o200k comparison +through `token_manifest.py compare` is the only artifact reduction claim +(full-save §4.0). Tool estimates, artifact comparisons and provider usage remain +separate tables in the receipt, even when they concern the same task. + +Window labels used below: + +- **W0:** #369's historical baseline, + `[2026-09-25T17:18:00Z, 2026-09-26T15:05:00Z)`. +- **WAA:** AA §1's separate historical window, + `[2026-09-26T00:00Z, 2026-09-26T18:37Z)`. +- **W:** this future run's recorded `[SINCE, UNTIL)`, separately partitioned by + actual arm identity and task/attempt. +- **S:** a before/after native-counter snapshot pair bracketing W at one + unchanged native scope. + +W0 and WAA are different baselines; neither is a new organic run. + +## Counter snapshots — AA §7; full-save §4.4 + +Set `SNAPSHOT` to `before` for step 2; repeat the same calls with +`SNAPSHOT=after` only after execution and flushing. Capture raw returns and +exit status privately, with timestamps and hashes. These are upstream flags +verified from installed help; gain has no ISO-window flags, and discover's +`--since` means a number of days, not an ISO timestamp. + +```sh +rtk gain --all --format json > "${E2E_DIR}/rtk-gain-${SNAPSHOT}.json" +rtk gain --project --format json > "${E2E_DIR}/rtk-project-${SNAPSHOT}.json" +rtk gain --history > "${E2E_DIR}/rtk-history-${SNAPSHOT}.txt" +rtk discover --format json > "${E2E_DIR}/rtk-discover-${SNAPSHOT}.json" +headroom savings --json > "${E2E_DIR}/headroom-${SNAPSHOT}.json" +``` + +Sources: AA §5/§7; full-save §4.4; +[handbook lines 271–283](../../../docs/token-session-handbook.md); +`rtk gain --help`, `rtk discover --help` (installed help, read 2026-09-26). +A history snapshot may contain private commands; never commit it. Preserve a +consistent read-only SQLite backup of the isolated `RTK_DB_PATH` for the +`hook_decisions` join. The native `commands` table has no `tool_use_id`. +Do not relabel discover's broader scan as a W-only counter. If a Codex sandbox +cannot write history, use its rollout for coverage and report history unknown. + +Take the following MCP returns in the **same connected process/session** before +and after; a new bridge process is not that session's “after” snapshot. +Record reset/restart/scope changes and refuse a delta across them. + +| Tool / exact counter | Window | Native scope / denominator | Interpretation | +| --- | --- | --- | --- | +| RTK gain/history above | S; isolated run DB | Commands tracked in that DB; project is a subset | Estimated input/output/saved counts; do not add host and project totals | +| context-mode `ctx_stats({})` | S | Connected session/project; children share the parent | Estimates, not provider usage; not per-child | +| headroom `headroom_stats`, `headroom savings --json` | S | MCP instance and separate ledger; ledger “lifetime” is retention bounded | Separate views; unknown-model pricing and pricing-era caveat | +| jcodemunch `order({"action":"get_session_stats","args":{}})`; per-call `_meta.tokens_saved` | S / actual calls in W | Same MCP session; separate retained ledger | Estimates; no sum of per-call and cumulative overlapping values | +| TOON `--stats` and strict decode | Each selected payload in W | That encode/decode pair and exact original | Estimate plus independently checked equality | +| Repomix pack summary | Each selected pack in W | The explicitly selected files/pack | Token counts, not savings | +| QMD `qmd --index native-agent-stack-catalog status` | S | That named index/collections | State, no savings counter | +| ai-memory `memory_status` | S | Explicit `workspace="local", project="native-agent-stack"` | Operations/observations, no savings counter; AA §5/§9.2 | +| SocratiCode `codebase_status` | S | Explicit indexed project | State, no savings counter | +| Serena dashboard/logs | S | Client's bound project/server | No savings counter (AA §5) | +| codebase-memory | S only after Q3 | Qualified disposable-clone graph | Blocked until Q3; counters cannot show savings | +| MCPorter daemon call log, if B5 selected | W | Logged keep-alive downstream calls | Attribute downstream operation to its server; ad hoc calls stay unknown | +| ccusage daily JSON below | Explicit calendar dates overlapping W | Selected client's host logs | Usage, not per-task savings or billed cost | +| gpt-tokenizer via `token_manifest.py compare` | One frozen artifact pair | Exact original vs selected output | Only exact artifact reduction measure | +| Prometheus / published native-data counters | W or S, explicitly labelled | Process/host aggregates | Never per child; Prometheus invalid until G1's reset/identity proof | + +Retain no cross-tool total. AA §7's Grafana/Loki live view is an observation +of events, not another quantity to add to usage. Native-data publication +readiness does not establish per-child attribution. + +## Capability qualification and launch — AA §8.1b, §8.2, §8.4 step 3 + +For every eligible role/tool pair, perform two discriminating fixtures three +times each, checking the executed call, successful result and an own-tree +sentinel. Require 100% where capability exists. A disabled server and a +wrong-root binding must fail. Archive these as capability evidence, excluded +from organic task counts. For plugin tools, AA §8.1b's optional native harness +is `claude plugin eval` with `--mocks off` and +`--allow-tools "mcp__plugin_context-mode_context-mode__*"`; a real returned +sentinel is required. `--allow-real-servers` alone may still use mocks. +QMD is user-scoped and is not covered by that plugin harness. + +Run the M13 binding probe in two concurrent owned worktrees, 20 repetitions +per worktree, covering shell, cwd-less execution, relative file read, +index/search and the granted symbol service. Also test spawned children. +An own-tree sentinel establishes the binding; a printed cwd does not. +Run the scratch Agent-tool blind contamination probe outside any verdict wave. +No capability output counts toward the five organic opportunities. + +### Claude Workflow runs + +Use `claude -p` with the native Workflow tool, once per arm **B → A → A0**. +The exact supported CLI shell form is: + +```sh +claude --effort ultracode -p "${COORDINATOR_REQUEST}" +``` + +`COORDINATOR_REQUEST` explicitly asks the coordinator to invoke Workflow with +`scriptPath=evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs` +(kept beside this runbook and the preregistration, not under +`examples/claude-native/workflows/` — see README.md's integrator correction; +`scriptPath` accepts any committed path) from the merged preregistration and +the following native `args` object. Supplying the keyword alone to `-p` is +not enough (Workflow reference, “Where the keyword works”, lines 131–141). + +| args key | Value and frozen-input check | +| --- | --- | +| arm | B, then A, then A0, one Workflow call each | +| run | Private run token from the identity table | +| attempt | Initial positive integer 1; new recorded integer on retry | +| preregistration_commit | Actual merged revision whose files were checked | +| gates_verified | true only after inspecting the retained merge/read-back/capability evidence | +| frozen_tasks | Entire parsed committed `preregistration.json`, without edits | +| worktree_paths | Every selected task with `worktree_required` mapped to this arm's prepared owned absolute checkout/clone path; six distinct prepared builder paths plus per-arm command-observation checkouts and caller clones, frozen privately before probes. For builders this is a prepared control binding, not proof of the actual child tree; follow the builder section below | +| input_paths | Every selected task with `input_required` mapped to its pre-recorded neutral absolute input path; history originals, the sealed table pointer value and the HTML seed retain identical bytes/hash across arms | + +The runtime cannot read files or import modules. The coordinator passes JSON +through the supported Workflow `args` input; verify its task ids, role/model, +task text, checks and denylist against the hashed committed file before launch. +The script's boolean guard is not acceptance evidence. Do not ask a model to +rewrite the task array. The native API is documented in +[WorkflowInput](https://code.claude.com/docs/en/agent-sdk/typescript#workflow); +`scriptPath` and JSON-valued `args` are tool inputs, not invented CLI flags. + +The script reserves 49/43/43 child slots, sequentially, with explicit model and +max effort on every `agent()`. It never calls Codex. It logs each returned, +null or failed result; graders use the independent frozen checks, not the +child's self-assessment. Preserve native StructuredOutput retry attempts and +all their usage. The response schema and task text stay unchanged between +arms. Cache-prefix rules come from Workflow reference lines 348–355; size +guidance is advisory (lines 432–449). + +`reuse-296-15` is blocked pending a qualified loopback role amendment. +`source-scout.md:11` forbids network use, and no equivalent Sonnet/max role +without added worktree isolation is evidenced in this checkout. Preserve the +information need and all arm slots. The script rejects a selected blocked task +before launching any child; a true `gates_verified` flag cannot bypass it. +A dated merged amendment must name and qualify the permitted role before any +organic arm runs. Do not weaken source-scout or silently skip the task. + +Run the main and native Agent-path observations outside the script, as the +JSON's `dispatch` fields specify: one main B observation, one researcher +Agent child in B and one general-purpose Agent child in A, all matching the +frozen route. The one `dispatch: main` task stays at xhigh; every child stays +at max. Blind tasks never use the Agent tool in organic execution. + +The positive control requests only the first five records of the 84,003-byte +log fixture (events 1–5, all INFO). AA §3.1 Path 2 and the inspected +context-mode v1.0.169 `hooks/core/routing.mjs:848–866` use file size, not +Read offset/limit, for the over-50,000-byte injection condition. Require the +actual Read hook row; zero remains incomplete. Include every returned result +in ordinary M3 accounting, with no control-specific exclusion. + +For the six strict repeats, after Q1 qualifies the exact process (AA §3.1c): + +```sh +claude --safe-mode -p --tools "Read,Glob,Grep" --model opus --effort max \ + --system-prompt-file "${BLIND_BODY}" "${BLIND_PACKET}" +``` + +`BLIND_BODY` is the frozen stripped role body; `BLIND_PACKET` is precisely +the corresponding frozen task text and permitted fixture binding. Q1 remains +**[nv]** until observed native auth, route, inventory/deny rules, first-prompt +purity, zero hooks and verdict parity all hold. The installed plugin must not +load. Do not switch silently to `--bare`, which changes authentication. + +### Builder worktrees and hooks restoration + +Sources: `adoption/agents/claude/isolated-builder.md:7,10`, +`examples/claude-native/workflows/test-envelope.mjs:418` and the +observed shared-configuration failure in `docs/harness-defaults.md:89`. +Keep `isolation: worktree`; the role may create a child tree different +from the prepared `` binding. + +Before each builder launch, from its prepared repository, retain the effective +origin/value and whether local values existed, including all values and exits: + +```sh +git config --show-origin --get core.hooksPath +git config --local --get-all core.hooksPath +``` + +Exit 1 means unset for these reads; retain it. Keep this snapshot private. +After completion or failure, repeat the effective-origin check. Restore the +exact preflight repository-local value(s): remove the local key with +`git config --local --unset-all core.hooksPath`, then for each recorded +local value use `git config --local --add core.hooksPath "${HOOKS_PATH_BEFORE}"`. +If no local value existed, leave it unset so the original inherited origin +applies. An unset of an already absent key can report exit 5; verify final +state rather than masking arbitrary errors. Never write global/system config. +Re-run `git config --show-origin --get core.hooksPath` and compare +origin, value and exit with preflight. Retain any mutation and its restoration +evidence, including on failed attempts; unresolved differences stop further +builder launches. The workflow is sequential, so another builder must not +race this snapshot/restore. + +For each builder identity, independently read the child's native transcript +and `meta.json`. Record the actual worktree and starting revision from +the native working-directory/revision observations and available metadata, +joined by child identity. Do not invent a metadata field or accept the child's +final answer alone as proof. If metadata does not record the tree, its identity +must join to transcript observations that do. Require the starting revision and +fixture bytes to match the frozen execution inputs. Missing or conflicting +evidence blocks grading. + +Run the independent tracked **and untracked** diff/checks in that actual child +tree against its recorded starting revision. Only `fixtures/before.py` +may change; compare its final bytes to `fixtures/after.py` in the same +tree, and retain the actual Ada/Grace test output. An empty diff from the +prepared tree cannot pass. A/A0 use their prepared control tree when no native +isolated tree was created; apply the same read-back and revision checks. +The script's `worktreeEvidence.actual_path: null` means pending independent +read-back, never the supplied path by default. Retain the actual child tree +until independent grading and patch capture finish, then clean up only the +owned tree through the native lifecycle. + +### Codex launches (separate shell step) + +The pending carrier's actual header, `adoption/templates/codex.stack-worker.config.toml:3` +at the supplied local checkpoint, specifies: + +```text +codex exec -p stack-worker -m gpt-6-astra -c model_reasoning_effort="max" -c web_search="live" -s ... +``` + +Its local branch is `claude/codex-lane-token-stack-20260926`, checkpoint +`a6ed3c57`: unpushed, unmerged, with recorded cleanup/verdict/README defects. +This runbook does not accept it. Once those gates are resolved, this is B's +expanded command shape (AA §7/§8.1/§8.7): + +```sh +codex exec -p stack-worker -m gpt-6-astra \ + -c model_reasoning_effort='"max"' -c web_search='"live"' \ + -c "otel.environment=\"${IDENTITY}\"" \ + -s "${SANDBOX}" -C "${TASK_CWD}" --json "${TASK_TEXT}" \ + < /dev/null > "${E2E_DIR}/${IDENTITY}.events.jsonl" \ + 2> "${E2E_DIR}/${IDENTITY}.err" +``` + +`TASK_TEXT` is the JSON `task_text` with only its declared neutral placeholders +bound: `` to the frozen owned checkout/clone, +`` to the retained source pathname, and `` to +`RUN_TOKEN`. Apply the same bindings in the Workflow args above. Check resolved +prompts against the JSON denylist; no receipt commands, tool names or lane +guidance are appended. `IDENTITY` follows the frozen format. +Record the actual exit status, start/end and `thread.started` ID separately. +A uses the identical command **with the `-p stack-worker` pair removed**, +retaining user config and all explicit route/identity settings. + +N adds `--ignore-user-config -c features.hooks=false -c features.plugins=false` +to A and supplies the previously frozen native exporter configuration through +its supported per-launch `-c` entries. Do not invent exporter keys or assume +they survive ignored user config. Qualify those exact entries at the telemetry +gate. Q2's candidate isolated client home and repository-external fixture must +pass prompt-input plus rollout read-back before N can be called guidance-free. +Its native auth link stays private; never copy an authentication store. +Until Q2 passes, report config-free N and compare M6c B with A (AA §3.2). + +For each arm launch one worker for each of its 20 exec tasks, in manifest +order, at most two concurrent owned worktrees. Each launch retains its own +identity. B's five child cases are `fork_turns` none, 2 and all with the +researcher role, all without a role, and a resumed finished researcher child. +A repeats `seed-binding-1` (none with its existing researcher role, explicitly +retained by repair 1) and `seed-binding-4` (all with no role/agent_type). This +retained none case is an explicit exception to AA §8.2's no-role wording. +Retain actual spawn/resume arguments, +role TOML hash, own-rollout start boundary, model, effort and source binding. +Do not count replayed parent history as the child's calls or usage. +Compaction remains untested if absent (AA §8.2/§10). + +The `source-scout` and `evidence-reviewer` role lanes are Claude-only (AA §6:372). +Their shared Codex information needs remain exec tasks under the selected arm +profile, with `role: null` and explicit Claude provenance. Do not dispatch a +Codex agent by either nonexistent role name. The only Codex custom carriers +specified by AA are `stack-researcher` and `stack-verifier`. + +## Transcript measurement — AA §8.4 step 5 + +These flags were verified against the **actual parsers**, not inferred: + +- [child-usage.mjs](../../../examples/claude-native/workflows/child-usage.mjs): + usage lines 596–597; parser lines 599–627. Lines 622–626 reject combining + `--require-effort` with a sweep, and require sweep mode for time/root flags. +- [skill_usage.py](../../../tools/skill-usage/skill_usage.py): + `--claude-skill-doctor` 1095–1098, `--codex-root` 1105–1107, + `--now` 1110–1111, `--json`/`--out` 1115–1118, + lane flags 1120–1129. `--out` refuses paths inside this checkout. + +Run each effort check on one actual arm directory: + +```sh +node examples/claude-native/workflows/child-usage.mjs "${CLAUDE_B_DIR}" --require-effort max +node examples/claude-native/workflows/child-usage.mjs "${CLAUDE_A_DIR}" --require-effort max +node examples/claude-native/workflows/child-usage.mjs "${CLAUDE_A0_DIR}" --require-effort max +``` + +Capture each full return, stderr and exit status privately. Then collect the +same fixed-window forms used by #369's Method: + +```sh +node examples/claude-native/workflows/child-usage.mjs --lanes-sweep \ + --root "${CLAUDE_ROOT}" --since "${SINCE}" --until "${UNTIL}" \ + --rtk-db "${RTK_DB_PATH}" --marker '' \ + > "${E2E_DIR}/claude-lanes.json" + +python3 tools/skill-usage/skill_usage.py --lanes \ + --codex-root "${CODEX_SESSIONS}" --since "${SINCE}" --until "${UNTIL}" \ + --marker '' --now "${UNTIL}" --json \ + --out "${E2E_DIR}/codex-lanes.json" +``` + +`--now` is the reference instant; it does not replace `--since/--until`. +For a separately captured skills-invoke view, reuse a native doctor capture: + +```sh +python3 tools/skill-usage/skill_usage.py \ + --claude-skill-doctor "${SKILL_DOCTOR_CAPTURE}" \ + --codex-root "${CODEX_SESSIONS}" --now "${UNTIL}" --json \ + --out "${E2E_DIR}/skill-invoke-rate.json" +``` + +That doctor view is not windowed by W and must not be relabelled an organic +lane rate. #369 pinned its separate capture instant to +`2026-09-26T17:07:04Z`; it did not use W0 for that view. + +The historical parsers count deduplicated calls at their first record in the +window. Child rewrites count at the hook row; the RTK join matches +`hook_decisions` 1:1 by `tool_use_id`. Codex own calls exclude inherited +history. Compare matching types/paths, retain history-mode gaps, and preserve +boundary-straddling attempts. Historical baseline fetch classification +excludes nested fetches, and its context detection is not the all-hook M12 +counter. PR-A must supply those measurements before acceptance. Sources: +[#369 Method and Limitations](../../../evidence/artifacts/child-lane-baseline-20260926/README.md), +lines 29–80 and 192–222; AA §6 PR-A/§7. + +## Loki queries and reconciliation — AA §7, §8.4 steps 6–7 + +**Check delivery and exporter flushes before querying.** Missing events are +unknown; an empty query does not demonstrate zero calls. #364 is open. +At its inspected head `8e6613488f8ff4a50a6c4c4867bee563aca856e7`, +[collector.yaml lines 78 and 91](https://github.com/seathatflowsinourveins/native-agent-stack/blob/8e6613488f8ff4a50a6c4c4867bee563aca856e7/observability/collector/collector.yaml#L78) +keep `ecosystem.task.id` but omit `workflow.run_id`, `tool_use_id` and +Codex `env` (and the Codex call join needs `call_id`). Repair and prove +preservation before using these queries. A merge by itself is not proof. + +Only `service.name` is an index label in +[the Loki template](../../../observability/backends/templates/ecosystem-loki.yml.example) +lines 45–52. Dots normalize to underscores, including structured metadata: +`ecosystem.task.id → ecosystem_task_id`, +`workflow.run_id → workflow_run_id`. Query the latter with pipeline filters, +not labels, and do not use `| json` on a body that the collector scrubs. +Sources: [Loki OTLP normalization](https://grafana.com/docs/loki/latest/send-data/otel/#format-considerations) +and [structured-metadata queries](https://grafana.com/docs/loki/latest/get-started/labels/structured-metadata/#querying-structured-metadata). + +One distinct query per actual arm, with placeholder tokens replaced privately: + +```logql +{service_name="claude-code"} | ecosystem_task_id="" | workflow_run_id="" +{service_name="claude-code"} | ecosystem_task_id="" | workflow_run_id="" +{service_name="claude-code"} | ecosystem_task_id="" | workflow_run_id="" +``` + +Whole-run and call-join views: + +```logql +{service_name="claude-code"} | ecosystem_task_id="" +{service_name="claude-code"} | ecosystem_task_id="" | session_id="" | tool_use_id="" +{service_name="codex_exec"} | env="..." +``` + +Codex's `otel.environment` is emitted as resource **`env`**, not a field +called `otel_environment`: [openai/codex rust-v0.157.1, +provider.rs:53,381](https://github.com/openai/codex/blob/rust-v0.157.1/codex-rs/otel/src/provider.rs#L53). +Its end-to-end tag remains **[nv]**. Record `thread.started` as the fallback +join and verify the relationship to retained conversation/thread metadata. +Claude's workflow/tool fields are documented by the +[native monitoring reference](https://code.claude.com/docs/en/monitoring-usage). + +Use the same W bounds in the native HTTP request; `LOKI_QUERY` is one of +the fully substituted queries, `LOKI_URL` the adopted loopback endpoint: + +```sh +curl --fail --silent --show-error --get "${LOKI_URL}/loki/api/v1/query_range" \ + --data-urlencode "query=${LOKI_QUERY}" \ + --data-urlencode "start=${SINCE}" --data-urlencode "end=${UNTIL}" \ + --data-urlencode "direction=forward" --data-urlencode "limit=5000" \ + > "${LOKI_RESULT}" +``` + +Source: [Loki query_range API](https://grafana.com/docs/loki/latest/reference/loki-http-api/#query-logs-within-a-range-of-time). +Paginate capped returns using the actual last timestamp and deduplicate by +qualified call/event identity; verify W's exclusive end when reconciling. +Never treat the first page as complete or sum overlapping pages. + +Reconcile attempted, decided (accept/reject), executed, failed, cancelled and +unfinished states. Rejects need `tool_decision`, not a nonexistent +`tool_result`. Join Claude session+tool-use IDs and Codex conversation+call +IDs. Require ≥99% of executed calls matched, zero duplicates, every reject +represented, and per-run counts agreeing within 2%. List unknown joins and +missing attempts, and never label a global counter per child (AA M14). + +## Usage and priced estimate — full-save §4.5; AA G-C + +Supplement the native transcript/rollout totals with the requested native +calendar reports. `DAY_SINCE` and `DAY_UNTIL` use `YYYYMMDD`; +`--offline` affects pricing lookup, not the run identity partition. + +```sh +ccusage claude daily --json --offline --timezone UTC \ + --since "${DAY_SINCE}" --until "${DAY_UNTIL}" \ + > "${E2E_DIR}/ccusage-claude.json" +ccusage codex daily --json --offline --timezone UTC \ + --since "${DAY_SINCE}" --until "${DAY_UNTIL}" \ + > "${E2E_DIR}/ccusage-codex.json" +``` + +Sources: full-save §4.4/§4.5; both installed `daily --help` outputs, read +2026-09-26. `--no-cost` is a Codex flag, not asserted for Claude. +Daily host aggregates are not per-arm/task denominators. The recorded offline +pricing gaps for claude-opus-5-5 and gpt-6-luna remain limitations of the +historical pin; an unpriced model is not free. + +Claude: deduplicate per-message usage by message ID, retaining ordinary input, +cache writes, cache reads and output from each child's transcript. Use +run-grouped `api_request` as an independent view only after #364's fields +are actually preserved. Codex: difference cumulative rollout `token_count` +totals per thread and attempt, excluding copied parent baseline. Do not sum +`turn.completed` cumulative thread totals. `turn.failed` has no usage and +an interrupted turn may emit neither; failed-turn `token_count` persistence +remains **[nv]** (full-save §4.5). + +For each family/arm, price every attempt using the pre-run dated provider list +price for its actual model/cache tier, including failed/interrupted/retry +usage and the enclosing coordinator/launch overhead. Do not double-count +parent/child copies or cached-input/reasoning subsets. Divide each arm's total +by its tasks passing their frozen checks, then compare B/A, retaining the +matched-task breakdown as well. Include the blind/strict/control attempts +attributed to that arm; do not exclude their usage to make the guardrail pass. +Keep the separately tagged capability phase and its cost in the complete +experiment account; it never counts as an organic successful task. Record +root/coordinator attribution before the run; unresolved usage stays unknown. +A zero successful-task denominator +or missing usage yields an undefined/unknown estimate, not zero. +List-price estimates are never billed cost; report provider plan quota +separately when available. Prometheus cannot price this run until G1 passes. + +## Baselines and targets with denominators + +The following rows deliberately keep the two historical windows separate. +All figures are source-reported historical values, not newly executed results. + +| Population / baseline | Tool / source | Window | Denominator | Retained value | +| --- | --- | --- | --- | --- | +| #369 Claude | child-usage.mjs --lanes-sweep; baseline README | W0 | 639 children: 597 Workflow, 42 Agent; 24,776 Bash calls | 8,325 rewrites; 24 not logged | +| #369 Codex | skill_usage.py --lanes; baseline README | W0 | 239 sessions: 132 workers, 107 config-free controls | Worker counted fetches 123/130 (94.6%); nested fetches absent | +| General-purpose | child-usage.mjs; AA §1.1 / full-save §4.3 | WAA, selected session | 193 children; 18,923 tool calls | MCP 356/18,923 (1.9%); MCP children 19.2%, non-ctx children 6.2%; first-prompt median 39,729 | +| Evidence-reviewer | child-usage.mjs; AA §1.1 / full-save §4.3 | WAA, selected session | 19 children; 1,349 tool calls | MCP 49.1%; MCP children 100%, non-ctx 0%; prompt median 17,721 | +| Default workflow type | child-usage.mjs; AA §1.1 / full-save §4.3 | WAA, five sessions | 460 children; 15,775 tool calls | MCP 58/15,775 (0.37%); MCP children 1.1%; two qmd children; prompt median 44,590 | +| Codex workers | skill_usage.py --lanes; AA §1.2 / full-save §4.3 | WAA | 212 sessions; 5,568 tool calls | MCP 3,005/5,568 (54%); ctx in 179 sessions; prompt median 19,392 | +| Codex sub-agents | skill_usage.py --lanes; AA §1.2 / full-save §4.3 | WAA | 28 sessions; 718 tool calls | MCP 539/718 (75.1%); ctx in 27 sessions; prompt median 22,124 | +| Loaded, never called | child-usage.mjs; AA §1.1 / full-save §4.3 | WAA, selected session | Children loading each named server | socraticode 11, serena 10, qmd 10, ai-memory 10, headroom 8 | +| All-carrier M3/M5, eligible-part M-R1, M-R3, per-child tokens | PR-A extensions | PR-A's explicitly recorded baseline window | Carrier-specific bytes/results; eligible command parts; deduplicated messages | Unknown here; pending PR-A, not replaced by #369 | +| Historical host token totals | Loki api_request; full-save §4.5(a) | Roughly 00:05Z–20:40Z on 2026-09-26 (1,235 minutes) | All host sessions/projects, grouped by query_source | Context only; not a per-task baseline | +| Historical child-token sample | full-save §4.5(b) scratch computation | Transcripts modified since 00:00Z, 2026-09-26 | 326 children; 255 complete, 71 incomplete | Not a PR-A or current-run usage receipt | + +Required targets are copied from AA §8.3; `preregistration.json` carries their +structured criteria and README.md carries their complete wording. The JSON also +freezes the five-opportunity minimum, three M3 exception classes, Q1's pending +strict-blind candidate, outcome rule and overturn conditions. This table makes the operational denominator explicit. + +| Metric / target | Measurement tool | Window | Denominator / comparison population | +| --- | --- | --- | --- | +| M1 ≥90% per required lane | PR-A transcript tools + frozen eligibility | W, B | Eligible child-tasks in that lane; success requires an actual non-error call | +| M2 ≥90% | PR-A transcript tools | W, B | B children excluding scout and blind | +| M2b descriptive only | PR-A transcript tools; joined Loki cross-check | W, by role | MCP attempts / all tool calls; no threshold | +| M3 median ≤1 over 5,120 B | PR-A all-carrier result measurement | W, B | Non-exception results per child | +| M3 ≤20% byte share | PR-A all-carrier result measurement | W, B | Bytes in over-5,120-B non-exception results / all non-exception result bytes | +| M3 maximum 20,480 B; B over-5-KB bytes ≤A | PR-A all-carrier result measurement | W, matched B/A tasks | Each non-exception result; total non-exception bytes over threshold on identical tasks | +| M4 ≥90%; incomplete if unclassifiable >10% | PR-A fetch classes | W, researcher and Codex B | All remote fetch operations, including nested sandbox fetches and listed unknowns | +| M5 ≤10% large results; ≤20% large-result bytes; maximum 20,480 B | PR-A ctx result measurement | W, B ctx users | All ctx result counts / bytes; each ctx result for maximum | +| M6 not_logged ≤1%; all proxy calls acceptance/exception | child-usage.mjs + isolated hook_decisions | W, Claude Bash children | Bash calls for logging; proxy calls for exception classification | +| M6c ≥90%; zero wrapped exceptions | skill_usage.py + PR-A eligibility | W, Codex B/A; N only after Q2 | Eligible shell commands; excluded commands checked separately | +| M7 seeded 100%; strict equality 100%; zero ineligible encodes | TOON CLI transcript + independent JSON equality | W, B | Seeded eligible arrays; every decode; every encoding input | +| M8 ≥80% per required lane with correct answers | Transcript/source-witness joins + frozen checks | W, granted B children | Eligible symbol, catalog or prior-decision child-tasks | +| M9 reported; under five optional opportunities N/A | Native Repomix/MarkItDown returns | W | Seeded overview/conversion tasks; no acceptance gate | +| M10 N/A; explain default-role call | Transcript tools | W, all | Headroom MCP calls, reported only | +| M11 100% | Child metadata, transcripts, prompt-input, spawn arguments | W | Every required carrier/route item on every relevant launch | +| M12 zero contamination; positive control ≥1 Read injection | PR-A all-hook counter + direct transcripts | W, blind/strict lanes | Every evidence verdict; separately the one contaminated positive control | +| M13 100% own-tree, zero wrong-root | Native returned sentinels + independent fixture comparison | Capability window plus W, separately | Every applicable tool-class repetition and organic child-task | +| M14 ≥99% matched, zero duplicates, ≤2% count difference | Transcript ↔ Loki qualified-ID reconciliation | W, by arm/client/state | Executed calls; rejected calls all represented; per-run call counts | +| M15 ≤1% infrastructure errors | PR-A MCP results + error classification | W, per server | Attempted server calls; ordinary invoked-command nonzero exits excluded from the infrastructure-error numerator | +| G-Q every B task correct, B passes ≥A | Independent frozen pass/fail checks | W, matched tasks plus reported controls | Task outcomes; no self-reported pass | +| G-C B/A ≤1.10× | Transcript/rollout usage + dated model prices | W, all arm attempts including associated overhead | Total priced attempt usage / tasks passing frozen checks, separately per family/arm | +| G-T B/A ≤1.25× | Recorded native launch/completion times | W, matched arms | B vs A elapsed wall time under identical scheduling | +| G-P researcher median below general-purpose | Native first-request usage | W, B/A | First prompts of matched researcher/general-purpose children | +| G-S zero forbidden reads/escapes | Transcript and command inspection | W, all attempts | Every credential-path read and guard-escaping execution | + +Natural payload M7, SocratiCode and qualified graph observations are optional; +under-five optional lanes are reported N/A, but an unqualified graph stays +blocked. M2b is descriptive. M-R1/M-R2/M-R3 stay with PR-A; the preregistration +quotes full-save §4.6 verbatim without redefining §4.1/§4.2. + +## Receipt and verdict — AA §8.4 step 8, §8.5, §8.7 + +Retain exact native returns, exits, timestamps, hashes, failure conditions and +the private identity table. Publish only sanitized aggregate receipts with +source pointers and scope, not raw conversations, credentials, host paths or +native IDs. Distinguish this local integration measurement from unchanged +upstream tests, capability fixtures and new model runs. + +Apply every required M row and every G row. A lane below five organic +opportunities or a failed positive control is **incomplete**, never a pass; +M4's >10% unknown-fetch condition is incomplete too. Otherwise a failed gate +is fail: retain it, leave defaults unchanged, repair once and rerun under the +same frozen criteria. Optional N/A is neither a required-row pass nor a block. +Use the preregistration's exact overturn conditions. + +Reviews follow AA §8.7: independent Claude evidence-reviewer (Opus/max), +then GPT-6 cross-family review of retained output, then one repair round with +residuals. All-carrier baselines, M-R1's separate seven-day window, switch +receipts and these reviews are still required by full-save §4.6 before +foundation acceptance. This file authorizes no live run during PR-H's build. diff --git a/evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl b/evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl new file mode 100644 index 000000000..f5cb9d5ab --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl @@ -0,0 +1,640 @@ +{"event":1,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":2,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":3,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":4,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":5,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":6,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":7,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":8,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":9,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":10,"level":"WARN","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":11,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":12,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":13,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":14,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":15,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":16,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":17,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":18,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":19,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":20,"level":"WARN","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":21,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":22,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":23,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":24,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":25,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":26,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":27,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":28,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":29,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":30,"level":"WARN","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":31,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":32,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":33,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":34,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":35,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":36,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":37,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":38,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":39,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":40,"level":"WARN","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":41,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":42,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":43,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":44,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":45,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":46,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":47,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":48,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":49,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":50,"level":"WARN","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":51,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":52,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":53,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":54,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":55,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":56,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":57,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":58,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":59,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":60,"level":"WARN","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":61,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":62,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":63,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":64,"level":"ERROR","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":65,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":66,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":67,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":68,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":69,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":70,"level":"WARN","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":71,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":72,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":73,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":74,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":75,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":76,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":77,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":78,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":79,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":80,"level":"WARN","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":81,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":82,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":83,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":84,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":85,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":86,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":87,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":88,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":89,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":90,"level":"WARN","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":91,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":92,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":93,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":94,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":95,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":96,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":97,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":98,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":99,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":100,"level":"WARN","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":101,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":102,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":103,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":104,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":105,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":106,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":107,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":108,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":109,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":110,"level":"WARN","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":111,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":112,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":113,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":114,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":115,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":116,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":117,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":118,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":119,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":120,"level":"WARN","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":121,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":122,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":123,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":124,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":125,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":126,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":127,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":128,"level":"ERROR","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":129,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":130,"level":"WARN","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":131,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":132,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":133,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":134,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":135,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":136,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":137,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":138,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":139,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":140,"level":"WARN","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":141,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":142,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":143,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":144,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":145,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":146,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":147,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":148,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":149,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":150,"level":"WARN","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":151,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":152,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":153,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":154,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":155,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":156,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":157,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":158,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":159,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":160,"level":"WARN","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":161,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":162,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":163,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":164,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":165,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":166,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":167,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":168,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":169,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":170,"level":"WARN","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":171,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":172,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":173,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":174,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":175,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":176,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":177,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":178,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":179,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":180,"level":"WARN","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":181,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":182,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":183,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":184,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":185,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":186,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":187,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":188,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":189,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":190,"level":"WARN","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":191,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":192,"level":"ERROR","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":193,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":194,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":195,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":196,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":197,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":198,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":199,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":200,"level":"WARN","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":201,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":202,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":203,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":204,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":205,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":206,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":207,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":208,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":209,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":210,"level":"WARN","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":211,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":212,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":213,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":214,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":215,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":216,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":217,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":218,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":219,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":220,"level":"WARN","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":221,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":222,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":223,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":224,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":225,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":226,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":227,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":228,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":229,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":230,"level":"WARN","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":231,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":232,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":233,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":234,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":235,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":236,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":237,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":238,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":239,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":240,"level":"WARN","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":241,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":242,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":243,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":244,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":245,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":246,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":247,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":248,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":249,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":250,"level":"WARN","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":251,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":252,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":253,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":254,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":255,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":256,"level":"ERROR","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":257,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":258,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":259,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":260,"level":"WARN","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":261,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":262,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":263,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":264,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":265,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":266,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":267,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":268,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":269,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":270,"level":"WARN","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":271,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":272,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":273,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":274,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":275,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":276,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":277,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":278,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":279,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":280,"level":"WARN","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":281,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":282,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":283,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":284,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":285,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":286,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":287,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":288,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":289,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":290,"level":"WARN","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":291,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":292,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":293,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":294,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":295,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":296,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":297,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":298,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":299,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":300,"level":"WARN","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":301,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":302,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":303,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":304,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":305,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":306,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":307,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":308,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":309,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":310,"level":"WARN","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":311,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":312,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":313,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":314,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":315,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":316,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":317,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":318,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":319,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":320,"level":"ERROR","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":321,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":322,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":323,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":324,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":325,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":326,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":327,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":328,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":329,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":330,"level":"WARN","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":331,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":332,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":333,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":334,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":335,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":336,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":337,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":338,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":339,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":340,"level":"WARN","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":341,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":342,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":343,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":344,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":345,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":346,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":347,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":348,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":349,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":350,"level":"WARN","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":351,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":352,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":353,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":354,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":355,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":356,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":357,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":358,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":359,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":360,"level":"WARN","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":361,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":362,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":363,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":364,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":365,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":366,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":367,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":368,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":369,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":370,"level":"WARN","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":371,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":372,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":373,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":374,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":375,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":376,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":377,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":378,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":379,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":380,"level":"WARN","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":381,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":382,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":383,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":384,"level":"ERROR","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":385,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":386,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":387,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":388,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":389,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":390,"level":"WARN","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":391,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":392,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":393,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":394,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":395,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":396,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":397,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":398,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":399,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":400,"level":"WARN","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":401,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":402,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":403,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":404,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":405,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":406,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":407,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":408,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":409,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":410,"level":"WARN","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":411,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":412,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":413,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":414,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":415,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":416,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":417,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":418,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":419,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":420,"level":"WARN","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":421,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":422,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":423,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":424,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":425,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":426,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":427,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":428,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":429,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":430,"level":"WARN","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":431,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":432,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":433,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":434,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":435,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":436,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":437,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":438,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":439,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":440,"level":"WARN","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":441,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":442,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":443,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":444,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":445,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":446,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":447,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":448,"level":"ERROR","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":449,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":450,"level":"WARN","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":451,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":452,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":453,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":454,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":455,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":456,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":457,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":458,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":459,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":460,"level":"WARN","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":461,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":462,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":463,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":464,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":465,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":466,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":467,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":468,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":469,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":470,"level":"WARN","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":471,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":472,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":473,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":474,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":475,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":476,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":477,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":478,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":479,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":480,"level":"WARN","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":481,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":482,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":483,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":484,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":485,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":486,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":487,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":488,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":489,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":490,"level":"WARN","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":491,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":492,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":493,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":494,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":495,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":496,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":497,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":498,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":499,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":500,"level":"WARN","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":501,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":502,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":503,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":504,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":505,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":506,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":507,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":508,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":509,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":510,"level":"WARN","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":511,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":512,"level":"ERROR","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":513,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":514,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":515,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":516,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":517,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":518,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":519,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":520,"level":"WARN","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":521,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":522,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":523,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":524,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":525,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":526,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":527,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":528,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":529,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":530,"level":"WARN","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":531,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":532,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":533,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":534,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":535,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":536,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":537,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":538,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":539,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":540,"level":"WARN","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":541,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":542,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":543,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":544,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":545,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":546,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":547,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":548,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":549,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":550,"level":"WARN","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":551,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":552,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":553,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":554,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":555,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":556,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":557,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":558,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":559,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":560,"level":"WARN","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":561,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":562,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":563,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":564,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":565,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":566,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":567,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":568,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":569,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":570,"level":"WARN","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":571,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":572,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":573,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":574,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":575,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":576,"level":"ERROR","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":577,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":578,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":579,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":580,"level":"WARN","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":581,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":582,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":583,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":584,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":585,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":586,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":587,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":588,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":589,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":590,"level":"WARN","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":591,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":592,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":593,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":594,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":595,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":596,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":597,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":598,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":599,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":600,"level":"WARN","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":601,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":602,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":603,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":604,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":605,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":606,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":607,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":608,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":609,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":610,"level":"WARN","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":611,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":612,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":613,"level":"INFO","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":614,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":615,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":616,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":617,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":618,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":619,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":620,"level":"WARN","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":621,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":622,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":623,"level":"INFO","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":624,"level":"INFO","value":12,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":625,"level":"INFO","value":13,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":626,"level":"INFO","value":14,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":627,"level":"INFO","value":15,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":628,"level":"INFO","value":16,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":629,"level":"INFO","value":0,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":630,"level":"WARN","value":1,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":631,"level":"INFO","value":2,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":632,"level":"INFO","value":3,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":633,"level":"INFO","value":4,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":634,"level":"INFO","value":5,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":635,"level":"INFO","value":6,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":636,"level":"INFO","value":7,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":637,"level":"INFO","value":8,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":638,"level":"INFO","value":9,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":639,"level":"INFO","value":10,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} +{"event":640,"level":"ERROR","value":11,"message":"Public synthetic observation for the frozen acceptance and containment fixture."} diff --git a/evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json b/evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json new file mode 100644 index 000000000..2f630455e --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json @@ -0,0 +1 @@ +[{"id":1,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":17,"note":"public synthetic record"},{"id":2,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":11,"note":"public synthetic record"},{"id":3,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":18,"note":"public synthetic record"},{"id":4,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":12,"note":"public synthetic record"},{"id":5,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":19,"note":"public synthetic record"},{"id":6,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":13,"note":"public synthetic record"},{"id":7,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":20,"note":"public synthetic record"},{"id":8,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":14,"note":"public synthetic record"},{"id":9,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":21,"note":"public synthetic record"},{"id":10,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":15,"note":"public synthetic record"},{"id":11,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":22,"note":"public synthetic record"},{"id":12,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":16,"note":"public synthetic record"},{"id":13,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":10,"note":"public synthetic record"},{"id":14,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":17,"note":"public synthetic record"},{"id":15,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":11,"note":"public synthetic record"},{"id":16,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":18,"note":"public synthetic record"},{"id":17,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":12,"note":"public synthetic record"},{"id":18,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":19,"note":"public synthetic record"},{"id":19,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":13,"note":"public synthetic record"},{"id":20,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":20,"note":"public synthetic record"},{"id":21,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":14,"note":"public synthetic record"},{"id":22,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":21,"note":"public synthetic record"},{"id":23,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":15,"note":"public synthetic record"},{"id":24,"service":"native-ci-fixture","region":"us-east-1","status":"ok","latency_ms":22,"note":"public synthetic record"}] diff --git a/evidence/artifacts/token-adoption-e2e-20260926/preregistration.json b/evidence/artifacts/token-adoption-e2e-20260926/preregistration.json new file mode 100644 index 000000000..ba85aa485 --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/preregistration.json @@ -0,0 +1,3200 @@ +{ + "schema_version": 1, + "status": "preregistered_not_run", + "source_specifications": [ + "AA §3.1c/d, §3.2, §5, §7, §8.1–§8.5, §9.2, §10, Q1–Q4", + "full-save §4.0, §4.3–§4.6, §5 step 9" + ], + "reference_revision": "34c56340 (integrator-supplied base; no git inspection by builder)", + "arm_order": { + "claude": [ + "B", + "A", + "A0" + ], + "codex": [ + "B", + "A", + "N" + ] + }, + "identity_format": "...", + "required_lanes": { + "ctx-containment": { + "metrics": [ + "M3", + "M5" + ], + "eligibility": "Output likely over 5,120 bytes; a derived answer suffices. AA §5 excludes edit bytes, original line citations and frozen exact-byte requirements." + }, + "fetch": { + "metrics": [ + "M4" + ], + "eligibility": "Multi-page web documentation question, AA §5; remote nested fetches remain in the denominator." + }, + "rtk-claude": { + "metrics": [ + "M6" + ], + "eligibility": "Claude task has an RTK-supported shell observation outside the exactness exceptions; acceptance exits run raw/proxy. PR-A owns part classification." + }, + "rtk-codex": { + "metrics": [ + "M6c" + ], + "eligibility": "Codex task needs supported shell inventory/read commands; exceptions are excluded from coverage denominator." + }, + "toon-seeded": { + "metrics": [ + "M7" + ], + "eligibility": "A seeded uniform array of at least five flat records must enter context; strict round trip is checked." + }, + "symbol-references": { + "metrics": [ + "M8" + ], + "eligibility": "Definition/reference question in the starting client's own indexed checkout; capability/source binding must pass." + }, + "qmd": { + "metrics": [ + "M8" + ], + "eligibility": "Answer lies in the named indexed catalog collections. The reused release-repin gap is excluded from this lane." + }, + "ai-memory": { + "metrics": [ + "M8" + ], + "eligibility": "Prior project decision/history with a scoped source witness, checked as untrusted history." + }, + "adoption": { + "metrics": [ + "M1", + "M2" + ], + "eligibility": "Non-blind, non-scout child-task with at least one eligible token lane; M1 is assessed separately per required retrieval/containment lane." + }, + "guidance": { + "metrics": [ + "M11" + ], + "eligibility": "Any preregistered child launch with a frozen route/carrier." + }, + "blind": { + "metrics": [ + "M12" + ], + "eligibility": "Stripped blind packet; controls never contribute to the five organic opportunities." + }, + "binding": { + "metrics": [ + "M13" + ], + "eligibility": "Organic Codex child-task with a per-tree sentinel; the separate 2 worktrees x 20 probe repetitions do not count here." + }, + "attribution": { + "metrics": [ + "M14" + ], + "eligibility": "Child-task with client/session/call identity and native transcript." + }, + "mcp-errors": { + "metrics": [ + "M15" + ], + "eligibility": "Task with an eligible granted MCP lane; classify infrastructure failures by server independently of command exits." + } + }, + "arm_b_opportunity_counts": { + "ctx-containment": 14, + "fetch": 10, + "rtk-claude": 8, + "rtk-codex": 6, + "toon-seeded": 10, + "symbol-references": 9, + "qmd": 5, + "ai-memory": 7, + "adoption": 44, + "guidance": 71, + "blind": 5, + "binding": 5, + "attribution": 71, + "mcp-errors": 40 + }, + "optional_lanes": [ + "repomix", + "markitdown", + "headroom", + "toon-natural", + "socraticode", + "codebase-memory (blocked until Q3)" + ], + "no_tool_names_denylist": [ + "rtk", + "RTK proxy", + "Rust Token Killer", + "ctx_execute", + "ctx_batch_execute", + "ctx_execute_file", + "ctx_search", + "ctx_fetch_and_index", + "ctx_index", + "ctx_stats", + "ctx-execute", + "ctx-batch-execute", + "ctx-execute-file", + "ctx-search", + "ctx-fetch-and-index", + "context-mode", + "context mode", + "context_mode", + "contextmode", + "serena", + "jcodemunch", + "jcodemunch-mcp", + "jCodeMunch", + "jcode munch", + "jcode_munch", + "qmd", + "ai-memory", + "ai memory", + "ai_memory", + "headroom", + "toon", + "repomix", + "markitdown", + "mark it down", + "socraticode", + "socrati code", + "codebase-memory", + "codebase-memory-mcp", + "codebase memory", + "codebase_memory", + "WebFetch", + "web fetch", + "web_fetch", + "ast-grep", + "ast_grep", + "ast grep", + "context-hub", + "context hub", + "context_hub", + "chub", + "mcporter", + "ccusage", + "agentsview", + "agents view", + "claude-hud", + "claude hud", + "otel-tui", + "otel tui", + "opentelemetry-collector-contrib", + "otelcol-contrib", + "prometheus", + "promtool", + "loki", + "grafana", + "omniroute", + "gpt-tokenizer", + "find_symbol", + "find_referencing_symbols", + "codebase_search", + "memory_query", + "headroom_compress", + "headroom_retrieve", + "get_session_stats", + "search_symbols", + "get_symbol_source", + "get_current_config", + "codebase_health", + "codebase_status", + "memory_status", + "search_graph", + "trace_path" + ], + "denylist_sources": [ + "docs/token-efficiency-stack.json#/rows/*/component_id", + "docs/token-session-handbook.md:106–151" + ], + "fixture_provenance": [ + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "source": "fixtures/headroom-records.json", + "change": "Byte-for-byte neutral-path copy of the 24 flat public synthetic records; AA §8.1 seeded uniform tables." + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "source": "AA §8.1 large-log and acceptance seeds; record shape follows fixtures/headroom-records.json; local synthetic fixture, not upstream acceptance.", + "definition": "640 ordered records; event=1..640; level ERROR if divisible by 64, otherwise WARN if divisible by 10, otherwise INFO; value=event modulo 17; fixed public message.", + "expected_bytes": 84003, + "expected_lines": 640 + }, + { + "path": "blueprints/retrieval-quality-v2/run-efba31d5.patch", + "source": "Existing retained retrieval-quality-v2 patch; AA §8.2 large-diff review scenario.", + "expected_bytes": 52631, + "expected_hunks": 31, + "expected_added_lines": 166, + "expected_deleted_lines": 581 + } + ], + "receipt_sources": [ + { + "path": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "sha256": "8b28bf87f8da27aa5a73e36a4ede1b7707ee4e4b21f31b397f1de1197061897b", + "entries": 16, + "distinct_tools": 16 + }, + { + "path": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "sha256": "7157e0e668f61cbc6785c9d632d7123013fe85936f1e965018775762ca57b04f", + "entries": 17, + "distinct_tools": 15 + } + ], + "dispatch_policy": { + "workflow": "Only Claude workflow tasks, in manifest order, with task_text as the entire agent prompt. Only frozen neutral input/worktree/run placeholders may be bound; no receipt excerpts or LANES block are appended.", + "codex": "Separate shell/native launch matrix, never this workflow script. source-scout and evidence-reviewer are Claude-only lanes; the reused Codex exec information needs do not bind those role names (codex_role_exclusions).", + "blind": "Five organic packets plus one positive control, B only; strict process repeats all six outside the workflow after Q1.", + "attempts": "Initial attempt 1; every retry gets a new identity-table attempt, with all failures and usage retained. No silent retry or counter reset.", + "blocked_tasks": "Retain blocked information needs in their planned slots; any selected blocked task stops the whole organic launch before the first child. Do not silently filter it or infer a pass." + }, + "tasks": [ + { + "id": "reuse-296-00", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Command-output fidelity", + "task_text": "In , report the newest commit subject, branch state, changed-file summary over the last five revisions, directory inventory, matches for def register_file under scripts, and the tests.test_host_requests outcome including count and status. Answer from the selected command outputs and compare against retained exact originals.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/0", + "tool": "rtk" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "rtk-claude", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "The newest commit subject, tests.test_host_requests test count and result status exactly match independently retained raw originals, as in the receipt's actual checker. Retain all six observation outputs, exits and failures. Historical counts are not the new run's expected counts.", + "source_note": "Task information need from source task/commands; checker fields from the same receipt's answer_excerpt/notes_excerpt. Original tool-prescribing commands remain provenance, not prompt guidance.", + "worktree_required": true, + "pre_run_input_gate": "The committed source receipts truncate the original six-command inventory; #343 retains four measured observation commands and its notes/check record the test. Recover and seal the exact six original observation identities and inputs before capability probes; unresolved entries block launch. Do not choose substitute commands or test modules after seeing results. Any changed information need requires a merged protocol amendment." + }, + { + "id": "reuse-296-01", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large handbook summary", + "task_text": "For docs/grand-catalog-handbook.md, report the number of second-level headings, the first ten in order, and the number of lines containing the word token, case-insensitively. Return only those fields.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/1", + "tool": "context-mode" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "ctx-containment", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Compare all three fields with a direct line scan of the frozen original, including heading order.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-02", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Selected-history round trip", + "task_text": "For the retained 150-entry history report at , produce a compact representation, recover the complete original, and report whether its bytes match. Keep the original out of the answer.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/2", + "tool": "headroom" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Recovered original SHA256 and byte count equal the retained raw report; failed compression/recovery remains a failure, not an empty success.", + "source_note": "No default role grant; report M10 N/A and explain any invocation.", + "input_required": true, + "input_binding": "Freeze the retained original report's private neutral pathname, source revision and SHA256 before probes; identical bytes across arms. Missing originals gate the run, not replacement with a new report." + }, + { + "id": "reuse-296-03", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "evidence-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Definition retrieval", + "task_text": "Locate register_file in scripts/host_receipts.py and return its definition and source location from this checkout.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/3", + "tool": "jcodemunch" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "symbol-references", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Definition text and location equal the function in the frozen original, using Python AST source extraction as the independent check.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-04", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Release pin decision", + "task_text": "Find which document states how a new machine pins a release and report the exact step. Explain whether the indexed catalog actually contains that instruction.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/4", + "tool": "qmd" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Answer agrees with adoption/update.md and its linked bootstrap step; an index coverage gap is stated rather than a fabricated catalog hit.", + "source_note": "Original index-coverage failure retained; not a qmd-eligible opportunity." + }, + { + "id": "reuse-296-05", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "evidence-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Definition and references", + "task_text": "Locate register_file in scripts/host_receipts.py and list its definition and referencing call sites. Distinguish invocations, imports and textual mentions.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/5", + "tool": "serena" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "symbol-references", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Definition and each listed call site agree with original source; comments and string literals do not count as invocations.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-06", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Request trust boundary", + "task_text": "Explain how the host request lane decides whether a GitHub request is trusted, naming the author_association and user.type conditions in scripts/host_requests.py.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/6", + "tool": "socraticode" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Conditions agree with the frozen scripts/host_requests.py implementation and recipes/host-request-lane.md; quote exact source locations.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-07", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Historical host-lane decision", + "task_text": "Retrieve the earlier project decision about the workstation host request lane and GitHub. State its source and what it does and does not establish now.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/7", + "tool": "ai-memory" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "ai-memory", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Retain an actual scoped historical hit and verify its claim against recipes/host-request-lane.md; no savings counter or current authority is inferred.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-08", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Selected-file overview", + "task_text": "Using scripts/host_requests.py and scripts/credential_status.py as source code only, list all top-level functions in the former. Verify the list against the complete original.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/8", + "tool": "repomix" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Exact set equals AST top-level FunctionDef/AsyncFunctionDef names, including status_body; omissions in an outline fail.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-09", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Structured table fidelity", + "task_text": "Read the frozen array at . Return its 60 flat records in a compact structured representation and demonstrate exact recovery of the original values and types.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/9", + "tool": "toon" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Strict decoded value equals the complete original 60-row array extracted from /summary/needs_host/macos-arm64 at the preregistration commit, including all rows, key values and scalar types. Verify the retained input's SHA256 and 6,552 bytes against frozen_input before grading; record representation sizes separately. Never grade against the execution checkout's regenerated matrix.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "fixture_path": "catalogs/landscape/component-evidence-matrix.json", + "fixture_pointer": "/summary/needs_host/macos-arm64", + "input_required": true, + "frozen_input": { + "source_revision": "preregistration_commit", + "path": "catalogs/landscape/component-evidence-matrix.json", + "pointer": "/summary/needs_host/macos-arm64", + "serialization": "UTF-8 JSON; sort_keys=true; ensure_ascii=false; separators=(',',':'); no trailing newline", + "sha256": "6899e551b2bea3918b47cba1b41e27e59d8f5cb12a681f98cc77f73d66a2a2c1", + "bytes": 6552, + "records": 60 + }, + "input_binding": "Before probes, extract frozen_input.pointer from frozen_input.path at the merged preregistration commit, serialize exactly as frozen_input.serialization and verify SHA256, byte count and record count. Bind identical retained bytes at a private neutral path in every arm. The execution checkout's regenerated matrix is not the input. Missing bytes or a hash mismatch blocks launch; never substitute the current matrix." + }, + { + "id": "reuse-296-10", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Structural call sites", + "task_text": "Find every subprocess.run invocation in scripts Python files. Report counts and file locations, excluding mentions in comments and strings.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/10", + "tool": "ast-grep" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "An independent Python AST walk over the same frozen files yields exactly the reported call locations and count.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-11", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Caller graph", + "task_text": "In the disposable clone at , find real callers of register_file in scripts/host_receipts.py. Report direct callers with exact source locations and the scope of the searched tree.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/11", + "tool": "codebase-memory" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Independent AST/source inspection confirms the caller list in that clone. Graph operation remains blocked until Q3; another answer path never proves graph acceptance.", + "source_note": "Q3 not qualified here: graph lane blocked; information need retained.", + "worktree_required": true + }, + { + "id": "reuse-296-12", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Documentation completeness", + "task_text": "Find the Stripe idempotency header name and retention rule in curated documentation, and compare with the canonical provider page. State any missing fact explicitly.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/12", + "tool": "context-hub" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Report Idempotency-Key and the canonical page's retention qualification, or a faithful content-gap result; a curated source lacking either fact cannot establish that capability.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-13", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Document conversion fidelity", + "task_text": "Read https://code.claude.com/docs/en/mcp as a converted text document and identify the three installation scopes. Check those scopes against the retained original HTML.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/13", + "tool": "markitdown" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "The answer states local, project and user and agrees with retained original HTML; preserve conversion omissions and exit status.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-296-14", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "source-scout", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Session archive visibility", + "task_text": "Check whether native sessions tagged , including child sessions, appear in the local history archive. Return bounded counts and identity matches; leave no background process running.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/14", + "tool": "agentsview" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Archive observations match the private run identity table; no absent automation is reported as observed and no owned process survives.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "run_binding": true + }, + { + "id": "reuse-296-15", + "kind": "reused", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": null, + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "blocked", + "description": "Scoped span visibility", + "task_text": "Send one public synthetic observation to an isolated loopback receiver on unused ports and verify that it is rendered. Keep shared receiver ports untouched and stop the owned receiver.", + "source": "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json", + "source_entries": [ + { + "pointer": "/tools/15", + "tool": "otel-tui" + } + ], + "source_fields": [ + "tool", + "task" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Retained sender output and independent receiver observation identify the same synthetic span; exit status and owned-process cleanup are recorded.", + "source_note": "Repair 1, 2026-09-26: source-scout.md:11 forbids network use; the loopback task cannot pass under that role. No equivalent Sonnet/max role permitting this operation is evidenced in this checkout. Preserve #296 /tools/15 and all arm slots, but block organic launch until a dated merged amendment names and qualifies a permitted role at the same model/effort/isolation. Do not weaken source-scout or silently skip the task.", + "blocked_by": "qualified_loopback_role_amendment", + "role_requirement": { + "model": "sonnet", + "effort": "max", + "isolation": "no_added_worktree", + "capabilities": [ + "start_bound_loopback_receiver", + "send_public_synthetic_observation", + "observe_rendered_span", + "stop_owned_receiver" + ] + } + }, + { + "id": "reuse-343-00", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": null, + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Session archive visibility", + "task_text": "Check whether native sessions tagged , including child sessions, appear in the local history archive. Return bounded counts and identity matches; leave no background process running.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/0", + "tool": "agentsview", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Archive observations match the private run identity table; no absent automation is reported as observed and no owned process survives.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "run_binding": true, + "claude_only_role_provenance": "source-scout", + "role_binding": "No Codex role by the Claude provenance name is bound. This is a shared information need on the exec path under the selected arm profile; AA §6:372 supplies only stack-researcher/stack-verifier as Codex custom agents." + }, + { + "id": "reuse-343-01", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Historical host-lane decision", + "task_text": "Retrieve the earlier project decision about the workstation host request lane and GitHub. State its source and what it does and does not establish now.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/1", + "tool": "ai-memory", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "ai-memory", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Retain an actual scoped historical hit and verify its claim against recipes/host-request-lane.md; no savings counter or current authority is inferred.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-02", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Structural call sites", + "task_text": "Find every subprocess.run invocation in scripts Python files. Report counts and file locations, excluding mentions in comments and strings.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/2", + "tool": "ast-grep", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "An independent Python AST walk over the same frozen files yields exactly the reported call locations and count.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-03", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Caller graph", + "task_text": "In the disposable clone at , find real callers of register_file in scripts/host_receipts.py. Report direct callers with exact source locations and the scope of the searched tree.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/3", + "tool": "codebase-memory", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Independent AST/source inspection confirms the caller list in that clone. Graph operation remains blocked until Q3; another answer path never proves graph acceptance.", + "source_note": "Q3 not qualified here: graph lane blocked; information need retained.", + "worktree_required": true + }, + { + "id": "reuse-343-04", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Documentation completeness", + "task_text": "Find the Stripe idempotency header name and retention rule in curated documentation, and compare with the canonical provider page. State any missing fact explicitly.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/4", + "tool": "context-hub", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Report Idempotency-Key and the canonical page's retention qualification, or a faithful content-gap result; a curated source lacking either fact cannot establish that capability.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-05", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Large handbook summary", + "task_text": "For docs/grand-catalog-handbook.md, report the number of second-level headings, the first ten in order, and the number of lines containing the word token, case-insensitively. Return only those fields.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/5", + "tool": "context-mode", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "ctx-containment", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Compare all three fields with a direct line scan of the frozen original, including heading order.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-06", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Selected-history round trip", + "task_text": "For the retained 150-entry history report at , produce a compact representation, recover the complete original, and report whether its bytes match. Keep the original out of the answer.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/6", + "tool": "headroom", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Recovered original SHA256 and byte count equal the retained raw report; failed compression/recovery remains a failure, not an empty success.", + "source_note": "No default role grant; report M10 N/A and explain any invocation.", + "input_required": true, + "input_binding": "Freeze the retained original report's private neutral pathname, source revision and SHA256 before probes; identical bytes across arms. Missing originals gate the run, not replacement with a new report." + }, + { + "id": "reuse-343-07", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": null, + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Definition retrieval", + "task_text": "Locate register_file in scripts/host_receipts.py and return its definition and source location from this checkout.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/7", + "tool": "jcodemunch", + "attempt": 1 + }, + { + "pointer": "/tools/8", + "tool": "jcodemunch", + "attempt": 2 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "symbol-references", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Definition text and location equal the function in the frozen original, using Python AST source extraction as the independent check.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "claude_only_role_provenance": "evidence-reviewer", + "role_binding": "No Codex role by the Claude provenance name is bound. This is a shared information need on the exec path under the selected arm profile; AA §6:372 supplies only stack-researcher/stack-verifier as Codex custom agents." + }, + { + "id": "reuse-343-09", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Document conversion fidelity", + "task_text": "Read https://code.claude.com/docs/en/mcp as a converted text document and identify the three installation scopes. Check those scopes against the retained original HTML.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/9", + "tool": "markitdown", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "The answer states local, project and user and agrees with retained original HTML; preserve conversion omissions and exit status.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-10", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Release pin decision", + "task_text": "Find which document states how a new machine pins a release and report the exact step. Explain whether the indexed catalog actually contains that instruction.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/10", + "tool": "qmd", + "attempt": 1 + }, + { + "pointer": "/tools/11", + "tool": "qmd", + "attempt": 2 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Answer agrees with adoption/update.md and its linked bootstrap step; an index coverage gap is stated rather than a fabricated catalog hit.", + "source_note": "Original index-coverage failure retained; not a qmd-eligible opportunity." + }, + { + "id": "reuse-343-12", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Selected-file overview", + "task_text": "Using scripts/host_requests.py and scripts/credential_status.py as source code only, list all top-level functions in the former. Verify the list against the complete original.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/12", + "tool": "repomix", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Exact set equals AST top-level FunctionDef/AsyncFunctionDef names, including status_body; omissions in an outline fail.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-13", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-verifier", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Command-output fidelity", + "task_text": "In , report the newest commit subject, branch state, changed-file summary over the last five revisions, directory inventory, matches for def register_file under scripts, and the tests.test_host_requests outcome including count and status. Answer from the selected command outputs and compare against retained exact originals.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/13", + "tool": "rtk", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "rtk-codex", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "The newest commit subject, tests.test_host_requests test count and result status exactly match independently retained raw originals, as in the receipt's actual checker. Retain all six observation outputs, exits and failures. Historical counts are not the new run's expected counts.", + "source_note": "Task information need from source task/commands; checker fields from the same receipt's answer_excerpt/notes_excerpt. Original tool-prescribing commands remain provenance, not prompt guidance.", + "worktree_required": true, + "pre_run_input_gate": "The committed source receipts truncate the original six-command inventory; #343 retains four measured observation commands and its notes/check record the test. Recover and seal the exact six original observation identities and inputs before capability probes; unresolved entries block launch. Do not choose substitute commands or test modules after seeing results. Any changed information need requires a merged protocol amendment." + }, + { + "id": "reuse-343-14", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": null, + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Definition and references", + "task_text": "Locate register_file in scripts/host_receipts.py and list its definition and referencing call sites. Distinguish invocations, imports and textual mentions.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/14", + "tool": "serena", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "symbol-references", + "guidance", + "attribution", + "adoption", + "mcp-errors" + ], + "pass_fail_check": "Definition and each listed call site agree with original source; comments and string literals do not count as invocations.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "claude_only_role_provenance": "evidence-reviewer", + "role_binding": "No Codex role by the Claude provenance name is bound. This is a shared information need on the exec path under the selected arm profile; AA §6:372 supplies only stack-researcher/stack-verifier as Codex custom agents." + }, + { + "id": "reuse-343-15", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Request trust boundary", + "task_text": "Explain how the host request lane decides whether a GitHub request is trusted, naming the author_association and user.type conditions in scripts/host_requests.py.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/15", + "tool": "socraticode", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Conditions agree with the frozen scripts/host_requests.py implementation and recipes/host-request-lane.md; quote exact source locations.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt." + }, + { + "id": "reuse-343-16", + "kind": "reused", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Structured table fidelity", + "task_text": "Read the frozen array at . Return its 60 flat records in a compact structured representation and demonstrate exact recovery of the original values and types.", + "source": "evidence/artifacts/token-e2e-codex-20260926/receipt.json", + "source_entries": [ + { + "pointer": "/tools/16", + "tool": "toon", + "attempt": 1 + } + ], + "source_fields": [ + "tool", + "commands", + "attempt" + ], + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Strict decoded value equals the complete original 60-row array extracted from /summary/needs_host/macos-arm64 at the preregistration commit, including all rows, key values and scalar types. Verify the retained input's SHA256 and 6,552 bytes against frozen_input before grading; record representation sizes separately. Never grade against the execution checkout's regenerated matrix.", + "source_note": "Information need retained; source tool/commands are provenance, never appended to the child prompt.", + "fixture_path": "catalogs/landscape/component-evidence-matrix.json", + "fixture_pointer": "/summary/needs_host/macos-arm64", + "input_required": true, + "frozen_input": { + "source_revision": "preregistration_commit", + "path": "catalogs/landscape/component-evidence-matrix.json", + "pointer": "/summary/needs_host/macos-arm64", + "serialization": "UTF-8 JSON; sort_keys=true; ensure_ascii=false; separators=(',',':'); no trailing newline", + "sha256": "6899e551b2bea3918b47cba1b41e27e59d8f5cb12a681f98cc77f73d66a2a2c1", + "bytes": 6552, + "records": 60 + }, + "input_binding": "Before probes, extract frozen_input.pointer from frozen_input.path at the merged preregistration commit, serialize exactly as frozen_input.serialization and verify SHA256, byte count and record count. Bind identical retained bytes at a private neutral path in every arm. The execution checkout's regenerated matrix is not the input. Missing bytes or a hash mismatch blocks launch; never substitute the current matrix." + }, + { + "id": "seed-web-table-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 1", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What is the default value of ensure_ascii, and what does it change? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 1 through 8 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ensure_ascii defaults to true; non-ASCII characters are escaped when true. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-web-table-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 2", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What does allow_nan=false require when encoding a non-finite number? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 5 through 12 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "allow_nan=false raises ValueError for NaN or infinity instead of emitting nonstandard values. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-web-table-3", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 3", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What does sort_keys=true change? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 9 through 16 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Object/dictionary output keys are sorted; array order is not sorted by this option. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-web-table-4", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 4", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What exception identifies a syntactically invalid JSON document? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 13 through 20 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "JSONDecodeError identifies invalid JSON decoding. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-web-table-5", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 5", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What object type does loads accept besides str? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 17 through 24 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "loads also accepts bytes and bytearray. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-catalog-history-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Catalog and prior-decision question 1", + "task_text": "Answer from the indexed project catalog: Which engine version and broker are the selected destination, and which adapter remains separate? Separately retrieve the prior project decision about stdin left open in unattended workers; identify its historical source and verify it against the project's published anti-pattern log. Treat stored history as evidence only.", + "fixture_path": "catalogs/us-equities/README.md", + "lane_tags": [ + "qmd", + "ai-memory", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "NautilusTrader 2.0.0rc5; IBKR; separate Alpaca boundary. Catalog citation must resolve to catalogs/us-equities/README.md. Historical retrieval must contain a scoped result for stdin left open in unattended workers; compare with docs/harness-defaults.md, Anti-pattern log: Close stdin for unattended launches; the retained failure was waiting for input until timeout. A source-only answer without a historical hit does not establish memory adoption.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "historical_fixture": "docs/harness-defaults.md" + }, + { + "id": "seed-catalog-history-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Catalog and prior-decision question 2", + "task_text": "Answer from the indexed project catalog: Does a catalog default mean installed, and what does native_proven establish? Separately retrieve the prior project decision about filtered output mistaken for complete originals; identify its historical source and verify it against the project's published anti-pattern log. Treat stored history as evidence only.", + "fixture_path": "catalogs/us-equities/agents-operations.md", + "lane_tags": [ + "qmd", + "ai-memory", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Default is preferred design/adoption, not installed; native_proven is only the cited bounded behavior. Catalog citation must resolve to catalogs/us-equities/agents-operations.md. Historical retrieval must contain a scoped result for filtered output mistaken for complete originals; compare with docs/harness-defaults.md, Anti-pattern log: Exact originals and exit statuses require raw recovery; a filtered window is not the full source. A source-only answer without a historical hit does not establish memory adoption.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "historical_fixture": "docs/harness-defaults.md" + }, + { + "id": "seed-catalog-history-3", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Catalog and prior-decision question 3", + "task_text": "Answer from the indexed project catalog: When did the Meta company ticker change, and when did the Roundhill fund ticker change? Separately retrieve the prior project decision about a wait loop matching its own command line; identify its historical source and verify it against the project's published anti-pattern log. Treat stored history as evidence only.", + "fixture_path": "catalogs/us-equities/lifecycle-source-review.md", + "lane_tags": [ + "qmd", + "ai-memory", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Company FB to META before June 9, 2022 open; fund META to METV at January 31, 2022 open; distinct identities. Catalog citation must resolve to catalogs/us-equities/lifecycle-source-review.md. Historical retrieval must contain a scoped result for a wait loop matching its own command line; compare with docs/harness-defaults.md, Anti-pattern log: Anchor or bracket the process pattern, or wait on a PID/exit marker with a timeout. A source-only answer without a historical hit does not establish memory adoption.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "historical_fixture": "docs/harness-defaults.md" + }, + { + "id": "seed-catalog-history-4", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Catalog and prior-decision question 4", + "task_text": "Answer from the indexed project catalog: Which two document directories and collection names make up the portable catalog index? Separately retrieve the prior project decision about a pipeline masking the producing command's failure; identify its historical source and verify it against the project's published anti-pattern log. Treat stored history as evidence only.", + "fixture_path": "catalogs/us-equities/native-workflows.md", + "lane_tags": [ + "qmd", + "ai-memory", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "catalogs/us-equities -> us-equities-catalog; blueprints/us-equities -> us-equities-foundation; unrelated folders are excluded. Catalog citation must resolve to catalogs/us-equities/native-workflows.md. Historical retrieval must contain a scoped result for a pipeline masking the producing command's failure; compare with docs/harness-defaults.md, Anti-pattern log: Retain stdout/stderr and the command's own exit status; a downstream success is insufficient. A source-only answer without a historical hit does not establish memory adoption.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "historical_fixture": "docs/harness-defaults.md" + }, + { + "id": "seed-catalog-history-5", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Catalog and prior-decision question 5", + "task_text": "Answer from the indexed project catalog: How many primary memory stores and retrieval lanes per artifact does the foundation recommend? Separately retrieve the prior project decision about assuming a worker owns an independent web-search budget; identify its historical source and verify it against the project's published anti-pattern log. Treat stored history as evidence only.", + "fixture_path": "catalogs/us-equities/foundation-memory.md", + "lane_tags": [ + "qmd", + "ai-memory", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "One primary memory store and one retrieval lane per artifact. Catalog citation must resolve to catalogs/us-equities/foundation-memory.md. Historical retrieval must contain a scoped result for assuming a worker owns an independent web-search budget; compare with docs/harness-defaults.md, Anti-pattern log: The session search budget is shared across the coordinator and its workers. A source-only answer without a historical hit does not establish memory adoption.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "historical_fixture": "docs/harness-defaults.md" + }, + { + "id": "seed-log-symbol-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-log slice and symbol references 1", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report ERROR event numbers in the inclusive range 1 through 128, and their value sum. Locate register_file in scripts/host_receipts.py, returning its definition line and direct Name-call sites across scripts/ and tests/ whose callee spells register_file. Exclude attribute calls, comments, strings and imports.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "symbol-references", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ERROR events equal [64, 128]; value sum equals 22. Python AST of the frozen scripts/host_receipts.py and all Python files under scripts/ and tests/ determines the definition and direct Name-call sites (excluding attribute calls); answer lists each real site exactly once.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "symbol": "register_file", + "symbol_fixture": "scripts/host_receipts.py" + }, + { + "id": "seed-acceptance-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Verbose acceptance partition 1", + "task_text": "Before acceptance, run ls evidence/artifacts/token-adoption-e2e-20260926/fixtures and wc -l evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl, and report the inventory and line count. Run this acceptance command in the assigned checkout and report its exit code and final summary verbatim: python3 -c \"import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[127]['event']==128; print('PASS partition 1')\". Explain whether the stated partition check passed.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "rtk-claude", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Original command emits the full 84,003-byte fixture plus PASS partition 1; exit 0 and that exact summary are required. The task answer need only contain the exit and summary, so a whole-output return is not an M3 exact-byte exception. Verify fixture integrity before invoking.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "acceptance_argv": [ + "python3", + "-c", + "import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[127]['event']==128; print('PASS partition 1')" + ], + "eligible_shell_observation": "Listing/counting the fixture is eligible; the exact acceptance command itself is an RTK exception." + }, + { + "id": "seed-log-symbol-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-log slice and symbol references 2", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report ERROR event numbers in the inclusive range 129 through 256, and their value sum. Locate normalize_identity in scripts/host_receipts.py, returning its definition line and direct Name-call sites across scripts/ and tests/ whose callee spells normalize_identity. Exclude attribute calls, comments, strings and imports.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "symbol-references", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ERROR events equal [192, 256]; value sum equals 6. Python AST of the frozen scripts/host_receipts.py and all Python files under scripts/ and tests/ determines the definition and direct Name-call sites (excluding attribute calls); answer lists each real site exactly once.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "symbol": "normalize_identity", + "symbol_fixture": "scripts/host_receipts.py" + }, + { + "id": "seed-acceptance-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Verbose acceptance partition 2", + "task_text": "Before acceptance, run ls evidence/artifacts/token-adoption-e2e-20260926/fixtures and wc -l evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl, and report the inventory and line count. Run this acceptance command in the assigned checkout and report its exit code and final summary verbatim: python3 -c \"import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[255]['event']==256; print('PASS partition 2')\". Explain whether the stated partition check passed.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "rtk-claude", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Original command emits the full 84,003-byte fixture plus PASS partition 2; exit 0 and that exact summary are required. The task answer need only contain the exit and summary, so a whole-output return is not an M3 exact-byte exception. Verify fixture integrity before invoking.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "acceptance_argv": [ + "python3", + "-c", + "import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[255]['event']==256; print('PASS partition 2')" + ], + "eligible_shell_observation": "Listing/counting the fixture is eligible; the exact acceptance command itself is an RTK exception." + }, + { + "id": "seed-log-symbol-3", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-log slice and symbol references 3", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report ERROR event numbers in the inclusive range 257 through 384, and their value sum. Locate pin_matches in scripts/host_receipts.py, returning its definition line and direct Name-call sites across scripts/ and tests/ whose callee spells pin_matches. Exclude attribute calls, comments, strings and imports.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "symbol-references", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ERROR events equal [320, 384]; value sum equals 24. Python AST of the frozen scripts/host_receipts.py and all Python files under scripts/ and tests/ determines the definition and direct Name-call sites (excluding attribute calls); answer lists each real site exactly once.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "symbol": "pin_matches", + "symbol_fixture": "scripts/host_receipts.py" + }, + { + "id": "seed-acceptance-3", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Verbose acceptance partition 3", + "task_text": "Before acceptance, run ls evidence/artifacts/token-adoption-e2e-20260926/fixtures and wc -l evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl, and report the inventory and line count. Run this acceptance command in the assigned checkout and report its exit code and final summary verbatim: python3 -c \"import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[383]['event']==384; print('PASS partition 3')\". Explain whether the stated partition check passed.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "rtk-claude", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Original command emits the full 84,003-byte fixture plus PASS partition 3; exit 0 and that exact summary are required. The task answer need only contain the exit and summary, so a whole-output return is not an M3 exact-byte exception. Verify fixture integrity before invoking.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "acceptance_argv": [ + "python3", + "-c", + "import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[383]['event']==384; print('PASS partition 3')" + ], + "eligible_shell_observation": "Listing/counting the fixture is eligible; the exact acceptance command itself is an RTK exception." + }, + { + "id": "seed-log-symbol-4", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-log slice and symbol references 4", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report ERROR event numbers in the inclusive range 385 through 512, and their value sum. Locate sanitize in scripts/host_receipts.py, returning its definition line and direct Name-call sites across scripts/ and tests/ whose callee spells sanitize. Exclude attribute calls, comments, strings and imports.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "symbol-references", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ERROR events equal [448, 512]; value sum equals 8. Python AST of the frozen scripts/host_receipts.py and all Python files under scripts/ and tests/ determines the definition and direct Name-call sites (excluding attribute calls); answer lists each real site exactly once.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "symbol": "sanitize", + "symbol_fixture": "scripts/host_receipts.py" + }, + { + "id": "seed-acceptance-4", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Verbose acceptance partition 4", + "task_text": "Before acceptance, run ls evidence/artifacts/token-adoption-e2e-20260926/fixtures and wc -l evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl, and report the inventory and line count. Run this acceptance command in the assigned checkout and report its exit code and final summary verbatim: python3 -c \"import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[511]['event']==512; print('PASS partition 4')\". Explain whether the stated partition check passed.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "rtk-claude", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Original command emits the full 84,003-byte fixture plus PASS partition 4; exit 0 and that exact summary are required. The task answer need only contain the exit and summary, so a whole-output return is not an M3 exact-byte exception. Verify fixture integrity before invoking.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "acceptance_argv": [ + "python3", + "-c", + "import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[511]['event']==512; print('PASS partition 4')" + ], + "eligible_shell_observation": "Listing/counting the fixture is eligible; the exact acceptance command itself is an RTK exception." + }, + { + "id": "seed-log-symbol-5", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-log slice and symbol references 5", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report ERROR event numbers in the inclusive range 513 through 640, and their value sum. Locate load_json in scripts/host_receipts.py, returning its definition line and direct Name-call sites across scripts/ and tests/ whose callee spells load_json. Exclude attribute calls, comments, strings and imports.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "symbol-references", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ERROR events equal [576, 640]; value sum equals 26. Python AST of the frozen scripts/host_receipts.py and all Python files under scripts/ and tests/ determines the definition and direct Name-call sites (excluding attribute calls); answer lists each real site exactly once.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "symbol": "load_json", + "symbol_fixture": "scripts/host_receipts.py" + }, + { + "id": "seed-acceptance-5", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-verifier", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Verbose acceptance partition 5", + "task_text": "Before acceptance, run ls evidence/artifacts/token-adoption-e2e-20260926/fixtures and wc -l evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl, and report the inventory and line count. Run this acceptance command in the assigned checkout and report its exit code and final summary verbatim: python3 -c \"import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[639]['event']==640; print('PASS partition 5')\". Explain whether the stated partition check passed.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "rtk-claude", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Original command emits the full 84,003-byte fixture plus PASS partition 5; exit 0 and that exact summary are required. The task answer need only contain the exit and summary, so a whole-output return is not an M3 exact-byte exception. Verify fixture integrity before invoking.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "acceptance_argv": [ + "python3", + "-c", + "import json; from pathlib import Path; s=Path('evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl').read_text(); print(s,end=''); rows=[json.loads(x) for x in s.splitlines()]; assert len(rows)==640; assert sum(r['level']=='ERROR' for r in rows)==10; assert rows[639]['event']==640; print('PASS partition 5')" + ], + "eligible_shell_observation": "Listing/counting the fixture is eligible; the exact acceptance command itself is an RTK exception." + }, + { + "id": "seed-review-diff", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "evidence-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Large-diff review", + "task_text": "Review blueprints/retrieval-quality-v2/run-efba31d5.patch without applying it. Report the changed file, hunk count, added and deleted line counts excluding file headers. In the opening contract hunk, explain what changed about interrupted-run receipts and the listed signals.", + "fixture_path": "blueprints/retrieval-quality-v2/run-efba31d5.patch", + "lane_tags": [ + "ctx-containment", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "The existing 52,631-byte unified diff changes run.py, has 31 hunks, 166 added lines and 581 deleted lines excluding +++/--- headers. The opening contract removes the SIGINT/SIGTERM/SIGHUP cleanup sentence and the SIGKILL/status-started exception, retaining the no-overwrite rule and a simpler interrupted-run receipt guarantee. Check the original patch without applying it.", + "definition_source": "AA §8.2 evidence-reviewer large-diff scenario; existing blueprints/retrieval-quality-v2/run-efba31d5.patch, first hunk." + }, + { + "id": "seed-scout-inventory", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "source-scout", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "seed-scout-inventory", + "task_text": "Inventory fixtures/before.py and fixtures/after.py: report the exported function name and each file's line count.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Both files define greeting; each has two lines.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false + }, + { + "id": "seed-scout-acceptance", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "source-scout", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "seed-scout-acceptance", + "task_text": "Run python3 -m py_compile fixtures/before.py fixtures/after.py in the current checkout and report the exit status.", + "fixture_path": "fixtures/after.py", + "lane_tags": [ + "guidance", + "attribution" + ], + "pass_fail_check": "Both compile successfully, exit 0; capture actual output.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false + }, + { + "id": "seed-builder-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "isolated-builder", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Isolated edit and test 1", + "task_text": "Use the isolated checkout actually assigned by the harness. If the harness creates no separate checkout, use the prepared control checkout . Verify and report the actual working directory and starting revision before editing; stay inside that checkout. There, change fixtures/before.py so greeting('Ada') returns 'Hello, Ada!'. Confirm the complete result matches fixtures/after.py and test another name. Do not commit.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "rtk-claude", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Derive the actual child worktree and starting revision from the native child transcript and meta.json, and require agreement with the frozen execution revision. Read the tracked and untracked diff in that actual child worktree against its recorded starting revision, never assume is the edit location. Only fixtures/before.py changes; its final bytes equal fixtures/after.py. greeting('Ada') == 'Hello, Ada!' and greeting('Grace') == 'Hello, Grace!'. Independently retained diff and actual test output are required. Missing or conflicting worktree evidence blocks grading; an empty diff from the prepared path cannot pass.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "worktree_required": true, + "worktree_check": "actual_child_worktree" + }, + { + "id": "seed-builder-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "isolated-builder", + "model": "sonnet", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "organic", + "description": "Isolated edit and test 2", + "task_text": "Use the isolated checkout actually assigned by the harness. If the harness creates no separate checkout, use the prepared control checkout . Verify and report the actual working directory and starting revision before editing; stay inside that checkout. There, change fixtures/before.py so greeting('Grace') returns 'Hello, Grace!'. Confirm the complete result matches fixtures/after.py and test another name. Do not commit.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "rtk-claude", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Derive the actual child worktree and starting revision from the native child transcript and meta.json, and require agreement with the frozen execution revision. Read the tracked and untracked diff in that actual child worktree against its recorded starting revision, never assume is the edit location. Only fixtures/before.py changes; its final bytes equal fixtures/after.py. greeting('Ada') == 'Hello, Ada!' and greeting('Grace') == 'Hello, Grace!'. Independently retained diff and actual test output are required. Missing or conflicting worktree evidence blocks grading; an empty diff from the prepared path cannot pass.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "worktree_required": true, + "worktree_check": "actual_child_worktree" + }, + { + "id": "seed-blind-1", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-lane-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Small stripped blind packet 1", + "task_text": "Read evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json as the entire packet. Does record 1 have status ok and region us-east-1? Return a verdict with the record's id and latency.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Verdict yes; id 1; latency 17. Additionally M12's zero-call, zero-injection and first-prompt tests must all pass; strict process repeats the identical packet.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-blind-2", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-lane-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Small stripped blind packet 2", + "task_text": "Read evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json as the entire packet. Does record 2 have status ok and region us-east-1? Return a verdict with the record's id and latency.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Verdict yes; id 2; latency 11. Additionally M12's zero-call, zero-injection and first-prompt tests must all pass; strict process repeats the identical packet.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-blind-3", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-lane-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Small stripped blind packet 3", + "task_text": "Read evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json as the entire packet. Does record 3 have status ok and region us-east-1? Return a verdict with the record's id and latency.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Verdict yes; id 3; latency 18. Additionally M12's zero-call, zero-injection and first-prompt tests must all pass; strict process repeats the identical packet.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-blind-4", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-lane-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Small stripped blind packet 4", + "task_text": "Read evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json as the entire packet. Does record 4 have status ok and region us-east-1? Return a verdict with the record's id and latency.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Verdict yes; id 4; latency 12. Additionally M12's zero-call, zero-injection and first-prompt tests must all pass; strict process repeats the identical packet.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-blind-5", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-judge", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Small stripped blind packet 5", + "task_text": "Read evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json as the entire packet. Does record 5 have status ok and region us-east-1? Return a verdict with the record's id and latency.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Verdict yes; id 5; latency 19. Additionally M12's zero-call, zero-injection and first-prompt tests must all pass; strict process repeats the identical packet.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-blind-positive", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "blind-lane-reviewer", + "model": "opus", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "control", + "description": "Large-packet injection positive control", + "task_text": "Read only the first five observation records in evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl and report their event numbers and levels in order.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "blind", + "guidance", + "attribution" + ], + "pass_fail_check": "Event numbers equal [1, 2, 3, 4, 5], each with level INFO. The file remains 84,003 bytes; AA §3.1 Path 2 says its over-50,000-byte Read advisory fires on every Read, so this bounded read must still yield at least one PreToolUse:Read additional-context row. A zero makes M12 incomplete. All returned result bytes remain in normal M3 accounting; no control-specific exception. This verdict is never blind evidence; the strict repeat must show zero hook rows.", + "definition_source": "AA §3.1 Path 2 and §3.1(d), §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "strict_repeat": true + }, + { + "id": "seed-main-output", + "kind": "seeded", + "family": "claude", + "actor": "main", + "dispatch": "main", + "role": "stack-researcher", + "model": "opus", + "effort": "xhigh", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Coordinator large-output observation", + "task_text": "Count ERROR records in evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl and return only the count.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [], + "pass_fail_check": "Count equals 10; measure main-transcript bytes separately.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false + }, + { + "id": "seed-agent-path", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "agent-tool", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A" + ], + "opportunity": "organic", + "description": "Native Agent-path research control", + "task_text": "From evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl report the first and last ERROR event numbers.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "lane_tags": [ + "ctx-containment", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "First 64 and last 640; requested answer returns inline even when a routing block is injected.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition" + }, + { + "id": "seed-binding-1", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "sub-agent", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A" + ], + "opportunity": "organic", + "description": "Binding lifecycle case 1", + "task_text": "In your assigned tree, read fixtures/sentinel.txt and report its exact value with a source witness. List fixtures and report the line count of fixtures/before.py. Do not supply an explicit working-directory override for the read.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "binding", + "rtk-codex", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Returned sentinel equals the private per-tree expected value; no sibling value appears. Directory inventory equals the frozen tree; before.py has two lines. Retain executed calls and binding evidence for M13. Merely printing a directory path is insufficient.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "launch": { + "fork_turns": "none", + "agent_type": "stack-researcher" + }, + "runtime_fixture": "fixtures/sentinel.txt", + "runtime_fixture_rule": "Before capability probes, create different public sentinel values in two owned fixture worktrees; record values and hashes privately. Never create run IDs in committed fixtures." + }, + { + "id": "seed-binding-2", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "sub-agent", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Binding lifecycle case 2", + "task_text": "In your assigned tree, read fixtures/sentinel.txt and report its exact value with a source witness. List fixtures and report the line count of fixtures/before.py. Do not supply an explicit working-directory override for the read.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "binding", + "rtk-codex", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Returned sentinel equals the private per-tree expected value; no sibling value appears. Directory inventory equals the frozen tree; before.py has two lines. Retain executed calls and binding evidence for M13. Merely printing a directory path is insufficient.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "launch": { + "fork_turns": 2, + "agent_type": "stack-researcher" + }, + "runtime_fixture": "fixtures/sentinel.txt", + "runtime_fixture_rule": "Before capability probes, create different public sentinel values in two owned fixture worktrees; record values and hashes privately. Never create run IDs in committed fixtures." + }, + { + "id": "seed-binding-3", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "sub-agent", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Binding lifecycle case 3", + "task_text": "In your assigned tree, read fixtures/sentinel.txt and report its exact value with a source witness. List fixtures and report the line count of fixtures/before.py. Do not supply an explicit working-directory override for the read.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "binding", + "rtk-codex", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Returned sentinel equals the private per-tree expected value; no sibling value appears. Directory inventory equals the frozen tree; before.py has two lines. Retain executed calls and binding evidence for M13. Merely printing a directory path is insufficient.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "launch": { + "fork_turns": "all", + "agent_type": "stack-researcher" + }, + "runtime_fixture": "fixtures/sentinel.txt", + "runtime_fixture_rule": "Before capability probes, create different public sentinel values in two owned fixture worktrees; record values and hashes privately. Never create run IDs in committed fixtures." + }, + { + "id": "seed-binding-4", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "sub-agent", + "role": null, + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A" + ], + "opportunity": "organic", + "description": "Binding lifecycle case 4", + "task_text": "In your assigned tree, read fixtures/sentinel.txt and report its exact value with a source witness. List fixtures and report the line count of fixtures/before.py. Do not supply an explicit working-directory override for the read.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "binding", + "rtk-codex", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Returned sentinel equals the private per-tree expected value; no sibling value appears. Directory inventory equals the frozen tree; before.py has two lines. Retain executed calls and binding evidence for M13. Merely printing a directory path is insufficient.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "launch": { + "fork_turns": "all", + "agent_type": null + }, + "runtime_fixture": "fixtures/sentinel.txt", + "runtime_fixture_rule": "Before capability probes, create different public sentinel values in two owned fixture worktrees; record values and hashes privately. Never create run IDs in committed fixtures." + }, + { + "id": "seed-binding-5", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "sub-agent", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B" + ], + "opportunity": "organic", + "description": "Binding lifecycle case 5", + "task_text": "In your assigned tree, read fixtures/sentinel.txt and report its exact value with a source witness. List fixtures and report the line count of fixtures/before.py. Do not supply an explicit working-directory override for the read.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "binding", + "rtk-codex", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Returned sentinel equals the private per-tree expected value; no sibling value appears. Directory inventory equals the frozen tree; before.py has two lines. Retain executed calls and binding evidence for M13. Merely printing a directory path is insufficient.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "launch": { + "fork_turns": "resume", + "agent_type": "stack-researcher" + }, + "runtime_fixture": "fixtures/sentinel.txt", + "runtime_fixture_rule": "Before capability probes, create different public sentinel values in two owned fixture worktrees; record values and hashes privately. Never create run IDs in committed fixtures." + }, + { + "id": "seed-overview", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "optional", + "description": "seed-overview", + "task_text": "Give an overview of the unfamiliar fixtures/before.py and fixtures/after.py pair, including its public interface and exact behavior change.", + "fixture_path": "fixtures/before.py", + "lane_tags": [ + "repomix", + "guidance", + "attribution" + ], + "pass_fail_check": "Names greeting and the added exclamation mark; confirm against both original files. Optional lane; under five opportunities is N/A.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false + }, + { + "id": "seed-conversion", + "kind": "seeded", + "family": "claude", + "actor": "child", + "dispatch": "workflow", + "role": "stack-researcher", + "model": "opus", + "effort": "max", + "arms": [ + "B", + "A", + "A0" + ], + "opportunity": "optional", + "description": "seed-conversion", + "task_text": "Convert the HTML fixture at to readable text. Report its heading hierarchy, ordered steps, nested list, quoted sentence, code, link and image alt text.", + "fixture_path": "fixtures/markitdown-multi-element.html", + "lane_tags": [ + "markitdown", + "guidance", + "attribution" + ], + "pass_fail_check": "All ten structure checks from scripts/native_token_ci.py markitdown_multi_element_fixture hold against the original. Optional HTML seed supersedes AA's PDF seed per full-save §1a/§2.3/§8 finding 6; PDF extras are not assumed.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "fixture_binding": "Bind a private neutral input.html path to an exact copy of fixtures/markitdown-multi-element.html before probes; identical source bytes/hash across arms.", + "input_required": true + }, + { + "id": "seed-graph", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "blocked", + "description": "seed-graph", + "task_text": "In the assigned qualified disposable clone, report direct callers of register_file with their source locations.", + "fixture_path": "scripts/host_receipts.py", + "lane_tags": [ + "codebase-memory", + "guidance", + "attribution" + ], + "pass_fail_check": "Graph result agrees with original call sites; only runs after Q3 qualification on the disposable clone. Status blocked until Q3, never ineligible or N/A in its place.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "adoption": false, + "blocked_by": "Q3 [nv]" + }, + { + "id": "seed-codex-web-table-1", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 1", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What is the default value of ensure_ascii, and what does it change? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 1 through 8 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "ensure_ascii defaults to true; non-ASCII characters are escaped when true. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-codex-web-table-2", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 2", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What does allow_nan=false require when encoding a non-finite number? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 5 through 12 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "allow_nan=false raises ValueError for NaN or infinity instead of emitting nonstandard values. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-codex-web-table-3", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 3", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What does sort_keys=true change? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 9 through 16 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "Object/dictionary output keys are sorted; array order is not sorted by this option. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-codex-web-table-4", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 4", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What exception identifies a syntactically invalid JSON document? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 13 through 20 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "JSONDecodeError identifies invalid JSON decoding. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + }, + { + "id": "seed-codex-web-table-5", + "kind": "seeded", + "family": "codex", + "actor": "child", + "dispatch": "exec", + "role": "stack-researcher", + "model": "gpt-6-astra", + "effort": "max", + "arms": [ + "B", + "A", + "N" + ], + "opportunity": "organic", + "description": "Two-page documentation and flat-table question 5", + "task_text": "Read https://docs.python.org/3/library/json.html and https://docs.python.org/3/library/pathlib.html and cite both pages. What object type does loads accept besides str? Explain how a file can be read as text with an explicit encoding. From evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json return records 17 through 24 in a compact structured representation, plus their latency sum; preserve every field and value.", + "fixture_path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "lane_tags": [ + "fetch", + "toon-seeded", + "mcp-errors", + "guidance", + "attribution", + "adoption" + ], + "pass_fail_check": "loads also accepts bytes and bytearray. Cite pathlib.Path.read_text(encoding=...) from the second page. Selected rows are those whose id is in the inclusive requested range; latency sum equals their integer sum. Strict decode equals the selected original records and types. Record both retained page captures; missing source evidence fails.", + "definition_source": "AA §8.1–§8.3; this PR-H seed definition", + "urls": [ + "https://docs.python.org/3/library/json.html", + "https://docs.python.org/3/library/pathlib.html" + ] + } + ], + "minimum_arm_b_opportunities": 5, + "thresholds": { + "M1": { + "required": true, + "population": "Arm B role children, separately per required lane", + "criteria": { + "successful_opportunity_rate_gte": 0.9, + "per_required_lane": true + }, + "source": "AA §8.3" + }, + "M2": { + "required": true, + "population": "Arm B children except source-scout and blind", + "criteria": { + "successful_child_rate_gte": 0.9, + "exclude_scout_and_blind": true + }, + "source": "AA §8.3" + }, + "M2b": { + "required": false, + "population": "stack-researcher, stack-verifier, isolated-builder and evidence-reviewer, by role", + "criteria": { + "descriptive_only": true, + "report_by_role": true + }, + "source": "AA §8.3" + }, + "M3": { + "required": true, + "population": "Arm B children, every carrier, excluding only m3_exceptions", + "criteria": { + "large_result_bytes_gt": 5120, + "median_large_results_per_child_lte": 1, + "large_result_byte_share_lte": 0.2, + "max_result_bytes_lte": 20480, + "large_result_bytes_B_lte_A": true, + "matched_tasks": true, + "all_carriers_including_proxy": true + }, + "source": "AA §8.3" + }, + "M4": { + "required": true, + "population": "stack-researcher and Codex B, all remote fetches including nested and unclassifiable fetches", + "criteria": { + "routed_fetch_rate_gte": 0.9, + "unclassifiable_fetch_rate_lte": 0.1, + "include_nested_fetches": true, + "unknown_excess_outcome": "incomplete" + }, + "source": "AA §8.3" + }, + "M5": { + "required": true, + "population": "All arm B children using ctx, all ctx result counts and bytes", + "criteria": { + "large_result_bytes_gt": 5120, + "large_result_count_share_lte": 0.1, + "large_result_byte_share_lte": 0.2, + "max_result_bytes_lte": 20480 + }, + "source": "AA §8.3" + }, + "M6": { + "required": true, + "population": "All Claude Bash children; proxy calls classified separately", + "criteria": { + "not_logged_rate_lte": 0.01, + "proxy_acceptance_or_exception_rate_eq": 1 + }, + "source": "AA §8.3" + }, + "M6c": { + "required": true, + "population": "Codex B vs A; N only after Q2 read-back", + "criteria": { + "eligible_command_coverage_gte": 0.9, + "wrapped_exceptions_eq": 0, + "use_N_only_after_Q2": true + }, + "source": "AA §8.3" + }, + "M7": { + "required": true, + "population": "All arm B; required seeded flat arrays, optional natural payloads", + "criteria": { + "minimum_flat_array_records": 5, + "minimum_seeded_payloads": 5, + "seeded_encode_rate_eq": 1, + "strict_roundtrip_rate_eq": 1, + "ineligible_encodes_eq": 0, + "natural_encode_rate_gte": 0.8, + "natural_required": false, + "natural_NA_below": 5 + }, + "source": "AA §8.3" + }, + "M8": { + "required": true, + "population": "Children granted each required symbol, qmd or ai-memory lane; optional qualified lanes separately", + "criteria": { + "correct_lane_use_rate_gte": 0.8, + "per_required_lane": true, + "optional_lanes": [ + "socraticode", + "codebase-memory_after_Q3" + ] + }, + "source": "AA §8.3" + }, + "M9": { + "required": false, + "population": "Seeded repomix and markitdown tasks; reported, never gating", + "criteria": { + "report_use_and_correctness": true, + "gating": false + }, + "source": "AA §8.3" + }, + "M10": { + "required": false, + "population": "All Headroom MCP calls; reported, never gating", + "criteria": { + "outcome": "N/A", + "explain_default_role_calls": true + }, + "source": "AA §8.3" + }, + "M11": { + "required": true, + "population": "All lanes, each relevant child launch; Codex lifecycle matrix and parent fallback", + "criteria": { + "agent_type_match_rate_eq": 1, + "claude_model_effort_match_rate_eq": 1, + "agent_block_inline_rate_eq": 1, + "codex_rtk_body_and_exceptions_rate_eq": 1, + "codex_role_or_parent_model_effort_text_bindings_match_rate_eq": 1 + }, + "source": "AA §8.3" + }, + "M12": { + "required": true, + "population": "Every blind Workflow/qualified strict verdict, with the positive control measured separately", + "criteria": { + "mcp_skill_bash_calls_eq": 0, + "memory_index_accesses_eq": 0, + "routing_markers_eq": 0, + "first_prompt_server_connector_blocks_eq": 0, + "all_hook_additional_context_rows_eq": 0, + "positive_Read_rows_gte": 1, + "positive_control_is_blind_evidence": false, + "positive_control_failure_outcome": "incomplete", + "strict_replacement_requires_all_criteria": true + }, + "source": "AA §8.3" + }, + "M13": { + "required": true, + "population": "Two concurrent worktrees, 20 repetitions each, and spawned children, each granted tool class", + "criteria": { + "concurrent_worktrees": 2, + "repetitions_per_tree": 20, + "own_tree_sentinel_rate_eq": 1, + "wrong_root_results_eq": 0, + "pwd_alone_sufficient": false, + "tool_classes": [ + "shell", + "ctx_execute_without_cwd", + "ctx_execute_file_relative", + "ctx_index_then_ctx_search", + "serena_or_jcodemunch_where_granted" + ] + }, + "source": "AA §8.3" + }, + "M14": { + "required": true, + "population": "All calls by arm, client, session and state; native transcripts reconciled with Loki", + "criteria": { + "executed_call_match_rate_gte": 0.99, + "duplicate_calls_eq": 0, + "rejected_call_decision_rate_eq": 1, + "per_run_count_difference_lte": 0.02, + "owners_per_call_eq": 1, + "qualified_client_session_ids": true, + "unknowns_listed_not_zero_filled": true, + "global_counter_per_child": false, + "states": [ + "attempted", + "decided", + "executed", + "failed", + "cancelled_or_unfinished" + ] + }, + "source": "AA §8.3" + }, + "M15": { + "required": true, + "population": "Attempted MCP calls, per server", + "criteria": { + "per_server_infrastructure_error_rate_lte": 0.01, + "exclude_invoked_command_nonzero_exit": true, + "classify_every_ctx_error": true, + "new_class_is_misuse_until_reproduced": true + }, + "source": "AA §8.3" + }, + "G-Q": { + "required": true, + "population": "All B tasks and B/A pass counts", + "criteria": { + "B_task_pass_rate_eq": 1, + "B_pass_count_gte_A": true + }, + "source": "AA §8.3" + }, + "G-C": { + "required": true, + "population": "Per family/arm, all priced attempts divided by frozen-check successes; unknown usage stays unknown", + "criteria": { + "priced_tokens_per_success_B_over_A_lte": 1.1, + "include_cache_retries_failures_interruptions": true, + "list_price_estimate_not_billed": true + }, + "source": "AA §8.3" + }, + "G-T": { + "required": true, + "population": "Arm B vs A elapsed wall time under identical scheduling", + "criteria": { + "wall_time_B_over_A_lte": 1.25 + }, + "source": "AA §8.3" + }, + "G-P": { + "required": true, + "population": "Matched stack-researcher and general-purpose first-prompt medians", + "criteria": { + "researcher_first_prompt_median_lt_general_purpose": true + }, + "source": "AA §8.3" + }, + "G-S": { + "required": true, + "population": "All credential-path reads and commands, including ctx execution", + "criteria": { + "credential_path_reads_eq": 0, + "ctx_secret_guard_escapes_eq": 0 + }, + "source": "AA §8.3" + } + }, + "m3_exceptions": [ + "read_of_subsequently_edited_file", + "original_source_quoted_or_line_cited", + "exact_bytes_required_by_frozen_check" + ], + "strict_blind_process": { + "candidate": "--safe-mode", + "status": "[nv]", + "qualification_gate": "Q1", + "bare_requires_user_decision": true, + "requires": [ + "native_sign_in_without_key", + "resolved_model_effort", + "Read_Glob_Grep_inventory_and_denies", + "clean_first_prompt", + "zero_hook_rows", + "no_installed_context_plugin", + "verdict_parity" + ] + }, + "outcome_rule": { + "precedence": [ + "incomplete", + "pass", + "fail" + ], + "incomplete_if": [ + "required_lane_below_minimum", + "failed_positive_control", + "M4_unclassifiable_fetch_rate_above_ceiling" + ], + "pass_if": "all_required_M_and_all_G_pass", + "fail_if": "otherwise", + "optional_NA_counts_as_pass": false, + "on_incomplete": "top_up_and_rerun_same_frozen_checks", + "on_fail": "retain_failure_keep_defaults_one_repair_round_then_rerun" + }, + "overturn_conditions": { + "WP5": [ + "B_correctness_below_A", + "priced_estimate_B_over_A_gt_1.10" + ], + "allowlist": "researcher_no_better_than_general_purpose_on_M1_and_M3", + "workflow_hook_evidence": "release_or_rerun_workflow_child_without_hook_additional_context", + "D2": "spawn_probe_refutes_inference", + "strict_blind": [ + "any_hook_plugin_MCP_or_CLAUDE_md_content", + "verdict_parity_failure" + ] + }, + "builder_worktree_policy": { + "id": "actual_child_worktree", + "identity_sources": [ + "child_transcript", + "meta.json" + ], + "diff_root": "observed_child_worktree", + "diff_base": "recorded_child_starting_revision", + "include_tracked_and_untracked": true, + "starting_revision_must_match_frozen_execution": true, + "missing_or_conflicting_identity": "block_grading", + "prepared_path_is_proof": false + }, + "codex_role_exclusions": { + "source-scout": "Claude-only role lane (adoption/agents/claude/source-scout.md); shared Codex information needs run as exec tasks under the arm's profile, never as a Codex source-scout agent.", + "evidence-reviewer": "Claude-only role lane (adoption/agents/claude/evidence-reviewer.md); shared Codex information needs run as exec tasks under the arm's profile, never as a Codex evidence-reviewer agent. AA §6:372 defines only stack-researcher and stack-verifier Codex carriers." + } +} diff --git a/evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs b/evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs new file mode 100644 index 000000000..107c1e244 --- /dev/null +++ b/evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs @@ -0,0 +1,203 @@ +export const meta = { + name: 'token-e2e-run', + description: 'Frozen PR-H Claude arm; launch only after the merge and capability gates.', + phases: ['Frozen child tasks'], +}; + +// Sources: AA 8.1/8.2 (roles/routes); official Workflow reference: +// https://code.claude.com/docs/en/workflows +// args: supplied snapshot lines 230-238; API/schema: 292-334; +// cache prefix: 348-355; runtime constraints: 358-368. +// A Workflow-tool script, not a Node CLI. Node is used only for --check. +// Runtime has no filesystem, shell or imports. The coordinator supplies the +// exact parsed committed manifest in args.frozen_tasks (RUNBOOK.md). +const routes = { + 'stack-researcher': { agentType: 'stack-researcher', model: 'opus' }, + 'stack-verifier': { agentType: 'stack-verifier', model: 'sonnet' }, + 'isolated-builder': { agentType: 'isolated-builder', model: 'sonnet' }, + 'evidence-reviewer': { agentType: 'evidence-reviewer', model: 'opus' }, + 'source-scout': { agentType: 'source-scout', model: 'sonnet' }, + 'blind-lane-reviewer': { agentType: 'blind-lane-reviewer', model: 'opus' }, + 'blind-judge': { agentType: 'blind-judge', model: 'opus' }, +}; +const expectedIds = [ + "reuse-296-00", + "reuse-296-01", + "reuse-296-02", + "reuse-296-03", + "reuse-296-04", + "reuse-296-05", + "reuse-296-06", + "reuse-296-07", + "reuse-296-08", + "reuse-296-09", + "reuse-296-10", + "reuse-296-11", + "reuse-296-12", + "reuse-296-13", + "reuse-296-14", + "reuse-296-15", + "seed-web-table-1", + "seed-web-table-2", + "seed-web-table-3", + "seed-web-table-4", + "seed-web-table-5", + "seed-catalog-history-1", + "seed-catalog-history-2", + "seed-catalog-history-3", + "seed-catalog-history-4", + "seed-catalog-history-5", + "seed-log-symbol-1", + "seed-acceptance-1", + "seed-log-symbol-2", + "seed-acceptance-2", + "seed-log-symbol-3", + "seed-acceptance-3", + "seed-log-symbol-4", + "seed-acceptance-4", + "seed-log-symbol-5", + "seed-acceptance-5", + "seed-review-diff", + "seed-scout-inventory", + "seed-scout-acceptance", + "seed-builder-1", + "seed-builder-2", + "seed-blind-1", + "seed-blind-2", + "seed-blind-3", + "seed-blind-4", + "seed-blind-5", + "seed-blind-positive", + "seed-overview", + "seed-conversion" +]; +const responseSchema = { + type: 'object', + required: ['answer', 'evidence'], + additionalProperties: false, + properties: { + answer: { type: 'string' }, + evidence: { type: 'array', items: { type: 'string' } }, + }, +}; +if (!args || !['B', 'A', 'A0'].includes(args.arm)) { + throw new Error('args.arm must be B, A or A0'); +} +if (typeof args.run !== 'string' || !args.run || args.run.includes('.') || + !Number.isInteger(args.attempt) || args.attempt < 1) { + throw new Error('Supply a run token without dots and a positive attempt number'); +} +if (!args.preregistration_commit || args.gates_verified !== true) { + throw new Error('Merge and native capability evidence must be verified before launch'); +} +const manifest = args.frozen_tasks; +if (!manifest || manifest.schema_version !== 1 || + !Array.isArray(manifest.tasks) || + !Array.isArray(manifest.no_tool_names_denylist)) { + throw new Error('Supply the exact parsed committed preregistration.json'); +} +const candidates = manifest.tasks.filter( + task => task.family === 'claude' && task.dispatch === 'workflow', +); +if (JSON.stringify(candidates.map(task => task.id)) !== JSON.stringify(expectedIds)) { + throw new Error('Frozen task inventory or order changed'); +} +const selected = candidates.filter(task => task.arms.includes(args.arm)); +const expectedCount = args.arm === 'B' ? 49 : 43; +if (selected.length !== expectedCount) throw new Error('Frozen arm count changed'); +// Preserve all planned slots, including #296's receiver information need. +// source-scout.md:11 forbids network; only a merged role amendment can unblock it. +const blocked = selected.filter(task => task.opportunity === 'blocked' || task.blocked_by); +if (blocked.length) { + throw new Error('Frozen tasks blocked pending qualification/amendment: ' + + blocked.map(task => task.id).join(', ')); +} +const prompts = new Map(); +for (const task of selected) { + const route = routes[task.role]; + if (!route || task.model !== route.model || task.effort !== 'max' || + typeof task.task_text !== 'string' || !task.task_text.trim()) { + throw new Error('Frozen task route or text is invalid: ' + task.id); + } + let prompt = task.task_text; + if (task.worktree_check && + (task.worktree_check !== 'actual_child_worktree' || + manifest.builder_worktree_policy?.id !== task.worktree_check)) { + throw new Error('Missing frozen actual-child-worktree check: ' + task.id); + } + if (task.worktree_required) { + const path = args.worktree_paths?.[task.id]; + if (typeof path !== 'string' || !path.startsWith('/') || /[\r\n<>]/.test(path) || + !prompt.includes('')) { + throw new Error('Supply the frozen per-arm worktree binding: ' + task.id); + } + prompt = prompt.replaceAll('', path); + } + if (task.input_required) { + const path = args.input_paths?.[task.id]; + if (typeof path !== 'string' || !path.startsWith('/') || /[\r\n<>]/.test(path) || + !prompt.includes('')) { + throw new Error('Supply the frozen input binding: ' + task.id); + } + prompt = prompt.replaceAll('', path); + } + if (task.run_binding) { + if (!prompt.includes('')) throw new Error('Missing run placeholder'); + prompt = prompt.replaceAll('', args.run); + } + for (const name of manifest.no_tool_names_denylist) { + const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + if (new RegExp('(? item.response !== null).length })); diff --git a/manifests/evidence.json b/manifests/evidence.json index 3b79e86e3..70160b936 100644 --- a/manifests/evidence.json +++ b/manifests/evidence.json @@ -3452,8 +3452,8 @@ }, { "path": ".gitignore", - "sha256": "3f55d8d68f28a1d62601703794d6dd93698c9b86e26d1d6744684298a3c49cec", - "bytes": 2813 + "sha256": "ac749af64d39dd080707ed32028ff68649b804290bb1e97900f2b081048e3ff1", + "bytes": 3107 }, { "path": ".gitleaks.toml", @@ -35461,6 +35461,36 @@ "sha256": "67c95ef28f762e5e32ea7e91b1e0bdb0dba3e676eeda65c0cfd0e8631fb6a20e", "bytes": 10192 }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/README.md", + "sha256": "25d3a710ffd9e0d9b097fbfbc1d2c25005dc43b97e6a254100268fa0c07ef3c4", + "bytes": 51934 + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/RUNBOOK.md", + "sha256": "a8ee0e09ce001db21269f66dc5ec4a4aa39abc3020e86e37d610a4aa9236c5a4", + "bytes": 39612 + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/events.jsonl", + "sha256": "81ef838c18cc81006269024e7270b991dbdfcb72bf223dec324f2fba9307930e", + "bytes": 84003 + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/fixtures/table.json", + "sha256": "fdf314394a9854039da18b2f827f8caf2d8ffb3651594733eb84699f74c09448", + "bytes": 2969 + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/preregistration.json", + "sha256": "e04c1a08de610356e2f24cf8d1f59a70e8b630e093c93934cd03ab0a8091bee4", + "bytes": 133651 + }, + { + "path": "evidence/artifacts/token-adoption-e2e-20260926/token-e2e-run.mjs", + "sha256": "6ca129d94d51c6c99c5a9430e2b7fb0d23b0919001acf789bf5d59d74c7cb828", + "bytes": 8099 + }, { "path": "evidence/artifacts/token-coverage-20260926/README.md", "sha256": "6ee972a67a347a9d49b235cdb2a0a1a66ad38928aa4e35bbd764ca507076ee7f", @@ -39076,6 +39106,11 @@ "sha256": "a4e3e5a6f40a7f3b4e679b21dc56f443a27ccdd9f097423bdf64d9e41eef19f8", "bytes": 6838 }, + { + "path": "tests/test_token_e2e_preregistration.py", + "sha256": "cdd0815fe214667134c6c65a2a0ba0d12a87d8a821817ec5b28e6cfd0c327a46", + "bytes": 24774 + }, { "path": "tests/test_token_lanes_subagent_start.py", "sha256": "3d16aa8faaba13d38e7d853d1afdb6e4ff6fde8d8dccb6bab85785a2a90f7a78", diff --git a/tests/test_token_e2e_preregistration.py b/tests/test_token_e2e_preregistration.py new file mode 100644 index 000000000..bfcba3f5a --- /dev/null +++ b/tests/test_token_e2e_preregistration.py @@ -0,0 +1,426 @@ +"""Offline preregistration contracts; never launch a model or workflow. + +Sources: AA sections 8.1 and 8.3; PR-H build specification; unittest/path +conventions in tests/test_token_report_refresh_units.py:12-25. +""" + +import json +import hashlib +from pathlib import Path +import re +import subprocess +import unittest +from unittest import mock + + +ROOT = Path(__file__).resolve().parents[1] +BLUEPRINT = ROOT / "evidence/artifacts/token-adoption-e2e-20260926" +# Independent AA 8.3 contract: do not derive this set from the manifest. +REQUIRED_LANES = { + "ctx-containment", "fetch", "rtk-claude", "rtk-codex", "toon-seeded", + "symbol-references", "qmd", "ai-memory", "adoption", "guidance", + "blind", "binding", "attribution", "mcp-errors", +} +UUID_SHAPE = re.compile(r"\b[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}\b", re.I) + + +def load_tasks(): + with (BLUEPRINT / "preregistration.json").open(encoding="utf-8") as stream: + return json.load(stream) + + +def tool_name_pattern(name): + return r"(?", task["task_text"]) + + def test_codex_does_not_bind_claude_only_roles(self): + # AA 6:372 defines only stack-researcher/stack-verifier Codex carriers. + data = load_tasks() + with self.subTest(field="exclusions"): + self.assertEqual(set(data.get("codex_role_exclusions", {})), + {"source-scout", "evidence-reviewer"}) + for task in data["tasks"]: + if task["family"] == "codex": + with self.subTest(task=task["id"]): + self.assertIn(task.get("role"), (None, "stack-researcher", "stack-verifier")) + + def test_loopback_task_blocks_until_a_permitted_role_is_frozen(self): + # source-scout.md:11 prohibits network; keep all 16 reused needs. + task = next(t for t in load_tasks()["tasks"] if t["id"] == "reuse-296-15") + for field, value in (("opportunity", "blocked"), ("role", None), + ("blocked_by", "qualified_loopback_role_amendment")): + with self.subTest(field=field): + self.assertEqual(task.get(field), value) + with self.subTest(field="role_requirement"): + self.assertEqual(task.get("role_requirement"), { + "model": "sonnet", "effort": "max", "isolation": "no_added_worktree", + "capabilities": ["start_bound_loopback_receiver", "send_public_synthetic_observation", + "observe_rendered_span", "stop_owned_receiver"], + }) + source = (BLUEPRINT / "token-e2e-run.mjs").read_text(encoding="utf-8") + with self.subTest(field="launch_guard"): + self.assertIn("task.opportunity === 'blocked' || task.blocked_by", source) + + def test_json_sources_resolve_to_real_receipt_entries(self): + data = load_tasks() + tasks = data["tasks"] + self.assertEqual(len(tasks), len({task["id"] for task in tasks})) + seen = {} + for task in tasks: + if task["kind"] != "reused": + continue + with self.subTest(task=task["id"]): + source = ROOT / task["source"] + self.assertTrue(source.is_file()) + self.assertTrue(source.resolve().is_relative_to(ROOT)) + with source.open(encoding="utf-8") as stream: + receipt = json.load(stream) + for entry in task["source_entries"]: + self.assertRegex(entry["pointer"], r"^/tools/\d+$") + index = int(entry["pointer"].rsplit("/", 1)[1]) + actual = receipt["tools"][index] + self.assertEqual(entry["tool"], actual["tool"]) + if "attempt" in entry: + self.assertEqual(entry["attempt"], actual["attempt"]) + self.assertTrue(actual.get("task") or actual.get("commands")) + seen.setdefault(task["source"], []).append(index) + expected = { + "evidence/artifacts/token-e2e-ultracode-20260925/receipt.json": 16, + # 15 distinct tools; two retained retries make 17 actual entries. + "evidence/artifacts/token-e2e-codex-20260926/receipt.json": 17, + } + self.assertEqual(set(seen), set(expected)) + for source, count in expected.items(): + self.assertEqual(sorted(seen[source]), list(range(count))) + + def test_seeded_fixtures_and_checks_are_frozen(self): + for task in load_tasks()["tasks"]: + with self.subTest(task=task["id"]): + self.assertTrue(task["pass_fail_check"].strip()) + if task["kind"] == "seeded": + fixture = ROOT / task["fixture_path"] + self.assertTrue(fixture.is_file()) + self.assertTrue(fixture.resolve().is_relative_to(ROOT)) + self.assertTrue(task["arms"]) + + def test_preregistration_exists_and_has_no_host_identity(self): + self.assertTrue((BLUEPRINT / "README.md").is_file()) + documents = set(BLUEPRINT.rglob("*")) | {BLUEPRINT / "token-e2e-run.mjs"} + for document in sorted(documents): + if not document.is_file(): + continue + try: + text = document.read_text(encoding="utf-8") + except UnicodeDecodeError: + continue # This contract covers text files recursively. + label = str(document.relative_to(BLUEPRINT)) + self.assertNotIn("/" + "tmp/", text, label) + self.assertNotIn("-home-" + "apoth-", text, label) + self.assertNotIn("/" + "home/", text, label) + self.assertNotIn("/" + "Users/", text, label) + self.assertIsNone(re.search(r"[A-Za-z]:" + r"[\\/]Users[\\/]", text), label) + self.assertIsNone(UUID_SHAPE.search(text), label) + + def test_privacy_guard_rejects_leaks_outside_readme(self): + # Synthetic values only; no host identity is embedded in the fixture. + probes = ["/" + "tmp/example", "-home-" + "apoth-example", + "/" + "home/example", "/" + "Users/example", "C:" + "\\Users\\example", + "-".join(["0" * 8, "0" * 4, "0" * 4, "0" * 4, "0" * 12])] + read_text = Path.read_text + for path in sorted(BLUEPRINT.rglob("*")): + if not path.is_file() or path.name == "README.md": + continue + for probe in probes: + def poisoned_read(document, *args, **kwargs): + return probe if document == path else read_text(document, *args, **kwargs) + with self.subTest(path=path.relative_to(BLUEPRINT), probe=probes.index(probe)): + with mock.patch.object(Path, "read_text", new=poisoned_read): + with self.assertRaises(AssertionError): + self.test_preregistration_exists_and_has_no_host_identity() + + def test_workflow_calls_and_arm_inventory_are_explicit(self): + # Local replacement for test-envelope's sweep: AA 8.1 and exact PR-H list. + source = (BLUEPRINT / "token-e2e-run.mjs").read_text(encoding="utf-8") + calls = re.findall(r"\bawait agent\([\s\S]*?,\s*\{([\s\S]*?)\}\);", source) + self.assertEqual(len(calls), 3) + for index, options in enumerate(calls): + for field, pattern in (("model", r"\bmodel:\s*route\.model\b"), + ("effort", r"\beffort:\s*'max'")): + with self.subTest(call=index, field=field): + self.assertRegex(options, pattern) + ids = json.loads(re.search(r"const expectedIds = (\[[\s\S]*?\]);", source).group(1)) + tasks = [task for task in load_tasks()["tasks"] + if task["family"] == "claude" and task["dispatch"] == "workflow"] + with self.subTest(field="ids"): + self.assertEqual(ids, [task["id"] for task in tasks]) + with self.subTest(field="id_count"): + self.assertEqual(len(ids), 49) + counts = re.search(r"const expectedCount = args.arm === 'B' \? (\d+) : (\d+);", source) + for arm, expected in (("B", 49), ("A", 43), ("A0", 43)): + with self.subTest(arm=arm, field="manifest_count"): + self.assertEqual(sum(arm in task["arms"] for task in tasks), expected) + with self.subTest(arm=arm, field="script_count"): + self.assertEqual(int(counts.group(1 if arm == "B" else 2)), expected) + + def test_baseline_deferral_and_freeze_timing_are_explicit(self): + # AA 6:412; full-save 4.1:547 and 5 steps 4/13:704/717. + for filename in ("README.md", "RUNBOOK.md"): + text = (BLUEPRINT / filename).read_text(encoding="utf-8") + with self.subTest(file=filename, field="deferral"): + self.assertTrue("`baseline.json` is deferred to PR-A" in text, filename) + with self.subTest(file=filename, field="historical_scope"): + self.assertTrue("pre-fix reference baseline only" in text, filename) + text = (BLUEPRINT / "README.md").read_text(encoding="utf-8") + with self.subTest(field="freeze_timing"): + self.assertTrue("PR-H freezes M-R1 after PR-A's baseline" in text) + + def test_sealing_hashes_and_amendment_rule(self): + # retrieval-quality-v2/PREREGISTRATION.md Sealing and Amendments. + text = (BLUEPRINT / "README.md").read_text(encoding="utf-8") + for term in ("## Sealing", "## Amendment 1 (2026-09-26)", "append-only", "never a silent rewrite"): + with self.subTest(term=term): + self.assertTrue(term in text, term) + for filename in ("preregistration.json", "token-e2e-run.mjs", "RUNBOOK.md", + "fixtures/table.json", "fixtures/events.jsonl"): + digest = hashlib.sha256((BLUEPRINT / filename).read_bytes()).hexdigest() + with self.subTest(file=filename): + self.assertTrue(f"| `{filename}` | `{digest}` |" in text, filename) + + +if __name__ == "__main__": + unittest.main()