This directory contains GitHub-specific configuration for issue templates, labels, and automation.
We use structured issue templates to maintain consistency and quality:
The primary template for creating user stories following Azure DevOps style structure:
- Pre-filled sections with "As a [user], I want [goal], so that [benefit]" format
- Trackable checklists in Acceptance Criteria and Definition of Done
- Story points and sprint tracking
- Dependencies tracking between stories
- Technical requirements with code samples
- Testing requirements for validation
When to use: For all feature development work and planned enhancements
Structured template for reporting bugs with:
- Reproduction steps
- Expected vs actual behavior
- Environment details
- Severity classification
When to use: When reporting bugs or unexpected behavior
Template for suggesting new features:
- Problem statement
- Proposed solution
- Use cases
- Acceptance criteria
When to use: For new feature suggestions not yet in the backlog
See LABELS.md for complete label documentation.
- Type:
user-story,bug,enhancement,documentation - Status:
needs-triage,ready,in-progress,in-review,blocked - Priority:
priority-critical,priority-high,priority-medium,priority-low - Category:
core-package,extension-package,testing,samples,infrastructure - Story Points:
sp-1,sp-2,sp-3,sp-5,sp-8,sp-13,sp-21 - Sprint:
sprint-1,sprint-2, etc.
# Use GitHub CLI to create all labels
cd .github
bash setup-labels.sh # (create this script based on LABELS.md)Or manually create them via GitHub UI: Repository β Issues β Labels
We have comprehensive user story documentation in docs/user-stories/. To convert these to GitHub issues:
- Go to Issues β New Issue
- Select "User Story" template
- Copy content from the corresponding markdown file in
docs/user-stories/ - Apply appropriate labels
- Create the issue
# Run the helper script to see all stories and get creation URLs
./scripts/create-issues-helper.shSee CREATING-ISSUES.md for detailed instructions on:
- Batch creation using GitHub CLI
- Python script for automated conversion
- API-based creation
- LABELS.md - Complete label system and usage guidelines
- CREATING-ISSUES.md - Guide for converting user stories to issues
- copilot-instructions.md - Development guidelines and coding standards
- Create issue using appropriate template
- Apply labels (type, category, priority, story points, sprint)
- Link dependencies in the Dependencies field
- Move to "Ready" when dependencies are met
- Assign to sprint/milestone for planning
- Update status label (
in-progress,in-review) - Check off items in Acceptance Criteria and Definition of Done
- Link PRs to the issue
- Update blockers if any arise
- Verify Definition of Done is complete
- Ensure PR is merged
- Close issue with reference to PR
- Update dependent issues (remove blocks)
Consider setting up:
- Auto-label based on template used
- Auto-assign to project board
- Notify on critical/blocked issues
- Update sprint milestones
- Kanban board with columns: Backlog, Ready, In Progress, In Review, Done
- Auto-move based on status labels
- Sprint planning views
- Validate dependency links between issues
- Check for circular dependencies
- Warn on unlinked blocked issues
-
β DO: Use the template completely
-
β DO: Make acceptance criteria specific and testable
-
β DO: Include code examples in technical requirements
-
β DO: Link to dependent issues by number
-
β DO: Apply all relevant labels
-
β DON'T: Create blank issues
-
β DON'T: Skip sections in the template
-
β DON'T: Forget to link dependencies
-
β DON'T: Leave without applying labels
- Triage regularly: Review
needs-triageissues daily - Update status: Keep status labels current
- Track blockers: Mark and track blocked issues
- Close completed: Don't leave done issues open
- Link related work: Connect issues and PRs
- Minimum labels: Every issue should have type, status, and priority
- User stories: Also need category, story points, and sprint
- Consistency: Use the same labels for similar work
- Filters: Create saved filters for common views
- Template issues: Check the
.ymlfiles inISSUE_TEMPLATE/ - Label questions: See
LABELS.md - Conversion help: See
CREATING-ISSUES.md - Development: See
copilot-instructions.md
Edit the .yml files in ISSUE_TEMPLATE/. Changes take effect immediately.
Update LABELS.md and create labels via GitHub UI or CLI.
Create a new .yml file in ISSUE_TEMPLATE/ following the existing pattern.
Last Updated: 2026-02-07
Maintained By: Development Team