102 lines
5.3 KiB
Markdown
102 lines
5.3 KiB
Markdown
---
|
|
name: ask-copilot
|
|
description: "Use GitHub Copilot CLI in non-interactive mode to ask questions, review code, or generate snippets without manual interaction."
|
|
category: development
|
|
risk: critical
|
|
source: self
|
|
source_repo: cshara1/antigravity-awesome-skills
|
|
source_type: self
|
|
date_added: "2026-07-08"
|
|
author: cshara1
|
|
tags: [copilot, github, cli, review, prompt]
|
|
tools: [claude, cursor, gemini]
|
|
---
|
|
|
|
# Ask Copilot
|
|
|
|
## Overview
|
|
|
|
This skill allows the agent to interact with GitHub Copilot CLI (`copilot`) in a non-interactive (headless) mode. Use this skill when the user explicitly wants secondary advice, code reviews, explanations, or code generation from GitHub Copilot's models.
|
|
|
|
Use `source: self` and `source_type: self` when the skill is original to this repository and does not require README external-source credit.
|
|
|
|
Copilot is an external service. Treat prompts, file paths, snippets, repository content, command output, and generated suggestions as data that may leave the local environment.
|
|
|
|
## When to Use This Skill
|
|
|
|
- **User Request Only**: Use this skill **ONLY** when the user explicitly asks to "consult Copilot", "ask Copilot", "review with Copilot", or explicitly requests a second opinion using Copilot.
|
|
- **Do NOT Invoke Automatically**: To comply with privacy policies, the agent must not invoke this skill automatically for its own second opinions or checks without explicit user consent.
|
|
|
|
## How It Works
|
|
|
|
### Step 1: Request Explicit User Consent
|
|
|
|
Before executing any command that references local files, repository paths, snippets, command output, secrets-adjacent config, or private project context, you **MUST** obtain explicit user consent to send that material to GitHub Copilot.
|
|
|
|
Ask for separate approval before allowing Copilot to run tools, execute shell commands, edit files, install packages, or mutate the workspace.
|
|
|
|
### Step 2: Execute with Minimal Permitted Flags
|
|
|
|
To prevent TUI lockups, execute the `copilot` command with headless flags. Do not use blanket bypasses such as `--yolo` or `--allow-all-tools` for routine Q&A or review.
|
|
|
|
- **For Read-Only / General Q&A**: Avoid `--yolo` and use `--allow-all-paths` instead. This allows Copilot CLI to directly access and read local files referenced in your prompt.
|
|
- **For Trusted Mutation Tasks**: Prefer a scoped permission flag if the CLI supports one. Use blanket mutation bypasses only after the user explicitly authorizes Copilot to execute tools and mutate the workspace for the specific task.
|
|
|
|
### Step 3: Use Session Management (Optional)
|
|
|
|
To maintain conversation context, use `--name` and `--resume` flags, or pass a `--session-id` on subsequent calls.
|
|
|
|
## Examples
|
|
|
|
### Example 1: General Question (Read-Only)
|
|
|
|
Does not require repository path access or mutation permissions.
|
|
```bash
|
|
copilot -p "Explain how to implement a debounce function in TypeScript" -s
|
|
```
|
|
|
|
### Example 2: Code Review (Direct File Reference)
|
|
|
|
Always confirm with the user before executing. If consented, pass the file path directly in the prompt. Copilot CLI will read it using its path access permissions:
|
|
```bash
|
|
copilot -p "Review the file path/to/file.ts for potential memory leaks" -s --allow-all-paths
|
|
```
|
|
|
|
### Example 3: Named Session Management
|
|
|
|
```bash
|
|
copilot -p "Remember this session label for follow-up questions." -s --name "my-session-name"
|
|
copilot -p "Summarize the prior advice in this session." -s --resume "my-session-name"
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
- ✅ **Do:** Ask for user consent before uploading any project files to third-party endpoints.
|
|
- ✅ **Do:** Pass file paths directly in the prompt text and let Copilot read them, instead of expanding them via shell `cat`.
|
|
- ✅ **Do:** Use minimal permission flags like `--allow-all-paths` for read-only queries instead of `--yolo`.
|
|
- ✅ **Do:** Use `-s` (silent) to suppress metadata and statistics, leaving only clean output.
|
|
- ❌ **Don't:** Automatically trigger this skill for background second opinions without the user's explicit ask.
|
|
- ❌ **Don't:** Send files, logs, environment details, or private repository context to Copilot without explicit approval.
|
|
- ❌ **Don't:** Run `copilot` without permission-bypass flags in background tasks, as it will hang waiting for interactive input.
|
|
|
|
## Limitations
|
|
|
|
- This skill does not replace environment-specific validation, testing, or expert review.
|
|
- Stop and ask for clarification if required inputs, permissions, or safety boundaries are missing.
|
|
- Copilot responses may be incomplete, outdated, or wrong; verify any proposed code locally before using it.
|
|
|
|
## Security & Safety Notes
|
|
|
|
- The `--yolo` flag bypasses all permission prompts and allows Copilot CLI to run arbitrary shell commands and mutate workspace files. It must be treated as a high-risk option and never used by default.
|
|
- Always check that the code/files being sent do not contain sensitive credentials, API keys, or private environment variables.
|
|
- Prefer redacted snippets over whole files when only a small context sample is needed.
|
|
|
|
## Common Pitfalls
|
|
|
|
- **Problem:** The terminal hangs or the command times out.
|
|
**Solution:** Ensure both `-p` (or `--prompt`) and the narrowest required non-interactive permission flag are present in the command arguments. Without required permission flags, the CLI may prompt for confirmation and hang headless processes.
|
|
|
|
## Related Skills
|
|
|
|
- `@cli-assistant` - How to interact with CLI tools in general.
|