Repository navigation
Conversation
The routing report told every reader that skills beyond the room came from the runner's own config and to set ANTHROPIC_API_KEY so the run could use an isolated config dir. On a run that already had the key set and recorded isolated_config_dir true, sixteen extras were still reported, none of them present in the runner's ~/.claude/skills: they ship with the agent CLI, which no config dir excludes. So the warning named a cause it had not checked and prescribed a fix that was already in place. Isolation is already recorded in the report metadata, so branch on it. When the run was isolated the runner's own skills are out of the session by construction and what remains ships with the CLI, which is worth saying plainly along with the fact that nothing removes it. When it was not, the original guidance still holds and is unchanged. Signed-off-by: John Lybeck <john.lybeck@amd.com>
nowycondro
left a comment
There was a problem hiding this comment.
🤖 Automated review · review-code · head e7f25aaf
Review — needs work
Full review of the whole change.
No ticket named.
Blocking
- New isolated/non-isolated warning branch has no test coverage —
skillscope/routing.py:833-861(theif meta.get("isolated_config_dir"):branch and itselse)
The change introduces new conditional behavior inrender_markdown: which of two different warning messages a reader sees now depends onmeta["isolated_config_dir"]. Confirmed by grep against the PR's owntests/test_skillscope.py(2505 lines at this commit) thatrouting.render_markdownis never invoked by name in the test suite at all — only the unrelatedbehavior.render_markdownis (line 2441). Neither branch of the new logic, nor the pre-existing warning path it replaces, is exercised by any test. Getting the condition backwards (e.g. anis not/boolean-sense slip) would silently re-introduce the exact bug this PR fixes, with nothing to catch it.
Confidence 85 · logic · Fix: add a small test that builds a summary withextra_skills_in_sessionpopulated and asserts the isolated-branch wording (e.g. "ships with the agent CLI") appears whenmeta["isolated_config_dir"]isTrue, and the non-isolated wording ("come from the runner's own config") appears when it isFalse/absent.
Non-blocking
docs/usage.mdstill frames isolation as the fix without mentioning CLI built-ins —docs/usage.md:188-192
This paragraph tells the reader that if the runner has its own skills installed, "the report says so — setANTHROPIC_API_KEYso the run can use an isolated config dir." That's accurate for the~/.claude/skillscase it describes, but a reader following this guidance today will still see extras after isolating (the whole premise of this PR) with nothing in the docs preparing them for that. The commit message captures the nuance well; it just didn't make it into the one place a user reads before their first run.
Confidence 70 · architectural · Fix: add a sentence noting that even with an isolated config dir, the agent CLI's own built-in skills still show up as extras and that's expected, pointing at the runtime warning for detail.
Decisions for the author
- Message-only fix vs. filtering known built-ins out of
extras— tradeoff
The fix explains the extras rather than removing the noise: every isolated run will apparently always show a non-zero, unresolvable "extras" warning now (the CLI's own built-ins), with no way to reach a clean report. That's simple and doesn't require tracking the CLI's bundled skill list across versions, but it also means the warning stops signalling "something's wrong" for isolated runs and starts being background noise the reader learns to skip past — which could mask a genuine contamination later. Worth confirming that's the intended tradeoff versus, e.g., maintaining a known-built-ins allowlist to exclude fromextrasentirely.
Positive signals
- Branching on
meta.get("isolated_config_dir")(already recorded by the existing run metadata) rather than re-deriving isolation state is the right call — it reuses a fact the code already has instead of guessing at it again.
Deployment notes
None — pure report-text change, no schema, config or dependency impact.
What this covered
Full diff 0f734b2d…e7f25aaf (skillscope/routing.py, the only changed file: the render_markdown warning block), read in place against the surrounding function, extras/extra_skills_in_session construction, can_isolate_config/isolate_config and the meta dict built in skillscope/cli.py, the test suite (tests/test_skillscope.py, tests/test_harness.py), and docs/usage.md/README.md for related guidance. Single-pass review (one file, +20/-5); no fan-out was needed for coverage at this size. CI (selftest, 5 checks) is green on the head commit, which is expected since no test exercises the changed lines either way.
Did not run: agent-instruction adherence (no CLAUDE.md/AGENTS.md in this repo); history (checked git log on routing.py, nothing notable beyond normal incremental development); prior-changes (earlier PR review threads on this file were not retrieved).
Not reconciled against any discussion here.
Not a human review. This is an automated code review; please verify findings independently before acting on them.
Review — needs workFull review of the whole change (single commit, single file). Blocking
Non-blocking
Decisions for the author
Positive signals
Deployment notesNone — a text-only change to a Markdown report generator, no schema, config, or API impact. What this coveredRead in full: Did not run: agent-instruction adherence — no 🤖 Automated review by agent-hub on AMD AgentHub. |
The routing report told every reader that skills beyond the room came from the
runner's own config, and to set
ANTHROPIC_API_KEYso the run could use anisolated config dir.
On a run that already had the key set and recorded
isolated_config_dir: true,sixteen extras were still reported, and none of them were present in the runner's
~/.claude/skills. They were the agent CLI's own built-ins (code-review,dataviz,loop,run,simplify,update-config,workflow-authoring, andso on), which no config dir excludes.
So the warning named a cause it had not checked and prescribed a fix that was
already in place.
them, and to read the scores with them in the room
Worth knowing either way, since the extras change every routing score and there
is currently no way to exclude the built-in ones.