Feature Request
Summary
Add support for machine-level custom slash commands — personal commands available across all repos from any working directory, enabling consistent workflows across many projects.
The Use Case
Developers working across multiple projects want a single command like /push otera\ or /push persistence\ that:
- Works from any directory (not just the target repo's directory)
- Runs the same quality pipeline against the named project
- Enforces organisational consistency — /push\ means the same thing on every project, for every developer
This mirrors a pattern common in PowerShell-based developer workflows where a central project registry (e.g. \Projects.ps1) maps project names to paths, and commands like \push otera\ execute a standardised pipeline regardless of your current directory.
Current State
Skills (~/.agents/skills/) exist but are higher-ceremony and not designed around this cross-project, project-name-as-argument pattern.
Proposed
A ~/.copilot/commands/\ directory where markdown files define machine-level slash commands. A command like \push.md\ becomes /push\ and receives any arguments (e.g. the project name) via $ARGUMENTS.
Why it matters
- Cross-project consistency: one command, same behaviour everywhere
- Organisational standardisation: teams can share a ~/.copilot/commands/\ baseline as part of machine setup
- AI-native equivalent of a project registry: replaces PowerShell/shell profile dependencies with a portable, AI-native workflow layer
- Facilitates agentic handoff: a named project command gives the agent enough context to act without being in the target directory
Prior art
Claude CLI supports repo-level commands via .claude/commands/. Machine-level commands would complement this, covering the cross-project orchestration case that repo-level commands cannot address.
Feature Request
Summary
Add support for machine-level custom slash commands — personal commands available across all repos from any working directory, enabling consistent workflows across many projects.
The Use Case
Developers working across multiple projects want a single command like /push otera\ or /push persistence\ that:
This mirrors a pattern common in PowerShell-based developer workflows where a central project registry (e.g. \Projects.ps1) maps project names to paths, and commands like \push otera\ execute a standardised pipeline regardless of your current directory.
Current State
Skills (~/.agents/skills/) exist but are higher-ceremony and not designed around this cross-project, project-name-as-argument pattern.
Proposed
A ~/.copilot/commands/\ directory where markdown files define machine-level slash commands. A command like \push.md\ becomes /push\ and receives any arguments (e.g. the project name) via $ARGUMENTS.
Why it matters
Prior art
Claude CLI supports repo-level commands via .claude/commands/. Machine-level commands would complement this, covering the cross-project orchestration case that repo-level commands cannot address.