Skip to content

feat(queen): faces on the leaderboard, a way in on the roadmap, and rules that stopped being true - #1132

Merged
gHashTag merged 5 commits into
mainfrom
feat/leaderboard-github-names
Sep 23, 2026
Merged

gHashTag merged 5 commits into
mainfrom
feat/leaderboard-github-names

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Three changes that answer one complaint: the board measured the game and never invited anyone into it.

The leaderboard shows people, not lane numbers

A lane signed @login in TRIOS_KEY_OWNERS now draws that person's GitHub avatar and links their profile. The connection is direct — the issues, the branches and the pull requests a bee opens all live on GitHub — so a leaderboard of faces is an invitation where a leaderboard of key #7 was a log.

The avatar is github.com/<login>.png, a public redirect: no API call, no token, no rate limit, and a 404 leaves the row readable. The login is validated twice — once on the server, once again on the page — because it ends up in an href and an <img src>, and a page that trusts a remote string to build a profile link can be pointed at somebody else's account. @alex/../torvalds, @alex.png, mail@example.com and a 40-character handle are each refused by name in a test.

This also fixes a real defect seen at 440 px on the live board: "Accepted" and "Bee hours" landed on top of each other. The three numbers now ride in one box.

The roadmap asks people in

The tab said how far the rewrite has to go and never said that anyone could push it. A measurement is not a reason for a stranger to stay.

The count of open port issues is now a button that opens the real GitHub search — the issues themselves, not a page about the project — and the text says the two things a newcomer does not know: that the work is cut into one file per issue, and that they need neither permission nor prior .t27 to take one. The number costs no extra request; it is the stage-progress search the bars already make, read as all - done.

The rules said there was no ranking

specs/catalog/onboarding.t27 is the rules of the game as a machine reads them: it compiles, its test blocks are evaluated, and only then is it published at t27.ai/llms.txt and t27.ai/agents.t27. One of its stated unknowns was:

"what a contribution is worth: there is no reward, no token and no ranking, and inventing one would break the honesty law above"

That stopped being true when LEADERBOARD shipped. Under a law that removes any claim which cannot be traced to a source, a claim contradicted by the thing we just built cannot be left standing.

The ranking is now stated where it can be checked — both addresses, both numbers, how it is derived — and in the same breath, that it buys nothing and converts to nothing. A seventh way in joins the six: a person who would rather lend than write can lend one provider key, which runs one bee. The pair that could quietly rot is tested together: a ranking arrived, and the rule against asking a reader for a credential did not move.

The tutorial

The LEADERBOARD tab invites people to lend a lane and nothing anywhere told them how. how-to-join-the-swarm is that missing page, in English and Russian: the game, the two ways in, the board tab by tab, the seven laws, and where a free provider key comes from.

The research behind its provider table is the part worth reading. The invitation runs into agreements that forbid it in explicit words — OpenAI bars transferring API keys, Anthropic names the API key directly, Google says credentials "may not be embedded in open source projects" — with no carve-out for non-commercial use. So the post leads with the design that asks nobody to breach anything: the key never moves and the bee runs on the contributor's own machine, the way AI Horde and BOINC work. That is named as missing here rather than implied as available.

Checks

  • qa/queen-contrast-contract.mjs — 24 pairs over a lit and a dark field, worst 5.39:1.
  • qa/tri-identity-contract.mjs — 669 checks. qa/queen-language-contract.mjs — 375 EN / 375 RU.
  • scripts/onboarding-from-spec.mjs — 10 test blocks, 54 asserts, all hold; 7 join steps published.
  • npm run typecheck:ratchet — no file gained errors (179 baseline).

Server side: gHashTag/BrowserOS#511.

