Repository navigation
Description
Problem
adept installs only through the Claude Code and Codex plugin marketplaces. Bob has
no plugin system for skills (its marketplace covers MCP servers and modes), so a Bob user
must hand-place files. The skills depend on layout beyond their own folders, and nothing
in the repository records what a Bob install must provide. An installer cannot be
specified, or reviewed, until those requirements are written down and verified.
Evidence
Distribution policy and history:
- docs/adr/0001-distribution-via-plugin-marketplace.md:32-37, :52 — plugin-only
distribution; "no install script and there will not be one". - .claude/CLAUDE.md:7 and README.md:52 — same statement.
- .codex-plugin/plugin.json:4 — plugin install is driven by
"skills": "./skills/";
Bob has no equivalent manifest. - docs/workflow/plans/2026-08-11-adept-dotfiles-separation.md:18, :967-969 — "Bob is
retired", Bob install task skipped; :979 records "Bob has no plugin system" and a
planned clone-plus-symlink approach that was never executed. - scripts/reserved-skill-names.txt:10-13 — Bob slash-command/mode names are the only
Bob support in the tree today.
Layout the skills require at runtime (the <plugin root> convention, defined as "two
levels above this skill's own directory", e.g. skills/attunement/SKILL.md:33-36):
- Cross-skill relative links:
../quest-log/SKILL.md#..., e.g. skills/quest/SKILL.md:46,
:320; skills/campaign/SKILL.md:97, :414. - Shared standards under
<root>/references/: 11 files, linked as
../../references/*.md, e.g. skills/quest/SKILL.md:57, :129, :902;
skills/forge/SKILL.md:239, :354; skills/trial-loop/SKILL.md:69, :85. - Scripts that derive
ROOTthree levels up and then address siblings:
skills/deliver/scripts/deliver-write:3-4, :60;
skills/quest/scripts/publish-forge-review:13, :151, :499;
skills/return-to-town/scripts/publish-handoff:47-48, :124-127, :538;
skills/return-to-town/scripts/refresh-merge:5-6, :192-194. - A root-level script outside
skills/: publish-handoff:126 requires
<root>/scripts/check-public-safety.sh, which itself execs
<root>/skills/quest/scripts/check-public-safety(scripts/check-public-safety.sh:4-8). - Sibling-skill script lookup: skills/bounty/scripts/create-verified-issue.sh:10-11 uses
../../quest-log/assets/tracker.sh. - Symlink sensitivity: deliver-write:3 resolves its directory with a logical
cd,
publish-handoff:47-48 and refresh-merge:5-6 withcd -P. Probe (macOS arm64, bash,
temp directory, path resolution only, not a live Bob session): with skills symlinked
into abob/skills/tree, deliver-write resolved ROOT to the Bob directory and
publish-handoff resolved it to the checkout. So a link install and a copy install
need different directory contents.
Bob side, from the Bob documentation (skills page):
- Skills live in
~/.bob/skills/<name>/SKILL.md(global) or<project>/.bob/skills/
(project); project wins on name collision. SKILL.mdneedsnameanddescription; skills without a description are ignored.- Supporting files and subfolders beside
SKILL.mdare readable once activated. - Bob Shell sandboxing docs warn that symlinks pointing outside the project directory
"may not work correctly" (sandboxing page, File system limitations).
Related, not a duplicate: #460 (detect-host-architecture under Bob's tool executor).
Expected
A document under docs/ (e.g. docs/bob-install-requirements.md) that records, with each
claim marked verified or unverified and the environment it was checked in:
- The minimum file tree a Bob install must produce, for both global (
~/.bob) and
project (.bob) scope, includingreferences/and the root-level
scripts/check-public-safety.sh. - Whether
<plugin root>resolves correctly for a copy install and for a symlink
install, per script, and which of the two is supported. - Whether Bob (IDE and Bob Shell separately) follows symlinked skill folders, and
whether it needs a reload to see new skills. - How a skill's directory is named to the model under Bob, since the skills rely on the
harness naming it (skills/attunement/SKILL.md:35-36). - Collision and idempotency rules: pre-existing
~/.bob/skills,~/.bob/references
content that adept did not create, and re-running after an update. - Which adept features have no Bob equivalent (slash-command syntax,
agents/openai.yaml). - Open decisions the installer is blocked on: it contradicts ADR 0001's "no install
script" and the "Bob is retired" plan note. Either an ADR supersedes/amends them, or
the outcome is documentation only.
Proposed approach
Run the verification on a Bob install (IDE and Shell), write the document, and file the
installer as a separate follow-up only after the ADR 0001 question is decided. This issue
does not add an installer, script, or manifest.
Activity
drchristensen commentedon Oct 29, 2026
scope identity: #478 · token q478-9433fc96
outcome: Produce
docs/bob-install-requirements.md— a document that records, with each claim marked verified or unverified and the environment it was checked in, what an IBM Bob user must supply to install adept skills, and what open decisions block a future installer.completion criteria:
~/.bob) and project (.bob) scope, includingreferences/and root-levelscripts/check-public-safety.sh. (source: issue body §Expected item 1)<plugin root>resolves correctly for a copy install and for a symlink install, per script, and which is supported. (source: issue body §Expected item 2)~/.bob/skills,~/.bob/referencescontent and re-running after an update. (source: issue body §Expected item 5)agents/openai.yaml). (source: issue body §Expected item 6)provenance: All criteria from issue #478 body (operator-filed, 2026-10-29). Exclusions approved by operator (interactive reply, 2026-10-29T14:21 UTC).
exclusions:
surface: One new file:
docs/bob-install-requirements.md. Read-only inspection of existing source files inskills/,scripts/,references/,docs/adr/for evidence gathering. No changes to existing files.ambiguities: (none)
interaction: interactive
Tracking metadata:
effort:S, confirmed by scope: one new markdown filedrchristensen commentedon Oct 29, 2026
PR #479 is open and ready for merge: #479
Branch:
feat/bob-install-requirements-478Base:
mainHEAD:
95913ccaed1f70f4957ba4762f497d72fb8b51c1Review: 3 rounds (single-pass escalated to trial-loop). Verdict: approve. Security: not triggered.
WORK:REVIEW: #479 (comment)
CI state: macOS passes. Ubuntu fails on
claim-testconcurrent-mkdir CAS race — pre-existing flake unrelated to this change. Filed as #480. Theverifyrequired check shows UNSTABLE.MERGE-READY: #479 @ 95913cc
To merge: resolve the CI flake (#480) or merge with admin override if the race is accepted as a known pre-existing issue.