Merge remote-tracking branch 'origin/human/r1-retro-tick' into auto/port-p6-audio
This commit is contained in:
@@ -97,7 +97,33 @@ reading as progress because each entry is individually rigorous.
|
||||
|
||||
## 7. What needs the human
|
||||
|
||||
1. **The register re-classification (R1).** It changes the file both agents read to
|
||||
decide what *not* to try. Two agents agreeing is not the right authority.
|
||||
1. ✅ **The register re-classification (R1) — DONE 2026-09-01, by the human**, on
|
||||
`docs/re/REFUTED.md` at the Decoder's tip. All **222** entries now carry an
|
||||
`⟨instrument⟩`; the file opens with a reading guide naming which instruments
|
||||
are ours; R1 is now standing text in `PROTOCOL.md`; and
|
||||
`tools/stale-instrument` is the `--stale` query — run it whenever you improve
|
||||
a renderer, a reader or the harness, and it lists what that instrument killed.
|
||||
|
||||
**Ten entries moved ❌ → 🟡**, each naming what would settle it: eight
|
||||
`render-vs-capture`, one `our-reader`, one `harness`.
|
||||
|
||||
Three things the pass turned up that neither self-review had:
|
||||
|
||||
* **The `rest()` question is open, and had been reading as settled in both
|
||||
directions.** *"rest = last keyframe"* was refuted by the sibling argument;
|
||||
that refutation was then refuted by correlating our render against
|
||||
captures. Both legs run through our renderer, so under R1 neither survives
|
||||
— and which one you believed depended on which entry you found first.
|
||||
🔴 **This one is load-bearing for the port**: `rest()` decides the pose
|
||||
every plateau-less element is drawn at.
|
||||
* **A withdrawal never reached its sibling.** *"2 391 frames, max glyph 0"*
|
||||
was withdrawn because a long-lived `x11grab` stream degrades and then
|
||||
repeats a stale frame. The 1 674-sample negative three lines above it —
|
||||
same probe, same instrument, comparable duration — was left standing as a
|
||||
*reinstated measurement*. §1's lesson, inside the register itself.
|
||||
* **83 of 222 entries — 37 % — record no instrument at all.** Not disputed,
|
||||
not safe: **unauditable**. `stale-instrument unrecorded` is the backfill
|
||||
queue, and it is larger than every other group combined.
|
||||
|
||||
2. **P5's gate** — a person clicking through the port. Unchanged, and it is the
|
||||
only thing standing between the milestone and done.
|
||||
|
||||
@@ -84,6 +84,52 @@ command rather than by trusting the date:
|
||||
git log -1 --format=%h -- docs/port/HANDOFF.md # newer than 9ca1eb5? re-reconcile
|
||||
```
|
||||
|
||||
## New asks, 2026-09-01 — from a HUMAN PLAY-TEST on real hardware, port `HEAD` `6b713e8` + input fix
|
||||
|
||||
**The first play-test on a physical controller found four things.** Two were port
|
||||
defects and are fixed; **two are oracle questions and are recorded here unguessed.**
|
||||
|
||||
⚠️ Read the fixed pair first, because the *reason* they survived so long is a
|
||||
method finding that applies to the Decoder's harness as much as this one:
|
||||
|
||||
> **`--script` sends `InputEventAction`, which bypasses the input map.** So every
|
||||
> check this port had asserted the code *below* the map and nothing about the map
|
||||
> — which turned out to have **no joypad binding for `ui_accept` or `ui_cancel`
|
||||
> at all** in Godot 4.7.2, while binding the d-pad *and* the left stick to
|
||||
> `ui_up`/`ui_down`. Ⓐ and Ⓑ were dead on a real pad for the whole of P5 while
|
||||
> the unattended walk passed every iteration. The same blind spot hid the second
|
||||
> defect: an `InputEventAction` is not an analog axis, so nothing could observe
|
||||
> that a held stick fires once per *jitter*. Now asserted by
|
||||
> `tools/port/verify-input`, with a control.
|
||||
|
||||
| # | ask | why the port cannot answer it |
|
||||
|---|---|---|
|
||||
| **H1** | **Does a held direction REPEAT in the menus, and at what rate?** Initial delay and repeat interval, for the d-pad and for the left stick separately if they differ. | Behavioural. The port now does **one step per deflection** — `authored`, and deliberately the conservative half: it cannot run away and it invents no rate. If the game repeats, a human will feel it as *"I have to flick it again"*. |
|
||||
| **H2** | **The splash blur/fade-in does not match the game.** A human watching both says the game's is **more pronounced** than the port's. | Needs a capture of the publisher/developer splash across its fade, at a known frame cadence. The port's ramp comes from the declared keyframes; whether the game applies a **blur** on top — and whether what we read as a fade is one — is not answerable from the export. |
|
||||
| **H3** | **The `PRESS Ⓐ` plate arrives LATE.** The port raises it at `t=236`, derived `238 − 118 = 120 units = 2.000 s`. | 🟡 **Half of this may be the port's, and that half must be settled here first.** Three candidate causes: the **unit→seconds constant** (Decoder's), the **clock origin** — do builds 2 and 4 really start together? — and **`rest.t`** (both ours). `REFUTED.md` records that believing `rest.t` already put a plate **3.97 s late** once. Establish which half it is *before* asking, and say how. |
|
||||
|
||||
**On H2, three things the port can say that narrow it**, none of which settle it:
|
||||
|
||||
* The port draws the splash from the declared keyframe alphas only. It applies
|
||||
**no blur at all**, so "more pronounced in the game" is consistent with a
|
||||
post-effect the export does not describe, with a different ramp shape, or with
|
||||
both.
|
||||
* 🔴 **The `rest()` question is open in both directions** — see
|
||||
[`REFUTED.md`](../re/REFUTED.md)'s `rest()` pair after the 2026-09-01 R1
|
||||
reclassification. The two splashes are the *only* screens that reach the
|
||||
plateau-less fallback (title, main menu and `EXTRAS` reach it zero times), so
|
||||
**H2 lands exactly where our resting-pose heuristic is least trustworthy.**
|
||||
That is not a coincidence worth ignoring.
|
||||
* The register also has *"the declared keyframe timeline reproduces the captured
|
||||
splash"* now sitting at 🟡 `⟨our-reader⟩` rather than ❌, because the
|
||||
record-layout fix re-times a group's final pose and the entry was never
|
||||
re-derived under it. **H2 may already be half-answered by re-running that.**
|
||||
|
||||
**What would settle H2:** a capture of the developer splash across its build-in
|
||||
at a known cadence, compared frame-by-frame against the port's ramp — and, if
|
||||
they differ in shape rather than in extent, a draw capture naming what is
|
||||
submitted per frame.
|
||||
|
||||
## Still open — these block work
|
||||
|
||||
🔴 **This table's rows carry no derivation sha, and that is why they rot.** The standing instruction is to record the HANDOFF commit each row was derived from; every *prose* section added since does, and **every row in this table and the next does not**. On 2026-08-30 an audit found three stale rows here — one of them contradicted by a struck row four lines below it, claiming the boot ends on a plateless title when it had drawn the plate for weeks. The undated rows are exactly the ones that went stale, which is as close to a controlled experiment as this page is going to get.
|
||||
|
||||
Reference in New Issue
Block a user