Skip to content

Some tool-name references are Claude-specific instead of platform-portable #617

Description

@williamthorsen

Problem

Skill body prose still names Claude tools directly (notably Task and WebFetch). When skills are installed for non-Claude platforms, these names render literally, instructing the agent to call tools that don't exist on the target platform.

Context

PR #601 introduced the {tool:NAME} placeholder mechanism. The install pipeline rewrites placeholders through a per-platform _tools: mapping (content/subagents/_data/{platform}.yml), with an unmapped name producing a fatal, file-and-line-anchored install error. Subagent body prose was migrated as part of #601; skill body prose was wired through the rewriter but not migrated, on the expectation that a follow-up would do the content sweep. This ticket is that follow-up.

Two distinct cases need handling, and they merit different mechanisms:

  • A Claude tool with a direct cross-platform counterpart (e.g., Task → Rovo Dev's invoke_subagent) is exactly what the placeholder mechanism is built for.
  • A Claude tool with no counterpart on another supported platform (e.g., WebFetch on Rovo Dev, where web access goes through MCP or shell tools) is not a name-swap problem. Forcing it through the mapping would require an awkward stand-in.

Proposed solution

Migrate Claude-specific tool names in skill prose using whichever mechanism fits the case:

  • Placeholder migration for tools that exist on every supported platform. Extend each platform's _tools: mapping with the new entries; rewrite the affected prose to use {tool:NAME}.
  • Tool-neutral rewording for tools without a cross-platform counterpart. Replace the named tool reference with a description of the operation, matching the style already used by neighboring instructions (which prefer English verbs and specific commands over tool identifiers).

The audit must distinguish references that name a tool as a tool from incidental uses of the same word for unrelated concepts (e.g., a "task" as a unit of work). Apply the same audit boundary used in #601.

Acceptance criteria

  • No skill body prose names a Claude-specific tool by its Claude identifier when referring to that tool as a tool.
  • Every placeholder used in skill bodies resolves through the _tools: mapping for every supported platform; install does not fail on any platform.
  • On Rovo Dev, installed skill bodies render with platform-native names where a counterpart exists, and with tool-neutral phrasing where one does not.
  • New or modified behavior in this change is covered by tests.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions