`hermes skills install computer-use` (and pdf, google-workspace, python-debugpy,
popular-web-designs) failed for every user who tried it: these names ship in
skills/, but the installer sent them to the hub. There a bare name resolved to
a stranger's same-named skill, an ambiguity table, or a stale index row. The
identifier the public Skills Hub page shows for a built-in
(NousResearch/hermes-agent/skills/<cat>/<name>), and its skills.sh mirror, fetched
this repo's own files and scanned them as community content, so the scan
blocked them.
_install_skill now checks the identifier first. A bare bundled name, this
repo's skills/ path, or its skills.sh mirror goes to the bundled copy. If the
skill is already active, the command says so and exits 0 (outcome None, no
telemetry row). If it is missing (deleted, opted out, or curator-pruned), it is
copied from the bundled source, recorded in the manifest, unsuppressed, and
counted as a successful source=bundled install. An explicit source pin or
--name override keeps the hub path. The connector catalog and the TUI
/skills install RPC treat this result as success, not "not installed".