{
  "schema_version": 3,
  "as_of": "2026-11-01T01:06:21Z",
  "coverage": {
    "cutoff": "2026-10-31T00:00:00Z",
    "sessions": 267,
    "max_created": "2026-10-29",
    "format_versions": {
      "0.3.0": 36,
      "0.4.1": 76,
      "0.5.0": 76,
      "0.5.1": 79
    },
    "sessions_resolved_by_alias": 128
  },
  "projects": [
    {
      "key": "trace",
      "name": "TRACE",
      "url": "https://github.com/Thru-Echoes/TRACE",
      "sessions": 137,
      "open_sessions": 10,
      "first": "2026-03-18",
      "last": "2026-10-14",
      "events_by_type": {
        "annotation": 214,
        "contribution": 266,
        "decision": 172,
        "state_change": 11,
        "tool_call": 32
      },
      "decisions": 172,
      "decisions_by_disposition": {
        "accepted": 104,
        "proposed": 49,
        "rejected": 4,
        "revised": 15
      },
      "proposed_by": {
        "ai": 138,
        "human": 34
      },
      "resolved_by": {
        "ai": 5,
        "human": 118,
        "not_recorded": 49
      },
      "rejected_or_revised": 19,
      "agent_proposals": 138,
      "agent_proposals_rejected_or_revised": 17,
      "contributions": 266,
      "contributions_by_pair": {
        "ai→ai": 24,
        "collaborative→ai": 51,
        "collaborative→human": 3,
        "human→ai": 183,
        "human→collaborative": 3,
        "human→human": 2
      },
      "corrections": 31,
      "discoveries": 85
    },
    {
      "key": "proofpress",
      "name": "proofpress",
      "url": "https://github.com/chenmingtang830/proofpress",
      "sessions": 5,
      "open_sessions": 0,
      "first": "2026-09-30",
      "last": "2026-10-15",
      "events_by_type": {
        "annotation": 11,
        "contribution": 11,
        "decision": 6,
        "state_change": 1,
        "tool_call": 2
      },
      "decisions": 6,
      "decisions_by_disposition": {
        "accepted": 2,
        "proposed": 3,
        "revised": 1
      },
      "proposed_by": {
        "ai": 5,
        "human": 1
      },
      "resolved_by": {
        "human": 3,
        "not_recorded": 3
      },
      "rejected_or_revised": 1,
      "agent_proposals": 5,
      "agent_proposals_rejected_or_revised": 1,
      "contributions": 11,
      "contributions_by_pair": {
        "ai→ai": 1,
        "human→ai": 10
      },
      "corrections": 1,
      "discoveries": 5
    },
    {
      "key": "proofpress-experiments",
      "name": "proofpress experiments",
      "url": null,
      "sessions": 45,
      "open_sessions": 4,
      "first": "2026-09-23",
      "last": "2026-10-29",
      "events_by_type": {
        "annotation": 179,
        "contribution": 136,
        "decision": 164,
        "state_change": 5,
        "tool_call": 13
      },
      "decisions": 164,
      "decisions_by_disposition": {
        "accepted": 113,
        "proposed": 37,
        "rejected": 2,
        "revised": 12
      },
      "proposed_by": {
        "ai": 118,
        "human": 46
      },
      "resolved_by": {
        "human": 127,
        "not_recorded": 37
      },
      "rejected_or_revised": 14,
      "agent_proposals": 118,
      "agent_proposals_rejected_or_revised": 10,
      "contributions": 136,
      "contributions_by_pair": {
        "ai→ai": 11,
        "collaborative→ai": 52,
        "human→ai": 72,
        "human→collaborative": 1
      },
      "corrections": 18,
      "discoveries": 91
    },
    {
      "key": "coeqwal",
      "name": "COEQWAL",
      "url": null,
      "sessions": 56,
      "open_sessions": 2,
      "first": "2026-06-05",
      "last": "2026-10-29",
      "events_by_type": {
        "annotation": 104,
        "contribution": 125,
        "decision": 54,
        "state_change": 4,
        "tool_call": 1
      },
      "decisions": 54,
      "decisions_by_disposition": {
        "accepted": 46,
        "proposed": 5,
        "revised": 3
      },
      "proposed_by": {
        "ai": 46,
        "human": 8
      },
      "resolved_by": {
        "human": 49,
        "not_recorded": 5
      },
      "rejected_or_revised": 3,
      "agent_proposals": 46,
      "agent_proposals_rejected_or_revised": 3,
      "contributions": 125,
      "contributions_by_pair": {
        "ai→ai": 3,
        "collaborative→ai": 24,
        "human→ai": 98
      },
      "corrections": 13,
      "discoveries": 53
    },
    {
      "key": "rsi-exam",
      "name": "RSI-Exam provenance study",
      "url": null,
      "sessions": 24,
      "open_sessions": 2,
      "first": "2026-09-03",
      "last": "2026-09-10",
      "events_by_type": {
        "annotation": 65,
        "contribution": 46,
        "decision": 34,
        "state_change": 2
      },
      "decisions": 34,
      "decisions_by_disposition": {
        "accepted": 18,
        "proposed": 15,
        "rejected": 1
      },
      "proposed_by": {
        "ai": 28,
        "human": 6
      },
      "resolved_by": {
        "human": 19,
        "not_recorded": 15
      },
      "rejected_or_revised": 1,
      "agent_proposals": 28,
      "agent_proposals_rejected_or_revised": 1,
      "contributions": 46,
      "contributions_by_pair": {
        "ai→ai": 1,
        "collaborative→ai": 5,
        "human→ai": 40
      },
      "corrections": 5,
      "discoveries": 49
    }
  ],
  "totals": {
    "key": "all",
    "name": "All projects",
    "url": null,
    "sessions": 267,
    "open_sessions": 18,
    "first": "2026-03-18",
    "last": "2026-10-29",
    "events_by_type": {
      "annotation": 573,
      "contribution": 584,
      "decision": 430,
      "state_change": 23,
      "tool_call": 48
    },
    "decisions": 430,
    "decisions_by_disposition": {
      "accepted": 283,
      "proposed": 109,
      "rejected": 7,
      "revised": 31
    },
    "proposed_by": {
      "ai": 335,
      "human": 95
    },
    "resolved_by": {
      "ai": 5,
      "human": 316,
      "not_recorded": 109
    },
    "rejected_or_revised": 38,
    "agent_proposals": 335,
    "agent_proposals_rejected_or_revised": 32,
    "contributions": 584,
    "contributions_by_pair": {
      "ai→ai": 40,
      "collaborative→ai": 132,
      "collaborative→human": 3,
      "human→ai": 403,
      "human→collaborative": 4,
      "human→human": 2
    },
    "corrections": 68,
    "discoveries": 283
  },
  "weekly": [
    {
      "week": "2026-W12",
      "counts": {
        "trace": 4,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W13",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W14",
      "counts": {
        "trace": 4,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W15",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W16",
      "counts": {
        "trace": 9,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W17",
      "counts": {
        "trace": 7,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W18",
      "counts": {
        "trace": 9,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W19",
      "counts": {
        "trace": 1,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W20",
      "counts": {
        "trace": 3,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W21",
      "counts": {
        "trace": 4,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W22",
      "counts": {
        "trace": 2,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W23",
      "counts": {
        "trace": 3,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 1,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W24",
      "counts": {
        "trace": 9,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 1,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W25",
      "counts": {
        "trace": 9,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 2,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W26",
      "counts": {
        "trace": 3,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W27",
      "counts": {
        "trace": 3,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 10,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W28",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 6,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W29",
      "counts": {
        "trace": 2,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 5,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W30",
      "counts": {
        "trace": 12,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 8,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W31",
      "counts": {
        "trace": 10,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 2,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W32",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W33",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W34",
      "counts": {
        "trace": 11,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W35",
      "counts": {
        "trace": 8,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 6,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W36",
      "counts": {
        "trace": 12,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 8,
        "rsi-exam": 13
      }
    },
    {
      "week": "2026-W37",
      "counts": {
        "trace": 1,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 1,
        "rsi-exam": 11
      }
    },
    {
      "week": "2026-W38",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 0,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W39",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 11,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W40",
      "counts": {
        "trace": 0,
        "proofpress": 1,
        "proofpress-experiments": 6,
        "coeqwal": 1,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W41",
      "counts": {
        "trace": 4,
        "proofpress": 1,
        "proofpress-experiments": 5,
        "coeqwal": 2,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W42",
      "counts": {
        "trace": 7,
        "proofpress": 3,
        "proofpress-experiments": 8,
        "coeqwal": 2,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W43",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 8,
        "coeqwal": 0,
        "rsi-exam": 0
      }
    },
    {
      "week": "2026-W44",
      "counts": {
        "trace": 0,
        "proofpress": 0,
        "proofpress-experiments": 7,
        "coeqwal": 1,
        "rsi-exam": 0
      }
    }
  ],
  "excerpts": [
    {
      "slug": "one-pr-held-to-a-clean-standard",
      "key_event_id": "evt_002",
      "session_id": "trace_20261014_5d3052",
      "project": "proofpress",
      "project_name": "proofpress",
      "month": "2026-10",
      "title": "One PR, held to a clean standard",
      "nodes": [
        {
          "id": "evt_002",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "revised",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "ProofPress context-lineage fix design: one PR off origin/main (fix/context-lineage).",
          "text": "Agent proposed: ProofPress context-lineage fix design: one PR off origin/main (fix/context-lineage). Add a lineage resolver (revision_of, reproposal_of, supersession edges; rank usable > pending > sent back; latest wins) used by context_v2, traverse_graph_v2 (disclose_v1 inherits), and receipt_v2. [...]",
          "resolution": "Human kept the context-lineage design but rejected splitting the follow-ups: one PR must also fix the shadowed admission in review_v2 and the uneven disclosure filtering in receipt_v2 / traverse_graph_v2, then go through inline adversarial passes and gpt-6.1-sol passes before it is called good to go.",
          "url": null
        },
        {
          "id": "evt_003",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "Implementation plan for the ProofPress context-lineage PR (fix/context-lineage off origin/main 4bd2047): 5 TDD tasks (resolver + context_v2; [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_004",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "Reference patch for the context-lineage fix, built and verified on a throwaway detached copy of origin/main 4bd2047 (kernel resolver, [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_005",
          "kind": "decision",
          "proposed_by": "human",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Single ProofPress PR (fix/context-lineage): the context-lineage plan plus (a) review decisions that would be silently shadowed are refused, and (b) [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_006",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "ProofPress branch fix/context-lineage (9 commits on origin/main 4bd2047, not pushed): lineage-following blocked entries, fork guard, [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_008",
          "kind": "correction",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "AI reported pyright as acceptable because the error count on touched files matched main (33 errors in operations.py, events.py, control_plane.py, [...]",
          "text": "Correction: AI reported pyright as acceptable because the error count on touched files matched main (33 errors in operations.py, events.py, control_plane.py, test_event_store.py; 31 in basic mode). The operator standard is pyright-clean on every modified file, so matching a dirty baseline is not a pass. Human flagged it; the errors are being fixed in the same PR before the confirmation review.",
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_003",
          "target": "evt_002",
          "relation": "builds_on"
        },
        {
          "source": "evt_004",
          "target": "evt_002",
          "relation": "builds_on"
        },
        {
          "source": "evt_005",
          "target": "evt_002",
          "relation": "revises"
        },
        {
          "source": "evt_006",
          "target": "evt_005",
          "relation": "builds_on"
        },
        {
          "source": "evt_008",
          "target": "evt_006",
          "relation": "corrects"
        }
      ],
      "unshown_links": 0,
      "featured": true,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "too-early-to-standardize-verification",
      "key_event_id": "evt_012",
      "session_id": "trace_20260403_6ae23d",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-04",
      "title": "Too early to standardize verification",
      "nodes": [
        {
          "id": "evt_012",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "rejected",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Add structured verification event type to TRACE (trace_log_verification with method, sample_size, metric, result, ground_truth_source fields) to [...]",
          "text": "Agent proposed: Add structured verification event type to TRACE (trace_log_verification with method, sample_size, metric, result, ground_truth_source fields) to directly map to rubric dimension E\nRationale: Initial analysis identified that TRACE captures evaluation provenance (E) only through free-text annotations, lacking structured verification fields. AI proposed adding a dedicated verification event type to strengthen the E1-E2 mapping.",
          "resolution": "Premature standardization for v1 of a domain-agnostic standard. What constitutes 'ground truth' and 'verification' varies too widely across domains (remote sensing vs genomics vs policy analysis) for a v1 standard to prescribe structured fields. Annotations capture verification narratively and flexibly. v1 should be minimal-and-correct; structured verification templates are future work for domain-specific extensions. [...]",
          "url": null
        }
      ],
      "edges": [],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "a-question-that-would-have-primed-respondents",
      "key_event_id": "evt_011",
      "session_id": "trace_20260403_6ae23d",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-04",
      "title": "A question that would have primed respondents",
      "nodes": [
        {
          "id": "evt_011",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "rejected",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Add Q4b follow-up question asking respondents whether they document the activities they checked in Q4 (doing-vs-documenting gap measurement)",
          "text": "Agent proposed: Add Q4b follow-up question asking respondents whether they document the activities they checked in Q4 (doing-vs-documenting gap measurement)\nRationale: Initial analysis identified that the survey measures activities (doing) while the rubric measures documentation quality. AI proposed adding a Q4b to directly measure the doing-vs-documenting gap within the survey instrument.",
          "resolution": "Adding Q4b would undermine the survey's deliberate anti-priming design. The v2 survey was carefully constructed to avoid revealing the documentation hypothesis until the end screen (neutralized preamble, topic reveal after completion). Asking 'do you document this?' mid-survey would prime respondents, contaminating Q6-Q8 with social desirability bias. The doing-vs-documenting gap is measured ACROSS instruments (survey=practice, audit=documentation), which is methodologically cleaner than within-survey self-report. [...]",
          "url": null
        }
      ],
      "edges": [],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "megatonnes-are-not-metric-tons",
      "key_event_id": "evt_006",
      "session_id": "trace_20261007_d3cb05",
      "project": "proofpress-experiments",
      "project_name": "proofpress experiments",
      "month": "2026-10",
      "title": "Megatonnes are not metric tons",
      "nodes": [
        {
          "id": "evt_002",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "proposed",
          "resolved_by": "not_recorded",
          "direction": null,
          "execution": null,
          "headline": "Replace the first Phase 1 key (report X's reduction targets) with a scope key: for report X, 2024 Scope 1, Scope 2 market-based, Scope 2 [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_004",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "revised",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Revise the scope-key proposal so that units, magnitude and patchy reporting are part of the key and the score.",
          "text": null,
          "resolution": "Accepted on one condition: the target and base comparisons (the reduction-target key, its sheet, builder, and scoring) must remain available to revisit later. The scope key is therefore added alongside the target key, not in place of it; [...]",
          "url": null
        },
        {
          "id": "evt_006",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Stop lowercasing units before comparing them.",
          "text": "Agent proposed: Stop lowercasing units before comparing them. Both the key builder and the scorer read a unit against an explicit table of known spellings. Case is kept where it carries meaning (Mt is megatonnes, kt is kilotonnes, Gt is gigatonnes); case is ignored only in spelled-out words (\"Metric Tons\", \"Million\", \"tonnes\"). [...]\nRationale: Lowercasing was there so that formatting differences (\"Tonnes\" against \"tonnes\") would not count as wrong answers, a problem the toy runs ran into. For units, though, case is part of the meaning: in standard SI prefixes, M is mega and m is milli. Folding case makes megatonnes and metric tons look alike, so magnitude errors can neither be caught nor counted. [...]\nHuman accepted: Operator: \"i accept this revision. implement this.\"",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_008",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "collaborative",
          "execution": "ai",
          "headline": "Scope key for Phase 1: unit reading into tonnes CO2e (case-aware, ambiguous units refused), scope key models with a computed total check and [...]",
          "text": null,
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_004",
          "target": "evt_002",
          "relation": "revises"
        },
        {
          "source": "evt_006",
          "target": "evt_004",
          "relation": "revises"
        },
        {
          "source": "evt_008",
          "target": "evt_004",
          "relation": "builds_on"
        },
        {
          "source": "evt_008",
          "target": "evt_006",
          "relation": "builds_on"
        }
      ],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "a-required-final-gate-caught-an-unlocked-hot-path",
      "key_event_id": "evt_036",
      "session_id": "trace_20260518_5dd958",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-05",
      "title": "A required final gate caught an unlocked hot path",
      "nodes": [
        {
          "id": "evt_028",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "[...] Wrapped all 5 knowledge-store RMW spans in extensions/learn/__init__.py [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_036",
          "kind": "correction",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "The user-mandated 3-set final gate caught a real defect in my P9(b) work.",
          "text": "Correction: The user-mandated 3-set final gate caught a real defect in my P9(b) work. evt_028 claimed \"wrapped all 5 knowledge-store RMW spans\". WRONG - there are 6 RMW spans; `_recall_hook` (extensions/learn/__init__.py:~97-119) - the HIGHEST-FREQUENCY path (core auto-recall, invoked from server.py on session-start/decision-propose/contribution) - was left UNLOCKED while its tool twin `trace_learn_recall` and the other 4 spans were locked. Independently corroborated by 2 of 3 final reviewers (R1 correctness CONDITIONAL + R3 reliability CONDITIONAL); R3 demonstrated a deterministic lost-update (unlocked _recall_hook save clobbers a concurrently-committed locked add → new learning permanently lost). [...]",
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_036",
          "target": "evt_028",
          "relation": "corrects"
        }
      ],
      "unshown_links": 2,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "refusing-a-record-that-reports-itself-complete",
      "key_event_id": "evt_006",
      "session_id": "trace_20260908_f7429b",
      "project": "rsi-exam",
      "project_name": "RSI-Exam provenance study",
      "month": "2026-09",
      "title": "Refusing a record that reports itself complete",
      "nodes": [
        {
          "id": "evt_006",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "rejected",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Rejected alternative, recorded for deliberation capture and left for the operator to mark: when the experiment log declares a parent that has no [...]",
          "text": "Agent proposed: Rejected alternative, recorded for deliberation capture and left for the operator to mark: when the experiment log declares a parent that has no snapshot, drop that parent from parent_ids silently so the child becomes the lineage root. This would let the Opus probe rollout build a record with zero schema change and would pass the verifier's one-root rule as it stands.\nRationale: Considered and set aside in favour of the unsnapshotted_parent_ids field. Dropping the parent produces a record that reports itself complete while omitting lineage the log states, which is exactly the fail-open behaviour removed from the producer in pull request #19 for unrecognised snapshot directories; reintroducing the same class of silent omission one day later, in the lineage the record exists to carry, would undercut the fail-loud discipline the repository is built on. [...]",
          "resolution": "Operator's words on 2026-09-08 [...]: \"i mean i accept your suggestions. so, i accept 1 and 2 and reject 3.\" [...] Rejected because it would produce a record that reports itself complete while omitting lineage the log plainly states, the same fail-open pattern removed from the producer in pull request #19.",
          "url": null
        }
      ],
      "edges": [],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "the-reviewer-should-not-know-the-answer-in-advance",
      "key_event_id": "evt_024",
      "session_id": "trace_20261020_5f038f",
      "project": "proofpress-experiments",
      "project_name": "proofpress experiments",
      "month": "2026-10",
      "title": "The reviewer should not know the answer in advance",
      "nodes": [
        {
          "id": "evt_020",
          "kind": "decision",
          "proposed_by": "human",
          "disposition": "proposed",
          "resolved_by": "not_recorded",
          "direction": null,
          "execution": null,
          "headline": "No part of the process, the AI reviewer included, should know the final deliverable (the closing spreadsheet) before the last step, so every arm [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_024",
          "kind": "decision",
          "proposed_by": "human",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Give the ProofPress side's reviewer as few deterministic rules as possible: like a human reviewer, it decides on its own whether and how far to [...]",
          "text": "Human proposed: Give the ProofPress side's reviewer as few deterministic rules as possible: like a human reviewer, it decides on its own whether and how far to verify each finding, and whether to approve, send back, or reject it, with no rules for specific situations such as chart readings. Record exactly what the reviewer is told, and consider a matching sentence for the Control side's handoff note.\nRationale: Operator's words: \"there should be less deterministic rules for the reviewer / verifier and it should mainly decide on its own if it wants to verify the claims or not ... it is still listing out so much of what it is supposed to do and even how to handle specific situations (like the chart reading thing). but that is in itself hand holding and will bias the proofpress side ... [...]\nHuman accepted: Operator accepted the short reviewer text (role, what each action does, decide every finding before finishing, the safety line; no verify or careful, no rules on figures, years, charts, or wording; no per-figure verdicts) and settled: the reviewer sees, word for word, the task the session under review was given, never a later step's; [...]",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_026",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "Reviewer setup v4 and session texts v3, built and tested: the reviewer gets its role, what each action does, and the reviewed session's task word for [...]",
          "text": null,
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_024",
          "target": "evt_020",
          "relation": "revises"
        },
        {
          "source": "evt_026",
          "target": "evt_020",
          "relation": "builds_on"
        },
        {
          "source": "evt_026",
          "target": "evt_024",
          "relation": "builds_on"
        }
      ],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "reversing-a-scenario-rule-after-building-it",
      "key_event_id": "evt_013",
      "session_id": "trace_20261013_efe275",
      "project": "coeqwal",
      "project_name": "COEQWAL",
      "month": "2026-10",
      "title": "Reversing a scenario rule after building it",
      "nodes": [
        {
          "id": "evt_007",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Scenario selection follows [client lead]'s written rule site-wide: current operations selected by default, the last selected scenario cannot be [...]",
          "text": "Agent proposed: Scenario selection follows [client lead]'s written rule site-wide: current operations selected by default, the last selected scenario cannot be unselected, and Data in Depth draws exactly the sidebar selection (its built-in current-operations reference is removed). [...]",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_013",
          "kind": "decision",
          "proposed_by": "human",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Scenario selection rule, revised: no \"current operations always on\".",
          "text": "Human proposed: Scenario selection rule, revised: no \"current operations always on\". Data in Depth behaves like the other tools: with no scenario selected it shows the select-a-scenario prompt, and it compares only the scenarios the user selected (no forced current-operations reference).\nRationale: This reverses the Rule A part of evt_007 (built locally on feature/current-ops-always-on, never pushed). On dev and on #416, Data in Depth also departs from the other tools: it always adds current operations as a reference, even with nothing selected, and never shows the prompt.\nHuman accepted: Oliver stated this as the correct behavior; it replaces the Rule A (\"Build A now\") part of evt_007.",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_014",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "PR #417 into dev: Data in Depth shows the select-a-scenario prompt and compares only the selected scenarios; [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_015",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "Exhaustive Data in Depth live sweep of PR #417's build: 27 independent per-variable verifier agents (every location, data view, chart style, compare [...]",
          "text": null,
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_013",
          "target": "evt_007",
          "relation": "revises"
        },
        {
          "source": "evt_014",
          "target": "evt_013",
          "relation": "builds_on"
        },
        {
          "source": "evt_015",
          "target": "evt_013",
          "relation": "builds_on"
        }
      ],
      "unshown_links": 1,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "tests-that-could-not-fail",
      "key_event_id": "evt_005",
      "session_id": "trace_20260831_83f280",
      "project": "coeqwal",
      "project_name": "COEQWAL",
      "month": "2026-08",
      "title": "Tests that could not fail",
      "nodes": [
        {
          "id": "evt_005",
          "kind": "correction",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "A high-effort code review of the Task 6 diff caught that my two new Stats-capture assertions were VACUOUS: `drawer.locator(\"svg\").first()` matches [...]",
          "text": "Correction: A high-effort code review of the Task 6 diff caught that my two new Stats-capture assertions were VACUOUS: `drawer.locator(\"svg\").first()` matches the share drawer's own MUI close icon, and stageShareItem deliberately swallows capture errors and stages the card anyway, so a totally failed capture would still have passed both tests. The core claim of the PR was untested. Fixed by asserting the capture's own role=\"img\" thumbnail (SvgThumbnail sets role + aria-label from the figure title), then PROVED the fix by temporarily making the compose branch throw: both assertions went red, and green again on restore. [...]",
          "resolution": null,
          "url": null
        },
        {
          "id": "ext-1",
          "kind": "external",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "coeqwal-website pull request 335",
          "text": null,
          "resolution": null,
          "url": "https://github.com/berkeley-gif/coeqwal-website/pull/335"
        }
      ],
      "edges": [
        {
          "source": "evt_005",
          "target": "ext-1",
          "relation": "corrects"
        }
      ],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "measure-before-choosing-a-retrieval-default",
      "key_event_id": "evt_002",
      "session_id": "trace_20261008_147087",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-10",
      "title": "Measure before choosing a retrieval default",
      "nodes": [
        {
          "id": "evt_002",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "[...] move the embedding default_threshold from EmbeddingBackend onto each provider [...]",
          "text": "Human accepted: Accepted with an added requirement: before implementing, critically investigate why local embedding scores are so low, whether a smaller or larger offline embedding model is right, and how topic/semantic matching is done in comparable systems; calibration values must come from that investigation.",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_005",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Revise items 1 and 3 of the accepted recall plan: replace absolute cosine thresholding with hybrid ranking.",
          "text": "Rationale: Measured on this project's own store (352 learnings; 100 session-description queries with relevant = learnings extracted from that session; details in evt_004 and notes/2026-10-12-learn-recall-investigation.md). No absolute cosine cutoff separates relevant from irrelevant for any model (best reachable F1 0.10 to 0.16), and random-pair baselines differ by model (0.21 to 0.68), so a per-provider constant would still be wrong on realistic queries. [...]\nHuman accepted: Chose \"Hybrid ranking + retrieval-32M model\" over keeping the 8M model or the threshold-only plan.",
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_007",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "proposed",
          "resolved_by": "not_recorded",
          "direction": null,
          "execution": null,
          "headline": "Small-store recall (fewer than 8 learnings) returns every learning up to the limit, ranked by the same hybrid fusion as large stores with ties broken [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_009",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "proposed",
          "resolved_by": "not_recorded",
          "direction": null,
          "execution": null,
          "headline": "Decay no longer enters the ordering of candidates with different evidence.",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_010",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "Default ranking is hybrid only when a transformer embedding provider (fastembed, default model snowflake-arctic-embed-s with its query prefix) is [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_011",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "PR #80 \"feat(learn): hybrid BM25 + embedding recall ranking with a relative floor, decay as tie-breaker, transformer-or-BM25 selection\" (branch [...]",
          "text": null,
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_005",
          "target": "evt_002",
          "relation": "revises"
        },
        {
          "source": "evt_007",
          "target": "evt_005",
          "relation": "revises"
        },
        {
          "source": "evt_009",
          "target": "evt_005",
          "relation": "revises"
        },
        {
          "source": "evt_010",
          "target": "evt_005",
          "relation": "revises"
        },
        {
          "source": "evt_011",
          "target": "evt_002",
          "relation": "builds_on"
        },
        {
          "source": "evt_011",
          "target": "evt_005",
          "relation": "builds_on"
        },
        {
          "source": "evt_011",
          "target": "evt_007",
          "relation": "builds_on"
        },
        {
          "source": "evt_011",
          "target": "evt_009",
          "relation": "builds_on"
        },
        {
          "source": "evt_011",
          "target": "evt_010",
          "relation": "builds_on"
        }
      ],
      "unshown_links": 1,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "the-vague-cases-are-the-studys-subject",
      "key_event_id": "evt_010",
      "session_id": "trace_20260320_c31df4",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-03",
      "title": "The vague cases are the study's subject",
      "nodes": [
        {
          "id": "evt_005",
          "kind": "decision",
          "proposed_by": "ai",
          "disposition": "accepted",
          "resolved_by": "human",
          "direction": null,
          "execution": null,
          "headline": "LLM screening implementation plan: 3-tier batched processing (Tier 1: 479 ambiguous records, Tier 2: 1,073 weak-env records, Tier 3: 1,788 strong-env [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_010",
          "kind": "correction",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "AI incorrectly excluded/downgraded 3 papers ([1187], [1194], [294]) during intensive audit because their abstracts didn't name specific LLM models - [...]",
          "text": "Correction: AI incorrectly excluded/downgraded 3 papers ([1187], [1194], [294]) during intensive audit because their abstracts didn't name specific LLM models - only saying 'artificial intelligence' or 'chatbot'. User corrected: papers that use AI but DON'T clearly document which model or how it was used are EXACTLY the kind of papers this study needs. The vague AI acknowledgment pattern (scoring 0 on A1 Model Named) is itself the phenomenon the TRACE paper studies. Inclusion criteria should be: if the paper appears to use AI/LLM as a tool in environmental science, include it even if the specific model isn't named - the poor documentation is a data point, not an exclusion reason. This reframes the screening: the question is 'did they use AI for env sci?' not 'can I confirm they used an LLM specifically?'",
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_010",
          "target": "evt_005",
          "relation": "corrects"
        }
      ],
      "unshown_links": 0,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    },
    {
      "slug": "check-that-the-health-checker-catches-broken-setups",
      "key_event_id": "evt_005",
      "session_id": "trace_20260821_6bebf5",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-08",
      "title": "Check that the health checker catches broken setups",
      "nodes": [
        {
          "id": "evt_003",
          "kind": "contribution",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": "human",
          "execution": "ai",
          "headline": "Implemented the conformance layer and the `trace-mcp doctor` CLI [...]",
          "text": null,
          "resolution": null,
          "url": null
        },
        {
          "id": "evt_005",
          "kind": "correction",
          "proposed_by": null,
          "disposition": null,
          "resolved_by": null,
          "direction": null,
          "execution": null,
          "headline": "A Tier-1 code-review pass over the branch found nine real defects in the conformance probes, all false-negatives - the checker blessing deployments [...]",
          "text": "Correction: A Tier-1 code-review pass over the branch found nine real defects in the conformance probes, all false-negatives - the checker blessing deployments that are actually broken, which matters more than usual because INV-11 makes a clean doctor report load-bearing. The most serious: the hook checks flattened settings.json and discarded the host event, so moving the whole PostToolUse registration block to PreToolUse still reported ok - the decision-audit hook could never fire, which is the very defect INV-11 was minted for. Fixed by deriving the required event per hook from the installer's own settings_template.json, the same derive-don't-restate rule the rest of the module follows. [...]",
          "resolution": null,
          "url": null
        }
      ],
      "edges": [
        {
          "source": "evt_005",
          "target": "evt_003",
          "relation": "corrects"
        }
      ],
      "unshown_links": 1,
      "featured": false,
      "approved_on": "2026-11-01",
      "approved_by": "owner-delegated panel (2 Claude + 3 gpt-6.1-sol selection passes), revised after owner review: trivial chains dropped, replacements and linked-record excerpts chosen on owner instruction (2026-11-01)"
    }
  ]
}
