hans / hans/barakeet

MAP · Integration response: same-word-end perceptual reactivation (go/no-go)

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
wayfinder:map
Dominant language
Jupyter Notebook
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Destination

A **go/no-go decision** on reframing the integration (late) response as **context-gated perceptual reactivation**: the within-completion late percept gap re-expresses the **same word-end-specific /d/–/n/ tuning** seen on *that word end's* unambiguous endpoints. A NO-GO retreats the integration section to negative claims only (not lexicality / mismatch / surprisal; not an extended acoustic-or-perceptual response to the word-initial sound).

**Two-stage method, deliberately staged, not the same statistic (clarified 2026-07-21):**
1. **Strong-generator scan** (#16, built, awaiting prod run) — a *cheap screening check*: does the ambiguous-trial percept slope β_amb quantitatively/directionally track the unambiguous endpoint slope β_unamb at the same word-end window? Scalar magnitude/sign comparison, no permutation null. Answers "is a projection account even plausible" cheaply, before investing in the real method.
2. **Late-window projection** (π = ⟨â, p⟩, ADR-0002, ported to the late window) — the actual windowed dot-product-with-permutation-null method, only built if the strong-generator screen looks promising enough to warrant it (see "Not yet specified").

Same-sign(β_amb, β_unamb) in stage 1 is a *proxy* for what stage 2's sign-alignment would show — necessary, not sufficient. Grounded first by the strong-generator diagnostic (Jon runs on prod).

## Notes

**This effort carries execution** (overrides wayfinder "plan, don't do"): the first diagnostic is a *code change* to `notebooks/causal46_joined/strong_generator_demo.py` on branch `late-projection`, which **Jon runs on prod** (`b4_bootstrap.parquet` is not synced to the dev container). The map still drives to a *decision* (go/no-go); the code + prod run are the evidence-gathering for it.

**Current phase (2026-07-21): exploratory data analysis, not writing.** No paper drafting yet — the draft ticket (#18) is blocked on the go/no-go (#17), which is itself blocked on #16's prod numbers. Earlier framing had #18 as parallel-takeable ("so a GO is immediately actionable"); corrected — pre-drafting risks anchoring the narrative before the diagnostic result is known.

**Deadline:** paper draft by end of July (charted 2026-07-21). Early perceptual response is settled (figure polish only); this effort is only about the integration response.

**Premise, confirmed by PR #14's own numbers:** the pooled late-window TFCE gate is a near-null — 6/187 uncorrected, **0 FDR survivors**, binom p=0.91. Reading: *pooling across word ends washes out an asymmetric (one-word-end) majority.* This effort routes around that by testing per-word-end.

**Method skeleton (locked in grilling 2026-07-21):**
- Port the early **projection** π = ⟨â, p⟩ ([ADR-0002](../blob/master/docs/adr/0002-perceptual-site-identification-by-projection.md)) to the late window.
- **â = late unambiguous window, same-timing** (the /d/–/n/ endpoint contrast in the late window itself), **not** the early acoustic template. → make-or-break necessary condition: a reliable *late* unambiguous acoustic response (β_unamb ≠ 0) must exist.
- **Strict same-word-end, no pooling.** â and p both computed on the *same* word end; a cell = (site × word-end). The unambiguous acoustic response is itself word-end-specific, so pooling is wrong.
- A cell passing on only one word end is the **interaction signature** (perceptual state × subsequent sounds), not noise.
- **Projection pass = sign alignment (magnitude-independent)**, strictly weaker than strong-gen "CONSISTENT" (a magnitude match). When reading the strong-gen scan for "would this pass projection", count *same-sign* cells, not just β_amb≈β_unamb.

**Positive claim a pass licenses:** context-gated reactivation of the **perceptual** representation — (1) it's the percept, not acoustics, driving it (effect on fixed-acoustics within-completion trials); (2) it's word-end-specific → an *interaction* of perceptual state with the subsequent sounds, not simple delayed reactivation. Non-exhaustive: a complementary subset instead conditions on *acoustic* context.

**Key files:** `strong_generator_demo.py` (the diagnostic instrument, already per-cell same-word-end: β_amb from `b4_bootstrap.parquet`, β_unamb = same-window endpoint step1-vs-step6 within word_end); `early_perceptual_projection.py` + ADR-0001/0002 (the method being ported); `late_perceptual_significance.py` + PR #14 (the pooled TFCE gate this routes around). `b4_bootstrap.parquet` is prod-only. Use `uv run`, serially.

**Skills:** `/grilling`, `/domain-modeling` for decision tickets; `/prototype` for the draft ticket (once unblocked).

## Decisions so far

- [Scan strong_generator_demo over all cells → same-word-end reactivation diagnostic](https://github.com/hans/barakeet/issues/16) — prod numbers in: 49/77 integration-response cells same-sign (binom p=0.011), 9/77 also pass the stricter β_unamb-reliable condition; which population is the real test is unresolved, deferred to #17.
- [Go/no-go on the context-gated perceptual-reactivation direction](https://github.com/hans/barakeet/issues/17) — GO to build the late-window projection (stage 2); stage 1's numbers not pursued further (never the real instrument); the paper-claim go/no-go itself deferred to the projection's own result, in a new spun-off wayfinder effort.

## Not yet specified

~~Full projection method spec~~ — **resolved by #17 (GO) and spun off into a separate, freshly-charted wayfinder map** rather than graduating into a child ticket here (2026-07-21). That new map owns: sliding-window π = ⟨â, p⟩ per word-end, window snapping, within-step label-permutation null, CPO population count-vs-null, and ultimately the paper-claim go/no-go itself. Charted: [MAP · Late-window perceptual projection: context-gated reactivation paper-claim go/no-go (#19)](https://github.com/hans/barakeet/issues/19).
- **Relationship to PR #14's pooled TFCE late-window gate** — replace / run alongside / re-select on top; and the downstream cascade it feeds (`strong_generator`, `contrast_plot`, `mismatch_regression`, `acoustic_endpoint_windows`, `acoustic_transfer`). Scope + method call; after go/no-go.
- **Characterize the complementary acoustic-context-conditioned subset** — sites whose late contextual response tracks acoustic (not perceptual) context. After go/no-go.
- **CLAUDE.md / ADR reconciliation** — a live positive late-reactivation finding revisits the "reactivation tentatively disfavored / transfer bimodality" framing. After GO.
- **Figure plan** for the integration-response section. After GO.

## Out of scope

- Repairing/tuning the PR #14 pooled TFCE gate to rescue a population binomial — foreclosed 2026-07-21 (powering-threshold lever). This effort routes around it rather than fixing it.
- The early perceptual response (settled; figure polish only) — a separate paper track.

Contributor guide

No contributing guide indexed for this repository

Research direction

This decision is superseded by #19, which owns the late-window projection and final paper-claim go/no-go. Read early_perceptual_projection.py, ADR-0001/0002, strong_generator_demo.py, and late_perceptual_significance.py for the existing method and evidence; use uv run and the prod-only b4_bootstrap.parquet as specified. Done means the spun-off projection work produces the paper-claim decision.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
analytics, data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.