Regression: built-in `/code-review` rejects invocation from another skill (disable-model-invocation), breaking workflow composition

Status Fixed / completed
Maintainer reply None cached
Activity 7 comments · opened Jul 20, 2026 · closed Aug 15, 2026

Summary

The built-in code-review skill is flagged disable-model-invocation, so when another skill invokes it programmatically the call is refused with:

Skill code-review cannot be used with Skill tool due to disable-model-invocation

User-typed /code-review still works. What was severed is specifically composition — one skill invoking another. A workflow that wants a review step then degrades to a hand-written inline review that is materially worse than the real skill.

Observed today after installing the latest desktop update. I can confirm the behavior below; I can't independently confirm which build introduced it, but it was not happening before today.

Environment

  • Claude desktop app (Claude Code / local agent mode): 1.22209.3
  • Model: Opus 4.8 (claude-opus-4-8)
  • macOS 26.5.2 (build 25F84), Apple Silicon, Darwin 25.5.0
  • Custom user skill at ~/.claude/skills/ship-it/ (global, applies to all repos)

Use case (the workflow this breaks)

A custom ship-it skill that codifies a standard "land a change" workflow as a single command. Its flow:

  1. Ask two autonomy settings up front (auto-merge? auto-pull default branch?).
  2. Get onto a feature branch off the refreshed default branch; commit.
  3. Sync the default branch into the feature branch, run the repo's local build/test gate, push, open a PR.
  4. Review gate: run code review on the PR and post the findings as a PR comment.
  5. Fix any real findings (root-cause, capped at two rounds), re-review.
  6. Verify CI is green.
  7. Merge (per the auto-merge setting), then clean up the branch locally and on the remote.

Step 4 is the entire reason the workflow exists — a review-before-merge gate — and it is the obvious place to call /code-review.

Exactly how the skill calls it

At the review step, the skill invokes the built-in via the Skill mechanism, passing the PR number and the comment flag — equivalent to:

Skill(skill="code-review", args="--comment <PR-number>")

Under the current build this returns the disable-model-invocation error above and never runs, so the workflow falls back to a manual inline diff review — the inferior outcome that composing the real skill was meant to avoid.

Repro

  1. Any skill/workflow invokes code-review through the Skill tool, e.g. a ship-it-style review step calling Skill(skill="code-review", args="--comment <PR>").
  2. Observe: Skill code-review cannot be used with Skill tool due to disable-model-invocation.
  3. Type /code-review directly as a user → works. Only programmatic (skill-to-skill) composition is blocked.

Ask

Make code-review composable again. Any of:

  • drop disable-model-invocation on the built-in code-review skill; or
  • make the flag user-configurable per skill; or
  • allow invocation when the caller is another trusted skill/workflow (skill-to-skill), while keeping whatever guard is wanted against unprompted model auto-use.

A blanket "user-typed only" gate on a core dev tool is the wrong default for a platform whose value proposition is agentic, composed workflows. It penalizes exactly the users building higher-order workflows on top of the built-ins, and it makes skill composition feel unstable across updates.

Impact

This regressed a daily "ship-it" workflow immediately after an app update: the review-before-merge gate can no longer call the tool purpose-built for it, and it undermines confidence that skill composition survives updates at all.

Related

Possibly adjacent to #77740 (disable-model-invocation skills becoming unavailable), but distinct: there, user-typed invocation fails too; here, user-typed /code-review works and only skill-to-skill composition is blocked.

View original on GitHub ↗

3 Comments

SteveM74 · 1 month ago

We're hitting this too. We maintain an internal /gt-review command that composes the native code-review and security-review skills as an "engine sweep" layer, and it now fails with the exact error you quote:

Skill code-review cannot be used with Skill tool due to disable-model-invocation

Confirming your observation: security-review still accepts model-invocation, but code-review no longer does — so the composed step degrades to a hand-written inline review that is materially weaker than the real skill.

The composition use case is the key thing for teams: we want an orchestrator workflow to run the native reviewers as one layer among several (semantic standards, CI consult, etc.), not to replace the human reviewer. A per-skill opt-in — e.g. letting a trusted workflow explicitly allow-list the skills it may invoke — would restore this without changing the safer default.

Our current workaround is to pause the workflow and hand the developer an explicit manual /code-review step, then resume with the output folded in — but that reintroduces exactly the manual shepherding the workflow existed to remove.

+1 for a way to re-enable composition.

smabe · 1 month ago

I'm running in to this issue too with my automated workflow. The skill should at least have an opt-in to be modle invokable

parthibd · 1 month ago

Same here

Showing cached comments. Read the full discussion on GitHub ↗