Files
bbudaedu@gmail.com bb59e1a4c1 fix(tools): make every agent_skills pointer resolve
AGENT_GUIDE.md makes Layer 3 mandatory — "Every generation tool has an
`agent_skills` field listing its Layer 3 skills. Read them before writing
prompts. Layer 3 is not optional." Four of the 137 pointers the registry
advertises name skills that do not exist, so the mandated read silently cannot
happen, and `tts_selector` republishes its list to callers as
`required_agent_skills`, propagating a dead name downstream.

Each was repaired according to what the evidence showed it to be:

- `hyperframes_compose` -> `website-to-hyperframes`. A stale name, not a
  missing file: .agents/skills/hyperframes/PROVENANCE.md records
  "`website-to-video` | Renamed upstream from `website-to-hyperframes`." The
  tool never followed the rename. Repointed; the other five entries in that
  list already resolve.

- `openai_tts`, `tts_selector` -> `openai-docs`. Never vendored, and nothing
  in .agents/skills/ covers the OpenAI speech API. The nearest candidate,
  `text-to-speech`, documents HeyGen's Starfish endpoints and declares
  `allowed-tools: mcp__heygen__*`, so pointing there would send the agent at
  the wrong provider. Dropped rather than aimed somewhere misleading;
  tts_selector keeps its two entries that do resolve.

- `screen_capture_selector` -> `screen-demo`. A category error: that names the
  Layer 2 pipeline directory, not a Layer 3 skill. No Layer 3 skill covers OS
  screen capture, and this selector routes only between screen_recorder
  (FFmpeg) and cap_recorder — neither `playwright-recording` nor
  `synthetic-screen-recording` describes what it does. Dropped; the capture
  guidance it wanted is already reachable through the pipeline manifest's
  per-stage `skill:` entries.

An empty `agent_skills` is the BaseTool default and already the case for 18 of
102 tools, so the two removals need no further wiring.

Coverage iterates the registry rather than naming tools, so a newly added tool
is checked the moment it is discovered.

Verified: the 4 pointers fail on the unfixed tree; full suite goes
964 -> 1103 passed with no regressions.
2026-08-05 08:00:24 +08:00
..