This directory contains all GitHub Copilot customizations for the repository, including instructions, agents, prompts, and skills.
.github/
├── PROGRESSIVE_DISCLOSURE.md # Guide to progressive disclosure pattern
├── copilot-instructions.md # Core Copilot instructions (always loaded)
├── agents/ # Specialized AI agents
├── prompts/ # Reusable prompt templates
├── instructions/ # Language/framework-specific guidelines
├── skills/ # Copilot skills for specific workflows
└── chatmodes/ # [DEPRECATED] Use agents/ instead
- Always loaded into every GitHub Copilot session
- Defines universal coding standards and preferences
- Keep concise (< 100 lines ideally)
- Role in LLM: Acts as system prompt enhancement
- Comprehensive guide to the progressive disclosure pattern
- Explains best practices for structuring AI agent context
- Reference material for maintaining this repository
Specialized agents invoked with @ mentions in Copilot Chat:
| Agent | Invoke with | Purpose |
|---|---|---|
| PRD Assistant | @prd |
Create Product Requirements Documents |
| Implementation Planner | @plan |
Generate implementation plans |
| TDD Assistant | @tdd |
Test-Driven Development workflow |
| DevOps Expert | @devops |
DevSecOps and deployment strategies |
| Prompt Optimizer | @lyra |
AI prompt optimization |
Files: {role}.agent.md
Role in LLM: Loaded as role-based system prompt when agent is invoked
On-demand templates for common development tasks:
create-prd.prompt.md- PRD creation workflowgenerate-tasks.prompt.md- Task breakdown from PRDcode-review-checklist.prompt.md- Code review standardssetup.prompt.md- Project setup guidancetest-eng-csharp.prompt.md- C# test generation
Usage: Invoke via slash commands in Copilot Chat (e.g., /create-prd)
Role in LLM: Loaded as user prompt template when invoked
Detailed coding standards loaded when working with specific technologies:
| File | When Loaded | Purpose |
|---|---|---|
general-coding.instructions.md |
Always relevant | Universal coding practices |
react-ts.instructions.md |
**/*.ts, **/*.tsx |
React + TypeScript standards |
csharp-dotnet.instructions.md |
**/*.cs, **/*.csproj |
C# + .NET guidelines |
git.instructions.md |
Git operations | Git workflow and commits |
work-items.instructions.md |
Azure DevOps | Agile work item creation |
Role in LLM: Contextual instructions based on file patterns
Pre-built skills for specific development tasks:
appinsights-instrumentation- Azure Application Insightsazure-resource-visualizer- Azure infrastructureazure-role-selector- Azure RBAC configurationfrontend-design- UI/UX patternscanvas-design- HTML5 Canvas graphicsdocx- Word document generationmcp-builder- MCP server development
Usage: Automatically applied by Copilot when relevant, or reference explicitly
Role in LLM: Provides domain-specific knowledge and patterns
-
Always Loaded (Base Context)
copilot-instructions.md- Copilot's built-in system instructions
-
Conditionally Loaded (File Pattern Matching)
- Instructions matching current file type
- Example: Editing
App.tsx→ loadsreact-ts.instructions.md
-
On-Demand (Explicit Invocation)
- Agents via
@agent-name - Prompts via slash commands
- Skills when explicitly referenced
- Agents via
Example: Editing a React Component
Context Window:
┌─────────────────────────────────────────┐
│ ✓ copilot-instructions.md (124 lines) │ ← Always loaded
│ ✓ react-ts.instructions.md (90 lines) │ ← Auto-loaded for .tsx
│ ✓ Current file content │ ← File being edited
│ ✓ Related files (if open) │ ← Additional context
└─────────────────────────────────────────┘
Available but NOT loaded:
• csharp-dotnet.instructions.md (not relevant)
• git.instructions.md (reference if needed)
• All agents (invoke with @ when needed)
• All prompts (invoke with / when needed)
This approach maximizes context efficiency while keeping detailed guidance accessible.
-
Keep Core Files Minimal
copilot-instructions.mdshould be < 100 lines- Focus on universal, always-relevant information
- Reference detailed docs instead of inline content
-
Use Progressive Disclosure
- Core info in root files
- Details in specific instruction files
- Advanced topics in separate docs
-
Be Specific and Actionable
✅ DO: "Validate all user inputs before processing" ❌ DON'T: "Consider security when appropriate"
-
Reference, Don't Repeat
✅ DO: "Follow git workflow in .github/instructions/git.instructions.md" ❌ DON'T: [Copy entire git workflow here]
- Create file:
.github/agents/{role}.agent.md - Define clear purpose and expertise
- Include specific tools and capabilities
- Add usage examples
- Update this README
- Create file:
.github/prompts/{action}.prompt.md - Add YAML frontmatter with metadata
- Include clear instructions and examples
- Support variables when needed
- Test with actual workflows
Update these configurations when:
- New technologies are added to the stack
- Coding standards change or evolve
- New workflows become standard practice
- Performance issues arise from context bloat
- Team feedback identifies gaps or problems
- Monthly: Review
copilot-instructions.mdfor relevance - Quarterly: Audit all instruction files for accuracy
- Per Sprint: Update based on team feedback
- On Issues: When Copilot suggestions don't meet expectations
- Core files under 100 lines?
- No repeated information across files?
- All references still valid?
- Outdated information removed?
- Examples still relevant?
- New patterns documented?
- Progressive Disclosure Pattern - Comprehensive guide
- GitHub Copilot Docs - Official documentation
- Awesome Copilot - Community examples
- HumanLayer Blog - Best practices
- VS Code Prompt Files - Prompt file guide
When adding new configurations:
- Follow existing naming conventions
- Keep files focused and concise
- Add appropriate frontmatter/metadata
- Update this README
- Test with actual Copilot sessions
- Document any new patterns
Last Updated: 2026-01-31
Maintained by: Repository contributors
For questions or suggestions, open an issue or discussion.