-
Notifications
You must be signed in to change notification settings - Fork 870
Specification Clarification: Inconsistent Skill-to-Skill Invocation Behavior Between Implementations #95
Description
Summary
The Agent Skills specification does not define rules for skill-to-skill invocation.
Since it is explicitly documented that Skills can call MCP tools, it seems natural that Skills should also be able to call other Skills.
However, when examining actual implementations, Claude Code's system prompt for skills imposes several restrictions. It assumes execution within the "main conversation" (system prompt reference) and includes detailed restrictions to prevent infinite loops by limiting same-skill invocations.
When I tested GitHub Copilot in VSCode 1.107, these restrictions were not present.
Concrete Example
Consider a /review-and-commit skill:
- Case A (skill-to-skill invocation allowed): Can invoke
/reviewand/commit→ Works - Case B (skill-to-skill invocation not allowed): Cannot invoke from within skill → Fails
When running with GitHub Copilot in VSCode, it exhibited behavior A.
When running with Claude Code, it exhibited behavior B, citing that the skill context is not the "main conversation."
Problem Statement
The following issues exist:
- Agent Skills aims to provide portability through a common format, but interpretations differ across implementations, causing the same skill to behave differently.
- Undocumented restrictions are applied to skills, and these restrictions vary by environment, making them impossible for developers to anticipate.
Proposed Solution
Please explicitly document in the specification that skill-to-skill invocation is allowed and is the correct behavior.
If restrictions such as infinite loop prevention measures or nesting depth limits are necessary for safety, please document those specific restrictions while maintaining the core capability of skill composition.