{
  "version": 1,
  "head_sha": "f22bf5d35b58c14f4f226578707bf162259ca70c",
  "summary": "The leaderboard draws the GitHub people behind the lanes, the roadmap turns its open-issue count into a way in, and the machine-readable rules stop claiming there is no ranking now that XP exists.",
  "changes": [
    "Draw a lane holder's GitHub avatar and link their profile when the operator signed the lane as an at-login",
    "Validate the login again on the page rather than trusting the wire, because it becomes an href and an image source",
    "Put the three leaderboard numbers in one box so they cannot overlap when a row wraps on a phone",
    "Turn the roadmap's count of open port issues into a button that opens the real GitHub search",
    "Say on the roadmap that the work is one file per issue and needs neither permission nor prior t27",
    "Correct the onboarding spec, which stated there was no reward, no token and no ranking",
    "State the XP rule, both addresses and the fact that XP buys nothing, where the spec's own tests check it",
    "Add a seventh way in for a person who would rather lend a provider key than write code",
    "Publish a bilingual tutorial that explains the game, every tab of the board, the seven laws and both ways in",
    "State in that tutorial what each provider agreement actually says about handing a key to somebody else, quoting it"
  ],
  "tests": [
    {
      "command": "node scripts/onboarding-from-spec.mjs",
      "result": "the spec compiles and publishes; 10 test blocks, 54 asserts, all hold, 7 join steps",
      "status": "passed",
      "evidence": "The generator refuses to publish unless every test block in the spec evaluates true."
    },
    {
      "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, 28 stylesheets walked",
      "status": "passed",
      "evidence": "The new roadmap invitation panel is grounded on the veil and measured with the rest."
    },
    {
      "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": "Every new string on the roadmap is written in both languages and the counts stay balanced."
    },
    {
      "command": "npm run typecheck:ratchet",
      "result": "179 errors across 26 files against a baseline of 179; no file gained type errors",
      "status": "passed",
      "evidence": "Ratchet output on this branch."
    }
  ],
  "limitations": [
    "A face appears only where the operator wrote an at-login in TRIOS_KEY_OWNERS; until a person can submit their own key there is no self-service way onto the board",
    "The roadmap's open count comes from the first stage that carries a progress query, so it understates the work available across the other seven stages"
  ],
  "tags": [
    "queen",
    "leaderboard",
    "onboarding"
  ],
  "blog": {
    "title": "A board that measured the game but never invited anyone in",
    "summary": "The leaderboard now shows the GitHub people behind the lanes, the roadmap turns its own count into a way in, and the machine-readable rules were corrected where shipping XP had made them false.",
    "outline": [
      "A leaderboard of key numbers is a log; a leaderboard of faces is an invitation, and the connection to GitHub was there all along.",
      "The login is checked twice because it becomes a profile link, and a page that trusts a remote string can be pointed at a stranger's account.",
      "The roadmap counted how far the rewrite has to go and never said that a passing reader could push it along.",
      "The rules of the game are a spec whose tests run before publication, and one of its stated unknowns had been made false by our own work.",
      "Correcting it was not optional: the same law that forbids an unsourced number forbids a claim contradicted by the thing we shipped."
    ]
  }
}

🤖 Generated with Claude Code

gHashTag and others added 3 commits September 23, 2026 11:54
The connection to GitHub is direct - the issues, the branches and the pull
requests a bee opens all live there - so a lane signed `@login` in
TRIOS_KEY_OWNERS now draws that person's avatar and links their profile. A
leaderboard of faces is an invitation; a leaderboard of `key #7` is a log.

The avatar is `github.com/<login>.png`, a public redirect: no API call, no
token, no rate limit, and a 404 leaves the row readable. The login is checked
AGAIN here rather than trusted from the wire, because it ends up in an href and
an img src, and a page that trusts a remote string to build a profile link can
be pointed at somebody else's account by whoever writes that string.

Also fixes the row on a phone: the three numbers now ride in one box, so
"Accepted" and "Bee hours" can no longer land on top of each other when the row
wraps (seen at 440 px on the live board).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The tab said how far the rewrite has to go and never said that anyone could
push it. A measurement is not a reason for a stranger to stay.

So the count of OPEN port issues is now a button that opens the real GitHub
search - not a page about the project, the issues themselves - and the text
says the two things a newcomer does not know: that the work is cut into one
file per issue, and that they need neither permission nor prior .t27 to take
one. Underneath, the other way in for someone with no time to write code:
lend the swarm a lane and its work earns XP.

The number costs no extra request. It is the same stage-progress search the
bars already make, read as `all - done`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`onboarding.t27` is the rules of the game as a machine can read them - it
compiles, its test blocks are evaluated, and only then is it published at
t27.ai/llms.txt and t27.ai/agents.t27. One of its stated unknowns was:

    "what a contribution is worth: there is no reward, no token and no
     ranking, and inventing one would break the honesty law above"

