{"id":46639312,"url":"https://github.com/ericchansen/copilot-config","last_synced_at":"2026-03-08T02:19:02.368Z","repository":{"id":335393746,"uuid":"1145546491","full_name":"ericchansen/copilot-config","owner":"ericchansen","description":"Skills for agents like GitHub Copilot and Claude Code.","archived":false,"fork":false,"pushed_at":"2026-03-04T03:41:19.000Z","size":208,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-03-04T03:50:14.069Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericchansen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-29T23:05:36.000Z","updated_at":"2026-03-04T03:40:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ericchansen/copilot-config","commit_stats":null,"previous_names":["ericchansen/skills","ericchansen/copilot-config"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericchansen/copilot-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fcopilot-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fcopilot-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fcopilot-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fcopilot-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericchansen","download_url":"https://codeload.github.com/ericchansen/copilot-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fcopilot-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242406,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-03-08T02:19:01.684Z","updated_at":"2026-03-08T02:19:02.344Z","avatar_url":"https://github.com/ericchansen.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copilot Config\n\nPersonal [GitHub Copilot CLI](https://docs.github.com/copilot/concepts/agents/about-copilot-cli) configuration, custom skills, and setup automation — synced across machines via Git.\n\n## What's Included\n\n| File | Purpose |\n|------|---------|\n| `.copilot/copilot-instructions.md` | Global custom instructions for all sessions |\n| `.copilot/lsp-config.json` | Language server configuration (TypeScript, Python, Rust) |\n| `.copilot/config.portable.json` | Portable settings (model, theme, banner — no auth) |\n| `.copilot/skills/` | Custom skills (see below) |\n| `mcp-servers.json` | MCP server definitions (generates `~/.copilot/mcp-config.json`) |\n\n## Quick Start\n\n1. **Clone this repository:**\n   ```bash\n   git clone git@github.com:ericchansen/copilot-config.git ~/repos/copilot-config\n   cd ~/repos/copilot-config\n   ```\n\n2. **Run the setup script:**\n\n   **PowerShell (Windows):**\n   ```powershell\n   ./setup.ps1                                           # Interactive — prompts for options\n   ./setup.ps1 -Work                                     # Include work tools (MSX-MCP, SPT-IQ, Power BI)\n   ./setup.ps1 -NonInteractive                           # No prompts, base only (safe for cron)\n   ./setup.ps1 -NonInteractive -Work                     # No prompts, everything enabled\n   ```\n\n   **Bash (macOS/Linux):**\n   ```bash\n   ./setup.sh                                            # Interactive — prompts for options\n   ./setup.sh --work                                     # Include work tools (MSX-MCP, SPT-IQ, Power BI)\n   ./setup.sh --non-interactive                          # No prompts, base only (safe for cron)\n   ./setup.sh --non-interactive --work                   # No prompts, everything enabled\n   ```\n\n   \u003e **Note:** The Bash scripts require `jq` for JSON processing and Bash 4+. On macOS, install both with `brew install bash jq`.\n\nThe setup script will:\n- **Check git authentication** — detects SSH keys and GitHub CLI accounts, uses `gh auth token` for clone fallbacks (no browser popups)\n- Back up your existing `~/.copilot/` config\n- Symlink instructions and skills into `~/.copilot/`\n- Patch your `config.json` with portable settings (without touching auth)\n- **Clean up legacy skill junctions** — removes old anthropic/awesome-copilot/msx-mcp/SPT-IQ junctions from previous setups\n- Build local MCP servers (clone, install deps, compile)\n- Validate required environment variables (prompt if missing)\n- Generate `~/.copilot/mcp-config.json` with correct OS paths\n- Clean up stale junctions for excluded or removed skills\n\nRun the setup script again at any time to pull updates and re-sync.\n\n## Git Authentication\n\nThe setup script clones and pulls multiple GitHub repos. To avoid credential popups, the script runs a **preflight auth check** before any git operations:\n\n1. **SSH (preferred)** — checks `ssh -T git@github.com`. If SSH keys are configured, all clone/pull operations use `git@github.com:owner/repo.git` URLs. Existing HTTPS remotes are automatically upgraded to SSH.\n2. **GitHub CLI** — detects `gh auth status` and reports which accounts are available. If SSH isn't available, `gh repo clone` is used as a fallback (uses cached auth tokens).\n3. **Git Credential Manager** — if neither SSH nor `gh` is available, standard `git clone` runs and may trigger interactive credential prompts.\n\n### Recommended Setup\n\n```bash\n# 1. Install GitHub CLI (if not already)\n# https://cli.github.com\n\n# 2. Authenticate\ngh auth login\n\n# 3. Configure SSH as the git protocol (eliminates credential popups)\ngh auth setup-git\n```\n\nFor multi-account setups (personal + work), configure SSH keys per account in `~/.ssh/config`:\n\n```\n# Personal\nHost github.com\n  HostName github.com\n  IdentityFile ~/.ssh/id_ed25519_personal\n\n# Work (if needed via separate host alias)\nHost github-work\n  HostName github.com\n  IdentityFile ~/.ssh/id_ed25519_work\n```\n\n## Environment Variables\n\nSome MCP servers require API keys or secrets. These are referenced in `mcp-config.json` using `${VAR_NAME}` syntax so that secrets are never committed to git.\n\n### Required Variables\n\n| Variable | Purpose | How to Get |\n|----------|---------|-----------|\n| `CONTEXT7_API_KEY` | Context7 documentation lookup | [context7.com](https://context7.com) — free tier available |\n\n### Setting Variables (Windows)\n\n```powershell\n# Set permanently for your user account (persists across reboots)\n[System.Environment]::SetEnvironmentVariable(\"CONTEXT7_API_KEY\", \"your-key-here\", \"User\")\n\n# Restart your terminal for the change to take effect\n```\n\n### Setting Variables (macOS/Linux)\n\n```bash\n# Add to your shell profile (~/.bashrc, ~/.zshrc, etc.)\nexport CONTEXT7_API_KEY=\"your-key-here\"\n\n# Reload your shell\nsource ~/.bashrc  # or ~/.zshrc\n```\n\n\u003e **Note:** Never put actual API keys in `mcp-servers.json` — always use `${VAR_NAME}` references. The Copilot CLI resolves these from your environment at startup.\n\n## MCP Servers\n\nMCP server configuration is defined in `mcp-servers.json` and generated into `~/.copilot/mcp-config.json` at setup time. This ensures correct OS paths and only enabled servers are included.\n\n### Base Servers (always enabled)\n\n| Server | Type | Purpose |\n|--------|------|---------|\n| azure-mcp | npx | Azure resource management |\n| context7 | http | Documentation search (needs `CONTEXT7_API_KEY`) |\n| microsoft-learn | http | Microsoft Learn docs |\n| playwright | npx | Browser automation (Edge) |\n| chrome-devtools | npx | Chrome DevTools debugging |\n\n### Optional Servers\n\n| Server | Flag | Type | Purpose |\n|--------|------|------|---------|\n| powerbi-remote | `-Work` | http | Power BI Fabric API |\n\n## LSP Servers\n\nLanguage server configuration is defined in `.copilot/lsp-config.json` and symlinked to `~/.copilot/lsp-config.json` during setup.\n\n| Server | Binary | Install Command |\n|--------|--------|----------------|\n| TypeScript | `typescript-language-server` | `npm install -g typescript-language-server typescript` |\n| Python | `pyright-langserver` | `npm install -g pyright` |\n| Rust | `rust-analyzer` | `rustup component add rust-analyzer` |\n\nThe setup script offers to install these as optional dependencies. They provide code intelligence (go-to-definition, references, hover, rename) when working in repos with these languages.\n\n## Updating\n\n```bash\ncd ~/repos/copilot-config\ngit pull\n./setup.ps1   # Windows (PowerShell)\n./setup.sh    # macOS/Linux (Bash)\n```\n\n## Restoring\n\nIf something breaks, use the restore script to remove all symlinks and optionally restore from backup:\n\n```powershell\n./restore.ps1   # Windows (PowerShell)\n./restore.sh    # macOS/Linux (Bash)\n```\n\n## Custom Skills\n\n### git-commit\nConventional commit messages with [Chris Beams' 7 rules](https://cbea.ms/git-commit/). Auto-detects type and scope from your diff, scans for secrets, checks repo contribution guidelines, and generates properly formatted commit messages.\n\n**Trigger:** Ask to commit, create a git commit, push code, create a PR, or say \"/commit\"\n\n### git-safety-scan\nMandatory pre-push scan for secrets, PII, customer names, and sensitive data. Supports a user blocklist at `~/.copilot/sensitive-terms.txt`.\n\n**Trigger:** Automatically invoked before any `git push` or PR creation\n\n### summon-the-knights-of-the-round-table\nMulti-model brainstorming using Claude Opus 4.6, GPT-5.3-Codex, and Gemini 3 Pro with randomized Devil's Advocate / Explorer / Steelman roles for structured debate.\n\n**Trigger:** \"summon knights of the round table to review...\"\n\n## Plugins (installed separately)\n\nCommunity skills are installed via Copilot CLI's plugin system, not managed by this repo's setup scripts.\n\n### awesome-copilot (pre-registered marketplace)\n\nThe `awesome-copilot` marketplace is built into Copilot CLI — no setup needed. Browse and install themed skill bundles:\n\n```bash\ncopilot plugin install project-planning@awesome-copilot\ncopilot plugin install testing-automation@awesome-copilot\ncopilot plugin install csharp-dotnet-development@awesome-copilot\n# See all: copilot plugin search @awesome-copilot\n```\n\n### anthropic-agent-skills\n\nAdd the Anthropic marketplace, then install plugins:\n\n```bash\ncopilot plugin marketplace add anthropics/skills\ncopilot plugin install document-skills@anthropic-agent-skills    # xlsx, docx, pptx, pdf\ncopilot plugin install example-skills@anthropic-agent-skills     # frontend-design, web-artifacts, etc.\n```\n\n### MSX-MCP\n\n```bash\ncopilot plugin install mcaps-microsoft/MSX-MCP\n```\n\n### SPT-IQ\n\n```bash\ncopilot plugin install mcaps-microsoft/SPT-IQ\n```\n\n### Managing plugins\n\n```bash\ncopilot plugin list         # Show installed plugins\ncopilot plugin update       # Update all plugins\ncopilot plugin remove \u003cname\u003e # Uninstall a plugin\n```\n\n## About Agent Skills\n\nAgent Skills are an [open standard](https://github.com/agentskills/agentskills) maintained by Anthropic for giving agents new capabilities. Skills are folders containing a `SKILL.md` with YAML frontmatter and optional bundled resources (scripts, references, assets).\n\n## Optional Dependencies\n\nThe setup scripts offer to install these optional tools during setup. They enhance specific skills but aren't required — the agent works without them.\n\n| Tool | Install Command | Purpose |\n|------|----------------|---------|\n| [MarkItDown](https://github.com/microsoft/markitdown) | `pip install 'markitdown[all]'` | Converts PDF/Word/Excel/HTML to markdown |\n| [QMD](https://github.com/tobi/qmd) | `npm install -g @tobilu/qmd` | Local hybrid search for semantic memory (Node.js 22+) |\n| Playwright Edge | `npx playwright install msedge` | Edge browser driver for browser automation |\n\nTo install later, run the commands above manually or re-run the setup script.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fcopilot-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericchansen%2Fcopilot-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fcopilot-config/lists"}