Skip to content

feat(queen): XP counts .t27 specs, because that is the goal the law names - #513

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

gHashTag merged 1 commit into
feat/queen-supervisorfrom
feat/xp-counts-specs

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Owner's word, 2026-09-23: the specs themselves are the main thing this score should measure.

That is not a preference — it is law L0, adopted today: the stack below the interface becomes .t27. A score that paid the same for a shell script and for the spec replacing it would reward every direction equally while the constitution names one.

The rule

SPEC_XP = 200 on top of ACCEPTED_XP, not instead of it: the bonus says and this one moved the goal, it does not pretend the rest was not work.

What counts as spec work, and why it needed no new plumbing

Nothing records which files a bee actually wrote — but owned_paths already records what the issue said it would touch, and that is the same claim the Queen reserves against. An accepted turn whose boundary names a .t27 file is spec work.

Derived per read from rows that already exist, so the number can be recomputed by anyone against the issues it came from.

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. And specs cannot exceed accepted, whatever a row claims.

Checks

bun test apps/server/tests/api/queen-leaderboard.test.ts — 14 pass. Three are about this: the bonus adds rather than replaces, the same amount of work that moved a spec outranks the work that did not, and the count is clamped.

One trap worth naming: a backtick inside the SQL comment ended the template literal and turned the rest into a tagged call. The comment now says so.

Board side: gHashTag/trinity#1146.

🤖 Generated with Claude Code

…ames

Owner's word, 2026-09-23: the specs themselves are the main thing this score
should measure. That is not a preference - it is law L0, adopted today: the
stack below the interface becomes .t27. A score that paid the same for a shell
script and for the spec replacing it would reward every direction equally while
the constitution names one.

SPEC_XP = 200 on TOP of ACCEPTED_XP, not instead of it: the bonus says "and
this one moved the goal", it does not pretend the rest was not work.

WHAT COUNTS AS SPEC WORK, and why it needed no new plumbing. Nothing records
which files a bee actually wrote - but `owned_paths` already records what the
issue said it would touch, and that is the same claim the Queen reserves
against. An accepted turn whose boundary names a .t27 file is spec work. It is
derived per read from rows that already exist, so the number can be recomputed
by anyone against the issues it came from.

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.

`specs` cannot exceed `accepted`, whatever a row claims: a number that outran
its own denominator would be unreadable against the issues behind it.

14 tests. Three of them are about this: the bonus adds rather than replaces,
the same amount of work that moved a spec outranks the work that did not, and
the count is clamped.

One trap worth naming: a backtick inside the SQL comment ENDED the template
literal and turned the rest into a tagged call. The comment now says so.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

⚠️ No test results were produced

View workflow run

@gHashTag
gHashTag merged commit ad21b7a into feat/queen-supervisor Sep 23, 2026
3 of 18 checks passed
@github-actions
github-actions Bot deleted the feat/xp-counts-specs branch September 27, 2026 04:43
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