That stopped being true on 2026-09-23, when lanes started earning XP and the
LEADERBOARD tab shipped. Under a law that says a claim which cannot be traced
to a source is removed, a claim contradicted by the thing we just built cannot
be left standing.

So the ranking is now stated where it can be checked: the two addresses, the
two numbers (100 per accepted issue, 10 per bee hour), how it is derived, and -
in the same breath - that it buys nothing and converts to nothing. The stated
unknown becomes the honest remainder: what a contribution is worth in anything
but the record of it.

A seventh way in joins the six: a person who would rather lend than write can
lend one provider key, which runs one bee. The pair that could quietly rot is
tested together - a ranking arrived, and the rule against asking a reader for a
credential did not move. An agent that hands over its owner's key because a
file it read mentioned XP has done the one thing this document tells it not to.

10 test blocks, 54 asserts, all hold.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
gHashTag and others added 2 commits September 23, 2026 12:09
The LEADERBOARD tab invites people to lend a lane and nothing anywhere told
them how. This is that missing page: what the game is, the two ways in, the
board tab by tab, the seven laws, and where a free provider key comes from.

The part that took the research is the fourth column of the provider table.
The invitation "lend us your API key" runs into provider terms that forbid
exactly that, and the post says so with names: Cerebras, Mistral, Fireworks and
Moonshot bar transferring a key in those words; NVIDIA's trial terms bar
production use and bar making the service available to others; Groq bars
orchestrating usage between organisations. OpenRouter is the one whose terms do
not stand in the way. Checked live on 2026-09-23 - and the same read found that
GitHub Models was retired on 2026-07-30 and that Cerebras and Together have
dropped their free tiers, so most advice on the web about this is stale.

Saying that costs us the simplest version of the pitch. Publishing the simple
version instead would be asking strangers to breach an agreement they signed,
on our behalf, without telling them - which is not a thing this project gets to
do under its own honesty law.

The roadmap's "how to join" link now points here instead of at a file that does
not exist, and two var() fallbacks that named colours no token declares are
corrected (the fallback-parity gate caught them).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…words

The first draft said "some providers forbid sharing a key". A second read of
the actual agreements says something much harder, and quoting them is the only
honest version:

  OpenAI  - "buy, sell, or transfer API keys from, to, or with a third party"
  Anthropic - "You may not share your Account login information, Anthropic API
            key, or Account credentials with anyone else"
  Google  - "Developer credentials may not be embedded in open source projects"
            and separately, no sublicensing an API to a third party

There is no carve-out for non-commercial or charitable use. Three consequences
follow and the post now names them: a key is not scoped to inference (it can
revoke itself and mint new keys, so whoever holds it holds the account), every
clause puts responsibility for all activity on the account holder, and pooling
keys for throughput is itself forbidden - per-account rate limits are the point,
not an accident.

