v1.9.3 — a skill that granted nothing, and four other silent wrongs
A second review pass found five defects the first one missed. One of them meant a shipped skill
had no permission to do its job.
Fixed
The robot-training skill granted nothing. Eight of its eleven allowed-tools entries used the
retired mcp__crawlio-agent__ prefix, but init writes the crawlio-browser config key — so
those entries named tools that do not exist. The skill loaded, read correctly, and silently had
no permission to run robot training or agent sessions. That is the worst shape a bug can take:
nothing errors, the capability is simply absent. npm run check:surface now fails on any skill
referencing the retired prefix.
The install wizard's closing line was wrong on both branches. It reported (114 tools) for
full mode and (3 tools, 147 commands) for code mode. The truth is 145, and 6 tools over a
178-command catalog. It is the last thing an installer reads, and it now comes from the same
builders as everything else.
smart.woocommerce was missing from the execute tool description, which enumerated 16 of
the 17 framework namespaces — so a model reading its own instructions had no way to learn the
namespace existed.
The README documented smart.screenshot() twice, in the core-methods table and in a worked
example, although it does not exist and the execute description says so outright. The seventh
core method is smart.rebuild(); the example now uses bridge.send({ type: 'take_screenshot' }).
Links to the archived crawlio-browser-agent repository in the shipped skill reference and
the plugin manifest now point at the live repository.
Why these survived the first pass
Every one of them is a claim that no test could contradict, because nothing executed them: a
permission grant naming a tool that does not exist, a summary string, a description listing
namespaces, a documented method. They are exactly the class the surface check was built for, so
the check grew to cover permission prefixes alongside counts — and both new guards were verified
by planting the failure and watching them catch it.
Upgrading
npx crawlio-browser@latest init. If you use the robot-training skill, this release is the one
that makes it work.