Skip to content

feat(queen): the board counts .t27 specs, and says the rule it is drawing - #1145

Merged
gHashTag merged 1 commit into
mainfrom
feat/xp-counts-specs
Sep 23, 2026
Merged

gHashTag merged 1 commit into
mainfrom
feat/xp-counts-specs

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

The score paid the same for any accepted issue, while law L0 — adopted today — names one direction: the stack below the interface becomes .t27.

So the tab now shows ".t27 specs" beside "Accepted", and the scoring line says what a spec is worth (gHashTag/BrowserOS#513).

The count travels beside the total rather than folded into it. A score that hid which half moved the language would be a score nobody could check against the issues it came from — and the scoring sentence is still read from the server's own scoring field, so the rule stated and the rule applied cannot drift.

The column appears only when the server sends it, so a board pointed at an older agent reads correctly instead of printing a zero it did not measure.

Checks

  • qa/queen-language-contract.mjs — 375 EN / 375 RU.
  • qa/queen-fallback-parity.mjs — 193/193.
  • qa/queen-contrast-contract.mjs — 24 pairs, worst 5.39:1.
  • npm run typecheck:ratchet — no file gained errors.
{
  "version": 1,
  "head_sha": "698abfad8310326ed2e49ad2f399fd8cdb8f0022",
  "summary": "The leaderboard paid the same for every accepted issue while the constitution names one direction, so the board now counts and shows the .t27 specs a lane's accepted work moved.",
  "changes": [
    "Show a .t27 specs count beside Accepted on each leaderboard row",
    "Say in the scoring line what a spec is worth, read from the server's own scoring field rather than restated",
    "Show the column only when the server sends it, so an older agent does not make the board print an unmeasured zero"
  ],
  "tests": [
    {
      "command": "node --experimental-strip-types qa/queen-language-contract.mjs",
      "result": "Queen language contract PASS with 375 English keys and 375 Russian keys",
      "status": "passed",
      "evidence": "The new label and the rewritten scoring sentence exist in both languages."
    },
    {
      "command": "node --experimental-strip-types qa/queen-fallback-parity.mjs",
      "result": "Queen fallback parity PASS, 193 of 193 fallbacks agree with a declaration",
      "status": "passed",
      "evidence": "The colour marking spec work names a token that is actually declared."
    },
    {
      "command": "node --experimental-strip-types qa/queen-contrast-contract.mjs",
      "result": "24 pairs measured over a lit and a dark field, worst 5.39 to 1",
      "status": "passed",
      "evidence": "The new column sits on the row ground that was already measured."
    },
    {
      "command": "npm run typecheck:ratchet",
      "result": "179 errors against a baseline of 179 with no file gaining any",
      "status": "passed",
      "evidence": "Run on this branch after the scoring signature widened."
    }
  ],
  "limitations": [
    "Spec work is read from what an issue declared it would touch rather than from the files a bee wrote, because nothing records the second; an issue whose boundary named a spec it never reached still counts",
    "The weight lives on the server, so two boards pointed at different agents can show different totals for the same work"
  ],
  "tags": [
    "queen",
    "leaderboard",
    "t27"
  ],
  "blog": {
    "title": "A score that paid the same for every direction",
    "summary": "The leaderboard rewarded accepted work without noticing whether it moved the language the constitution names, so the board now counts the specs and says what one is worth.",
    "outline": [
      "The game's goal is a law: everything below the interface becomes a specification in the project's own language.",
      "The score knew nothing about that, paying the same for a shell script and for the spec written to replace it.",
      "Nothing records which files a worker wrote, but every issue already declares which paths it may touch.",
      "That declaration is the same claim the scheduler reserves against, so it can be counted without new plumbing.",
      "The count is shown beside the total rather than folded in, because a hidden weight is one nobody can check."
    ]
  }
}

🤖 Generated with Claude Code

…wing

The score paid the same for any accepted issue, while law L0 - adopted today -
names one direction: the stack below the interface becomes .t27. So the tab now
shows ".t27 specs" beside "Accepted", and the scoring line says what a spec is
worth (BrowserOS feat/xp-counts-specs).

The count travels BESIDE the total rather than folded into it. A score that hid
which half moved the language would be a score nobody could check against the
issues it came from - and the scoring sentence is still read from the server's
own `scoring` field, so the rule stated and the rule applied cannot drift.

The column appears only when the server sends it, so a board pointed at an
older agent still reads correctly instead of printing a zero it did not measure.

Language 375/375, fallback parity 193/193, contrast 24 pairs worst 5.39:1,
typecheck ratchet unchanged.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the status:in-progress 🔵 Agent working label Sep 23, 2026
@gHashTag
gHashTag merged commit 62340de into main Sep 23, 2026
31 of 37 checks passed
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Sep 23, 2026
github-actions Bot added a commit that referenced this pull request Sep 23, 2026
feat(queen): the board counts .t27 specs, and says the rule it is drawing (#1145)

The score paid the same for any accepted issue, while law L0 - adopted today -
names one direction: the stack below the interface becomes .t27. So the tab now
shows ".t27 specs" beside "Accepted", and the scoring line says what a spec is
worth (BrowserOS feat/xp-counts-specs).

The count travels BESIDE the total rather than folded into it. A score that hid
which half moved the language would be a score nobody could check against the
issues it came from - and the scoring sentence is still read from the server's
own `scoring` field, so the rule stated and the rule applied cannot drift.

The column appears only when the server sends it, so a board pointed at an
older agent still reads correctly instead of printing a zero it did not measure.

Language 375/375, fallback parity 193/193, contrast 24 pairs worst 5.39:1,
typecheck ratchet unchanged.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant