This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
These rules override all other instructions:
- NEVER commit directly to main - Always create a feature branch and submit a pull request
- Conventional commits - Format:
type(scope): description - GitHub Issues for TODOs - Use
ghCLI to manage issues, no local TODO files. Use conventional commit format for issue titles - Pull Request titles - Use conventional commit format (same as commits)
- Branch naming - Use format:
type/scope/short-description(e.g.,feat/ui/settings-dialog) - Working an issue - Always create a new branch from an updated main branch
- Check branch status before pushing - Verify the remote tracking branch still exists. If a PR was merged/deleted, create a new branch from main instead
- Microsoft coding guidelines - Follow Microsoft C# coding conventions and .NET library design guidelines
- WPF for all UI - All UI must be implemented using WPF (XAML/C#). No web-based technologies (HTML, JavaScript, WebView)
- Write tests - All new/refactored code requires tests where applicable
- Run validation before commits - Run
dotnet buildand verify no errors before committing - No co-authors - Do not add co-author information on commits or pull requests
- No "generated by" statements - Do not add generated-by statements on pull requests
gh issue list # List open issues
gh issue view <number> # View details
gh issue create --title "type(scope): description" --body "..."
gh issue close <number>| Type | Description |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation only |
refactor |
Code change that neither fixes a bug nor adds a feature |
test |
Adding or updating tests |
chore |
Maintenance tasks |
perf |
Performance improvement |
ci |
CI/CD changes |
Solution & Project Structure:
- SLNX solution files only (no legacy .sln)
- Solution naming:
CodingWithCalvin.<ProjectFolder> - Primary project naming:
CodingWithCalvin.<ProjectFolder> - Additional project naming:
CodingWithCalvin.<ProjectFolder>.<Classifier>
Build Configuration:
- Configurations: Debug and Release
- Platform: AnyCPU (or x64 where required)
- Build Tools: Latest 17.* release
- VSSDK: Latest 17.* release
Target Frameworks:
- Main VSIX project: .NET Framework 4.8
- Library projects: .NET Standard 2.0 (may use SDK-style project format)
VSIX Manifest:
- Version range:
[17.0,19.0)— supports VS 2022 through VS 2026 - Architectures: AMD64 and ARM64
- Prerequisites: List Community edition only (captures Pro/Enterprise)
CI/CD:
- Build workflow: Automated build on push/PR
- Publish workflow: Automated marketplace publishing
- Marketplace config:
publish.manifest.jsonfor automated publishing
Development Environment:
- Required extension: Extensibility Essentials 2022
- Helper library: Community.VisualStudio.Toolkit (where applicable)
Documentation:
- README should be exciting and use emojis
VS-BreakpointNotifier is a Visual Studio 2022 extension (VSIX) that displays a message box notification when a breakpoint is hit during debugging. This helps developers who are multi-tasking while waiting for breakpoints to trigger.
# Build the solution
dotnet build src/CodingWithCalvin.BreakpointNotifier/CodingWithCalvin.BreakpointNotifier.csproj
# Build Release
dotnet build src/CodingWithCalvin.BreakpointNotifier/CodingWithCalvin.BreakpointNotifier.csproj -c ReleaseOutput: bin\{Configuration}\CodingWithCalvin.BreakpointNotifier.vsix
- Requires Visual Studio 2022 with C# development workload
- Install "Extensibility Essentials 2022" extension for VS development
- Open
CodingWithCalvin.BreakpointNotifier.slnxin Visual Studio - Test by running in experimental VS instance (F5 from VS)
The extension has a minimal architecture with two core files:
-
BreakpointNotifierPackage.cs - Main VS Package class extending
AsyncPackage. Initializes on solution load and sets up the debugger event handler. -
DebuggerEvents.cs - Implements
IVsDebuggerEventsinterface. Listens for debugger mode changes and shows a MessageBox whenDBGMODE.DBGMODE_Breakis triggered.
- C# / .NET Framework 4.8
- Visual Studio SDK (v17.0+)
- VSIX v3 package format
- AnyCPU platform target
GitHub Actions workflows in .github/workflows/:
- build.yml - Triggered on push to main or PR. Versions, builds, and uploads VSIX artifact.
- publish.yml - Manual trigger to publish to VS Marketplace and create GitHub release.