The post therefore leads with the design that asks nobody to breach anything:
the key never moves, the swarm hands out the task, the bee runs on the
contributor's own machine under their own account, and the patch comes back.
That is how AI Horde and BOINC have always worked. It is not built here, and
the post says so rather than implying it exists.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit a9422f7 into main Sep 23, 2026
27 of 32 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): faces on the leaderboard, a way in on the roadmap, and rules that stopped being true (#1132)

* feat(queen): the leaderboard shows the GitHub people behind the lanes

The connection to GitHub is direct - the issues, the branches and the pull
requests a bee opens all live there - so a lane signed `@login` in
TRIOS_KEY_OWNERS now draws that person's avatar and links their profile. A
leaderboard of faces is an invitation; a leaderboard of `key #7` is a log.

The avatar is `github.com/<login>.png`, a public redirect: no API call, no
token, no rate limit, and a 404 leaves the row readable. The login is checked
AGAIN here rather than trusted from the wire, because it ends up in an href and
an img src, and a page that trusts a remote string to build a profile link can
be pointed at somebody else's account by whoever writes that string.

Also fixes the row on a phone: the three numbers now ride in one box, so
"Accepted" and "Bee hours" can no longer land on top of each other when the row
wraps (seen at 440 px on the live board).

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

* feat(queen): the roadmap asks people in, not just counts

The tab said how far the rewrite has to go and never said that anyone could
push it. A measurement is not a reason for a stranger to stay.

So the count of OPEN port issues is now a button that opens the real GitHub
search - not a page about the project, the issues themselves - and the text
says the two things a newcomer does not know: that the work is cut into one
file per issue, and that they need neither permission nor prior .t27 to take
one. Underneath, the other way in for someone with no time to write code:
lend the swarm a lane and its work earns XP.

The number costs no extra request. It is the same stage-progress search the
bars already make, read as `all - done`.

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

* fix(specs): the rules said there was no ranking, and now there is one

`onboarding.t27` is the rules of the game as a machine can read them - it
compiles, its test blocks are evaluated, and only then is it published at
t27.ai/llms.txt and t27.ai/agents.t27. One of its stated unknowns was:

    "what a contribution is worth: there is no reward, no token and no
     ranking, and inventing one would break the honesty law above"

That stopped being true on 2026-09-23, when lanes started earning XP and the
LEADERBOARD tab shipped. Under a law that says a claim which cannot be traced
to a source is removed, a claim contradicted by the thing we just built cannot
be left standing.

So the ranking is now stated where it can be checked: the two addresses, the
two numbers (100 per accepted issue, 10 per bee hour), how it is derived, and -
in the same breath - that it buys nothing and converts to nothing. The stated
unknown becomes the honest remainder: what a contribution is worth in anything
but the record of it.

A seventh way in joins the six: a person who would rather lend than write can
lend one provider key, which runs one bee. The pair that could quietly rot is
tested together - a ranking arrived, and the rule against asking a reader for a
credential did not move. An agent that hands over its owner's key because a
file it read mentioned XP has done the one thing this document tells it not to.

10 test blocks, 54 asserts, all hold.

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

* docs(blog): how to join the swarm, in both languages

The LEADERBOARD tab invites people to lend a lane and nothing anywhere told
them how. This is that missing page: what the game is, the two ways in, the
board tab by tab, the seven laws, and where a free provider key comes from.

The part that took the research is the fourth column of the provider table.
The invitation "lend us your API key" runs into provider terms that forbid
exactly that, and the post says so with names: Cerebras, Mistral, Fireworks and
Moonshot bar transferring a key in those words; NVIDIA's trial terms bar
production use and bar making the service available to others; Groq bars
orchestrating usage between organisations. OpenRouter is the one whose terms do
not stand in the way. Checked live on 2026-09-23 - and the same read found that
GitHub Models was retired on 2026-07-30 and that Cerebras and Together have
dropped their free tiers, so most advice on the web about this is stale.

Saying that costs us the simplest version of the pitch. Publishing the simple
version instead would be asking strangers to breach an agreement they signed,
on our behalf, without telling them - which is not a thing this project gets to
do under its own honesty law.

The roadmap's "how to join" link now points here instead of at a file that does
not exist, and two var() fallbacks that named colours no token declares are
corrected (the fallback-parity gate caught them).

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

* docs(blog): state what the provider terms actually say, in their own words

The first draft said "some providers forbid sharing a key". A second read of
the actual agreements says something much harder, and quoting them is the only
honest version:

  OpenAI  - "buy, sell, or transfer API keys from, to, or with a third party"
  Anthropic - "You may not share your Account login information, Anthropic API
            key, or Account credentials with anyone else"
  Google  - "Developer credentials may not be embedded in open source projects"
            and separately, no sublicensing an API to a third party

There is no carve-out for non-commercial or charitable use. Three consequences
follow and the post now names them: a key is not scoped to inference (it can
revoke itself and mint new keys, so whoever holds it holds the account), every
clause puts responsibility for all activity on the account holder, and pooling
keys for throughput is itself forbidden - per-account rate limits are the point,
not an accident.

The post therefore leads with the design that asks nobody to breach anything:
the key never moves, the swarm hands out the task, the bee runs on the
contributor's own machine under their own account, and the patch comes back.
That is how AI Horde and BOINC have always worked. It is not built here, and
the post says so rather than implying it exists.

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

---------

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