| Setup-steps passes but PR CI fails | Setup-steps does not mirror CI prerequisites (install, build, codegen) | Add missing install/build steps; include language runtime setup if not pre-installed |
| MCP tools unavailable | Config in repo files instead of Settings UI, missing tools field, or broken secret substitution | Move to Settings UI; add explicit tools; fix COPILOT_MCP_ prefix |
| Hook not firing | Hook config not on default branch, or wrong file location | Merge .github/hooks/*.json to default branch |
| Hook fires but doesn't block | Using non-blocking hook type, or script not returning deny JSON | Use preToolUse; return {"permissionDecision":"deny","permissionDecisionReason":"..."} |
Custom agent not in /agent | Agent file not on default branch, missing YAML frontmatter, or wrong location | Put *.agent.md in .github/agents/ on default branch with name/description frontmatter |
copilot-instructions.md not steering output | File too long, critical rules buried, or duplicated across multiple files | Keep concise; put high-risk do/don't patterns first; single source of truth |
| CLI says "not authenticated" | Need copilot /login or token refresh | Run copilot /login; verify Copilot subscription active |