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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions