You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE]: Add hidden field to skill frontmatter to exclude skills from agent selection #20473
Skills installed globally (e.g., GSD's internal agents like gsd-executor, gsd-debugger, gsd-planner) appear in the <available_skills> list shown to the agent, even though they're only meant to be spawned programmatically by parent commands.
This creates noise in the agent's tool selection and clutters the skill list with internal plumbing that the user never invokes directly.
The only current way to hide skills is via "deny" permissions in opencode.json, but this also blocks programmatic spawning (e.g., via the task tool's subagent_type parameter), breaking frameworks that rely on internal agent composition.
hidden: true → skill is excluded from the <available_skills> list shown to agents
The skill remains loadable when explicitly invoked by name (e.g., skill({ name: "gsd-executor" }) or task(subagent_type: "gsd-executor"))
Default is false (visible)
Why This Matters
Many skill frameworks (like GSD) use a modular agent architecture where internal agents are spawned by orchestrator commands. These agents should be invisible to the user's agent selection but still available for programmatic use.
Related
This is distinct from permission.skill: "deny" which blocks access entirely. A hidden field is purely about UI/list visibility, not access control.
Activity
github-actions commentedon Apr 1, 2026
This issue might be a duplicate of existing issues. Please check:
If this was submitted twice by mistake, please close one of them.