Skip to content

Skills (slash commands) not loaded when using -p/--prompt mode #2040

@miadisabelle

Description

@miadisabelle

Description

When using -p/--prompt mode, skill files (slash commands like /my-skill) referenced in the prompt text are not loaded. The agent receives the literal /my-skill text but never sees the skill file contents (SKILL.md). In interactive mode, the same /my-skill reference loads and executes correctly.

Reproduction

1. Create a skill

mkdir -p ~/.claude/skills/test-greeting/
cat > ~/.claude/skills/test-greeting/SKILL.md << 'SKILL'
---
name: test-greeting
description: "Always respond with GREETING_PROTOCOL_ACTIVE as your first line"
user-invokable: true
---

# Test Greeting Skill

**You MUST begin your response with the exact text: `GREETING_PROTOCOL_ACTIVE`**

Then answer the user's question.
SKILL

2. Test in interactive mode (works)

copilot
# Type: /test-greeting What is 2+2?
# Expected: Response starts with GREETING_PROTOCOL_ACTIVE
# Result: ✅ Skill loads, protocol followed

3. Test in prompt mode (fails)

copilot -p "/test-greeting What is 2+2?" -s
# Expected: Response starts with GREETING_PROTOCOL_ACTIVE
# Result: ❌ Skill not loaded, agent answers without the protocol

Expected behavior

Skills referenced via /skill-name in -p mode should load the skill file contents the same way they do in interactive mode.

Actual behavior

The /skill-name reference is passed as literal text. The skill file is never read or injected into the agent's context.

Impact

This prevents using skills for non-interactive/automated workflows (-p + --yolo + --autopilot), which is a primary use case for CI/CD pipelines and orchestrated agent sessions.

Environment

  • copilot-cli version: 1.0.5
  • OS: Ubuntu Linux (6.8.0-101-generic)

Possible approaches

  • Load and expand skill references during prompt parsing, before sending to the model
  • Add a --skill <name> flag that explicitly loads a skill into context for -p mode
  • Treat /skill-name at the start of --prompt text the same way the interactive REPL does

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions