From 647a2b43c393b975d1312be15965dfd0f5b8da98 Mon Sep 17 00:00:00 2001 From: Daniel Scott-Raynsford Date: Thu, 24 Jul 2025 15:22:16 -0700 Subject: [PATCH 1/9] UPDATE: Add status badge to implementation plan templates (#108) * CHANGE: Add status section to implementation plan templates - Introduced a status section in the implementation plan templates to define the current state of the plan. - Status options include: Completed, In progress, Planned, Deprecated, and On Hold. - Status will be displayed as a badge in the introduction section. * CHANGE: Update status formatting in implementation plans - Enclosed status options in quotes for consistency - Updated formatting in implementation plan and prompt files --------- Co-authored-by: Matt Soucoup --- chatmodes/implementation-plan.chatmode.md | 7 +++++++ prompts/create-implementation-plan.prompt.md | 11 +++++++++++ prompts/update-implementation-plan.prompt.md | 7 +++++++ 3 files changed, 25 insertions(+) diff --git a/chatmodes/implementation-plan.chatmode.md b/chatmodes/implementation-plan.chatmode.md index 28eaaa3..fd7d942 100644 --- a/chatmodes/implementation-plan.chatmode.md +++ b/chatmodes/implementation-plan.chatmode.md @@ -63,6 +63,10 @@ All implementation plans must strictly adhere to the following template. Each se - Tables must include all required columns with specific task details - No placeholder text may remain in the final output +## Status + +The status of the implementation plan must be clearly defined in the front matter and must reflect the current state of the plan. The status can be one of the following (status_color in brackets): `Completed` (bright green badge), `In progress` (yellow badge), `Planned` (blue badge), `Deprecated` (red badge), or `On Hold` (orange badge). It should also be displayed as a badge in the introduction section. + ```md --- goal: [Concise Title Describing the Package Plan's Goal] @@ -70,11 +74,14 @@ version: [Optional: e.g., 1.0, Date] date_created: [YYYY-MM-DD] last_updated: [Optional: YYYY-MM-DD] owner: [Optional: Team/Individual responsible for this spec] +status: 'Completed'|'In progress'|'Planned'|'Deprecated'|'On Hold' tags: [Optional: List of relevant tags or categories, e.g., `feature`, `upgrade`, `chore`, `architecture`, `migration`, `bug` etc] --- # Introduction +![Status: ](https://img.shields.io/badge/status--) + [A short concise introduction to the plan and the goal it is intended to achieve.] ## 1. Requirements & Constraints diff --git a/prompts/create-implementation-plan.prompt.md b/prompts/create-implementation-plan.prompt.md index 8d5ae40..1f54003 100644 --- a/prompts/create-implementation-plan.prompt.md +++ b/prompts/create-implementation-plan.prompt.md @@ -6,9 +6,11 @@ tools: ['changes', 'codebase', 'editFiles', 'extensions', 'fetch', 'githubRepo', # Create Implementation Plan ## Primary Directive + Your goal is to create a new implementation plan file for `${input:PlanPurpose}`. Your output must be machine-readable, deterministic, and structured for autonomous execution by other AI systems or humans. ## Execution Context + This prompt is designed for AI-to-AI communication and automated processing. All instructions must be interpreted literally and executed systematically without human interpretation or clarification. ## Core Requirements @@ -19,6 +21,7 @@ This prompt is designed for AI-to-AI communication and automated processing. All - Ensure complete self-containment with no external dependencies for understanding ## Plan Structure Requirements + Plans must consist of discrete, atomic phases containing executable tasks. Each phase must be independently processable by AI agents or humans without cross-phase dependencies unless explicitly declared. ## Phase Architecture @@ -47,6 +50,7 @@ Plans must consist of discrete, atomic phases containing executable tasks. Each - File must be valid Markdown with proper front matter structure ## Mandatory Template Structure + All implementation plans must strictly adhere to the following template. Each section is required and must be populated with specific, actionable content. AI agents must validate template compliance before execution. ## Template Validation Rules @@ -57,6 +61,10 @@ All implementation plans must strictly adhere to the following template. Each se - Tables must include all required columns - No placeholder text may remain in the final output +## Status + +The status of the implementation plan must be clearly defined in the front matter and must reflect the current state of the plan. The status can be one of the following (status_color in brackets): `Completed` (bright green badge), `In progress` (yellow badge), `Planned` (blue badge), `Deprecated` (red badge), or `On Hold` (orange badge). It should also be displayed as a badge in the introduction section. + ```md --- goal: [Concise Title Describing the Package Implementation Plan's Goal] @@ -64,11 +72,14 @@ version: [Optional: e.g., 1.0, Date] date_created: [YYYY-MM-DD] last_updated: [Optional: YYYY-MM-DD] owner: [Optional: Team/Individual responsible for this spec] +status: 'Completed'|'In progress'|'Planned'|'Deprecated'|'On Hold' tags: [Optional: List of relevant tags or categories, e.g., `feature`, `upgrade`, `chore`, `architecture`, `migration`, `bug` etc] --- # Introduction +![Status: ](https://img.shields.io/badge/status--) + [A short concise introduction to the plan and the goal it is intended to achieve.] ## 1. Requirements & Constraints diff --git a/prompts/update-implementation-plan.prompt.md b/prompts/update-implementation-plan.prompt.md index 1eaab38..f66a3d8 100644 --- a/prompts/update-implementation-plan.prompt.md +++ b/prompts/update-implementation-plan.prompt.md @@ -61,6 +61,10 @@ All implementation plans must strictly adhere to the following template. Each se - Tables must include all required columns - No placeholder text may remain in the final output +## Status + +The status of the implementation plan must be clearly defined in the front matter and must reflect the current state of the plan. The status can be one of the following (status_color in brackets): `Completed` (bright green badge), `In progress` (yellow badge), `Planned` (blue badge), `Deprecated` (red badge), or `On Hold` (orange badge). It should also be displayed as a badge in the introduction section. + ```md --- goal: [Concise Title Describing the Package Implementation Plan's Goal] @@ -68,11 +72,14 @@ version: [Optional: e.g., 1.0, Date] date_created: [YYYY-MM-DD] last_updated: [Optional: YYYY-MM-DD] owner: [Optional: Team/Individual responsible for this spec] +status: 'Completed'|'In progress'|'Planned'|'Deprecated'|'On Hold' tags: [Optional: List of relevant tags or categories, e.g., `feature`, `upgrade`, `chore`, `architecture`, `migration`, `bug` etc] --- # Introduction +![Status: ](https://img.shields.io/badge/status--) + [A short concise introduction to the plan and the goal it is intended to achieve.] ## 1. Requirements & Constraints From b0f671d072b75261e909062d6cc38acc47d1d934 Mon Sep 17 00:00:00 2001 From: Peter Smulovics Date: Thu, 24 Jul 2025 22:49:04 +0000 Subject: [PATCH 2/9] adding working skeleton of WPF instructions (#111) * adding working skeleton of WPF instructions * adding updated readme * Fixing final newline * based on code review Co-authored-by: Matt Soucoup --------- Co-authored-by: Matt Soucoup --- README.md | 3 +- instructions/dotnet-wpf.instructions.md | 79 +++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 instructions/dotnet-wpf.instructions.md diff --git a/README.md b/README.md index 150ab46..fd24234 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for | [DevOps Core Principles](instructions/devops-core-principles.instructions.md) | Foundational instructions covering core DevOps principles, culture (CALMS), and key metrics (DORA) to guide GitHub Copilot in understanding and promoting effective software delivery. | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdevops-core-principles.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdevops-core-principles.instructions.md) | | [DDD Systems & .NET Guidelines](instructions/dotnet-architecture-good-practices.instructions.md) | DDD and .NET architecture guidelines | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-architecture-good-practices.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-architecture-good-practices.instructions.md) | | [.NET MAUI](instructions/dotnet-maui.instructions.md) | .NET MAUI component and application patterns | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-maui.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-maui.instructions.md) | +| [.NET WPF](instructions/dotnet-wpf.instructions.md) | .NET WPF component and application patterns | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-wpf.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fdotnet-wpf.instructions.md) | | [Genaiscript](instructions/genaiscript.instructions.md) | AI-powered script generation guidelines | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenaiscript.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenaiscript.instructions.md) | | [Generate Modern Terraform Code For Azure](instructions/generate-modern-terraform-code-for-azure.instructions.md) | Guidelines for generating modern Terraform code for Azure | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenerate-modern-terraform-code-for-azure.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgenerate-modern-terraform-code-for-azure.instructions.md) | | [Gilfoyle Code Review Instructions](instructions/gilfoyle-code-review.instructions.md) | Gilfoyle-style code review instructions that channel the sardonic technical supremacy of Silicon Valley's most arrogant systems architect. | [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md) [![Install in VS Code](https://img.shields.io/badge/VS_Code_Insiders-Install-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md) | @@ -205,4 +206,4 @@ This project may contain trademarks or logos for projects, products, or services trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies. \ No newline at end of file +Any use of third-party trademarks or logos are subject to those third-party's policies. diff --git a/instructions/dotnet-wpf.instructions.md b/instructions/dotnet-wpf.instructions.md new file mode 100644 index 0000000..608a0fe --- /dev/null +++ b/instructions/dotnet-wpf.instructions.md @@ -0,0 +1,79 @@ +--- +description: '.NET WPF component and application patterns' +applyTo: '**/*.xaml, **/*.cs' +--- + +## Summary + +These instructions guide GitHub Copilot to assist with building high-quality, maintainable, and performant WPF applications using the MVVM pattern. It includes best practices for XAML, data binding, UI responsiveness, and .NET performance. + +## Ideal project types + +- Desktop applications using C# and WPF +- Applications following the MVVM (Model-View-ViewModel) design pattern +- Projects using .NET 8.0 or later +- UI components built in XAML +- Solutions emphasizing performance and responsiveness + +## Goals + +- Generate boilerplate for `INotifyPropertyChanged` and `RelayCommand` +- Suggest clean separation of ViewModel and View logic +- Encourage use of `ObservableCollection`, `ICommand`, and proper binding +- Recommend performance tips (e.g., virtualization, async loading) +- Avoid tightly coupling code-behind logic +- Produce testable ViewModels + +## Example prompt behaviors + +### ✅ Good Suggestions +- "Generate a ViewModel for a login screen with properties for username and password, and a LoginCommand" +- "Write a XAML snippet for a ListView that uses UI virtualization and binds to an ObservableCollection" +- "Refactor this code-behind click handler into a RelayCommand in the ViewModel" +- "Add a loading spinner while fetching data asynchronously in WPF" + +### ❌ Avoid +- Suggesting business logic in code-behind +- Using static event handlers without context +- Generating tightly coupled XAML without binding +- Suggesting WinForms or UWP approaches + +## Technologies to prefer +- C# with .NET 8.0+ +- XAML with MVVM structure +- `CommunityToolkit.Mvvm` or custom `RelayCommand` implementations +- Async/await for non-blocking UI +- `ObservableCollection`, `ICommand`, `INotifyPropertyChanged` + +## Common Patterns to Follow +- ViewModel-first binding +- Dependency Injection using .NET or third-party containers (e.g., Autofac, SimpleInjector) +- XAML naming conventions (PascalCase for controls, camelCase for bindings) +- Avoiding magic strings in binding (use `nameof`) + +## Sample Instruction Snippets Copilot Can Use + +```csharp +public class MainViewModel : ObservableObject +{ + [ObservableProperty] + private string userName; + + [ObservableProperty] + private string password; + + [RelayCommand] + private void Login() + { + // Add login logic here + } +} +``` + +```xml + + + +