Add weight-chambers prototype of the A1 score triangle - #142
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 tasks
# Conflicts: # package.json
On the w_G = 0 edge the readout never showed the reduced ratio: 0,84,84 showed nothing while 84,84,0 showed = 1 : 1 : 0, 121 of the 5,077 reducible lattice points in all. It hid the ratio when ratio[0] === weights[0], meant as "no common factor", which holds for any factor once w_G = 0. Hide it only when the reduction leaves every weight unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
prototypes/weight-chambers/, a standalone page that moves the primary weights over the integer lattice w_G + w_R + w_B = 168 and shows the order the additive score σ(S) = Σ_{c∈S} w_c gives the eight states. Six walls cut the weight triangle into twelve chambers; the three A1 conditions (w_B > 0, w_R > w_B, w_G > w_R + w_B) hold exactly in the chamber ordered K<B<R<M<G<C<Y<W. A1 and Theorem 1 follow the numbering Derive GRB ranks from the three score conditions #144 brought todocs/algebraic-color-model.md.model.test.tsenumerates all 14,365 lattice points. It checks the funnel of 48 inclusion orders → 12 reversed by complement (the twelve chambers, which are also the de Finetti orders) → 6 with additive rank → 1, and that each wall swaps exactly the pairs that tie on it. Expectations are rebuilt from subsets of {G,R,B}, independently of the model's bit arithmetic. Like hue-euler's, the file runs undernpm test, so the CIchecksjob covers it.main.ts,playwright.config.tsandbrowser.check.tsasknipentries. The page is not a build input and nothing in the app links to it;dist/contains noprototypes/.ratio[0] === weights[0]stood in for "no common factor". It is now hidden only when the reduction leaves every weight unchanged, and a browser check covers all three edges.mainis merged in (#139, #141, #143, #144). The only conflict was theknipentry list, where #144 added the De Morgan prototypes at the same place; both sets are kept.Checks
On 5cfa60c. The first five ran inside
npm run verify(exit 0, 96 s).npm run format:check(it does not coverprototypes/;npx prettier --check prototypes/weight-chambersis clean as well)npm run lint(it does not coverprototypes/;npx eslint prototypes/weight-chambersis clean as well)npm run deadcodenpm run typecheck:all, plusnpx tsc --noEmit -p prototypes/weight-chambers/tsconfig.jsonnpm run build(astypecheck:appandbuild:bundle)npm run verify: 113 files, 1,311 tests;npx playwright test -c prototypes/weight-chambers/playwright.config.ts --workers=1: 8 passed — CI does not run these browser checks)Visual Review
?w=0,84,84now reads0 : 84 : 84 = 0 : 1 : 1in the dev server, and the prototype's own checks drive the page in Chromium at 320, 390, 576, 834 and 1186 px, asserting that no readout moves across six weight states and that every SVG label stays inside its figureDocumentation And Licensing
docs/is unchangeddocs/LICENSE.mdenumerates (the listed research documents and Theory tab content), so no boundary moves🤖 Generated with Claude Code