feat(queen): the city on the comb - islands of the mark as floating soil, a structure per card, a crystal per device - #901
Merged
Conversation
…oil, a structure per card, a crystal per device
Loop cycle 005, the user's three decisions of 2026-09-04: a city whose tile
IS the mark (not a city instead of the comb); only the down-pointing cells
remain, so the marks touch at vertices and float as islands, each the field
of one unit; and the islands are soil through which the drawing shows.
- buildCells keeps only the down cells (rows sized to hold every card).
- Every island floats on its own phase (zc): ground, walls, nodes, effects,
structures and the shadows of what stands on them move as one body.
- The ground pass draws each island as a slab: a dark underside and three
side faces nine units below, the engraved plate on top at alpha .85/.7/.35
by territory, a lit rim; the mark's 135 edges are drawn over the soil.
- One structure sprite per card cell by column (structure-{backlog,running,
review,done,blocked,dropped}) and one crystal per verified hardware device
by family (crystal-{cpu,fpga,gpu}, crystalOf in queenHud.ts), painter-
sorted by projected depth, under the bees. A sprite that has not loaded
draws nothing. The context panel shows a picked card's structure.
- Nine renders through the sprite pipeline (kie.ai google/nano-banana, the
house engraving idiom), all nine accepted on the first submission; tinted
dim silver / cyan / silver / gold / cold / dark and gold / cyan / green.
Green: eslint, tsc, honesty 18/18, languages 204/204, seven Queen contracts,
api, ratchet, viewport 25/25, dead-api 10/10, touch (18 cells), round.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot
added a commit
that referenced
this pull request
Sep 4, 2026
feat(queen): the city on the comb - islands of the mark as floating soil, a structure per card, a crystal per device (#901) Loop cycle 005, the user's three decisions of 2026-09-04: a city whose tile IS the mark (not a city instead of the comb); only the down-pointing cells remain, so the marks touch at vertices and float as islands, each the field of one unit; and the islands are soil through which the drawing shows. - buildCells keeps only the down cells (rows sized to hold every card). - Every island floats on its own phase (zc): ground, walls, nodes, effects, structures and the shadows of what stands on them move as one body. - The ground pass draws each island as a slab: a dark underside and three side faces nine units below, the engraved plate on top at alpha .85/.7/.35 by territory, a lit rim; the mark's 135 edges are drawn over the soil. - One structure sprite per card cell by column (structure-{backlog,running, review,done,blocked,dropped}) and one crystal per verified hardware device by family (crystal-{cpu,fpga,gpu}, crystalOf in queenHud.ts), painter- sorted by projected depth, under the bees. A sprite that has not loaded draws nothing. The context panel shows a picked card's structure. - Nine renders through the sprite pipeline (kie.ai google/nano-banana, the house engraving idiom), all nine accepted on the first submission; tinted dim silver / cyan / silver / gold / cold / dark and gold / cyan / green. Green: eslint, tsc, honesty 18/18, languages 204/204, seven Queen contracts, api, ratchet, viewport 25/25, dead-api 10/10, touch (18 cells), round. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
gHashTag
added a commit
that referenced
this pull request
Sep 4, 2026
Loop cycle 006 (queen-game-loop), backlog P0-13. The comb rebuilds its cells from the card list on every poll, and since #901 the field is exactly that list, so a stored cell index drifted to a stranger's cell whenever the board reordered: the outline stood on one card while SELECTED and OPEN ISSUE named another. The pick is now derived, never stored as an index: a pick with a card follows its number across polls and re-reads the card (column, territory); a pick without one keeps its index; a card that left the board clears the pick. The viewport section carries data-pick-index and data-pick-number for probes. qa/queen-pick-contract.mjs (check:queen-pick): headless Chrome, CDP Fetch at the response stage caches the live board and answers every later poll with the cards rotated by seven; a picked card must keep its number and SELECTED text while its index moves. Shown to fail on the index-based logic (index did not follow, panel and outline disagreed); on this build #1418 stayed picked, index 0 -> 158. Green: eslint, tsc, honesty 18/18, languages 204/204, seven Queen contracts, api, ratchet, viewport 25/25, dead-api 10/10, touch, round. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot
added a commit
that referenced
this pull request
Sep 4, 2026
fix(queen): the pick is a card number, not a cell index (#902) Loop cycle 006 (queen-game-loop), backlog P0-13. The comb rebuilds its cells from the card list on every poll, and since #901 the field is exactly that list, so a stored cell index drifted to a stranger's cell whenever the board reordered: the outline stood on one card while SELECTED and OPEN ISSUE named another. The pick is now derived, never stored as an index: a pick with a card follows its number across polls and re-reads the card (column, territory); a pick without one keeps its index; a card that left the board clears the pick. The viewport section carries data-pick-index and data-pick-number for probes. qa/queen-pick-contract.mjs (check:queen-pick): headless Chrome, CDP Fetch at the response stage caches the live board and answers every later poll with the cards rotated by seven; a picked card must keep its number and SELECTED text while its index moves. Shown to fail on the index-based logic (index did not follow, panel and outline disagreed); on this build #1418 stayed picked, index 0 -> 158. Green: eslint, tsc, honesty 18/18, languages 204/204, seven Queen contracts, api, ratchet, viewport 25/25, dead-api 10/10, touch, round. Co-authored-by: Claude Opus 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.
What
The user's decisions of 2026-09-04: a city whose tile IS the mark; only the down-pointing cells remain, so the marks float as islands, each the field of one unit; the islands are soil through which the drawing shows. One structure sprite per card by column, one crystal per verified hardware device by family, nine renders through the sprite pipeline.
Verified
eslint, tsc,
check:queen-honesty18/18, languages 204/204, allcheck:queen-*, api, ratchet, viewport 25/25, dead-api 10/10, touch, round.🤖 Generated with Claude Code