{
  "schema_version": 2,
  "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": [
    {
      "event_id": "evt_001",
      "related_event_ids": [
        "evt_002"
      ],
      "session_id": "trace_20261027_8a8cff",
      "project": "proofpress-experiments",
      "project_name": "proofpress experiments",
      "month": "2026-10",
      "title": "Shouldn't it just be the one-liner?",
      "text": "Agent proposed: Next 1 from the 2026-10-27 handoff: replace the per-session shutil.copyfile of each report PDF in src/ppx/runcard.py with a clone-or-copy helper: a copy-on-write clone through clonefile (macOS, ctypes) or the FICLONE ioctl (Linux btrfs/XFS), falling back to shutil.copyfile on any OSError; [...]\nRationale: Oliver's words: \"is it really necessary to do what you recommended and i just agreed to? shouldnt it just be super simple and that one liner?\" The ctypes route adds platform code and constants that can be wrong (the spike's first getattrlist constants were) for no gain over cp's built-in fallback; one process per report per session build is negligible.\nHuman accepted: Oliver's mid-turn message directed the simpler form; the AI agreed and built it: clone_or_copy in src/ppx/runcard.py (one cp call, -c on macOS, --reflink=auto elsewhere, check=True) at the two PDF copy sites (a sample's reports/<slug>.pdf and the report.pdf [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_010",
      "related_event_ids": [],
      "session_id": "trace_20260320_c31df4",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-03",
      "title": "The vague cases are the study's subject",
      "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?'",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_006",
      "related_event_ids": [],
      "session_id": "trace_20261007_d3cb05",
      "project": "proofpress-experiments",
      "project_name": "proofpress experiments",
      "month": "2026-10",
      "title": "Megatonnes are not metric tons",
      "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.\"",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_024",
      "related_event_ids": [],
      "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",
      "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; [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_005",
      "related_event_ids": [],
      "session_id": "trace_20260831_83f280",
      "project": "coeqwal",
      "project_name": "COEQWAL",
      "month": "2026-08",
      "title": "Tests that could not fail",
      "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. [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_002",
      "related_event_ids": [
        "evt_005"
      ],
      "session_id": "trace_20261008_147087",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-10",
      "title": "Measure before choosing a retrieval default",
      "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.\nRationale: 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.",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_006",
      "related_event_ids": [],
      "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",
      "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. [...]\nHuman rejected: Operator's words on 2026-09-08, after a clarifying exchange: \"i mean i accept your suggestions. so, i accept 1 and 2 and reject 3.\" His first phrasing, \"(3) i accept this as well\", accepted the recommendation to reject; the clarification removes the ambiguity. [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_007",
      "related_event_ids": [],
      "session_id": "trace_20260710_bdff9e",
      "project": "coeqwal",
      "project_name": "COEQWAL",
      "month": "2026-07",
      "title": "Require a visual check before export",
      "text": "Correction: Oliver reviewed the first version of the loading-speed brief and corrected two things: (1) wording was too padded for the audience (\"two worries turned out to be non-issues\" and similar framing removed; brief tightened to timing facts only); (2) required a visual QA pass before export, which caught a real layout bug: the 4.7s value labels on full-width bars overflowed the chart-card edge (bars rescaled to 84% max so labels always fit inside). Verified after fixes via full-page screenshots at desktop/narrow widths in light and dark themes.",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_002",
      "related_event_ids": [],
      "session_id": "trace_20261014_5d3052",
      "project": "proofpress",
      "project_name": "proofpress",
      "month": "2026-10",
      "title": "One PR, reviewed before it is called done",
      "text": "Agent proposed: ProofPress context-lineage fix design: one PR off origin/main (fix/context-lineage). [...]\nHuman revised: 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.",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_005",
      "related_event_ids": [],
      "session_id": "trace_20260821_6bebf5",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-08",
      "title": "Check that the health checker catches broken setups",
      "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. [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_010",
      "related_event_ids": [],
      "session_id": "trace_20261007_d3cb05",
      "project": "proofpress-experiments",
      "project_name": "proofpress experiments",
      "month": "2026-10",
      "title": "One sheet instead of four",
      "text": "Correction: The operator cut the scope key workbook down to a single sheet (\"Values\"), dropping the How to fill, Reports, and Example sheets the harness had generated, and set a standing rule: hand-filled xlsx files are one sheet unless there is a clear reason for more, because extra sheets clutter the form and make mistakes more likely. Fixed in 33c6f40. The scope sheet is now one sheet, read by column header whatever its name. [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    },
    {
      "event_id": "evt_036",
      "related_event_ids": [],
      "session_id": "trace_20260518_5dd958",
      "project": "trace",
      "project_name": "TRACE",
      "month": "2026-05",
      "title": "A required final gate caught an unlocked hot path",
      "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). [...]",
      "approved_on": "2026-10-31",
      "approved_by": "owner-delegated panel: 2 Claude + 3 gpt-6.1-sol independent selection passes, tie-broken (owner instruction 2026-11-01)"
    }
  ]
}
