From 83da9bd1ea503b4bdd947f02cce2847838228f18 Mon Sep 17 00:00:00 2001 From: sylph-decoder Date: Sat, 29 Aug 2026 18:25:52 +0000 Subject: [PATCH] method: an insensitive observable fails twice, and the second way sends you hunting The port checked my pivot claim rather than taking it and found the nuance: the sprite is odd-width, 399, so its true centre is 199.5 against a declared pivot of 200. Half a pixel, far inside the 0.70 and 0.48 px agreement, so it changes nothing -- but "the pivot IS the centre" is the kind of sentence somebody leans on for a sub-pixel claim later, so the page now says it is the centre rounded up. And records the general form of the two bugs this exchange produced, which share one cause. First, a leaf-composition rule was checked against alpha, which moves about 0.3 levels per keyframe unit, so a one-keyframe association error barely shifted it and the rule looked confirmed -- while the same span moved x by 1560 px. Second, fitting t from that same alpha manufactured an 11.5 px position residual that did not exist and sent the consumer hunting a pivot rule to explain it, because one byte of alpha quantisation is worth 1.5 to 1.9 keyframe units. Solve on the fastest-moving field and check the slow one, never the reverse. The second failure is the more expensive: failing to falsify leaves you falsely reassured, but inventing a residual sends you looking for a mechanism. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd --- docs/re/METHOD.md | 13 +++++++++++++ docs/re/structures/ui-leaf-vs-parent-alpha.md | 10 ++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/re/METHOD.md b/docs/re/METHOD.md index 4245ba4e..b7bb9e7c 100644 --- a/docs/re/METHOD.md +++ b/docs/re/METHOD.md @@ -58,6 +58,19 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the * **My own last-turn result is a hypothesis too.** * **A global partition can understate a per-owner one.** * **A residual is measured against a population — name it.** +* 🔴 **An insensitive observable fails TWICE, and the second way is worse.** + Two bugs in one exchange, one cause: + 1. A leaf-composition rule was checked against **alpha**, which moves ~0.3 + levels per keyframe unit — so a one-keyframe association error barely + shifted it and the rule **looked confirmed**. The same span moved `x` by + **1 560 px**. + 2. Fitting `t` from that same alpha then **manufactured an 11.5 px position + residual that did not exist**, and sent the consumer hunting a + pivot/rotation mechanism to explain it. One byte of alpha quantisation is + worth 1.5–1.9 keyframe units, i.e. 6–8 px of sweep. + **Solve on the fastest-moving field; check the slow one. Never the reverse.** + ⚠️ The second failure is the more expensive: not-falsifying leaves you falsely + reassured, but **inventing a residual sends you looking for a mechanism**. * ⚠️ **A stated reach is a boundary, not a hedge — do not extrapolate past it.** `ui-render-tone-curve.md` fitted γ ≈ 1.34–1.49 on **dark flat patches** and wrote "nothing constrains midtones or highlights". Used above that range the diff --git a/docs/re/structures/ui-leaf-vs-parent-alpha.md b/docs/re/structures/ui-leaf-vs-parent-alpha.md index e586e908..28b982ca 100644 --- a/docs/re/structures/ui-leaf-vs-parent-alpha.md +++ b/docs/re/structures/ui-leaf-vs-parent-alpha.md @@ -140,8 +140,14 @@ At the position-derived **t = 357.7**, every observable lands: ✅ **Sub-pixel on both positions, inside one byte on both alphas** — while the parent's alpha is **0** throughout. And the leaf **pivot is (200, 90)** against a -399×180 sprite, i.e. the pivot *is* the sprite centre, so rotation displaces the -centre by nothing. There is no pivot/rotation correction to find. +399×180 sprite, so rotation displaces the centre by essentially nothing and there +is no pivot/rotation correction to find. + +⚠️ **To half a pixel, not exactly** (the port's check, and worth keeping): the +sprite is **odd-width**, so its true centre is **199.5**, and the declared pivot +is 200. The 0.5 px offset is far inside the −0.70 / −0.48 px agreement above and +changes nothing here — **but do not lean on "the pivot IS the centre" for a +sub-pixel claim.** It is the centre rounded up. ⚠️ **The methodological point is the same one this exchange started with, inverted.** Earlier, a rule *looked confirmed* because it was checked against