Flint / public recordEvidence atlas · five passes

What loaded. What held.

A dated chain of a narrow water finding, the response on record, and safeguards around the drafts. The original historical decision is frozen at November 6, 2015. A saved file alone is not proof that an agent ran.

01 / Sourced blind call · November 6, 2015

This packet does not justify a citywide assurance that the water is safe.

EPA Region 5's final report concerns three residences. The three dated results below are from one residence, not a citywide sample. The task force release promises assistance for reconnection and optimizing corrosion control, not measured systemwide safety. F1, October 21, printed page 11 and November 4 memorandum, PDF page 1; F2, October 16, assistance excerpt.

A measure, not a map

F1 / Appendix B / printed p. 11

F1 is dated October 21, transmitted November 4 and recorded public by November 6 in SOURCES.csv. The original three rows belong to one residence. No household location appears here. F1, printed page 11, Appendix B.

Chronological strip of three lead measurements from one residenceZero-baseline bars in micrograms per liter. February 18, 2015: 104. March 3, 2015: 397. April 2, 2015: 707 with an unexplained asterisk in the source. F1 printed page 11.2015 / lead / µg/L0720 µg/LFeb 18104 µg/LMar 3397 µg/LApr 2707 µg/L*
Bar lengths start at zero and use a common 0 to 720 µg/L scale. Rows are dated in order; spacing is not elapsed time. Each row links to F1.
Original measurements, F1 October 21, 2015, printed page 11
Sample dateLeadScope and source
February 18, 2015104 µg/LOne residence; F1, printed page 11
March 3, 2015397 µg/LSame residence; F1, printed page 11
April 2, 2015707 µg/L*Same residence; F1, printed page 11

* The source row has an asterisk; the packet does not explain it. These rows do not measure citywide prevalence.

The evidence chain

Historical dates are not session order
  1. Blind / as of November 6, 2015

    Bound the public claim.

    F1 recommends notification before scheduled work that may disturb lead service lines and representative sequential sampling across common plumbing materials. F2, released October 16, announces technical assistance for reconnection and optimizing corrosion control. The November 4 F1 memorandum reports a switch back and filters provided but says additional treatment will be implemented. These statements do not supply a representative citywide result. F1, October 21, printed pages 6 to 7 and 11; November 4 memorandum, PDF page 1; F2, October 16, assistance excerpt.

    The exact original verdict appears in analysis.json and the first entry of memory/decisions.jsonl. Saved files record the decision, not everything a provider saw.

    Certainty: dated public text and a preserved first log entry. General safety remains unknown.

  2. Interview / answers dated November 6, 2015

    Change the delivery, not the finding.

    answers.txt supplies a council staffer role, a deadline before the next council briefing, a resident audience near planned service-line work, and translation and accessibility review. The interview ran analysis and checking scripts and produced interview-result.html; it did not invoke the critic. Those answers are role-play input, not additional historical water data. The short answer stayed bounded by F1, October 21, printed pages 6 to 7 and 11 and F2, October 16, release excerpt.

    The second append-only log entry was recorded October 14, 2026, with interview answers dated November 6, 2015. Neither establishes an actual 2015 staff appointment or approval to publish.

    Certainty: answer text, generated artifact and log entry; script activity is the supplied session account, not a command transcript in those files.

  3. Reveal / dated findings in 2016

    Keep the later record in its own layer.

    reveal.json and reveal.html contrast the unchanged November 6 call with an EPA order dated January 21, 2016 and an OIG assessment dated October 20, 2016. The order finds inadequate continuing responses and imminent and substantial endangerment. The retrospective assessment says the agency had authority and sufficient information to issue an order as early as June 2015. These findings were not available at the blind cutoff. F3, January 21, 2016, paragraphs 1 and 33; F4, October 20, 2016, At a Glance, PDF page 3.

    critique.md exists and gives the institutional rebuttal: the reported switch and filters must not be erased, while future treatment must not be described as completed. The saved critic and skill definitions and the critique file do not prove an explicit invocation of either in this run. No invocation trace is supplied, so the atlas does not claim one. F1, November 4 memorandum, PDF page 1; F2, October 16, assistance excerpt.

    Certainty: dated later sources and saved critique; explicit skill or critic invocation is unverified. The original verdict remains in the earlier log entry.

  4. Try-it / draft boundary

    A synthetic identifier did not pass.

    trial-result.html records a write attempted with a synthetic address. The tool returned this exact reason: Blocked: household identifier or sealed future record. The attempted draft was not published. The reason reports one blocked write, not an original household location or universal coverage. The public report recommends notice without publishing an identifying sampling location. F1, October 21, printed page 7 and November 4 memorandum, PDF page 1.

    Certainty: one reported rejected write in the trial artifact. No identifying detail is repeated here.

  5. Setup map / October 14, 2026 record

    What was available at startup.

    The first setup run wrote twin project manuals AGENTS.md and CLAUDE.md, twin critic definitions in .claude/agents/record-critic.md and .omp/agents/record-critic.md, the saved skill .claude/skills/flint-record/SKILL.md, and guard wiring. Startup loading happens at process entry, so files written during the first run could not load in that same process. Fresh sessions loaded the twin project memory and hooks; the trial block is direct evidence of one running guard, not a trace of every startup.

    .claude/settings.json configures a PreToolUse command to run guard/rules.py for matched tools. .omp/hooks/pre/record-guard.ts runs the same Python rule before tool calls. The rule rejects sealed-record path access and location-like inputs after decoding some encodings. These are tool-input boundaries, not proof that private material never reached a provider or that every prompt was covered. The manuals constrain the historical answer to F1, October 21 report and November 4 transmittal and F2, October 16 release.

    Certainty: configuration proves intended wiring; the fresh-session load is in the supplied sequence and a trial block proves one hook action. File presence does not prove skill or critic invocation.

Public source key