This repository provides a comprehensive framework for maximizing GitHub Copilot's effectiveness through spec-driven development methodology. It includes customized instructions, chatmodes, and prompts that guide systematic development from business requirements to implementation.
This framework implements a structured, documentation-first approach to software development that ensures:
- Clear traceability from business needs to code implementation
- Consistent quality through standardized templates and workflows
- Systematic development with proper dependency management
- Maintainable architecture through documented decision-making
BRD β PRDs with User Stories β System Architecture (ADRs) β SRDs β Implementation Tasks β Code
-
Clone and Setup
git clone https://github.com/your-org/github-copilot-best-practices.git your-project-name cd your-project-name rm -rf .git && git init
-
Start Greenfield Development
- Change your Copilot chat agent to
greenfield-development - Begin describing your idea/project to Copilot
- Iterate until requirements are well-defined and project structure is created
- Change your Copilot chat agent to
-
Generate Implementation Tasks
- Change agent back to Agent
- Use the
/task-generationprompt to break down requirements into tasks
-
Execute Implementation
- Use the
/task-executionprompt to systematically implement tasks
- Use the
-
Add Feature to Existing Project
- Change your Copilot chat agent to
add-feature - Describe the new feature you want to add
- Let Copilot review existing documentation and guide feature integration
- Change your Copilot chat agent to
-
Generate Feature Tasks
- Use the
/task-generationprompt with updated requirements
- Use the
-
Execute Feature Implementation
- Use the
/task-executionprompt to implement feature tasks
- Use the
βββ .github/
β βββ instructions/ # GitHub Copilot instruction files
β βββ security-owasp.instructions.md
β βββ spec-workflow-*.instructions.md
β βββ tech-*.instructions.md
β βββ ui-ux-*.instructions.md
β βββ sql-*.instructions.md
βββ chatmodes/ # Custom Copilot chat modes
β βββ greenfield-development.chatmode.md
β βββ add-feature.chatmode.md
βββ prompts/ # Reusable prompt templates
βββ task-generation.prompt.md
βββ task-execution.prompt.md
Use Case: Starting a new project from scratch
Chatmode: greenfield-development
Process:
- Business Requirements (BRD): Define business problem, stakeholders, and goals
- Product Requirements (PRDs): Create user stories with acceptance criteria
- System Architecture: Design system boundaries and technology decisions
- System Requirements (SRDs): Detail functional and non-functional requirements
- Implementation Tasks: Generate numbered tasks for systematic development
Documentation Generated:
business-requirements.mdproduct-requirements/prd-[feature].mdsystem-architecture.mdarchitecture-decisions/adr-[decision].mdsystem-requirements/srd-[system].mdtasks/[NNNN]-[task-name].md
Use Case: Adding new features to existing projects
Chatmode: add-feature
Process:
- Documentation Review: Analyze existing BRD, PRDs, architecture, and SRDs
- Feature Ideation: Collaborate on feature definition and business alignment
- Requirements Integration: Update existing documentation with new feature requirements
- Architecture Assessment: Evaluate impact on existing systems and create new ADRs
- System Requirements Update: Extend or create SRDs for the new feature
- Task Generation: Create implementation tasks for the feature
Documentation Updated:
- Updated existing BRD, PRDs, architecture documents
- New ADRs for architectural decisions
- Updated/new SRDs for affected systems
- New implementation tasks
- Purpose: Guide complete project development from ideation to requirements
- Input: Business idea or problem statement
- Output: Complete spec-driven documentation ready for task generation
- Use When: Starting new projects, major system redesigns
- Purpose: Add new features to existing projects while maintaining consistency
- Input: Existing project documentation + new feature description
- Output: Updated documentation with integrated feature requirements
- Use When: Extending existing systems, adding new capabilities
Converts System Requirements Documents (SRDs) into numbered implementation tasks:
- Analyzes SRDs, PRDs, and architectural decisions
- Creates numbered tasks (
[NNNN]-[task-name].md) - Establishes dependencies and acceptance criteria
- Provides comprehensive task templates with traceability
Systematically implements numbered tasks:
- Executes one task at a time with user approval
- Maintains traceability to requirements documents
- Follows quality gates and testing requirements
- Updates documentation and commits with proper context
Creates comprehensive Product Requirements Documents:
- Structures user stories with acceptance criteria
- Defines user personas and workflows
- Establishes success metrics and priorities
tech-general-coding.instructions.md: Universal coding standards (root file)security-owasp.instructions.md: Security best practices and OWASP guidelinestech-performance-optimization.instructions.md: Performance optimization patterns
tech-java.instructions.md: Java development standardstech-javascript.instructions.md: JavaScript best practicestech-typescript.instructions.md: TypeScript development guidelinestech-python.instructions.md: Python coding standards
tech-springboot.instructions.md: Spring Boot patterns and practicestech-quarkus.instructions.md: Quarkus development guidelinestech-angular.instructions.md: Angular framework standardstech-reactjs.instructions.md: React development best practices
spec-workflow-brd-creation.instructions.md: Business Requirements Document creationspec-workflow-prd-creation.instructions.md: Product Requirements Document creationspec-workflow-system-architecture-creation.instructions.md: System architecture documentationspec-workflow-srd-creation.instructions.md: System Requirements Document creationspec-workflow-task-generation.instructions.md: Implementation task generationspec-workflow-task-execution.instructions.md: Task execution methodology
ui-ux-tailwind.instructions.md: UI/UX design with Tailwind CSSsql-sp-generation.instructions.md: SQL and stored procedure guidelinestech-containerization-docker.instructions.md: Docker and containerization best practices
- Traceability: Every implementation task traces back to business requirements
- Version Control: All documentation under version control with clear change tracking
- Templates: Consistent formatting using standardized templates
- Living Documentation: Keep documentation updated as understanding evolves
- Quality Gates: Built-in validation at each phase of development
- Testing Strategy: Comprehensive testing at unit, integration, and system levels
- Security First: Security considerations integrated throughout development
- Performance: Performance optimization patterns applied consistently
- Sequential Execution: Tasks executed in proper dependency order
- User Approval: Explicit approval required before starting each task
- Progress Tracking: Clear progress indicators and completion criteria
- Continuous Improvement: Capture lessons learned and refine processes
When contributing to this repository:
- Follow Spec-Driven Process: Use the greenfield development workflow for major changes
- Update Documentation: Ensure all instruction files remain synchronized
- Test Workflows: Validate chatmodes and prompts work as expected
- Maintain Quality: Follow the coding standards defined in instruction files
- GitHub Copilot Documentation: Official GitHub Copilot Docs
- Spec-Driven Development: Internal methodology documentation in
/instructions/spec-workflow-* - Code Quality: Language and framework-specific standards in
/instructions/tech-* - Security Guidelines: OWASP-based security practices in
/instructions/security-*
Get Started: Clone this repository, use the greenfield-development chatmode, and begin building better software with GitHub Copilot!