{
  "notes": "EPISODE 2 (2026-10-27). Budget: 80 items, 10 used before, 46 spent now (el-bal 3, el-stategas 4, el-intrinsic 5, el-evm 5, el-transfer 5, el-requests 5, cl-state 5, cl-forkchoice 6, cl-misc 6, hive-failures 2) = 56 used, 24 left; episodes 8, this is 2.\n\nPILOT VERDICT. 4 of 5 review-pilot items produced exactly what the goal needs (spec quote + file#line at pinned hash + condition in words + other client + confidence + severity + known-check). teku-7732 failed: the worker could not read source (GitHub HTML pages did not render; it never cloned). Fix applied in every brief: 'use a shallow clone or raw.githubusercontent.com; pin via api.github.com/repos/X/commits/BRANCH'. Teku's repo is Consensys-Incorporated/teku (Consensys/teku redirects; search with old owner returns 422). Besu is besu-eth/besu. Prysm is OffchainLabs/prysm. Filled briefs must stay under 3000 chars: templates ~1880 (EL) / ~1900 (CL) without placeholders, focus <= ~650, known <= ~100.\n\nPINS (2026-10-27). ethereum/EIPs master d4c57552. execution-specs default branch is forks/bogota (master gone): 7f2f4c9b; forks/amsterdam branch 16898000 (2026-10-06); newest release with Amsterdam tests@v21.0.2; devnet fixtures tests-glamsterdam-devnet@v8.1.4. consensus-specs master 8a80ffa8 (pyproject 1.7.0-beta.5 unreleased); newest release v1.7.0-beta.4 (2026-10-08); only normative gloas diff master vs beta.4 = fork.md builder onboarding, PR 5736 commit 8b374fa8. Client heads: geth 8817f99f, nethermind d48833af, besu aa06c4f8, erigon f32a39d1, reth e0378eb6, lighthouse stable a376defa (v8.3.2; unstable 301f3bf2), prysm eb681c1d, teku 2c35574b, nimbus 0abc0dd0, lodestar e4b4f615, grandine 52cd6771. hive-tests 13e90230.\n\nEIP LIST (settled). Scheduled in EIP-7773: 2780, 7688, 7708, 7732, 7778, 7843, 7928, 7954, 7976, 7981, 7997, 8024, 8037, 8038, 8045, 8061, 8246, 8282 (17 Last Call, deadline 2026-11-01 except 8246 on 11-04; 7688 Review). EL (EELS amsterdam lists 14): 2780, 7708, 7778, 7843, 7928, 7954, 7976, 7981, 7997, 8024, 8037, 8038, 8246, 8282. CL (gloas): 7688, 7732, 7843 (slot_number), 7928 (payload field), 8045, 8061, 8282; also 8070 and 8261 in gloas intro but not scheduled. 7997 has no spec code (rule: client MUST NOT check factory existence at fork). None of the 18 is live on mainnet (absent from EIP-7600/7607; EIP-7773 mainnet row blank; GLOAS_FORK_EPOCH far-future) so the withholding rule applies only to code shared with live forks (Lighthouse pilot withheld one Fulu-shared item). Glamsterdam is live on Sepolia (epoch 353024, 2026-10-06) and Hoodi (132352, 2026-10-26). Spec disagreements to cite in the report: EIP-7981 table shows 2400/1900 and 21000 base (stale vs 8038/2780); EIP-7981 'flat surcharge' prose vs floor-token rationale (numerically equal); EIP-7976 requires header lacks 3860; gloas intro pins old EIP revisions (7732 'no EL changes', 7843 old engine method names, 8282 old prefix text); devnet-8 list includes 7610 which the meta EIP does not.\n\nCANDIDATES SO FAR (all from review-pilot). Geth 7928: C1 storage restored at shared index n+1 recorded as write (known: go-ethereum 35776 open, PR 35843 open, 35895 closed unmerged; geth skips the fixture in tests/block_test.go L94-96), C2 withdrawal credit forwarded by system call leaves zero balance change (known: 35894 dup of 35776); both high confidence, valid-block-rejected, need substituted predeploy code so not reachable on canonical state; Nethermind agrees with spec. Reth 7928: none found (BAL logic lives in alloy-eip7928). Nethermind 8037: C1 negative net state gas spec clamps/clients reject (known intentional PR 13178; Geth same), C2 separate per-EIP activation flags (chainspec-only), C3 existence predicate pre-state vs current (unreachable), C4 check order cosmetic; all low. Lighthouse 7732: C1 onboard_builders follows beta.4 not master PR 5736 (high that it differs, spec-version lag; Prysm same; not found in issues), C2 is_head_weak omits committee equivocating weight (known 9593/9831 open; Prysm differs differently), C3 block-carried payload attestations applied to fork choice before on_block checks (medium, not found; Prysm agrees with spec). Teku 7732: only a lead from closed issue 10795 (index-1 attestation gossip), redo in cl-forkchoice/teku.\n\nKNOWN-ISSUE INDEX highlights (b02): EL: geth PR 35633, PR 36020; erigon 21651, 22254, 22008 (open), 22896; reth 27206; execution-apis 868 (eth_simulateV1 BAL identity, cross-client, not a bug). Hive 2026-10-26 glamsterdam full suite failures: reth 1626 engine/3094 enginex, nethermind 239/239, besu 9/69, geth 2/50; erigon, ethrex, nimbus-el 0. No CL client appears on hive. CL known list is long (see cl-forkchoice item vars); strongest open CL reports: Lighthouse 10464, Nimbus 9203, 9011, Teku 11568, Grandine 989, 918, Prysm 17735.\n\nNEXT EPISODE (3). Read the 7 individually handed items (el-bal x3, el-stategas x4), the 14 merges, 2 hive items, and the 5 extra reads. Then: (a) re-run any item that failed like teku did (same brief, same vars, new batch name); (b) spawn 'disprove' batch, one item per strongest candidate (target 10-12): each item gets the candidate text (spec quote, file#line, condition) in vars and must try to show it is NOT a divergence (find an earlier check that rejects the condition, show the condition is unreachable, show the spec text was misread, or confirm it by a second reading), citing spec and code at the same pins, ending with 'confirmed / refuted / undecided' and why. Candidates already queued for disproof: Lighthouse C3 (medium, not found), Lighthouse+Prysm beta.4 onboarding lag (check whether beta.5 ships PR 5736 unchanged), Geth 7928 C1/C2 (only if any item shows canonical-state reachability), plus whatever episode-3 reads rank high and 'not found'. Also one 'cross-client' item per layer that reads all merges and lists every rule where clients differ from each other. (c) Budget: 24 left; keep ~4 for episode-4 re-checks. Episode 4: read disproofs, finish=true unless a disproof demands one more round. Final report must: list EIPs with spec versions (above), per client per EIP candidates with status known/new and confirmed/refuted, the withheld live-code items, and the gaps (Teku if it fails again, hive has no CL data, nothing was executed).\n\nBRIEF-WORDING RULE (still in force): phrase everything as public spec-conformance review; 'condition under which the client's result differs', no exploit, attack or reproduction language, no code to run. The episode-1 attempt was rejected for cybersecurity-flavored content; episode-2's first attempt was rejected as runtime_error.",
  "spawn": [
    {
      "name": "el-bal",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-7928 Block-Level Access Lists",
            "eipnums": "7928",
            "specfiles": "block_access_lists.py, fork.py, blocks.py",
            "focus": "netting across the shared post-execution index n+1 (a slot restored to its index-start value, or a withdrawal credit forwarded away, by a later system call; Geth gets this wrong, issue 35776); destroyed-then-recreated account storage reads; max nonce; zero-value and self transfers; coinbase with zero fee; non-minimal RLP scalars rejected; header block_access_list_hash and the empty-BAL hash; first Amsterdam block; BAL item limit; parallel-execution determinism",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "ACDT 95 devnet-8 Besu outage (pm 2209), execution-apis 868, hive engine 9/enginex 69 fails",
            "size": "60"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "Nethermind",
            "repo": "NethermindEth/nethermind",
            "branch": "master",
            "eips": "EIP-7928 Block-Level Access Lists",
            "eipnums": "7928",
            "specfiles": "block_access_lists.py, fork.py, blocks.py",
            "focus": "netting across the shared post-execution index n+1 (a slot restored to its index-start value, or a withdrawal credit forwarded away, by a later system call; Geth gets this wrong, issue 35776); destroyed-then-recreated account storage reads; max nonce; zero-value and self transfers; coinbase with zero fee; non-minimal RLP scalars rejected; header block_access_list_hash and the empty-BAL hash; first Amsterdam block; BAL item limit; parallel-execution determinism",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "execution-apis 868; hive consume-engine 239 fails on 2026-10-26",
            "size": "60"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-7928 Block-Level Access Lists",
            "eipnums": "7928",
            "specfiles": "block_access_lists.py, fork.py, blocks.py",
            "focus": "netting across the shared post-execution index n+1 (a slot restored to its index-start value, or a withdrawal credit forwarded away, by a later system call; Geth gets this wrong, issue 35776); destroyed-then-recreated account storage reads; max nonce; zero-value and self transfers; coinbase with zero fee; non-minimal RLP scalars rejected; header block_access_list_hash and the empty-BAL hash; first Amsterdam block; BAL item limit; parallel-execution determinism",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "21651 nondeterministic parallel BAL, 22254 wrong state root under reorg (both closed)",
            "size": "60"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      }
    },
    {
      "name": "el-stategas",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "geth",
          "vars": {
            "client": "Geth",
            "repo": "ethereum/go-ethereum",
            "branch": "master",
            "eips": "EIP-8037 state creation gas with EIP-7778 block gas accounting and EIP-8038 state-access gas",
            "eipnums": "8037, 7778, 8038",
            "specfiles": "vm/gas.py, vm/instructions/storage.py, vm/instructions/system.py, vm/interpreter.py, vm/eoa_delegation.py, transactions.py, fork.py",
            "focus": "constants (CPSB 1530; 120/64/23 bytes; 2^32-1 total gas; system-call limit 31,566,720, excess in the reservoir; 7816 per auth; refund 11616); SSTORE table incl. 0->x->0 refill into gas_left then the reservoir; conditional new-account charge in CALL, CREATE, SELFDESTRUCT, top-level create; 63/64 on gas_left only; child-frame merge, restore, spill repayment; negative net state gas (spec clamps to 0; Geth and Nethermind reject); EIP-7702 per-auth costs; settlement before refund and floor; header gas_used = max(execution, state); 2D inclusion check (min(2^24, tx.gas); tx.gas); receipt gas; first-block base fee; one fork flag or several",
            "other": "Nethermind (NethermindEth/nethermind master)",
            "known": "PR 35633 debt repayment after child frame, PR 36020 minimal gas after amsterdam (merged)",
            "size": "60"
          }
        },
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-8037 state creation gas with EIP-7778 block gas accounting and EIP-8038 state-access gas",
            "eipnums": "8037, 7778, 8038",
            "specfiles": "vm/gas.py, vm/instructions/storage.py, vm/instructions/system.py, vm/interpreter.py, vm/eoa_delegation.py, transactions.py, fork.py",
            "focus": "constants (CPSB 1530; 120/64/23 bytes; 2^32-1 total gas; system-call limit 31,566,720, excess in the reservoir; 7816 per auth; refund 11616); SSTORE table incl. 0->x->0 refill into gas_left then the reservoir; conditional new-account charge in CALL, CREATE, SELFDESTRUCT, top-level create; 63/64 on gas_left only; child-frame merge, restore, spill repayment; negative net state gas (spec clamps to 0; Geth and Nethermind reject); EIP-7702 per-auth costs; settlement before refund and floor; header gas_used = max(execution, state); 2D inclusion check (min(2^24, tx.gas); tx.gas); receipt gas; first-block base fee; one fork flag or several",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "hive consume-engine 9 and enginex 69 fails on 2026-10-26",
            "size": "60"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-8037 state creation gas with EIP-7778 block gas accounting and EIP-8038 state-access gas",
            "eipnums": "8037, 7778, 8038",
            "specfiles": "vm/gas.py, vm/instructions/storage.py, vm/instructions/system.py, vm/interpreter.py, vm/eoa_delegation.py, transactions.py, fork.py",
            "focus": "constants (CPSB 1530; 120/64/23 bytes; 2^32-1 total gas; system-call limit 31,566,720, excess in the reservoir; 7816 per auth; refund 11616); SSTORE table incl. 0->x->0 refill into gas_left then the reservoir; conditional new-account charge in CALL, CREATE, SELFDESTRUCT, top-level create; 63/64 on gas_left only; child-frame merge, restore, spill repayment; negative net state gas (spec clamps to 0; Geth and Nethermind reject); EIP-7702 per-auth costs; settlement before refund and floor; header gas_used = max(execution, state); 2D inclusion check (min(2^24, tx.gas); tx.gas); receipt gas; first-block base fee; one fork flag or several",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "none",
            "size": "60"
          }
        },
        {
          "key": "reth",
          "vars": {
            "client": "Reth",
            "repo": "paradigmxyz/reth",
            "branch": "main",
            "eips": "EIP-8037 state creation gas with EIP-7778 block gas accounting and EIP-8038 state-access gas",
            "eipnums": "8037, 7778, 8038",
            "specfiles": "vm/gas.py, vm/instructions/storage.py, vm/instructions/system.py, vm/interpreter.py, vm/eoa_delegation.py, transactions.py, fork.py",
            "focus": "constants (CPSB 1530; 120/64/23 bytes; 2^32-1 total gas; system-call limit 31,566,720, excess in the reservoir; 7816 per auth; refund 11616); SSTORE table incl. 0->x->0 refill into gas_left then the reservoir; conditional new-account charge in CALL, CREATE, SELFDESTRUCT, top-level create; 63/64 on gas_left only; child-frame merge, restore, spill repayment; negative net state gas (spec clamps to 0; Geth and Nethermind reject); EIP-7702 per-auth costs; settlement before refund and floor; header gas_used = max(execution, state); 2D inclusion check (min(2^24, tx.gas); tx.gas); receipt gas; first-block base fee; one fork flag or several",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "hive consume-engine 1626 and enginex 3094 fails on 2026-10-26, cause unknown",
            "size": "60"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      }
    },
    {
      "name": "el-intrinsic",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "geth",
          "vars": {
            "client": "Geth",
            "repo": "ethereum/go-ethereum",
            "branch": "master",
            "eips": "EIP-2780 intrinsic gas, EIP-7976 calldata floor and EIP-7981 access list cost",
            "eipnums": "2780, 7976, 7981",
            "specfiles": "transactions.py, vm/gas.py",
            "focus": "TX_BASE 12000, TX_VALUE_COST 6000, recipient and creation terms; floor 4 tokens per byte at 16 per token; access-list floor tokens 80 per address and 128 per key on both sides of the gas-used maximum (EIP-7981 prose says flat surcharge; numerically 1280/2048 either way); access-list cost 2900/2000 under EIP-8038; init-code word cost; EIP-7702 terms; intrinsic versus gas-limit check order; floor applied after refund; boundary where floor equals execution cost; creation with value; first Amsterdam block; txpool and block validation using one formula; protocol minimum-gas filters",
            "other": "Nethermind (NethermindEth/nethermind master)",
            "known": "PR 36020 minimal gas after amsterdam (merged)",
            "size": "30"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "Nethermind",
            "repo": "NethermindEth/nethermind",
            "branch": "master",
            "eips": "EIP-2780 intrinsic gas, EIP-7976 calldata floor and EIP-7981 access list cost",
            "eipnums": "2780, 7976, 7981",
            "specfiles": "transactions.py, vm/gas.py",
            "focus": "TX_BASE 12000, TX_VALUE_COST 6000, recipient and creation terms; floor 4 tokens per byte at 16 per token; access-list floor tokens 80 per address and 128 per key on both sides of the gas-used maximum (EIP-7981 prose says flat surcharge; numerically 1280/2048 either way); access-list cost 2900/2000 under EIP-8038; init-code word cost; EIP-7702 terms; intrinsic versus gas-limit check order; floor applied after refund; boundary where floor equals execution cost; creation with value; first Amsterdam block; txpool and block validation using one formula; protocol minimum-gas filters",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "hive consume-engine 239 fails on 2026-10-26",
            "size": "30"
          }
        },
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-2780 intrinsic gas, EIP-7976 calldata floor and EIP-7981 access list cost",
            "eipnums": "2780, 7976, 7981",
            "specfiles": "transactions.py, vm/gas.py",
            "focus": "TX_BASE 12000, TX_VALUE_COST 6000, recipient and creation terms; floor 4 tokens per byte at 16 per token; access-list floor tokens 80 per address and 128 per key on both sides of the gas-used maximum (EIP-7981 prose says flat surcharge; numerically 1280/2048 either way); access-list cost 2900/2000 under EIP-8038; init-code word cost; EIP-7702 terms; intrinsic versus gas-limit check order; floor applied after refund; boundary where floor equals execution cost; creation with value; first Amsterdam block; txpool and block validation using one formula; protocol minimum-gas filters",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-2780 intrinsic gas, EIP-7976 calldata floor and EIP-7981 access list cost",
            "eipnums": "2780, 7976, 7981",
            "specfiles": "transactions.py, vm/gas.py",
            "focus": "TX_BASE 12000, TX_VALUE_COST 6000, recipient and creation terms; floor 4 tokens per byte at 16 per token; access-list floor tokens 80 per address and 128 per key on both sides of the gas-used maximum (EIP-7981 prose says flat surcharge; numerically 1280/2048 either way); access-list cost 2900/2000 under EIP-8038; init-code word cost; EIP-7702 terms; intrinsic versus gas-limit check order; floor applied after refund; boundary where floor equals execution cost; creation with value; first Amsterdam block; txpool and block validation using one formula; protocol minimum-gas filters",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "reth",
          "vars": {
            "client": "Reth",
            "repo": "paradigmxyz/reth",
            "branch": "main",
            "eips": "EIP-2780 intrinsic gas, EIP-7976 calldata floor and EIP-7981 access list cost",
            "eipnums": "2780, 7976, 7981",
            "specfiles": "transactions.py, vm/gas.py",
            "focus": "TX_BASE 12000, TX_VALUE_COST 6000, recipient and creation terms; floor 4 tokens per byte at 16 per token; access-list floor tokens 80 per address and 128 per key on both sides of the gas-used maximum (EIP-7981 prose says flat surcharge; numerically 1280/2048 either way); access-list cost 2900/2000 under EIP-8038; init-code word cost; EIP-7702 terms; intrinsic versus gas-limit check order; floor applied after refund; boundary where floor equals execution cost; creation with value; first Amsterdam block; txpool and block validation using one formula; protocol minimum-gas filters",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "hive consume-engine 1626 fails on 2026-10-26",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "el-evm",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "geth",
          "vars": {
            "client": "Geth",
            "repo": "ethereum/go-ethereum",
            "branch": "master",
            "eips": "EIP-7843 SLOTNUM, EIP-7954 max contract size and EIP-8024 SWAPN, DUPN, EXCHANGE",
            "eipnums": "7843, 7954, 8024",
            "specfiles": "vm/instructions/block.py, vm/instructions/stack.py, vm/stack.py, vm/interpreter.py, blocks.py",
            "focus": "SLOTNUM 0x4B returns the header slot_number, gas 2, invalid before Amsterdam; header slot_number RLP field, its check against the payload attribute, its value in the first Amsterdam block; MAX_CODE_SIZE 0x10000 and MAX_INIT_CODE_SIZE 0x20000 in CREATE, CREATE2, top-level create, code deposit and init-code word gas, boundary exactly at the limit, EIP-7702 delegation path; SWAPN 0xE6, DUPN 0xE7, EXCHANGE 0xE8 immediate decoding (n+1; n+1; high nibble+1, low nibble+1), underflow and the 1024 overflow boundary, immediate at end of code, gas 3, jumpdest analysis treating the immediate as data, invalid before Amsterdam",
            "other": "Nethermind (NethermindEth/nethermind master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "Nethermind",
            "repo": "NethermindEth/nethermind",
            "branch": "master",
            "eips": "EIP-7843 SLOTNUM, EIP-7954 max contract size and EIP-8024 SWAPN, DUPN, EXCHANGE",
            "eipnums": "7843, 7954, 8024",
            "specfiles": "vm/instructions/block.py, vm/instructions/stack.py, vm/stack.py, vm/interpreter.py, blocks.py",
            "focus": "SLOTNUM 0x4B returns the header slot_number, gas 2, invalid before Amsterdam; header slot_number RLP field, its check against the payload attribute, its value in the first Amsterdam block; MAX_CODE_SIZE 0x10000 and MAX_INIT_CODE_SIZE 0x20000 in CREATE, CREATE2, top-level create, code deposit and init-code word gas, boundary exactly at the limit, EIP-7702 delegation path; SWAPN 0xE6, DUPN 0xE7, EXCHANGE 0xE8 immediate decoding (n+1; n+1; high nibble+1, low nibble+1), underflow and the 1024 overflow boundary, immediate at end of code, gas 3, jumpdest analysis treating the immediate as data, invalid before Amsterdam",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-7843 SLOTNUM, EIP-7954 max contract size and EIP-8024 SWAPN, DUPN, EXCHANGE",
            "eipnums": "7843, 7954, 8024",
            "specfiles": "vm/instructions/block.py, vm/instructions/stack.py, vm/stack.py, vm/interpreter.py, blocks.py",
            "focus": "SLOTNUM 0x4B returns the header slot_number, gas 2, invalid before Amsterdam; header slot_number RLP field, its check against the payload attribute, its value in the first Amsterdam block; MAX_CODE_SIZE 0x10000 and MAX_INIT_CODE_SIZE 0x20000 in CREATE, CREATE2, top-level create, code deposit and init-code word gas, boundary exactly at the limit, EIP-7702 delegation path; SWAPN 0xE6, DUPN 0xE7, EXCHANGE 0xE8 immediate decoding (n+1; n+1; high nibble+1, low nibble+1), underflow and the 1024 overflow boundary, immediate at end of code, gas 3, jumpdest analysis treating the immediate as data, invalid before Amsterdam",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-7843 SLOTNUM, EIP-7954 max contract size and EIP-8024 SWAPN, DUPN, EXCHANGE",
            "eipnums": "7843, 7954, 8024",
            "specfiles": "vm/instructions/block.py, vm/instructions/stack.py, vm/stack.py, vm/interpreter.py, blocks.py",
            "focus": "SLOTNUM 0x4B returns the header slot_number, gas 2, invalid before Amsterdam; header slot_number RLP field, its check against the payload attribute, its value in the first Amsterdam block; MAX_CODE_SIZE 0x10000 and MAX_INIT_CODE_SIZE 0x20000 in CREATE, CREATE2, top-level create, code deposit and init-code word gas, boundary exactly at the limit, EIP-7702 delegation path; SWAPN 0xE6, DUPN 0xE7, EXCHANGE 0xE8 immediate decoding (n+1; n+1; high nibble+1, low nibble+1), underflow and the 1024 overflow boundary, immediate at end of code, gas 3, jumpdest analysis treating the immediate as data, invalid before Amsterdam",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "reth",
          "vars": {
            "client": "Reth",
            "repo": "paradigmxyz/reth",
            "branch": "main",
            "eips": "EIP-7843 SLOTNUM, EIP-7954 max contract size and EIP-8024 SWAPN, DUPN, EXCHANGE",
            "eipnums": "7843, 7954, 8024",
            "specfiles": "vm/instructions/block.py, vm/instructions/stack.py, vm/stack.py, vm/interpreter.py, blocks.py",
            "focus": "SLOTNUM 0x4B returns the header slot_number, gas 2, invalid before Amsterdam; header slot_number RLP field, its check against the payload attribute, its value in the first Amsterdam block; MAX_CODE_SIZE 0x10000 and MAX_INIT_CODE_SIZE 0x20000 in CREATE, CREATE2, top-level create, code deposit and init-code word gas, boundary exactly at the limit, EIP-7702 delegation path; SWAPN 0xE6, DUPN 0xE7, EXCHANGE 0xE8 immediate decoding (n+1; n+1; high nibble+1, low nibble+1), underflow and the 1024 overflow boundary, immediate at end of code, gas 3, jumpdest analysis treating the immediate as data, invalid before Amsterdam",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "el-transfer",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "geth",
          "vars": {
            "client": "Geth",
            "repo": "ethereum/go-ethereum",
            "branch": "master",
            "eips": "EIP-7708 ETH transfer logs and EIP-8246 SELFDESTRUCT without burn",
            "eipnums": "7708, 8246",
            "specfiles": "vm/__init__.py (emit_transfer_log), vm/instructions/system.py, fork.py, transactions.py",
            "focus": "exactly which value movements emit the LOG3 with TRANSFER_TOPIC (transaction value, CALL and CALLCODE value, CREATE and CREATE2 value, SELFDESTRUCT, system calls, withdrawals, fees) and which do not; zero-value and self transfers; log address, topics and data encoding; receipts, bloom and log index; no gas charged; logs dropped on revert; precompile and EIP-7702 delegated targets; SELFDESTRUCT: balance moved without burn when beneficiary is self, transfer log only when beneficiary differs from originator, deletion only when created in the same transaction, dead-beneficiary state gas; consistency with EIP-7928 BAL recording",
            "other": "Nethermind (NethermindEth/nethermind master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "Nethermind",
            "repo": "NethermindEth/nethermind",
            "branch": "master",
            "eips": "EIP-7708 ETH transfer logs and EIP-8246 SELFDESTRUCT without burn",
            "eipnums": "7708, 8246",
            "specfiles": "vm/__init__.py (emit_transfer_log), vm/instructions/system.py, fork.py, transactions.py",
            "focus": "exactly which value movements emit the LOG3 with TRANSFER_TOPIC (transaction value, CALL and CALLCODE value, CREATE and CREATE2 value, SELFDESTRUCT, system calls, withdrawals, fees) and which do not; zero-value and self transfers; log address, topics and data encoding; receipts, bloom and log index; no gas charged; logs dropped on revert; precompile and EIP-7702 delegated targets; SELFDESTRUCT: balance moved without burn when beneficiary is self, transfer log only when beneficiary differs from originator, deletion only when created in the same transaction, dead-beneficiary state gas; consistency with EIP-7928 BAL recording",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-7708 ETH transfer logs and EIP-8246 SELFDESTRUCT without burn",
            "eipnums": "7708, 8246",
            "specfiles": "vm/__init__.py (emit_transfer_log), vm/instructions/system.py, fork.py, transactions.py",
            "focus": "exactly which value movements emit the LOG3 with TRANSFER_TOPIC (transaction value, CALL and CALLCODE value, CREATE and CREATE2 value, SELFDESTRUCT, system calls, withdrawals, fees) and which do not; zero-value and self transfers; log address, topics and data encoding; receipts, bloom and log index; no gas charged; logs dropped on revert; precompile and EIP-7702 delegated targets; SELFDESTRUCT: balance moved without burn when beneficiary is self, transfer log only when beneficiary differs from originator, deletion only when created in the same transaction, dead-beneficiary state gas; consistency with EIP-7928 BAL recording",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-7708 ETH transfer logs and EIP-8246 SELFDESTRUCT without burn",
            "eipnums": "7708, 8246",
            "specfiles": "vm/__init__.py (emit_transfer_log), vm/instructions/system.py, fork.py, transactions.py",
            "focus": "exactly which value movements emit the LOG3 with TRANSFER_TOPIC (transaction value, CALL and CALLCODE value, CREATE and CREATE2 value, SELFDESTRUCT, system calls, withdrawals, fees) and which do not; zero-value and self transfers; log address, topics and data encoding; receipts, bloom and log index; no gas charged; logs dropped on revert; precompile and EIP-7702 delegated targets; SELFDESTRUCT: balance moved without burn when beneficiary is self, transfer log only when beneficiary differs from originator, deletion only when created in the same transaction, dead-beneficiary state gas; consistency with EIP-7928 BAL recording",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "reth",
          "vars": {
            "client": "Reth",
            "repo": "paradigmxyz/reth",
            "branch": "main",
            "eips": "EIP-7708 ETH transfer logs and EIP-8246 SELFDESTRUCT without burn",
            "eipnums": "7708, 8246",
            "specfiles": "vm/__init__.py (emit_transfer_log), vm/instructions/system.py, fork.py, transactions.py",
            "focus": "exactly which value movements emit the LOG3 with TRANSFER_TOPIC (transaction value, CALL and CALLCODE value, CREATE and CREATE2 value, SELFDESTRUCT, system calls, withdrawals, fees) and which do not; zero-value and self transfers; log address, topics and data encoding; receipts, bloom and log index; no gas charged; logs dropped on revert; precompile and EIP-7702 delegated targets; SELFDESTRUCT: balance moved without burn when beneficiary is self, transfer log only when beneficiary differs from originator, deletion only when created in the same transaction, dead-beneficiary state gas; consistency with EIP-7928 BAL recording",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "el-requests",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} execution client's implementation of {{eips}} for Ethereum's Amsterdam fork (Glamsterdam, not live on mainnet) with the specification. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it. Reference: ethereum/execution-specs default branch forks/bogota (no master exists), pinned the same way, under src/ethereum/forks/amsterdam/: {{specfiles}}. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (gas, state, block validity, encoding) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, transaction or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, wrong gas or fee, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number and short name, plus the execution-specs 'Test Release Tracker' issues and hive.ethpandaops.io/glamsterdam/listing.jsonl; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). If the logic were live on mainnet, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Prefer no candidate to a weak one, but report a spec difference even when other clients share it.",
      "items": [
        {
          "key": "geth",
          "vars": {
            "client": "Geth",
            "repo": "ethereum/go-ethereum",
            "branch": "master",
            "eips": "EIP-8282 builder execution requests, the Amsterdam Engine API (newPayloadV5, getPayloadV6, forkchoiceUpdatedV4) and EIP-7997 factory contract",
            "eipnums": "8282, 7843, 7928, 7997",
            "specfiles": "requests.py, fork.py, blocks.py; also ethereum/execution-apis src/engine/amsterdam.md at master",
            "focus": "request types 0x03 builder deposits and 0x04 builder exits: addresses, system-call gas and failure handling, requests_hash over non-empty data only, type ordering; engine field sets (slotNumber, blockAccessList raw bytes hashed for the header, executionRequests), version gating at the fork timestamp and the error for a wrong version; payload-attribute slot_number; custodyColumns third parameter of forkchoiceUpdatedV4 (Erigon 22896); EIP-7997: no state change and no existence check or BAL read of the factory at the fork",
            "other": "Nethermind (NethermindEth/nethermind master)",
            "known": "benchmarkoor PR 353: devnet-8 clients reject blocks lacking EIP-8282 predeploys",
            "size": "30"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "Nethermind",
            "repo": "NethermindEth/nethermind",
            "branch": "master",
            "eips": "EIP-8282 builder execution requests, the Amsterdam Engine API (newPayloadV5, getPayloadV6, forkchoiceUpdatedV4) and EIP-7997 factory contract",
            "eipnums": "8282, 7843, 7928, 7997",
            "specfiles": "requests.py, fork.py, blocks.py; also ethereum/execution-apis src/engine/amsterdam.md at master",
            "focus": "request types 0x03 builder deposits and 0x04 builder exits: addresses, system-call gas and failure handling, requests_hash over non-empty data only, type ordering; engine field sets (slotNumber, blockAccessList raw bytes hashed for the header, executionRequests), version gating at the fork timestamp and the error for a wrong version; payload-attribute slot_number; custodyColumns third parameter of forkchoiceUpdatedV4 (Erigon 22896); EIP-7997: no state change and no existence check or BAL read of the factory at the fork",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "besu",
          "vars": {
            "client": "Besu",
            "repo": "besu-eth/besu",
            "branch": "main",
            "eips": "EIP-8282 builder execution requests, the Amsterdam Engine API (newPayloadV5, getPayloadV6, forkchoiceUpdatedV4) and EIP-7997 factory contract",
            "eipnums": "8282, 7843, 7928, 7997",
            "specfiles": "requests.py, fork.py, blocks.py; also ethereum/execution-apis src/engine/amsterdam.md at master",
            "focus": "request types 0x03 builder deposits and 0x04 builder exits: addresses, system-call gas and failure handling, requests_hash over non-empty data only, type ordering; engine field sets (slotNumber, blockAccessList raw bytes hashed for the header, executionRequests), version gating at the fork timestamp and the error for a wrong version; payload-attribute slot_number; custodyColumns third parameter of forkchoiceUpdatedV4 (Erigon 22896); EIP-7997: no state change and no existence check or BAL read of the factory at the fork",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "erigon",
          "vars": {
            "client": "Erigon",
            "repo": "erigontech/erigon",
            "branch": "main",
            "eips": "EIP-8282 builder execution requests, the Amsterdam Engine API (newPayloadV5, getPayloadV6, forkchoiceUpdatedV4) and EIP-7997 factory contract",
            "eipnums": "8282, 7843, 7928, 7997",
            "specfiles": "requests.py, fork.py, blocks.py; also ethereum/execution-apis src/engine/amsterdam.md at master",
            "focus": "request types 0x03 builder deposits and 0x04 builder exits: addresses, system-call gas and failure handling, requests_hash over non-empty data only, type ordering; engine field sets (slotNumber, blockAccessList raw bytes hashed for the header, executionRequests), version gating at the fork timestamp and the error for a wrong version; payload-attribute slot_number; custodyColumns third parameter of forkchoiceUpdatedV4 (Erigon 22896); EIP-7997: no state change and no existence check or BAL read of the factory at the fork",
            "other": "Reth (paradigmxyz/reth main)",
            "known": "22896 fcuV4 custodyColumns (closed), 22008 three-list execution requests (open)",
            "size": "30"
          }
        },
        {
          "key": "reth",
          "vars": {
            "client": "Reth",
            "repo": "paradigmxyz/reth",
            "branch": "main",
            "eips": "EIP-8282 builder execution requests, the Amsterdam Engine API (newPayloadV5, getPayloadV6, forkchoiceUpdatedV4) and EIP-7997 factory contract",
            "eipnums": "8282, 7843, 7928, 7997",
            "specfiles": "requests.py, fork.py, blocks.py; also ethereum/execution-apis src/engine/amsterdam.md at master",
            "focus": "request types 0x03 builder deposits and 0x04 builder exits: addresses, system-call gas and failure handling, requests_hash over non-empty data only, type ordering; engine field sets (slotNumber, blockAccessList raw bytes hashed for the header, executionRequests), version gating at the fork timestamp and the error for a wrong version; payload-attribute slot_number; custodyColumns third parameter of forkchoiceUpdatedV4 (Erigon 22896); EIP-7997: no state change and no existence check or BAL read of the factory at the fork",
            "other": "Geth (ethereum/go-ethereum master)",
            "known": "none",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "cl-state",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} consensus client's implementation of {{eips}} for Ethereum's Gloas fork (Glamsterdam, not live on mainnet) with the spec. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it{{devbranch}}. Reference: ethereum/consensus-specs master, pinned the same way, under specs/gloas/: {{specfiles}}. Release v1.7.0-beta.4 differs from master only in fork.md builder onboarding (PR 5736); say which the client targets and report lag as a 'spec-version lag' candidate. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (state root, block or message validity, fork-choice head, encoding, gossip verdict) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, message or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, fork-choice divergence, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number, 'gloas', 'epbs', rule name; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). For logic shared with the live Fulu fork, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Report spec differences even if other clients share them.",
      "items": [
        {
          "key": "prysm",
          "vars": {
            "client": "Prysm",
            "repo": "OffchainLabs/prysm",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: state and fork transition",
            "eipnums": "7732, 8282",
            "specfiles": "beacon-chain.md, fork.md, builder.md",
            "focus": "bid processing checks (self-build amount 0 and infinity signature; active builder; version; can_builder_cover_bid boundaries; slot; hashes; parent_block_root; prev_randao; blob count); pending payment index and weight; withdrawals order and early return on an empty parent payload; process_parent_execution_payload (empty parent needs empty requests; request order); envelope checks; payload attestation validity; compute_ptc and 16-bit weighted selection; payments quorum; process_ptc_window; upgrade_to_gloas defaults and onboard_builders_from_pending_deposits master (PR 5736) versus beta.4 (Lighthouse and Prysm follow beta.4); SSZ field order of every Gloas container; constants (self-build index, builder flag, 0xB0 prefix, domains 0x0B-0x0E, PTC_SIZE 512)",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "17447 upgradeToGloas bid init (closed), 17387 onboarding BLS (merged), 16706 (closed)",
            "size": "30"
          }
        },
        {
          "key": "teku",
          "vars": {
            "client": "Teku",
            "repo": "Consensys-Incorporated/teku",
            "branch": "master",
            "devbranch": " (Consensys/teku redirects)",
            "eips": "EIP-7732 ePBS: state and fork transition",
            "eipnums": "7732, 8282",
            "specfiles": "beacon-chain.md, fork.md, builder.md",
            "focus": "bid processing checks (self-build amount 0 and infinity signature; active builder; version; can_builder_cover_bid boundaries; slot; hashes; parent_block_root; prev_randao; blob count); pending payment index and weight; withdrawals order and early return on an empty parent payload; process_parent_execution_payload (empty parent needs empty requests; request order); envelope checks; payload attestation validity; compute_ptc and 16-bit weighted selection; payments quorum; process_ptc_window; upgrade_to_gloas defaults and onboard_builders_from_pending_deposits master (PR 5736) versus beta.4 (Lighthouse and Prysm follow beta.4); SSZ field order of every Gloas container; constants (self-build index, builder flag, 0xB0 prefix, domains 0x0B-0x0E, PTC_SIZE 512)",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "11154 onboarding O(K^2), 10682 (closed); 11408 payment order (merged)",
            "size": "30"
          }
        },
        {
          "key": "nimbus",
          "vars": {
            "client": "Nimbus",
            "repo": "status-im/nimbus-eth2",
            "branch": "stable",
            "devbranch": "; also pin unstable, noting differences",
            "eips": "EIP-7732 ePBS: state and fork transition",
            "eipnums": "7732, 8282",
            "specfiles": "beacon-chain.md, fork.md, builder.md",
            "focus": "bid processing checks (self-build amount 0 and infinity signature; active builder; version; can_builder_cover_bid boundaries; slot; hashes; parent_block_root; prev_randao; blob count); pending payment index and weight; withdrawals order and early return on an empty parent payload; process_parent_execution_payload (empty parent needs empty requests; request order); envelope checks; payload attestation validity; compute_ptc and 16-bit weighted selection; payments quorum; process_ptc_window; upgrade_to_gloas defaults and onboard_builders_from_pending_deposits master (PR 5736) versus beta.4 (Lighthouse and Prysm follow beta.4); SSZ field order of every Gloas container; constants (self-build index, builder flag, 0xB0 prefix, domains 0x0B-0x0E, PTC_SIZE 512)",
            "other": "Prysm (OffchainLabs/prysm develop)",
            "known": "8383 EIP-7732 fixes (merged), 8334 requests and slot number (merged)",
            "size": "30"
          }
        },
        {
          "key": "lodestar",
          "vars": {
            "client": "Lodestar",
            "repo": "ChainSafe/lodestar",
            "branch": "unstable",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: state and fork transition",
            "eipnums": "7732, 8282",
            "specfiles": "beacon-chain.md, fork.md, builder.md",
            "focus": "bid processing checks (self-build amount 0 and infinity signature; active builder; version; can_builder_cover_bid boundaries; slot; hashes; parent_block_root; prev_randao; blob count); pending payment index and weight; withdrawals order and early return on an empty parent payload; process_parent_execution_payload (empty parent needs empty requests; request order); envelope checks; payload attestation validity; compute_ptc and 16-bit weighted selection; payments quorum; process_ptc_window; upgrade_to_gloas defaults and onboard_builders_from_pending_deposits master (PR 5736) versus beta.4 (Lighthouse and Prysm follow beta.4); SSZ field order of every Gloas container; constants (self-build index, builder flag, 0xB0 prefix, domains 0x0B-0x0E, PTC_SIZE 512)",
            "other": "Teku (Consensys-Incorporated/teku master)",
            "known": "9350 quorum overflow (retracted), 9709 (rejected), 8767 slotNumber (merged)",
            "size": "30"
          }
        },
        {
          "key": "grandine",
          "vars": {
            "client": "Grandine",
            "repo": "grandinetech/grandine",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: state and fork transition",
            "eipnums": "7732, 8282",
            "specfiles": "beacon-chain.md, fork.md, builder.md",
            "focus": "bid processing checks (self-build amount 0 and infinity signature; active builder; version; can_builder_cover_bid boundaries; slot; hashes; parent_block_root; prev_randao; blob count); pending payment index and weight; withdrawals order and early return on an empty parent payload; process_parent_execution_payload (empty parent needs empty requests; request order); envelope checks; payload attestation validity; compute_ptc and 16-bit weighted selection; payments quorum; process_ptc_window; upgrade_to_gloas defaults and onboard_builders_from_pending_deposits master (PR 5736) versus beta.4 (Lighthouse and Prysm follow beta.4); SSZ field order of every Gloas container; constants (self-build index, builder flag, 0xB0 prefix, domains 0x0B-0x0E, PTC_SIZE 512)",
            "other": "Nimbus (status-im/nimbus-eth2 stable)",
            "known": "747 attestation balance (merged), 989 fork-boundary deadlines (open)",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "cl-forkchoice",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} consensus client's implementation of {{eips}} for Ethereum's Gloas fork (Glamsterdam, not live on mainnet) with the spec. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it{{devbranch}}. Reference: ethereum/consensus-specs master, pinned the same way, under specs/gloas/: {{specfiles}}. Release v1.7.0-beta.4 differs from master only in fork.md builder onboarding (PR 5736); say which the client targets and report lag as a 'spec-version lag' candidate. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (state root, block or message validity, fork-choice head, encoding, gossip verdict) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, message or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, fork-choice divergence, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number, 'gloas', 'epbs', rule name; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). For logic shared with the live Fulu fork, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Report spec differences even if other clients share them.",
      "items": [
        {
          "key": "lighthouse",
          "vars": {
            "client": "Lighthouse",
            "repo": "sigp/lighthouse",
            "branch": "stable",
            "devbranch": "; also pin unstable, noting differences",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Prysm (OffchainLabs/prysm develop)",
            "known": "9593/9831 is_head_weak, 10464 index-1 votes, 10101 late envelopes, 10466 (open)",
            "size": "30"
          }
        },
        {
          "key": "prysm",
          "vars": {
            "client": "Prysm",
            "repo": "OffchainLabs/prysm",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "17735 restart stall (open), 17119 PTC tiebreaker (rejected), 17464/17465 PTC timing (closed)",
            "size": "30"
          }
        },
        {
          "key": "teku",
          "vars": {
            "client": "Teku",
            "repo": "Consensys-Incorporated/teku",
            "branch": "master",
            "devbranch": " (Consensys/teku redirects)",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "11568 EL-invalid envelope blocks valid one (open); 11246, 10795 (closed)",
            "size": "30"
          }
        },
        {
          "key": "nimbus",
          "vars": {
            "client": "Nimbus",
            "repo": "status-im/nimbus-eth2",
            "branch": "stable",
            "devbranch": "; also pin unstable, noting differences",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Prysm (OffchainLabs/prysm develop)",
            "known": "9344 replay on restart, 9203 unvalidated head, 9011 PTC wait (open); 8631, 9008 (closed)",
            "size": "30"
          }
        },
        {
          "key": "lodestar",
          "vars": {
            "client": "Lodestar",
            "repo": "ChainSafe/lodestar",
            "branch": "unstable",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Teku (Consensys-Incorporated/teku master)",
            "known": "10484 execution_optimistic, 10481 import queue (open); 10468, 10005 (merged)",
            "size": "30"
          }
        },
        {
          "key": "grandine",
          "vars": {
            "client": "Grandine",
            "repo": "grandinetech/grandine",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-7732 ePBS: fork choice and networking",
            "eipnums": "7732",
            "specfiles": "fork-choice.md, p2p-interface.md, validator.md",
            "focus": "on_block order (is_payload_verified for a full parent and other checks before the block's payload attestations reach the store; Lighthouse records them earlier); on_execution_payload_envelope; get_weight zero for previous-slot EMPTY and FULL nodes; payload-status tiebreaker; is_head_weak with committee equivocating weight and proposer_equivocation in get_proposer_head (Lighthouse 9593); PAYLOAD_TIMELY_THRESHOLD strictly greater; validate_on_attestation index 0 and 1; gossip verdicts for bids with unseen proposer preferences (IGNORE not REJECT), beacon_attestation index 1, envelopes, payload attestations; EnvelopesByRange and ByRoot (zero count, canonical only); payload deadlines at the fork boundary; envelopes replayed into fork choice after restart",
            "other": "Nimbus (status-im/nimbus-eth2 stable)",
            "known": "989 fork-boundary deadlines (open); 904, 840, 832, 742 (closed); 864 (merged)",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "cl-misc",
      "brief": "Public-page spec-conformance review only: read code, run nothing against any network or node. Compare the {{client}} consensus client's implementation of {{eips}} for Ethereum's Gloas fork (Glamsterdam, not live on mainnet) with the spec. Read code from a shallow clone of https://github.com/{{repo}} or raw.githubusercontent.com, not GitHub HTML pages. Pin the newest commit on branch {{branch}} via api.github.com/repos/{{repo}}/commits/{{branch}}, quote the hash, and cite every file as path#Lstart-Lend at it{{devbranch}}. Reference: ethereum/consensus-specs master, pinned the same way, under specs/gloas/: {{specfiles}}. Release v1.7.0-beta.4 differs from master only in fork.md builder onboarding (PR 5736); say which the client targets and report lag as a 'spec-version lag' candidate. EIP text: eips.ethereum.org/EIPS/eip-N, N = {{eipnums}}. Attend to: {{focus}}. For every place where the client's result (state root, block or message validity, fork-choice head, encoding, gossip verdict) would differ from the spec's, write a candidate in six parts: (1) spec sentence or code verbatim with URL; (2) client file#line at the pin, lines quoted; (3) the block, message or state condition under which the results differ, in words, no code; (4) the same rule in {{other}} at its pinned head, file#line, agreeing with the spec or with {{client}}; (5) confidence high/medium/low and the disproof you tried; (6) severity: consensus split, invalid block accepted, valid block rejected, fork-choice divergence, or cosmetic. Known-check per candidate: search {{repo}} issues and pull requests, open and closed, by EIP number, 'gloas', 'epbs', rule name; already indexed: {{known}}. Mark each 'known' (URL, state) or 'not found' (queries). For logic shared with the live Fulu fork, report only client, EIP and 'affects live code, details withheld'. Result, markdown, at most {{size}} KB: pins; candidates; table of rules checked and found correct with file#line; known-check; URLs read. Report spec differences even if other clients share them.",
      "items": [
        {
          "key": "lighthouse",
          "vars": {
            "client": "Lighthouse",
            "repo": "sigp/lighthouse",
            "branch": "stable",
            "devbranch": "; also pin unstable, noting differences",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Prysm (OffchainLabs/prysm develop)",
            "known": "10106 progressive limits (merged), 9817 onboarding cache (merged)",
            "size": "30"
          }
        },
        {
          "key": "prysm",
          "vars": {
            "client": "Prysm",
            "repo": "OffchainLabs/prysm",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "17412 ProgressiveList limits on unmarshal (merged)",
            "size": "30"
          }
        },
        {
          "key": "teku",
          "vars": {
            "client": "Teku",
            "repo": "Consensys-Incorporated/teku",
            "branch": "master",
            "devbranch": " (Consensys/teku redirects)",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Lighthouse (sigp/lighthouse stable)",
            "known": "10983 7688 validations (merged), 11408 payment before requests (merged)",
            "size": "30"
          }
        },
        {
          "key": "nimbus",
          "vars": {
            "client": "Nimbus",
            "repo": "status-im/nimbus-eth2",
            "branch": "stable",
            "devbranch": "; also pin unstable, noting differences",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Prysm (OffchainLabs/prysm develop)",
            "known": "none",
            "size": "30"
          }
        },
        {
          "key": "lodestar",
          "vars": {
            "client": "Lodestar",
            "repo": "ChainSafe/lodestar",
            "branch": "unstable",
            "devbranch": "",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Teku (Consensys-Incorporated/teku master)",
            "known": "9337 weak subjectivity 8061 (closed by 9625), 10042 (merged), 9656 (closed)",
            "size": "30"
          }
        },
        {
          "key": "grandine",
          "vars": {
            "client": "Grandine",
            "repo": "grandinetech/grandine",
            "branch": "develop",
            "devbranch": "",
            "eips": "EIP-8282 builder requests, EIP-7688 progressive SSZ, EIP-8045 proposers, EIP-8061 churn",
            "eipnums": "8282, 7688, 8045, 8061",
            "specfiles": "beacon-chain.md, validator.md, p2p-interface.md, weak-subjectivity.md",
            "focus": "process_builder_deposit_request: 0xB0 prefix gate on first registration and top-up, PAYLOAD_BUILDER_VERSION, signature, top-up to an exited builder resetting withdrawable_epoch only at zero balance; process_builder_exit_request; get_execution_requests encoding of types 0x03 and 0x04 and the requests root; EIP-7688 progressive list and container limits at deserialization and in the state transition, merkleization; EIP-8045 get_beacon_proposer_indices skipping slashed validators and the pre-fork lookahead at the transition; EIP-8061 separate activation, exit and consolidation churn, exit epoch accounting, min epochs for block requests, weak subjectivity period",
            "other": "Nimbus (status-im/nimbus-eth2 stable)",
            "known": "918 unlimited progressive containers (open)",
            "size": "30"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 64000
      },
      "merge": {
        "groupSize": 3,
        "brief": "Merge this group's reviews into one markdown report of at most 64 KB. Start with a pins table (client, branch, commit, spec commit). Then copy every candidate from every item with all six parts and its known-check intact, numbered <client>-<n>, keeping each file#line citation and quoted line exactly. Then a cross-client table: one row per rule any item flagged or checked, one column per client, each cell 'agrees with spec', 'differs (see <client>-<n>)' or 'not checked', so that differences between clients are visible. Then the known-check summary. Drop URL ledgers except the pins. Add no findings of your own and drop no candidate."
      }
    },
    {
      "name": "hive-failures",
      "brief": "Public-page research only. From https://hive.ethpandaops.io/glamsterdam/listing.jsonl and https://hive.ethpandaops.io/glamsterdam-quick/listing.jsonl, and the per-run result JSON files they name under the same host (read the JSON directly; the HTML dashboard does not render for readers), list every failing test in the newest run of each suite (eels/consume-engine, consume-enginex, consume-rlp, consume-wirex, eels/execute) for the {{client}} execution client. For each failing test: suite, run date, client version string, test name, the EIP it belongs to (from its name or path), and the first lines of its failure message. Group by EIP and count. For each EIP group say whether a public issue or pull request in https://github.com/{{repo}} matches it (search open and closed by the test name's distinctive words and the EIP number), with URL and state, or 'not found' with the queries run. Say which failures appeared or disappeared between the two newest runs of each suite. Known context: {{known}}. Result, markdown, at most 32 KB: a table per suite; a summary table EIP, count, matching issue; URLs read.",
      "items": [
        {
          "key": "reth",
          "vars": {
            "client": "reth",
            "repo": "paradigmxyz/reth",
            "known": "the 2026-10-26 glamsterdam runs showed 1626 consume-engine, 3094 consume-enginex and 6 consume-rlp failures, and the 2026-10-27 glamsterdam-quick runs 23/23/6/4; issue 27206 (BAL path hashes code three times) is a performance report"
          }
        },
        {
          "key": "nethermind",
          "vars": {
            "client": "nethermind",
            "repo": "NethermindEth/nethermind",
            "known": "the 2026-10-26 glamsterdam runs showed 239 consume-engine and 239 consume-enginex failures and 0 consume-rlp; the 2026-10-27 glamsterdam-quick runs 4/4/0/0; fixture v8.1.3 changed the undecodable-BAL expectation from -32602 to INVALID"
          }
        }
      ],
      "output": {
        "format": "markdown",
        "maxBytes": 32000
      }
    }
  ],
  "read": [
    "el-requests/geth",
    "el-intrinsic/geth",
    "cl-state/teku",
    "cl-forkchoice/teku",
    "cl-misc/grandine"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "el-bal",
      "el-stategas",
      "el-intrinsic",
      "el-evm",
      "el-transfer",
      "el-requests",
      "cl-state",
      "cl-forkchoice",
      "cl-misc",
      "hive-failures"
    ],
    "afterMinutes": 240
  },
  "finish": false
}
