You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Documented how to uninstall this artifact — and only this artifact. New ## Uninstall
section in README.md, placed after Advanced — personal use because it depends on what that
section describes. One removal block per install path (skills CLI, Claude plugin, Codex plugin,
Bob, Gemini extension), each with its verification command, then the managed-block procedure for
the conventions file and a verify sweep. The boundary is the feature: JDK 25 / GraalVM, JBang, the
container runtime, the Quarkus Agents MCP, context7, superpowers, and every project /scaffold-project generated all survive. .cursor/mcp.json, opencode.json, and .bob/mcp.json
are kept for the same reason — their entire content is the two MCP servers the boundary protects.
The Advanced section's "Precedence and reverting" paragraph loses its reverting half and
cross-references the new section, so undo lives in one place.
Every published command was validated against primary sources — --help output, CLI source,
and official docs — by six read-only subagents before publication. Three findings changed what
shipped:
The sed procedure was destructive and is gone. A count-based precheck
(grep -c …, expect 2) does not gate the dangerous cases: a user writing about the markers,
markers out of order, and both markers on one line all pass it, and sed then deletes
user-authored lines — to end of file in two of the three. Counts cannot fix it (they carry no
ordering, and grep -c counts lines, not occurrences). Published instead: an awk precheck
that anchors on ^<!-- and compares line numbers, plus a perl -0777 -i -pe substitution that requires both markers, so an incomplete or out-of-order pair leaves the file byte-for-byte
untouched. \r? for CRLF, \n? for a block whose END is the last line without a trailing
newline.
The skills-CLI command was simply broken.npx skills remove -s A B C -a '*' -y removes
nothing: remove has no -s/--skill (it exists on add) and never expands '*', so it exits
1 with Invalid agents: *. Published: positional skill names and no -a, which cleans every
known agent including ghost symlinks. The --all warning was corrected too — contrary to its
own --help, --all does not imply -y, and removal deletes real files.
gemini mcp add defaults to --scope project. The re-add commands pass -s user, and run after the uninstall, because a settings.json registration shadows an extension-declared
server of the same name.
scripts/uninstall-bob-skill.sh — the mirror of install-bob-skill.sh, because Bob has no
manifest, registry, or command for removing a skill; deleting the directory is the whole
uninstall. Ownership-checked against each SKILL.md's front-matter name — a directory that
declares a different name, declares none, or has no SKILL.md is skipped with a warning rather
than deleted; the residual, stated in the script's header and in the README, is that a skill of
your own that also declares name: audit-project is indistinguishable from ours and will be
removed, so move it aside first. Symlink-safe (unlinks rather than recursing into the target),
idempotent, and scoped to the three skill directories — .bob/mcp.json, .bob/rules/, and your
other skills are never touched.
Two behavior tests, because a destructive script and a destructive one-liner do not validate by
reading.ci/test-uninstall-bob-skill.sh covers the install/uninstall round trip, idempotency,
the ownership and symlink guards, and --global with HOME redirected into a temp directory. ci/test-conventions-block-removal.sh runs the published commands over 15 fixtures — including
every input the old sed procedure destroyed — and asserts that each refusal leaves the file
byte-for-byte identical, plus a drift guard that fails if README.md stops publishing the exact
validated commands. Three of the fixtures pin the accepted residual instead: a marker quoted at
column 0 is column 0 to awk and perl alike, so a quoted pair — or a mixed real/quoted pair,
whose deletion spans everything between the two lines — reaches OK-SAFE-TO-REMOVE. The mandatory
backup and the "read the diff before you trust it" warning are the mitigation. Both tests run in a
new behavior-tests job in the quality workflow.
Corrected five pre-existing claims the validation surfaced (details and sources in the
commit): ~/.bob/AGENTS.mdis Bob's documented global context file; Bob's marketplace exists
but carries modes and MCP servers rather than skills; the global MCP path is documented
inconsistently by IBM's own two doc sets, so both names appear and the UI's Edit Global MCP is
recommended; skill approval is once per conversation via a single global boolean; and codex plugin add does exist, so the v0.7.0 entry's present-tense "non-existent" was softened to
name the version instead. Two additions to the Bob section: a skill's description is
load-bearing, and skills require Bob's Advanced mode.