Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions docs/detector_history.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
46 changes: 46 additions & 0 deletions docs/todo/2026-08-30-the-rail-still-costs-97px.md
Original file line number Diff line number Diff line change
@@ -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 `<details>`.

## 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.
Original file line number Diff line number Diff line change
@@ -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 `<h1>`.** `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.
Loading