Suggest Awesome GitHub Copilot Instructions
Analyze current repository context and suggest relevant copilot-instruction files from the GitHub awesome-copilot repository that are not already available in this repository.
Process
- •Fetch Available Instructions: Extract instruction list and descriptions from awesome-copilot README.instructions.md. Must use
#fetchtool. - •Scan Local Instructions: Discover existing instruction files in
.github/instructions/folder - •Extract Descriptions: Read front matter from local instruction files to get descriptions and
applyTopatterns - •Fetch Remote Versions: For each local instruction, fetch the corresponding version from awesome-copilot repository using raw GitHub URLs (e.g.,
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>) - •Compare Versions: Compare local instruction content with remote versions to identify:
- •Instructions that are up-to-date (exact match)
- •Instructions that are outdated (content differs)
- •Key differences in outdated instructions (description, applyTo patterns, content)
- •Analyze Context: Review chat history, repository files, and current project needs
- •Compare Existing: Check against instructions already available in this repository
- •Match Relevance: Compare available instructions against identified patterns and requirements
- •Present Options: Display relevant instructions with descriptions, rationale, and availability status including outdated instructions
- •Validate: Ensure suggested instructions would add value not already covered by existing instructions
- •Output: Provide structured table with suggestions, descriptions, and links to both awesome-copilot instructions and similar local instructions AWAIT user request to proceed with installation or updates of specific instructions. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO.
- •Download/Update Assets: For requested instructions, automatically:
- •Download new instructions to
.github/instructions/folder - •Update outdated instructions by replacing with latest version from awesome-copilot
- •Do NOT adjust content of the files
- •Use
#fetchtool to download assets, but may usecurlusing#runInTerminaltool to ensure all content is retrieved - •Use
#todostool to track progress
- •Download new instructions to
Context Analysis Criteria
🔍 Repository Patterns:
- •Programming languages used (.cs, .js, .py, .ts, etc.)
- •Framework indicators (ASP.NET, React, Azure, Next.js, etc.)
- •Project types (web apps, APIs, libraries, tools)
- •Development workflow requirements (testing, CI/CD, deployment)
🗨️ Chat History Context:
- •Recent discussions and pain points
- •Technology-specific questions
- •Coding standards discussions
- •Development workflow requirements
Output Format
Display analysis results in structured table comparing awesome-copilot instructions with existing repository instructions:
| Awesome-Copilot Instruction | Description | Already Installed | Similar Local Instruction | Suggestion Rationale |
|---|---|---|---|---|
| blazor.instructions.md | Blazor development guidelines | ✅ Yes | blazor.instructions.md | Already covered by existing Blazor instructions |
| reactjs.instructions.md | ReactJS development standards | ❌ No | None | Would enhance React development with established patterns |
| java.instructions.md | Java development best practices | ⚠️ Outdated | java.instructions.md | applyTo pattern differs: remote uses '**/*.java' vs local '*.java' - Update recommended |
Local Instructions Discovery Process
- •List all
*.instructions.mdfiles in theinstructions/directory - •For each discovered file, read front matter to extract
descriptionandapplyTopatterns - •Build comprehensive inventory of existing instructions with their applicable file patterns
- •Use this inventory to avoid suggesting duplicates
Version Comparison Process
- •For each local instruction file, construct the raw GitHub URL to fetch the remote version:
- •Pattern:
https://raw.githubusercontent.com/github/awesome-copilot/main/instructions/<filename>
- •Pattern:
- •Fetch the remote version using the
#fetchtool - •Compare entire file content (including front matter and body)
- •Identify specific differences:
- •Front matter changes (description, applyTo patterns)
- •Content updates (guidelines, examples, best practices)
- •Document key differences for outdated instructions
- •Calculate similarity to determine if update is needed
File Structure Requirements
Based on GitHub documentation, copilot-instructions files should be:
- •Repository-wide instructions:
.github/copilot-instructions.md(applies to entire repository) - •Path-specific instructions:
.github/instructions/NAME.instructions.md(applies to specific file patterns viaapplyTofrontmatter) - •Community instructions:
instructions/NAME.instructions.md(for sharing and distribution)
Front Matter Structure
Instructions files in awesome-copilot use this front matter format:
markdown
--- description: 'Brief description of what this instruction provides' applyTo: '**/*.js,**/*.ts' # Optional: glob patterns for file matching ---
Requirements
- •Use
githubRepotool to get content from awesome-copilot repository instructions folder - •Scan local file system for existing instructions in
.github/instructions/directory - •Read YAML front matter from local instruction files to extract descriptions and
applyTopatterns - •Compare local instructions with remote versions to detect outdated instructions
- •Compare against existing instructions in this repository to avoid duplicates
- •Focus on gaps in current instruction library coverage
- •Validate that suggested instructions align with repository's purpose and standards
- •Provide clear rationale for each suggestion
- •Include links to both awesome-copilot instructions and similar local instructions
- •Clearly identify outdated instructions with specific differences noted
- •Consider technology stack compatibility and project-specific needs
- •Don't provide any additional information or context beyond the table and the analysis
Icons Reference
- •✅ Already installed and up-to-date
- •⚠️ Installed but outdated (update available)
- •❌ Not installed in repo
Update Handling
When outdated instructions are identified:
- •Include them in the output table with ⚠️ status
- •Document specific differences in the "Suggestion Rationale" column
- •Provide recommendation to update with key changes noted
- •When user requests update, replace entire local file with remote version
- •Preserve file location in
.github/instructions/directory