[
  {
    "issue_id": "CA-ANSI-ONLY",
    "type": "attribution_correction",
    "recommendation": "Add catch2-pr2849-ansi-column-wrap--gpt-5.6-sol--r2 to asserted_runs. 5.6 Sol B 24->25, B runtime 11->12, B unique families 10->11, A+B detections 40->41, A+B unique families 14->15; per-review.csv row B 3->4. Update the publication-correction paragraph and ASSESSMENT.md sentence to say the symmetric re-sweep found the embedded mention in all four Opus reports and one 5.6 Sol report.",
    "evidence": "runs/catch2-pr2849-ansi-column-wrap--gpt-5.6-sol--r2/catch2-pr2849-ansi-column-wrap--gpt-5.6-sol--r2.review.md line 31, inside '## 2. Findings' > '### 1. ANSI sequences at line boundaries are silently discarded': 'A column containing only an escape, such as `ESC[0m`, is also treated as empty and emits nothing.' Line 33 notes that tests do not cover the case 'without visible characters', and the remedy asks for 'escape-only columns' tests. This matches the embedded-mention pattern credited to Opus r1-r4 (lines 72/74/101/80, all within Findings). Keyword sweep of all 20 Catch2 reports found no other unattributed mention. Saved probe assessment/probes/catch.result.json shows base emits 1b5b306d and subject emits nothing for ansi-only input.",
    "confidence": "high",
    "affected_runs": ["catch2-pr2849-ansi-column-wrap--gpt-5.6-sol--r2"]
  },
  {
    "issue_id": "ST-ABI",
    "type": "bucket_change",
    "recommendation": "Move from C to B (subtype test/tooling/docs). Replace the verdict with: 'Confirmed test-portability defect: the new exact-sequence assertion requires lseek, but CPython builds with 64-bit off_t and 32-bit glibc implements lseek64 with the _llseek syscall (and recent 32-bit fstat with statx). The test is gated only on Linux plus working strace, so it fails on 32-bit glibc Linux. Other libc/ABI variants are plausible but unverified. Bounded test defect; no product impact.' Also record tentative runs gpt-6-astra--r2 and gpt-6.1-sol--r3. Effect: B +1 for 5.6 Sol, +1 for Astra, +4 for Opus (B support); C decreases by the same.",
    "evidence": "The C rationale rested on 'No matching architecture/libc runtime ... was verified.' Probe (scratch/abi_probe_notes.txt): in the host's 32-bit GNU libc 2.39, lseek64 disassembles to 'mov $0x8c,%eax' (140 = __NR__llseek; __NR_lseek = 19), and __fstat64_time64 -> __fstatat64_time64 uses 'mov $0x17f,%eax' (383 = statx). Pinned inputs/cpython-pr121143-strace-helper.tar.gz subject/configure.ac:3124-3127 defines _FILE_OFFSET_BITS=64. subject/Lib/test/test_fileio.py:390-395 requires literal 'lseek', and its fstat fallback only matches names containing 'fstat'. strace_helper.requires_strace() gates only on sys.platform=='linux' plus working strace. All six asserted reports name the _llseek mechanism (Opus r1 Finding 2, r2 Finding 2, r3 Finding 3, r4 Finding 2; 5.6 r2 Finding 1; Astra r3 Finding 2). This is consistent with SH-TEST (B: new test fails in a supported optional configuration).",
    "confidence": "medium-high (high on mechanism; bucket depends only on treating 32-bit glibc Linux with strace as a supported test environment, the same standard as SH-TEST)",
    "affected_runs": [
      "cpython-pr121143-strace-helper--claude-opus-5-5--r1",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r2",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r3",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r4",
      "cpython-pr121143-strace-helper--gpt-5.6-sol--r2",
      "cpython-pr121143-strace-helper--gpt-6-astra--r3"
    ]
  },
  {
    "issue_id": "ST-POSIXSPAWN",
    "type": "bucket_change",
    "recommendation": "Remove from C. Preferred (keeps the assessor's family structure): move to B (test/tooling/docs) as a separate family; Opus B +3, C -3. Alternative (coarser granularity): merge into ST-VFORK-COVERAGE as one 'vfork test validity' family; Opus is already 4/4 there, so B is unchanged and Opus C -3. Suggested verdict: 'The strace filter in base was rejected by strace on non-ia64 platforms, so the test always skipped; this change enables it. The parent-level mock of _USE_POSIX_SPAWN does not reach the traced child, which on glibc >= 2.34 uses posix_spawn (clone with CLONE_VFORK). The positive vfork assertion therefore passes without exercising CPython's own vfork path. Bounded test-validity defect.'",
    "evidence": "The C rationale said the claim 'depends on the old strace filter always skipping'. Probes (scratch/abi_probe_notes.txt, scratch/posix_spawn_child.trace): host strace 6.8 rejects the base filter '--trace=clone,clone2,clone3,fork,vfork,exit,exit_group' with 'invalid system call 'clone2'', exit 1, so the base rc check skipTest()s. Subject test_subprocess.py:3447-3452 comments that the list 'fails because not all are supported on all platforms'. Pinned Lib/subprocess.py is identical in base and subject: _use_posix_spawn() returns True for glibc >= 2.24 (lines 701-751), and the posix_spawn branch (1836-1850) is taken for check_call(['/bin/true']) when _HAVE_POSIX_SPAWN_CLOSEFROM holds. On host Python 3.14.7 with glibc 2.39, the traced child shows _USE_POSIX_SPAWN True, CLOSEFROM True, and clone3({flags=CLONE_VM|CLONE_VFORK|...}). This is the same defect type as ST-PYIO (B: new test does not exercise what it claims). Caveat: host Python rather than a pinned build; the relevant subprocess.py logic is identical.",
    "confidence": "high that the C rationale no longer holds; medium on separate-B vs merge placement",
    "affected_runs": [
      "cpython-pr121143-strace-helper--claude-opus-5-5--r1",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r2",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r4"
    ]
  },
  {
    "issue_id": "CA-CTYPE, ST-PYIO, ST-PARSER (and ST-ABI tentatives)",
    "type": "tentative_attribution",
    "recommendation": "Record the missing Uncertain-section mentions as tentative runs. No score effect. CA-CTYPE: gpt-6.1-sol r1. ST-ABI: gpt-6-astra r2 and gpt-6.1-sol r3 (also listed in the ST-ABI proposal). ST-PYIO: claude-opus-5-5 r4. ST-PARSER: claude-opus-5-5 r2.",
    "evidence": "catch2...--gpt-6.1-sol--r1 line 45 (## 3. Uncertain concerns: isdigit on negative char). cpython-pr121143...--gpt-6-astra--r2 line 47 and --gpt-6.1-sol--r3 line 53 (Uncertain: literal openat/lseek vs _llseek). cpython-pr121143...--claude-opus-5-5--r4 line 108 (Uncertain: test_syscalls_read never tests _pyio). cpython-pr121143...--claude-opus-5-5--r2 line 116 (Uncertain: _syscall_regex drops lines whose args contain ')').",
    "confidence": "high",
    "affected_runs": [
      "catch2-pr2849-ansi-column-wrap--gpt-6.1-sol--r1",
      "cpython-pr121143-strace-helper--gpt-6-astra--r2",
      "cpython-pr121143-strace-helper--gpt-6.1-sol--r3",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r4",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r2"
    ]
  },
  {
    "issue_id": "DJ-PARTITION",
    "type": "verdict_text",
    "recommendation": "Append to the verdict: 'The disagreement is observable when WRITE_PARTITION_COLUMNS keeps the partition column inside the JSON object; otherwise partition columns are excluded from the payload, the directory value is the only copy, and its precision loss is pre-existing.' No attribution change. Optionally disclose the A->B sensitivity (A 12/13/14/15/15).",
    "evidence": "Pinned subject extension/json/json_functions/copy_json.cpp:191-196 excludes partition columns from the packed JSON unless write_partition_columns is set; lines 214-220 keep them only as separate routing columns that are not written. The reports state the prerequisite themselves, e.g. duckdb-pr23329...--claude-opus-5-5--r1 lines 46-55, --gpt-6-astra--r1 line 14, --gpt-6.1-sol--r3 line 17, --gpt-5.6-sol--r1 line 16.",
    "confidence": "high (text); low priority for any bucket change",
    "affected_runs": []
  },
  {
    "issue_id": "report: methodology / limitations",
    "type": "report_wording",
    "recommendation": "Disclose the adjudicator identity and the critic identity. Suggested text: 'Adjudication was performed by one evaluator, GPT-6-Astra at high reasoning, which is also one of the five compared models; it was unblinded to model labels. An independent critique by Claude Opus 5.5 (also a compared model) checked attribution and bucket decisions; accepted changes are listed below. Neither reviewer is neutral, so treat close differences accordingly.'",
    "evidence": "ASSESSMENT.md and the published report say only 'adjudicated by one evaluator' and 'performed by one evaluator', and use first person ('I would block landing'). The delegation states that the assessment was adjudicated by GPT-6-Astra high. Spot checks found no Astra-favouring pattern (see critique section 6), but the conflict is material for a cross-model comparison.",
    "confidence": "high",
    "affected_runs": []
  },
  {
    "issue_id": "report: 'Why GPT-6-Sol looks competitive here' paragraph",
    "type": "report_wording",
    "recommendation": "Replace with: 'Four serious families were found by essentially every model (16 of 6 Sol's 17 A detections). Differences in A come only from two narrow-trigger families: macro-generated generics (GPT models) and the strace probe import failure (Opus). On the Ferricode change, 6 Sol did not report the terminal-browser conflict or background-job suspension in any run.'",
    "evidence": "The current text refers to 'the two hand-picked anchor changes' and 'new runs', but there are four hand-picked changes and no earlier comparison is described. It lists the Argon2 residue concern (SA-RESIDUE, a C family that is neither credit nor penalty) as 'missed in all four new runs', but saltybox-v2-engine-initial--gpt-6-sol--r4 raised it tentatively (ledger tentative_runs). The heading's premise conflicts with 6 Sol having the second-lowest A total.",
    "confidence": "high",
    "affected_runs": ["saltybox-v2-engine-initial--gpt-6-sol--r4"]
  },
  {
    "issue_id": "report: 'Bucket choices can reverse a narrow lead' sensitivity table",
    "type": "report_sensitivity",
    "recommendation": "Add these rows: 'Treat strace probe import failure (ST-PROBE) as bounded B: A 16/17/18/18/16'; 'Treat both narrow-trigger A families (ST-PROBE, RA-MACRO) as B: A 16/16/16/15/16'; 'Treat shelve validation order (SH-INIT) as bounded B instead of A: A unchanged, B runtime 16/17/17/21/19 (6.1 Sol would lead runtime)'. Add the sentence: 'The serious-bug ordering is not informative in this sample.'",
    "evidence": "Computed from the ledger by scratch/recompute_scenarios.py (output in scratch/recompute_scenarios.out), with the C1 correction applied. ST-PROBE is the only test-infrastructure family in A and the only single-model A family. RA-MACRO requires a macro_rules! defined outside the impl whose expansion names the impl generic. The existing table shows only A-promotion rows (SH-INIT->A, SA-KDF-COST->A); SH-INIT->A is the least plausible alternative for an invalid-argument side effect.",
    "confidence": "medium (these are judgment-call sensitivities, not errors)",
    "affected_runs": [
      "cpython-pr121143-strace-helper--claude-opus-5-5--r1",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r2",
      "cpython-pr121143-strace-helper--claude-opus-5-5--r3"
    ]
  },
  {
    "issue_id": "report: Opus macro tentative mentions",
    "type": "report_wording",
    "recommendation": "Where the report says 'Opus raised the macro issue tentatively in three runs', append: '; its fourth run examined macro calls and concluded, incorrectly, that they could not produce invalid output.'",
    "evidence": "rust-analyzer-pr22519-trait-sig-generics--claude-opus-5-5--r2 Uncertain concerns (around line 64): 'Consts, type aliases and macro calls are counted over their whole range. This can keep more parameters than needed, but never produces invalid output.' The report repeats the Opus tentative 3/4 note three times without this counterweight.",
    "confidence": "high",
    "affected_runs": ["rust-analyzer-pr22519-trait-sig-generics--claude-opus-5-5--r2"]
  },
  {
    "issue_id": "ST-VFORK-COVERAGE",
    "type": "verdict_text",
    "recommendation": "Add: 'Base always skipped this test because its strace filter was rejected on non-ia64 platforms, so the removed !use_vfork case provided nominal rather than exercised coverage; that case would fail under the posix_spawn behaviour described in ST-POSIXSPAWN.' Keep bucket B (valid review feedback). If ST-POSIXSPAWN is merged here, use the merged verdict instead.",
    "evidence": "Host strace 6.8 rejects the base filter (exit 1). In the traced child, setting _USE_VFORK=False does not prevent the posix_spawn path from using CLONE_VFORK (scratch/posix_spawn_child.trace), so assertNotRegex('(?i)vfork') would fail for the removed case.",
    "confidence": "medium",
    "affected_runs": []
  }
]
