Skip to content

specs: bind every tool and skill to the Queen, and name a domain lead - #3833

Closed
gHashTag wants to merge 3 commits into
masterfrom
bees/tools-and-skills-ownership
Closed

gHashTag wants to merge 3 commits into
masterfrom
bees/tools-and-skills-ownership

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 15, 2026 •

Copy link
Copy Markdown
Owner

86 of 92 tool cards and 23 of 26 skill cards carried a note saying, truthfully, that docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md did not name them. Honest, and it left the ladder Specs → Skills → Crons → Agents → Tools with a rung nothing stood on: the Queen held 3 tools of 92, and could not reach tri/verdict, tri/cell or tri/experience — the VERIFY, EVOLVE and LEARN steps of her own nine-phase loop, bound to V, W and E and not to her.

AGENTS_ALPHABET.md now carries the source those notes were looking for, as two independent rules:

  1. The Queen holds the whole toolset. She orchestrates the loop, so every tool and every skill is hers to run.
  2. Every card also has a domain lead — the bee whose subject it is, read off what the card states it does (ABOUT, ACTIONS, SOURCE, SUMMARY_EN) and never off its name.

Who got what

Bee Domain Tools Bee Domain Tools
C compiler core 19 M metrics 4
B build / pipeline 13 O orchestration 3
P physics 9 Z docs / UX 2
V verdict 8 E experience 2
W workflow / cell 7 F conformance 2
K kernel / FPGA 7 L language 2
Y yield / DePIN 7 Q queue 1
N numeric 5 D de-zigification 1
J jobs / routing 4 TI reserve / security 1
S specs / standards 4

Skills went the same way — 26 cards to 19 bees, the Queen over all of them.

Six tool cards get no domain lead, and say why. Four are external MCP servers whose cards record only that they are registered in .mcp.json (mcp/gitbutler, mcp/neon, mcp/notebooklm, mcp/railway-mcp-server); two state a subject too thin to place — tri/doctor starts and stops a state file, tri/dashboard says "Sacred dashboard". They stay the Queen's alone until a card says what they are for. Nothing here invents a capability: every added line names who is responsible, not what a tool can do.

How it was checked

Each assignment was proposed from the card's own text and then re-read by a second pass whose job was to refute it; 17 of 91 tool assignments and 6 of 26 skill assignments were corrected that way — typically a letter guessed from a name ("R was inferred from the word VM, but R's KEY_FILES are the compiler runtime, which the card never names").

The bindings are written on both sides, as the generator requires: a tool's AGENTS names the letter and that agent's TOOLS names the tool. Verified with gHashTag/trinity's scripts/agents-from-specs.mjs against a vendored copy:

  • 0 problems, typecheck 27/27 agents and 92/92 tools
  • tools with an agent 92 (was 6), agents with tools 20 (was 5), agents with skills 20 (was 3)

One companion change is needed in gHashTag/trinity and is filed separately: its generator emitted the "unbound" group only while some command had no agent, so the day every command gained one the bucket vanished and its own contract read undefined where it asked for a list.

Refs #3545 (the agent alphabet as .t27 specs, whose optional TOOLS/SKILLS bindings this PR fills in).

