Claude Skill

dotnet-csharpier

Use the open-source free `CSharpier` formatter for C# and XML. Use when a .NET repo intentionally wants one opinionated formatter instead of a highly configurable `dotnet format`-driven style model.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download postpartum-genushyacinthus29-dotnet-skills-skills_dotnet-csharpier-bfa4ebd.zip · 4 KB
Part of postpartum-genushyacinthus29/dotnet-skills — 80 skills

Install

skills CLI npx skills add https://github.com/Postpartum-genushyacinthus29/dotnet-skills/tree/main/skills/dotnet-csharpier
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install postpartum-genushyacinthus29-dotnet-skills@llmmart
Git git clone https://github.com/Postpartum-genushyacinthus29/dotnet-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole postpartum-genushyacinthus29/dotnet-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

CSharpier for .NET

Trigger On

  • the repo uses or wants CSharpier
  • the team prefers an opinionated formatter over many configurable style knobs

Value

  • produce a concrete project delta: code, docs, config, tests, CI, or review artifact
  • reduce ambiguity through explicit planning, verification, and final validation skills
  • leave reusable project context so future tasks are faster and safer

Do Not Use For

  • repos that already standardized on dotnet format as the only formatter

Inputs

  • the nearest AGENTS.md
  • current formatting ownership model
  • any .csharpierignore or .editorconfig

Quick Start

  1. Read the nearest AGENTS.md and confirm scope and constraints.
  2. Run this skill's Workflow through the Ralph Loop until outcomes are acceptable.
  3. Return the Required Result Format with concrete artifacts and verification evidence.

Workflow

  1. Decide whether CSharpier is the primary formatter or only complements other tools.
  2. Use check mode in CI.
  3. Keep ignore files and config explicit in repo.
  4. Do not let CSharpier and dotnet format both own the same formatting space without documentation.

Bootstrap When Missing

If CSharpier is not configured yet:

  1. Detect current state:
    • rg --files -g '.config/dotnet-tools.json' -g '.csharpierignore'
    • dotnet tool list --local
    • dotnet tool list --global
  2. Prefer local tool installation for reproducible CI:
    • dotnet new tool-manifest (if missing)
    • dotnet tool install csharpier
  3. Add .csharpierignore when needed and define ownership vs dotnet format in AGENTS.md.
  4. Add dotnet csharpier check . to CI.
  5. Run dotnet csharpier check . and return status: configured or status: improved.
  6. If the repo intentionally uses only dotnet format, return status: not_applicable unless migration is requested.

Deliver

  • explicit CSharpier ownership and commands
  • CI-safe formatter checks

Validate

  • formatter ownership is not ambiguous
  • the repo is comfortable with opinionated formatting decisions

Ralph Loop

Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.

  1. Plan first (mandatory):
    • analyze current state
    • define target outcome, constraints, and risks
    • write a detailed execution plan
    • list final validation skills to run at the end, with order and reason
  2. Execute one planned step and produce a concrete delta.
  3. Review the result and capture findings with actionable next fixes.
  4. Apply fixes in small batches and rerun the relevant checks or review steps.
  5. Update the plan after each iteration.
  6. Repeat until outcomes are acceptable or only explicit exceptions remain.
  7. If a dependency is missing, bootstrap it or return status: not_applicable with explicit reason and fallback path.

Required Result Format

  • status: complete | clean | improved | configured | not_applicable | blocked
  • plan: concise plan and current iteration step
  • actions_taken: concrete changes made
  • validation_skills: final skills run, or skipped with reasons
  • verification: commands, checks, or review evidence summary
  • remaining: top unresolved items or none

For setup-only requests with no execution, return status: configured and exact next commands.

Load References

  • references/commands.md
  • references/config.md
  • references/csharpier.md

Example Requests

  • "Set up CSharpier for this repo."
  • "Compare CSharpier and dotnet format."
