diff --git a/docs/detector_history.md b/docs/detector_history.md index 0576e083..18ffb925 100644 --- a/docs/detector_history.md +++ b/docs/detector_history.md @@ -3,6 +3,76 @@ *Written 2026-08-22 from two interface2 reports, the bugarach tree, and the darkroom literature shelf.* +> **Revised 2026-08-30: two of the three "his" detectors were built with AI +> sessions, and the independence claim is withdrawn — replaced by a timeline that +> does not depend on anyone's memory.** This corrects the block immediately below, +> which is five days older and says the wrong thing in one place and an +> unestablishable thing in another. +> +> **What is wrong.** Tony, 2026-08-30: *"we built the first version of loco and +> coact detect in matlab together."* Together means with AI sessions in this +> estate. So *"`rate_detect`, `coact_detect`, `loco_detect` **are his**"* overstates +> for at least two of the three. interface2's own record agrees, and the dates are +> checkable: +> +> | | first committed | AI-assisted commit | +> |---|---|---| +> | SpikyDetect 1–3 (synchrony) | 2026-04-23 → 04-28 | **no** | +> | `rate_detect` (`SpikyDetect4` → `RateDetect`) | 2026-05-13 | **yes** | +> | `CoactDetect` (renamed from *"local coinc"*) | 2026-07-14 | **yes** | +> | `detect_loco` | 2026-07-14 | **yes** | +> +> The first Claude-assisted commit anywhere in interface2 is **2026-05-06**. The +> synchrony lineage predates it; **everything rate- and coordination-shaped comes +> after.** ⚠ Commit dates are a **lower bound** on when work happened, and Tony +> notes his repo hygiene was poor for years, so uncommitted earlier work cannot be +> ruled out. What the dates do establish is which commits carry a co-author trailer, +> and for `rate`, `coact` and `loco` they all do. +> +> **What is unestablishable.** The block below rests §4's *"convergence, not a +> derivation"* on *"I was totally unaware when I designed them."* For a human that +> is real evidence — a person's knowledge is roughly what they have read. **It is +> not available as evidence when a model is a co-builder**, because a model has no +> introspective access to whether its output derives from CFAR-shaped training data, +> and neither collaborator can inspect that from the outside. Tony, 2026-08-30, on +> the lit search that found CFAR: *"i think it surpised both of us."* Genuine, and +> consistent with **both** independent convergence and unrecognised reconstruction. +> **Surprise cannot separate them.** So the claim is withdrawn as unsupportable, not +> as false — nothing here says it is wrong, only that nothing available can show it +> is right. +> +> **What replaces it, and it is stronger.** A timeline, in git, in two repositories, +> depending on nobody's recollection: +> +> > The detectors were built **2026-04 to 2026-07**. The CFAR literature was found +> > on **2026-08-22** — `ff1db4d`, *"Three of the six detectors judge a moment using +> > a window that contains it"* — and the resemblance was recognised then, five weeks +> > to four months after the fact, in a search run for another purpose. `rate`, +> > `coact` and `loco` were built in AI-assisted sessions. +> +> That **rules out deliberate derivation**, which is the only charge worth +> pre-empting. It does not assert independence from the literature, and should not: +> with a model in the loop that is not a claim this project can support, and §7 +> already concedes four literatures were never searched. +> +> **This costs nothing that was being defended.** Tony closed priority on 2026-08-24, +> in the block further down — *"most researchers would be kind of thrilled with the +> link … it's a tool and it's useful"* — and the ruling there was *acknowledge the +> origins and take the engineering*. The independence claim was never load-bearing; +> it is simply the one sentence here that would not survive a reader who asked how it +> could be known. **§5's list is untouched, and it is what this document is for.** +> +> Also unchanged: **port fidelity to 1e-9**, which is about code and not about ideas; +> the SCE root (Cossart 2003) and the Kreuz position, both settled in the blocks +> below; and `locust` as the one true port. +> +> Consequence outside this file: the README and `CITATION.cff` are wrong in the +> *other* direction — they say "six detector ports" when one is a port — so the repo +> now has an error each way. Filed as +> [the repo underclaims its own authorship](todo/2026-08-30-the-repo-underclaims-its-own-authorship.md), +> **which must be re-read against this revision before anyone acts on it**: it was +> written before this correction and its title overstates. + > **Revised 2026-08-29: the author said where each one came from, and interface2 > is frozen on the topic.** Every lineage row in this document was assembled from > interface2's reports and this tree. Tony supplied the missing half — who wrote diff --git a/docs/todo/2026-08-30-the-rail-still-costs-97px.md b/docs/todo/2026-08-30-the-rail-still-costs-97px.md new file mode 100644 index 00000000..273832b8 --- /dev/null +++ b/docs/todo/2026-08-30-the-rail-still-costs-97px.md @@ -0,0 +1,46 @@ +--- +status: open +filed: 2026-08-30 +--- + +# The rail's last ~97px cannot be trimmed — it has to be argued + +> **Not murderboarded** — a work item. Filed by a session that did **not** do the +> measurement, from `bugarach-63`'s handover at its session end on 2026-08-30. + +## What already landed + +**PR #411 (`0188362`)** took the viewer's canvas top from **514px → 351px** at +1440×900: the header went, its privacy promise moved into the nav, `#demoNote`, +`#meta`, `#bar` and `#wins` merged into one row behind a four-state provenance chip, +the rail was **tightened, not redrawn**, and the diagnostic page now leads with its +figure with the legend in a closed `
`. + +## What is left, and why it stopped + +About **97px** of rail remain, and the session that measured it stopped rather than +take them, because **the remaining trim is not a trim.** Getting them requires +collapsing two grid rows, and the rows are not decoration — **collapsing them changes +what the diagram asserts.** + +That makes it a claim about the pipeline, not a layout tweak, and it is the reason +this is a todo and not a follow-up commit. A session optimising for pixels would take +them without noticing the assertion moved. + +## What is actually undecided + +- **What do the two rows currently assert**, and is that assertion load-bearing for a + reader who has not seen the pipeline before? +- Is 97px worth a weaker diagram? The screenshot that started this had the raster at + **43% of its own page**; after #411 it is not, so the pressure that justified + aggressive trimming has largely been spent. + +⚠ **Do not treat this as a continuation of #411.** #411 was cosmetic by construction +and said so; this one is not, and inheriting its "cosmetic" framing is how the +assertion would get changed silently. + +## Not authorized + +Handed over, not started. Tony pulled that session up for scope on 2026-08-30 — +*"address this critique does not mean run wild"* — so the existence of this file is a +record, not a go-ahead. diff --git a/docs/todo/2026-08-30-who-wrote-the-detectors-the-repo-is-wrong-both-ways.md b/docs/todo/2026-08-30-who-wrote-the-detectors-the-repo-is-wrong-both-ways.md new file mode 100644 index 00000000..2b6ad66c --- /dev/null +++ b/docs/todo/2026-08-30-who-wrote-the-detectors-the-repo-is-wrong-both-ways.md @@ -0,0 +1,101 @@ +--- +status: open +filed: 2026-08-30 +--- + +# Who wrote the detectors — the repo is wrong in both directions, and the fix is smaller than it looks + +> **Not murderboarded** — a work item. Verified against `main` at `0188362` and +> against interface2 at `c711e737` on 2026-08-30; file:line given for each claim. +> **If any of this reaches an outside reader as prose, murderboard that artifact.** + +> ⚠ **REWRITTEN 2026-08-30, hours after filing.** This file was first called +> *"the repo underclaims its own authorship"* and that title was itself an +> over-claim. Tony then said *"we built the first version of loco and coact detect +> in matlab together"*, which makes the repo wrong in the **other** direction too. +> **Read [`docs/detector_history.md`](../detector_history.md)'s 2026-08-30 revision +> first** — it is the authority and it moved. The original framing survives only for +> the README/`CITATION.cff` half. + +## The two errors, in opposite directions + +**1. The front door under-claims.** It says the repo is six ports of other people's +MATLAB. It is one. + +**2. The lineage doc over-claimed.** It said three detectors were Tony's alone. Two +of the three were built with AI sessions, and its independence-from-CFAR claim rested +on a mental state that is not available when a model is a co-builder. **Corrected +2026-08-30** — see that file's own revision block; this item does not restate it. + +**The repair is not "claim more."** It is to say accurately what was written where, +and by whom, in both directions. + +## Error 1 — what the front door says + +| where | text | the problem | +|---|---|---| +| `README.md:7` | *"bugarach **lifts six** coordinated-event detectors out of MATLAB"* | **accurate about the mechanism** — six Python implementations were made from six MATLAB originals. It omits **whose** MATLAB, and that omission is the whole defect | +| `README.md:79` | *"**Six detector ports**"* — first row of **What is built** | reads as six ports of *other people's* methods. Its own body then links to `detector_history.md` *"for which is which"* — so the summary is wrong and defers the correction to a file nobody opens. **The summary is the part a reader keeps** | +| `README.md:73–74` | interface2 *"is named here as the source of a port and never linked"* | true, and **says nothing about who wrote the originals** — the gap a stranger fills the ordinary way | +| `CITATION.cff:15` | *"Browser-based viewer and **Python ports of six** neural-coordination detectors (… locust …)"* | **the machine-readable one.** GitHub renders it in *Cite this repository*; citation managers quote it verbatim, where no next paragraph sits beside it. Also names `locust`, which the public build withholds | + +⚠ **The word "port" is doing two jobs and the README conflates them.** (a) MATLAB → +Python, a code path, true of nearly all of them. (b) Someone else's method → this lab, +an intellectual path, true of **one**. A reader sees (b) and the repo means (a). + +**The first version of this file got that wrong**, saying *"five of six were not +lifted."* They were lifted — mostly out of Tony's own MATLAB. Omission, not error. + +## What the record actually supports, with its caveats attached + +From [`detector_history.md`](../detector_history.md), **including** its 2026-08-30 +revision. These caveats are load-bearing and belong wherever the correction is +written, not in a footnote: + +| detector | origin | caveat that must travel with it | +|---|---|---| +| `rate+context` | designed here; commit body states it in Tony's terms — *"excess = primary rate (1s) − context rate (60s)"* | **AI-assisted commit** (2026-05-13). 08-24 also calls it cell-averaging CFAR | +| `CoactDetect` | built here | **built with AI sessions** — Tony, 2026-08-30 | +| `LoCo` | built here | **built with AI sessions.** `maxlt` is GO-CFAR (Hansen 1973); percentile-of-pool is kin to OS-CFAR | +| `SPIKE-synch` | Tony's detector on Kreuz's measure | **"Not novel either"** — Kreuz's own lab published the same two-knob detector (Kreuz et al. 2022) | +| `binned SCE` | **not a port** | published root is **Cossart 2003, from Yuste's lab**, predating CICADA | +| `locust` | **the** port, modified at port | the one case where "port" means (b) | + +**So the honest correction is narrow: say who wrote the MATLAB originals.** It is +**not** "these are novel", and for two of the six the record says the opposite. + +## Two traps for whoever writes it + +1. **README and the site describe different detector sets, and both are right.** The + README documents the repo — six. The public site **withholds `locust`** — five. The + attribution paragraph is **written twice**, not copy-pasted. +2. **It meets the count problem in the `

