claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

[FEATURE] Enhance skills to be a superset of commands

Open Niels-LNS-Research opened this issue 1 day ago • 2 comments

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Feature Request: Extend Skills to Include All Command Capabilities

Summary

Skills currently lack several capabilities that commands have (arguments, bash execution, model override). Since skills are the more structured and encapsulated abstraction, they should be a superset of commands, not a parallel feature with different capabilities.

Current State

Capability Commands Skills
Arguments ($1, $ARGUMENTS) Yes No
argument-hint frontmatter Yes No
!`command` bash execution Yes No
model override Yes No
disable-model-invocation Yes N/A
Multi-file structure No Yes
Supporting files (templates, examples) No Yes
Proactive auto-invocation Possible* Default

*Commands can be model-invoked based on description; disable-model-invocation: true prevents this. Skills are designed for proactive invocation.

Problem

Users must choose between:

  • Commands: Get arguments and bash execution, but lose multi-file structure and explicit dependency documentation
  • Skills: Get structure and encapsulation, but lose argument support and bash execution

This creates an artificial tradeoff. Complex workflows that need both user parameters AND supporting documentation must be implemented as commands with implicit rule dependencies, losing the encapsulation benefits of skills.

Proposed Solution

Proposed Solution

Extend SKILL.md to support all command frontmatter fields and syntax:

---
name: vendor-briefing-prep
description: Prepare for vendor briefings with prior context and SSM alignment
allowed-tools: Read, WebSearch, WebFetch, Bash, Glob, Write
argument-hint: "<vendor-name> [briefing-type]"
model: claude-sonnet-4-20250514
disable-model-invocation: false
---

And support $ARGUMENTS, $1, $2 syntax in SKILL.md content, plus !`command` bash execution.

Benefits

  1. Simplified mental model: Skills become "commands with structure" rather than a parallel concept
  2. Better encapsulation: Complex workflows can have arguments AND supporting files
  3. Backward compatibility: Commands continue to work unchanged
  4. Clear migration path: Users can upgrade commands to skills without losing functionality

Use Case Example

A vendor briefing prep workflow needs:

  • User-provided vendor name (argument)
  • Templates for output documents (supporting files)
  • Reference patterns and methodology (supporting files)
  • Proactive invocation when user mentions "prepare for briefing"

Currently this requires a command with implicit dependencies on scattered rules. With this feature, it could be a self-contained skill with explicit dependencies.

Alternatives Considered

  1. Keep them separate: Forces artificial choice between structure and functionality
  2. Merge into single concept: More disruptive; this proposal is additive

Additional Context

This aligns with the principle that more structured abstractions should be more capable, not less. Skills already support explicit invocation via /skill-name, so adding argument support is a natural extension.

Alternative Solutions

No response

Priority

High - Significant impact on productivity

Feature Category

Other

Use Case Example

No response

Additional Context

No response

Niels-LNS-Research avatar Dec 26 '25 21:12 Niels-LNS-Research