Skip to content

Latest commit

 

History

History
128 lines (93 loc) · 5.04 KB

File metadata and controls

128 lines (93 loc) · 5.04 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Critical Rules

These rules override all other instructions:

  1. NEVER commit directly to main - Always create a feature branch and submit a pull request
  2. Conventional commits - Format: type(scope): description
  3. GitHub Issues for TODOs - Use gh CLI to manage issues, no local TODO files. Use conventional commit format for issue titles
  4. Pull Request titles - Use conventional commit format (same as commits)
  5. Branch naming - Use format: type/scope/short-description (e.g., feat/ui/settings-dialog)
  6. Working an issue - Always create a new branch from an updated main branch
  7. 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
  8. Microsoft coding guidelines - Follow Microsoft C# coding conventions and .NET library design guidelines
  9. WPF for all UI - All UI must be implemented using WPF (XAML/C#). No web-based technologies (HTML, JavaScript, WebView)
  10. Write tests - All new/refactored code requires tests where applicable
  11. Run validation before commits - Run dotnet build and verify no errors before committing
  12. No co-authors - Do not add co-author information on commits or pull requests
  13. No "generated by" statements - Do not add generated-by statements on pull requests

GitHub CLI Commands

gh issue list                    # List open issues
gh issue view <number>           # View details
gh issue create --title "type(scope): description" --body "..."
gh issue close <number>

Conventional Commit Types

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

VSIX Development Rules

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.json for automated publishing

Development Environment:

  • Required extension: Extensibility Essentials 2022
  • Helper library: Community.VisualStudio.Toolkit (where applicable)

Documentation:

  • README should be exciting and use emojis

Project Overview

VS-SuperClean is a Visual Studio 2022 extension that adds a "Super Clean" context menu option to Solution and Project nodes in Solution Explorer. It clears out bin and obj folders for all projects (when invoked on solution) or selected projects.

Build Commands

# Build the solution
dotnet build src/CodingWithCalvin.SuperClean/CodingWithCalvin.SuperClean.csproj

# Build Release
dotnet build src/CodingWithCalvin.SuperClean/CodingWithCalvin.SuperClean.csproj -c Release

Architecture

The extension has a simple architecture:

  • SuperCleanPackage.cs - Main VS Package class extending AsyncPackage. Initializes on load and sets up the command handler.

  • Commands/SuperCleanCommand.cs - Command handler that detects whether invoked on Solution or Project, then recursively deletes bin/obj folders for the appropriate scope.

  • VSCommandTable.vsct - Defines the context menu command placement for both Solution (IDG_VS_CTXT_SOLUTION_EXPLORE) and Project (IDG_VS_CTXT_PROJECT_EXPLORE) context menus.

Technology Stack

  • C# / .NET Framework 4.8
  • CodingWithCalvin.VsixSdk/0.3.0
  • Community.VisualStudio.Toolkit.17
  • Visual Studio SDK (v17.0+)
  • VSIX v3 package format

CI/CD

GitHub Actions workflows in .github/workflows/:

  • build.yml - Triggered on push to main or PR. Builds and uploads VSIX artifact.
  • publish.yml - Manual trigger to publish to VS Marketplace.

Development Setup

  • Requires Visual Studio 2022 with "Visual Studio extension development" workload
  • Install "Extensibility Essentials 2022" extension
  • Open src/CodingWithCalvin.SuperClean.slnx in Visual Studio
  • Test by running in experimental VS instance (F5 from VS)