`.** `tools/build_site.py:171` reads + *"Six coordinated-event detectors ported from MATLAB"* — **wrong about the count and + wrong about "ported", in one sentence.** That is + [the site types what a token could substitute](2026-08-30-the-site-types-what-a-token-could-substitute.md) + item 3 meeting this item at the same line. Both sessions that looked reached that + independently; doing them together beats sequencing. + +## Scope + +**A wording fix backed by an existing document**, now that the document is correct. +It does not re-derive who wrote what, does not weaken the **port-fidelity to 1e-9** +claim (about code, not ideas — `README.md:79`'s body is careful and should survive +intact), and claims priority over nobody. Tony closed priority on 2026-08-24: +*"most researchers would be kind of thrilled with the link … it's a tool and it's +useful."* + +## Provenance + +Handed over at `bugarach-63`'s session end on 2026-08-30, which found it and reserved +the branch name `who-wrote-these` **without filing anything** — it existed only in +cross-session messages and a name that was never cut. That session did not start the +work; Tony pulled it up for scope: *"address this critique does not mean run wild."* + +**The existence of this file is not authorization.** The paths are free; the go-ahead +is Tony's. + +The outside critique that started it: a stranger read the four public repos +adversarially for a short-course page, concluded bugarach was *"a Python re-typing of +somebody else's MATLAB algorithms"*, and **published that** before being corrected. +That critique was right that the front door misleads. It did not know about error 2.