From 620ec5e60b2c39ea5dd568f9818724d42cfe564b Mon Sep 17 00:00:00 2001 From: MechaCat02 Date: Wed, 2 Sep 2026 20:14:46 +0200 Subject: [PATCH] agents: one item only -- the title's animation timing -- and split work into human-checkable units Two new findings from the human, both about WHEN a title animation starts, and both handed over rather than guessed: F5 Does (A) SNAP the title to finished, or ACCELERATE it? The human says they cannot tell and is right that they cannot -- a three-frame acceleration and a one-frame cut look identical to an eye. Two routes that should agree: a per-frame capture (acceleration shows intermediate alphas, a cut shows none) and the code (assigning a target time and raising a rate multiplier are different instructions). Their "looks more like a snap on multiple attempts" is recorded as a PRIOR, not a result. F6 The title's sweeping white glow -- ptloop01/ptloop02, the blue PCB-like lines -- starts only when the plate appears in the real game, and starts earlier in the port. A lead from the exported declaration, mine and unverified: those elements are keyed at t = 0, 70, 100, 238, 250 while the plate reaches full alpha at 236, with pteff02 keyed at exactly 236 and ptlogo_back2eff and ptcopyright at 238. 236-238 is a synchronisation point in the declared data and a human just reported a behaviour change there. Flagged AGAINST itself too: 238...250 looks equally like an exit ramp -- ptcopyright uses that shape and starts nothing -- and the sweep lives in a nested .rat leaf with its own timeline. F6 bears on clock: "shared" and on F4: if a title element does not move until the plate arrives, either the declared data says so and our keyframe reading is wrong, or something at the plate's arrival STARTS it, which is a mechanism nobody has proposed. And the process change, which is the human's and outlives this item: "attacking the 'whole' mission was too big for them to handle. Split the given missions and tasks into even smaller tasks which they can tackle and give to a human for feedback." PROTOCOL.md gains "Work in units a human can check in a minute". A milestone is not a unit of work, it is a bag of them. A unit is right-sized when it ends in something a person can judge in under a minute WITHOUT READING ANYTHING, and each one states its question, what the human looks at, and what it does NOT cover. Do one, hand it over, stop -- an unverified fix under a second change makes a regression two-variable. The evidence for the rule is this week: the splash sat through a whole milestone and took one day once scoped to "does it animate?". The bar is a HUMAN check, not a green tool -- three instruments passed a frozen screen. --- docs/agents/PLAYTEST-2026-09-02-menus.md | 77 ++++++++++++++++++++++++ docs/agents/PROTOCOL.md | 39 ++++++++++++ docs/agents/decoder-loop.md | 34 +++++++++++ docs/agents/port-loop.md | 29 +++++++++ 4 files changed, 179 insertions(+) diff --git a/docs/agents/PLAYTEST-2026-09-02-menus.md b/docs/agents/PLAYTEST-2026-09-02-menus.md index 0d48b185..0b27a5b9 100644 --- a/docs/agents/PLAYTEST-2026-09-02-menus.md +++ b/docs/agents/PLAYTEST-2026-09-02-menus.md @@ -143,6 +143,83 @@ authored premise is in trouble. **Answer F4 before building on `shared`.** --- +## F5 — Ⓐ: does the animation SNAP, or accelerate? **A human cannot tell.** + +Follow-up from the same human, and the honesty in it is the useful part: + +> *"I think the animation speeds up to the finished state. So it is not a snap in +> the sense of a cut, but rather becoming much quicker — which however feels +> instant too, so it is difficult to discern by a human. It might also actually +> snap/cut to the finished state, but appear as a quick animation… Similar to how +> videos work by quickly playing distinct frames. So I cannot tell certainly +> which it is. Upon multiple attempts it does look more like a snap. Decoder +> still should verify."* + +**This is a question the oracle-by-eye cannot answer, and it is being handed over +as such rather than guessed.** A three-frame acceleration and a one-frame cut are +indistinguishable to a person; they are trivially distinguishable to an +instrument. Two independent routes, and they should agree: + +1. **Per-frame capture.** Press Ⓐ mid-build-in and read the submitted alphas + frame by frame. An acceleration shows **intermediate values**; a cut shows + one transition and none. This is a counting question — see + [`TEMPORAL-VERIFICATION.md`](TEMPORAL-VERIFICATION.md), and note that the eye + failing here is exactly why. +2. **The code.** Whatever Ⓐ does to the clock is a store somewhere: does it + assign the target time, or raise a rate multiplier? A snap and a speed-up are + different instructions, and the image says which. + +⚠️ The human's *"looks more like a snap on multiple attempts"* is a **prior, not +a result.** Do not let it stand in for the measurement, and say so if the +measurement disagrees with it. + +## F6 — 🔴 The title's sweeping glow starts TOO EARLY in the port + +> *"…blue geometric lines (like on a PCB, straight lines and rectangular or 45° +> turns). These have a white glow moving on them as an animation. In the game +> this animation only starts when the plate is shown — basically the animation +> starts the same as the 'insert' of the plate. In the port it already starts +> before the plate arrives."* + +**The elements are `ptloop01` and `ptloop02`** — already known to this corpus as +the sweeps whose leaf *"sweeps a 400 px quad whose left edge travels +−639…1521"*, and whose free-running on the settled title is a ❌ entry in +`REFUTED.md` (they **do** free-run). Nothing there says **when they start**, and +that is the whole of this finding. + +### 📌 A lead, from the exported declaration — MINE, unverified, check it first + +`title.json` gives `ptloop01` and `ptloop02` keyframes at: + +``` +t = 0, 70, 100, 238, 250 +``` + +and the plate reaches full alpha at **`t = 236`**. They are not alone: `pteff02` +has a key at exactly **236**, and `ptlogo_back2eff` and `ptcopyright` at **238**. +**236–238 is a synchronisation point in the declared data**, and the human has +just reported a behaviour change at that instant. + +So the first question is cheap: **is the sweep's motion declared to begin at 238, +with the port instead free-running the leaf from t=0?** If so this is a decode +question with a decoded answer, and nothing needs authoring. + +⚠️ **Two reasons not to take that lead as the answer.** The `238…250` pair looks +just as much like an **exit ramp** — `ptcopyright` and `ptlogo_back2eff` use +exactly that shape and they are certainly not starting anything. And the sweep +lives in a **nested `.rat` leaf** with its own three keyframes, so the parent's +envelope and the leaf's motion are different timelines. Which of the two the +human is watching is the thing to establish. + +### Why this one is worth prioritising + +It bears directly on **F4 and on `clock: "shared"`**. If a title element does not +begin moving until the plate arrives, then either the declared data says so — in +which case the shared clock survives and our reading of the keyframes is wrong — +or something at the plate's arrival **starts** it, which is a mechanism nobody +has proposed. Either answer constrains the clock question that F4 is also +probing. + ## H3 — the plate delay is ACCEPTED > *"Delay feels the same. Cannot verify it is exact same, but is sufficient."* diff --git a/docs/agents/PROTOCOL.md b/docs/agents/PROTOCOL.md index 92cc2052..71410dcb 100644 --- a/docs/agents/PROTOCOL.md +++ b/docs/agents/PROTOCOL.md @@ -152,6 +152,45 @@ asking X"** rather than approximating. An approximation from the wrong agent arrives with no classification attached and is indistinguishable from a measurement a month later. +## Work in units a human can check in a minute + +**Set by the human, 2026-09-02, from what actually worked.** The splash bug had +sat through a whole milestone. Scoped to *one* question — *does it animate?* — it +was found, fixed, verified and signed off in a day. + +> *"I think attacking the 'whole' mission was too big for them to handle. Split +> the given missions and tasks into even smaller tasks which they can tackle and +> give to a human for feedback."* + +So: **a milestone is not a unit of work. It is a bag of them.** Before starting, +split it, and pick one. + +A unit is right-sized when it ends in something **a person can judge in under a +minute without reading anything**. Not "P6 audio" — *"the confirm SFX is no +longer louder than the music; listen once."* Not "the title screen" — *"the glow +starts when the plate appears; watch one boot."* + +Each unit, written down **before** the work: + +* **the question**, as one sentence a non-expert could answer; +* **what the human looks at**, and what pass and fail each look like; +* **what it does NOT cover** — the neighbouring thing you are deliberately not + fixing, so nobody reads a narrow pass as a broad one. + +Then: **do that one, hand it over, and stop.** Do not run ahead into the next +unit while the first is unverified — an unverified fix underneath a second change +is how a regression becomes two-variable and unattributable. + +⚠️ **The bar is a HUMAN check, not a green tool.** Three instruments passed a +frozen screen. A tool answers *did my change do what I intended*; only the person +answers *is it right*. When a unit needs a look, say so plainly and say what to +look at — an ask that is buried in a document nobody opens is not an ask. + +📌 And this bounds the writing, which has been the other failure: the retro found +`DECISIONS.md` past 13 000 lines while the gate did not move. **A unit's record +is proportional to the unit.** If explaining it takes longer than doing it, the +unit was too big or the writing is doing something other than explaining. + ## Publishing * Commit to `auto/`; a human merges. diff --git a/docs/agents/decoder-loop.md b/docs/agents/decoder-loop.md index e51986bf..c38b62e0 100644 --- a/docs/agents/decoder-loop.md +++ b/docs/agents/decoder-loop.md @@ -1,6 +1,40 @@ You are the **Decoder**. Answer the open questions the Godot menu port is blocked on, one at a time. +## 🔴🔴 SOLE FOCUS, 2026-09-02: **THE TITLE'S ANIMATION TIMING — F5 and F6, nothing else** + +**Work only these two.** Not the pipeline, not the audio mix, not the repeat +rate — they stay queued in +[`PLAYTEST-2026-09-02-menus.md`](PLAYTEST-2026-09-02-menus.md). + +> *"Let's have the agents focus on this item and only this only."* + +**F6 first** — it is the one with a lead. A human reports that the title's +sweeping white glow (**`ptloop01` / `ptloop02`**, the blue PCB-like lines) **only +starts when the plate appears** in the real game, while the port starts it +earlier. `title.json` declares those elements at `t = 0, 70, 100, 238, 250` and +the plate reaches full alpha at **`t = 236`** — with `pteff02` keyed at exactly +236 and `ptlogo_back2eff`/`ptcopyright` at 238. **236–238 is a synchronisation +point in the declared data and a human just reported a behaviour change there.** +⚠️ `238…250` may equally be an **exit ramp** (`ptcopyright` uses that shape and +starts nothing), and the sweep lives in a nested `.rat` leaf with its own +timeline. Establish which of the two the human is watching. + +**F5 second** — does Ⓐ **snap** the title to finished, or **accelerate** it? The +human says they cannot tell, and is right that they cannot: a three-frame +acceleration and a one-frame cut look identical to an eye. Two routes, and they +should agree: a **per-frame capture** (an acceleration shows intermediate alphas, +a cut shows none) and **the code** (assigning a target time and raising a rate +multiplier are different instructions). Their *"looks more like a snap"* is a +**prior, not a result** — say so if the measurement disagrees. + +### And split it before you start + +**Read the new "Work in units a human can check in a minute" section of +[`PROTOCOL.md`](PROTOCOL.md).** The human's diagnosis is that whole missions have +been too big to hold. Break even F6 down, write the question and the +look-at-this-and-you-will-see before working, do one, hand it over, stop. + ## ✅ THE LOGO SPLASHES ARE DONE — signed off by the human, 2026-09-02 > *"Looks good! Cannot notice any obvious difference from the actual game. diff --git a/docs/agents/port-loop.md b/docs/agents/port-loop.md index b98505a4..6fd67c27 100644 --- a/docs/agents/port-loop.md +++ b/docs/agents/port-loop.md @@ -1,5 +1,34 @@ You are the **Port**. Build the Godot menu shell, one milestone at a time. +## 🔴🔴 SOLE FOCUS, 2026-09-02: **THE TITLE'S ANIMATION TIMING — F5 and F6, nothing else** + +**Work only these.** Not the repeat rate, not the audio mix, not P7 — they stay +queued in +[`../agents/PLAYTEST-2026-09-02-menus.md`](../agents/PLAYTEST-2026-09-02-menus.md). + +> *"Let's have the agents focus on this item and only this only."* + +**F6 — the title's sweeping white glow starts too early here.** A human watching +the real game reports that the glow travelling along the blue PCB-like lines +(**`ptloop01` / `ptloop02`**) **only begins when the plate appears**; the port +starts it before. **This is the Decoder's to establish and yours to implement** — +do not choose a start time. What you *can* do now without an answer: determine +exactly **what your renderer currently uses** to start that sweep, so that when +the answer lands the change is one line and not an investigation. + +**F5 — does Ⓐ snap or accelerate the title?** The Decoder is measuring it. Until +they answer, **do not implement Ⓐ#2** — a snap and a speed-up are different +behaviours and picking one is exactly the guessing that has cost this project. + +### And split it before you start + +**Read the new "Work in units a human can check in a minute" section of +[`PROTOCOL.md`](PROTOCOL.md).** The human's diagnosis is that whole missions have +been too big to hold — the splash sat through a milestone, then took a day once +scoped to *does it animate?*. Break the work down, write the question and what +the human should look at **before** working, do one unit, hand it over, and stop. +Do not stack a second change on an unverified first. + ## ✅ THE LOGO SPLASHES ARE DONE — signed off by the human, 2026-09-02 > *"Looks good! Cannot notice any obvious difference from the actual game.