Skip to content

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

Open
gHashTag wants to merge 1 commit into
masterfrom
bees/tools-and-skills-ownership
Open

gHashTag wants to merge 1 commit into
masterfrom
bees/tools-and-skills-ownership

Conversation

@gHashTag

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.

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.

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