86 of 92 tool cards and 23 of 26 skill cards carried a note saying, truthfully,
that docs/agents/AGENTS_ALPHABET.md, specs/OWNERS.md and .claude/agents/*.md did
not name them. That was an honest record of an absence, and it left the ladder
Specs -> Skills -> Crons -> Agents -> Tools with a rung nothing stood on: the
Queen held 3 tools of 92 and could not reach tri/verdict, tri/cell or
tri/experience -- the VERIFY, EVOLVE and LEARN steps of her own nine-phase loop,
bound to V, W and E and not to her.

AGENTS_ALPHABET.md now carries the source those notes were looking for, as two
independent rules. One: the Queen orchestrates the loop, so every tool and every
skill is hers. Two: each card also has a domain lead -- the bee whose subject it
is, read off what the card states it does (ABOUT, ACTIONS, SOURCE, SUMMARY_EN)
and never off its name.

Six tool cards get no domain lead and say why: four are external MCP servers
whose cards record only that they are registered in .mcp.json, and two state a
subject too thin to place -- tri/doctor starts and stops a state file, and
tri/dashboard says "Sacred dashboard". They are the Queen's alone until a card
says what they are for. Nothing here invents a capability: every added line
names who is responsible, not what a tool can do.

The bindings are written on both sides, as the generator requires: a tool's
AGENTS names the letter and that agent's TOOLS names the tool. Checked with
gHashTag/trinity's scripts/agents-from-specs.mjs against a vendored copy --
0 problems, typecheck 27/27 agents and 92/92 tools, tools with an agent 92 (was
6), agents with tools 20 (was 5), agents with skills 20 (was 3).

Каждый инструмент и скил теперь принадлежит Королеве, и у каждого есть
домен-лид — пчела, чья это тема, определённая по тому, что карточка о себе
пишет, а не по её названию. Шесть карточек остаются без домен-лида, и там
сказано почему: внешние MCP-серверы не сообщают, для чего их здесь используют.
Привязка записана с двух сторон, как того требует генератор.

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

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-15 17:45:06 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 1
FAILING 49
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=7cab95c431bc != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@gHashTag

gHashTag commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

Reviewer bee X (triage of PRs last updated on or before 2026-09-30). Left open. Merges cleanly into current master (git merge-tree, no conflicts, 1016 commits behind). Parse ratchet over the 119 changed specs with master t27c: 0 newly unparseable. Blocking: the required check-linked-issue fails because the body has no Closes/Fixes/Refs #N, and check / L1 TRACEABILITY / check-now-freshness are red on this old head. Add an issue link and re-run CI (close/reopen) before a merge decision. At about 120 files this is beyond a small-PR review.

@gHashTag

gHashTag commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

bee review (not merged) -- head bacf98620d9cfe922e268b7a3bbf134ec2c4eda0

Blocker: the required check parse-ratchet has never run on this head -- the branch is 1033 commits behind master, so mergeStateStatus is BLOCKED. A required check that is absent is not passing.

Also red and PR-caused: check and check-now-freshness. The diff touches 120 files after 1033 commits of drift; it needs a fresh run on a current base before anyone can say what it changes. Refs #3545 does relate (the 27-agent alphabet as .t27 specs).

To clear: update the branch onto current master, re-date the NOW entry, and let parse-ratchet run.

gHashTag and others added 2 commits October 2, 2026 20:51
The NOW sync gate requires an added docs/now entry dated yesterday..tomorrow
UTC. The PR had none; this one restates its description.

Refs #3545

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

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-02 21:18:57 UTC

Summary

Status Count
Total Open PRs 34
PRs with Failing Checks 33
PRs with All Checks Green 1
READY 1
FAILING 33
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b45a356c2eb6 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

1 similar comment
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-02 21:18:57 UTC

Summary

Status Count
Total Open PRs 34
PRs with Failing Checks 33
PRs with All Checks Green 1
READY 1
FAILING 33
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b45a356c2eb6 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag

gHashTag commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

Replacement opened: #5632. It has the same net diff as this PR, squashed into one commit that carries an issue reference, so L1 TRACEABILITY can pass without a force-push. I'm leaving this PR open; the reviewer closes it after #5632 merges.

gHashTag added a commit that referenced this pull request Oct 2, 2026
…#5632)

Supersedes #3833: same net diff as one commit carrying an issue reference.

Refs #3545

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag

gHashTag commented Oct 2, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #5632, which carries the same tree (873c2648) as one commit with Refs #3545, merged as 0d0bf44. Closing without merging; the content has landed.

@gHashTag gHashTag closed this Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant