docs(board): record #921 — the wind reuse and the doctrine that does not fit it - #922
Conversation
…not fit it #921 merged with neither board file updated. It was a MIXED PR (board hygiene for #920 plus the wind bearing-encode finding), so the termination clause does not apply — per the rule, the non-hygiene half is what the entry is for. The entry records what #921 actually settled: - The invention/reuse line. Invention = asserting structure the code already answers. Reuse = applying the shipped codec to a new domain, which is what a normalized substrate is for. A missing entry point for a designed reuse is a plumbing gap, not a design refusal — correcting #920 §12.12, which declined to build the bearing-encode on the wrong grounds. - The finding the reuse surfaced: the knowledge doc prescribes nearest spherical-Fibonacci (n, sign) for encoding a direction, and it does NOT fit weather. Horizontal bearings measure 1.9-2.7 deg via nearest-n vs 0.000 deg via a direct (polar, azimuth) write; mean over 24 cases 0.972 vs 0.097 — 10x. The golden spiral couples latitude and azimuth through ONE index, so a bearing at the horizon cannot be chosen independently; and the lattice is equal-area on the DISK, so latitude density ~ sin(2*lat) is sparsest exactly at the equator. Normals spread over the sphere and never hit this. - The rule: a doctrine written for one domain is not automatically right for the next one that reuses it. Deferrals carried forward, including that no public from_bearing was minted — the API shape is an operator call and must not be built on before it is made. This commit is hygiene-only, so per the termination clause it generates no further board obligations of its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_f70854a3-23a8-4f73-9922-dac6c60d259b) |
… verdict inversions #923 merged with neither board file updated. It shipped a plan, public code, three epiphanies and four knowledge-doc corrections — squarely not hygiene-only, so the merged-PR row's obligations apply in full. The entry records what #923 settled: - Topology selects the TABLE FORMULA; it never decides whether a quantity belongs in the palette domain. circular() = min(|a-b|, 256-|a-b|) proven a metric EXHAUSTIVELY (0 violations / 16,777,216 triples), so distance.rs's "raw-azimuth is NOT a metric (the 2pi wrap)" is about the formula, not angles. - The LUT is the [a,b] amortization point: quantize() normalizes once at ingest, from_floor() folds the same normalization into the table, and afterwards comparisons are pure lookups in unit-free units. O(256^2) once instead of O(N^2). - Judge a normalized representation by what its FIELD does, not by what one element decodes to — a per-element accuracy number is the round-trip metric wearing a different hat. - Three verdict changes on ONE question are recorded as such: §12.13 ranked the bearing encodes by reconstruction error (the banned metric), §12.14 inverted it on field ergonomics, §12.15 found §12.14 too strong — the fix was never "abandon the direct path", it was give the wrapping lane its own table. - The expensive one: perturbation_sim::RollingFloor ALREADY IS the corrected evaluation frame, Jirak citation included, and I re-derived it in Python. It is the fourth instance of one frame in this workspace. Deferrals carried forward: the plan ships DRAFT-pending-audit (§8 folds a 13-agent verify/attack pass and flips it ACTIVE — that audit had NOT completed at merge, so any [H] row stays unconfirmed); no from_bearing minted; EV-1.. EV-10 all Queued; D-1..D-6 open; the dormant-lane defect filed not fixed. Also recorded: helix is root-workspace-excluded and in no CI workflow, so its tests run only by hand; two pre-existing 1.97 clippy findings were deliberately left alone rather than sweeping files outside scope; and the #922 merge race — five commits stacked on merged history, rebased and reopened as #923, with #922's description restored to describe only what it merged. This commit is hygiene-only, so per the termination clause it generates no further board obligations of its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
…ng, and the append-only audit could not fail Operator: "930 has comments / check also previous 5 / if you want go back another 5." All 68 review comments on #920-#930 enumerated and checked against the TREE, not the merge. Depth is non-uniform and said so: #922-#930 finding-by-finding; #920 (27) and #921 (5) spot-checked on P1/governance only (both clean), ~30 older findings there left explicitly UNVERIFIED. Clean: #922/#924/#925/#929 zero comments; all 27 of #926's findings fixed in the tree (equal-budget grid_pts + regenerated E2 JSON, seam-wrapping subgrid_min, find_center->None, F7d 35->40, CT_F12 NO-VERDICT, persisted storm metadata, np.roll longitude, __file__-relative write, net-decay E6, the 93-97%->90.9-94.3% headline); #923's plan-status P2 resolved. Three open, all frozen in append-only ledgers, all corrected in NEW entries: 1. "+92.76 Pa moves R2 in the 5th decimal" is refuted by the report's own carve table 15 lines above it: carve A's +92.76 Pa moved R2 0.9212->0.9129 (0.0083, THIRD decimal); carve D's +1.59 Pa moved it 2.4e-06 (SIXTH). The var() BUG was blind at every magnitude; the STATISTIC is near-blind only in the single-digit-Pa regime -- which is exactly where "lossless" was claimed. 2. "10 probe scripts with committed JSON" undercounts: 15 .py added, 11 with a committed .json. 3. "+13/-0, +10/-0, +0/-0": measured +13/-0, +17/-0, and EPIPHANIES absent from the net diff -- it was +1/-1 at 0f9e6bc (the in-place edit), zeroed by the revert. The +0/-0 was a revert artefact, not evidence of purity. And the audit METHOD is replaced: zero-deletions proves ADDITIVE, not PREPEND. The suffix check (new.endswith(old)) proves it. Both halves measured before banking: a constructed end-append scores zero-del=True/suffix=False; a true prepend True/True. It also fires on THIS PR (LATEST_STATE suffix=False at +15/-0) -- correctly, since #930 inserts table rows mid-file and composes an unmerged entry in place. A False is a demand for justification, not a verdict. Same defect shape as #930's relation error, twice in three days: two individually-true numbers asserted of one pair when each belongs to a different one. A figure-by-figure check cannot catch it; the relation must be evaluated as a claim. Already standing in report SS10.1 and the worker preamble of weather-w-probes-v1 (both verified present, not assumed). Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi
Post-merge board hygiene for #921, which merged with zero references in either board file.
#921 was a mixed PR — board hygiene for #920 plus the wind bearing-encode finding — so the termination clause did not apply, and the non-hygiene half is what its entry is for.
What this PR merged (head
ac2a0dea): the #921PR_ARC_INVENTORYentry (invention/reuse line, the 10× bearing measurement, the deferredfrom_bearingdecision), the matchingLATEST_STATEentry, and the append-onlyCorrection+Confidenceupdates.(Note: five follow-up commits — the field-ergonomics verdict inversion,
DistanceLut::circular(), §12.16/§12.17, and the evaluation plan — were pushed to the branch after this PR merged and are NOT in this diff. They land via the successor PR. Two earlier post-merge edits to this description wrongly described that later content as being in here; this restoration corrects the record.)🤖 Generated with Claude Code
https://claude.ai/code/session_01CcpLeEC3XK8Eye53GKBVvi