Files (dotnet-skills)
  • references
    • commands.md 2.3 KB
      # CSharpier CLI Commands
      
      ## Installation
      
      ### Local Tool (Recommended)
      
      ```bash
      # Create tool manifest if missing
      dotnet new tool-manifest
      
      # Install CSharpier as local tool
      dotnet tool install csharpier
      
      # Update to latest version
      dotnet tool update csharpier
      ```
      
      ### Global Tool
      
      ```bash
      # Install globally
      dotnet tool install -g csharpier
      
      # Update globally
      dotnet tool update -g csharpier
      ```
      
      ## Formatting Commands
      
      ### Format Files
      
      ```bash
      # Format all files in current directory recursively
      dotnet csharpier .
      
      # Format specific file
      dotnet csharpier MyFile.cs
      
      # Format specific directory
      dotnet csharpier src/
      
      # Format multiple paths
      dotnet csharpier src/ tests/
      ```
      
      ### Check Mode (CI)
      
      ```bash
      # Check formatting without modifying files
      # Returns non-zero exit code if files need formatting
      dotnet csharpier check .
      
      # Check specific directory
      dotnet csharpier check src/
      ```
      
      ### Additional Options
      
      ```bash
      # Write formatted files to stdout instead of modifying
      dotnet csharpier --write-stdout MyFile.cs
      
      # Skip write (dry run) - validates syntax without output
      dotnet csharpier --skip-write .
      
      # Include generated files (excluded by default)
      dotnet csharpier --include-generated .
      
      # Disable cache (useful for debugging)
      dotnet csharpier --no-cache .
      
      # Use fast exit on first error
      dotnet csharpier --fast .
      
      # Pipe content through stdin/stdout
      cat MyFile.cs | dotnet csharpier --write-stdout
      ```
      
      ## Exit Codes
      
      | Code | Meaning |
      |------|---------|
      | 0 | Success - all files formatted or already formatted |
      | 1 | Error - formatting failed or files need formatting (check mode) |
      
      ## CI Integration Examples
      
      ### GitHub Actions
      
      ```yaml
      - name: Check formatting
        run: dotnet csharpier check .
      ```
      
      ### Azure DevOps
      
      ```yaml
      - script: dotnet csharpier check .
        displayName: 'Check CSharpier formatting'
      ```
      
      ### Pre-commit Hook
      
      ```bash
      #!/bin/sh
      dotnet csharpier check .
      ```
      
      ## MsBuild Integration
      
      Add to `.csproj` for build-time formatting check:
      
      ```xml
      <Target Name="CheckFormatting" BeforeTargets="Build">
        <Exec Command="dotnet csharpier check ." />
      </Target>
      ```
      
      ## IDE Extensions
      
      - **Visual Studio**: CSharpier extension from VS Marketplace
      - **VS Code**: CSharpier extension
      - **JetBrains Rider**: CSharpier plugin
      
      Configure format-on-save in IDE settings for seamless workflow.
      
    • config.md 3.1 KB
      # CSharpier Configuration
      
      ## Configuration File
      
      CSharpier uses `.csharpierrc` (or `.csharpierrc.json`, `.csharpierrc.yaml`) in the repository root.
      
      ### JSON Format (.csharpierrc or .csharpierrc.json)
      
      ```json
      {
        "printWidth": 100,
        "useTabs": false,
        "tabWidth": 4,
        "endOfLine": "auto"
      }
      ```
      
      ### YAML Format (.csharpierrc.yaml)
      
      ```yaml
      printWidth: 100
      useTabs: false
      tabWidth: 4
      endOfLine: auto
      ```
      
      ## Configuration Options
      
      ### printWidth
      
      Maximum line width before wrapping.
      
      - **Type**: integer
      - **Default**: 100
      - **Range**: 1-1000
      
      ```json
      {
        "printWidth": 120
      }
      ```
      
      ### useTabs
      
      Use tabs instead of spaces for indentation.
      
      - **Type**: boolean
      - **Default**: false
      
      ```json
      {
        "useTabs": true
      }
      ```
      
      ### tabWidth
      
      Number of spaces per indentation level (when `useTabs` is false).
      
      - **Type**: integer
      - **Default**: 4
      - **Range**: 1-1000
      
      ```json
      {
        "tabWidth": 2
      }
      ```
      
      ### endOfLine
      
      Line ending style.
      
      - **Type**: string
      - **Default**: "auto"
      - **Values**: "auto", "lf", "crlf"
      
      ```json
      {
        "endOfLine": "lf"
      }
      ```
      
      | Value | Description |
      |-------|-------------|
      | auto | Use existing line endings (mixed files use first line's ending) |
      | lf | Unix-style line endings (`\n`) |
      | crlf | Windows-style line endings (`\r\n`) |
      
      ## Ignore File
      
      Create `.csharpierignore` in the repository root to exclude files from formatting.
      
      ### Syntax
      
      Uses gitignore-style patterns:
      
      ```gitignore
      # Ignore generated files
      **/Generated/**
      **/*.generated.cs
      
      # Ignore specific directories
      **/obj/
      **/bin/
      **/Migrations/
      
      # Ignore specific files
      src/Legacy/OldCode.cs
      
      # Ignore test fixtures
      tests/Fixtures/**/*.cs
      ```
      
      ### Default Exclusions
      
      CSharpier automatically excludes:
      
      - Files in `obj/` and `bin/` directories
      - Files matching `*.generated.cs` pattern
      - Files with `<auto-generated>` comment header
      
      ## EditorConfig Integration
      
      CSharpier respects `.editorconfig` for some settings:
      
      ```ini
      [*.cs]
      indent_style = space
      indent_size = 4
      end_of_line = lf
      max_line_length = 100
      ```
      
      Priority order:
      
      1. `.csharpierrc` settings (highest)
      2. `.editorconfig` settings
      3. CSharpier defaults (lowest)
      
      ## Preprocessor Directives
      
      CSharpier handles preprocessor directives but may format them differently than expected. Use `.csharpierignore` for files with complex preprocessor logic that must not change.
      
      ## Example Repository Setup
      
      ```text
      repo/
      ├── .csharpierrc
      ├── .csharpierignore
      ├── .editorconfig
      ├── .config/
      │   └── dotnet-tools.json
      └── src/
          └── ...
      ```
      
      ### Minimal .csharpierrc
      
      ```json
      {
        "printWidth": 100
      }
      ```
      
      ### Minimal .csharpierignore
      
      ```gitignore
      **/Migrations/
      **/Generated/
      ```
      
      ## Troubleshooting
      
      ### Formatting Conflicts with dotnet format
      
      If using both tools, ensure they do not conflict:
      
      1. Disable whitespace/formatting rules in `.editorconfig` for `dotnet format`
      2. Let CSharpier own all formatting decisions
      3. Document ownership in `AGENTS.md`
      
      ### Cache Issues
      
      Clear the CSharpier cache if formatting seems inconsistent:
      
      ```bash
      # Disable cache for single run
      dotnet csharpier --no-cache .
      
      # Cache location (for manual clearing)
      # Windows: %LOCALAPPDATA%/CSharpier
      # macOS/Linux: ~/.cache/CSharpier
      ```
      
    • csharpier.md 844 B
      # CSharpier
      
      ## Open/Free Status
      
      - open source
      - free to use
      
      ## Install
      
      Global tool:
      
      ```bash
      dotnet tool install csharpier -g
      ```
      
      ## Verify First
      
      Before installing, check whether the repo already has a local or global CSharpier tool:
      
      ```bash
      rg --files -g '.config/dotnet-tools.json' -g '.csharpierignore'
      dotnet tool list --local
      dotnet tool list --global
      command -v csharpier
      ```
      
      ## Common Usage
      
      ```bash
      csharpier format .
      csharpier check .
      dotnet csharpier --version
      ```
      
      ## CI Fit
      
      - use `csharpier check .` as the gate
      - keep `.csharpierignore` versioned if needed
      - document the relationship to `.editorconfig` and `dotnet format`
      
      ## When Not To Use
      
      - when the repo wants detailed `.editorconfig`-driven formatting rather than one opinionated formatter
      
      ## Sources
      
      - [CSharpier repository](https://github.com/belav/csharpier)
      
  • SKILL.md 3.8 KB
    ---
    name: dotnet-csharpier
    version: "1.0.0"
    category: "Code Quality"
    description: "Use the open-source free `CSharpier` formatter for C# and XML. Use when a .NET repo intentionally wants one opinionated formatter instead of a highly configurable `dotnet format`-driven style model."
    compatibility: "Requires a .NET SDK-based repository; respects the repo's `AGENTS.md` commands first."
    ---
    
    # CSharpier for .NET
    
    ## Trigger On
    
    - the repo uses or wants `CSharpier`
    - the team prefers an opinionated formatter over many configurable style knobs
    
    ## Value
    
    - produce a concrete project delta: code, docs, config, tests, CI, or review artifact
    - reduce ambiguity through explicit planning, verification, and final validation skills
    - leave reusable project context so future tasks are faster and safer
    
    ## Do Not Use For
    
    - repos that already standardized on `dotnet format` as the only formatter
    
    ## Inputs
    
    - the nearest `AGENTS.md`
    - current formatting ownership model
    - any `.csharpierignore` or `.editorconfig`
    
    ## Quick Start
    
    1. Read the nearest `AGENTS.md` and confirm scope and constraints.
    2. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable.
    3. Return the `Required Result Format` with concrete artifacts and verification evidence.
    
    ## Workflow
    
    1. Decide whether CSharpier is the primary formatter or only complements other tools.
    2. Use `check` mode in CI.
    3. Keep ignore files and config explicit in repo.
    4. Do not let `CSharpier` and `dotnet format` both own the same formatting space without documentation.
    
    ## Bootstrap When Missing
    
    If `CSharpier` is not configured yet:
    
    1. Detect current state:
       - `rg --files -g '.config/dotnet-tools.json' -g '.csharpierignore'`
       - `dotnet tool list --local`
       - `dotnet tool list --global`
    2. Prefer local tool installation for reproducible CI:
       - `dotnet new tool-manifest` (if missing)
       - `dotnet tool install csharpier`
    3. Add `.csharpierignore` when needed and define ownership vs `dotnet format` in `AGENTS.md`.
    4. Add `dotnet csharpier check .` to CI.
    5. Run `dotnet csharpier check .` and return `status: configured` or `status: improved`.
    6. If the repo intentionally uses only `dotnet format`, return `status: not_applicable` unless migration is requested.
    
    
    ## Deliver
    
    - explicit CSharpier ownership and commands
    - CI-safe formatter checks
    
    ## Validate
    
    - formatter ownership is not ambiguous
    - the repo is comfortable with opinionated formatting decisions
    
    ## Ralph Loop
    
    Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
    
    1. Plan first (mandatory):
       - analyze current state
       - define target outcome, constraints, and risks
       - write a detailed execution plan
       - list final validation skills to run at the end, with order and reason
    2. Execute one planned step and produce a concrete delta.
    3. Review the result and capture findings with actionable next fixes.
    4. Apply fixes in small batches and rerun the relevant checks or review steps.
    5. Update the plan after each iteration.
    6. Repeat until outcomes are acceptable or only explicit exceptions remain.
    7. If a dependency is missing, bootstrap it or return `status: not_applicable` with explicit reason and fallback path.
    
    ### Required Result Format
    
    - `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`
    - `plan`: concise plan and current iteration step
    - `actions_taken`: concrete changes made
    - `validation_skills`: final skills run, or skipped with reasons
    - `verification`: commands, checks, or review evidence summary
    - `remaining`: top unresolved items or `none`
    
    For setup-only requests with no execution, return `status: configured` and exact next commands.
    
    ## Load References
    
    - `references/commands.md`
    - `references/config.md`
    - `references/csharpier.md`
    
    ## Example Requests
    
    - "Set up CSharpier for this repo."
    - "Compare CSharpier and dotnet format."
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related