MCAF: .NET dotnet format
Trigger On
- the repo uses
dotnet format
- you need a CI-safe formatting check for .NET
- the repo wants
.editorconfig-driven style enforcement
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
- repositories that intentionally use
CSharpier as the only formatter
- analyzer strategy with no formatting command change
Inputs
- the nearest
AGENTS.md
- the solution or project path
- the current
.editorconfig
Quick Start
- Read the nearest
AGENTS.md and confirm scope and constraints.
- Run this skill's
Workflow through the Ralph Loop until outcomes are acceptable.
- Return the
Required Result Format with concrete artifacts and verification evidence.
Workflow
- Prefer the SDK-provided
dotnet format command instead of inventing custom format scripts.
- Start with verify mode in CI:
dotnet format TARGET --verify-no-changes.
- Use narrower subcommands only when the repo needs them:
whitespace
style
analyzers
- Keep
.editorconfig as the source of truth for style preferences.
- If the repo also uses
CSharpier, document which tool owns which file types or rules.
Bootstrap When Missing
If dotnet format is requested but not available yet:
- Detect current state:
dotnet --info
dotnet format --version
- Treat
dotnet format as SDK-provided, not as a separate repo-local tool by default.
- If the command is missing, install or upgrade to a supported .NET SDK, then recheck
dotnet format --version.
- Add explicit local and CI commands to
AGENTS.md, usually:
dotnet format TARGET --verify-no-changes
- Run the chosen command once and return
status: configured or status: improved.
- If the repo intentionally uses only
CSharpier for formatting ownership, return status: not_applicable.
Deliver
- explicit
dotnet format commands for local and CI runs
- formatting that follows
.editorconfig
Validate
- formatting is reproducible on CI
- no overlapping formatter ownership is left ambiguous
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- 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
- Execute one planned step and produce a concrete delta.
- Review the result and capture findings with actionable next fixes.
- Apply fixes in small batches and rerun the relevant checks or review steps.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable or only explicit exceptions remain.
- 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
- read
references/dotnet-format.md first
Example Requests
- "Add
dotnet format to this repo."
- "Make formatting fail CI if files drift."
- "Explain when to use
dotnet format versus CSharpier."
1---2name: mcaf-dotnet-format3description: Use the free first-party `dotnet format` CLI for .NET formatting and analyzer fixes. Use when a .NET repo needs formatting commands, `--verify-no-changes` CI checks, or `.editorconfig`-driven code style enforcement.4---56# MCAF: .NET dotnet format78## Trigger On910- the repo uses `dotnet format`11- you need a CI-safe formatting check for .NET12- the repo wants `.editorconfig`-driven style enforcement1314## Value1516- produce a concrete project delta: code, docs, config, tests, CI, or review artifact17- reduce ambiguity through explicit planning, verification, and final validation skills18- leave reusable project context so future tasks are faster and safer1920## Do Not Use For2122- repositories that intentionally use `CSharpier` as the only formatter23- analyzer strategy with no formatting command change2425## Inputs2627- the nearest `AGENTS.md`28- the solution or project path29- the current `.editorconfig`3031## Quick Start32331. Read the nearest `AGENTS.md` and confirm scope and constraints.342. Run this skill's `Workflow` through the `Ralph Loop` until outcomes are acceptable.353. Return the `Required Result Format` with concrete artifacts and verification evidence.3637## Workflow38391. Prefer the SDK-provided `dotnet format` command instead of inventing custom format scripts.402. Start with verify mode in CI: `dotnet format TARGET --verify-no-changes`.413. Use narrower subcommands only when the repo needs them:42 - `whitespace`43 - `style`44 - `analyzers`454. Keep `.editorconfig` as the source of truth for style preferences.465. If the repo also uses `CSharpier`, document which tool owns which file types or rules.4748## Bootstrap When Missing4950If `dotnet format` is requested but not available yet:51521. Detect current state:53 - `dotnet --info`54 - `dotnet format --version`552. Treat `dotnet format` as SDK-provided, not as a separate repo-local tool by default.563. If the command is missing, install or upgrade to a supported .NET SDK, then recheck `dotnet format --version`.574. Add explicit local and CI commands to `AGENTS.md`, usually:58 - `dotnet format TARGET --verify-no-changes`595. Run the chosen command once and return `status: configured` or `status: improved`.606. If the repo intentionally uses only `CSharpier` for formatting ownership, return `status: not_applicable`.6162## Deliver6364- explicit `dotnet format` commands for local and CI runs65- formatting that follows `.editorconfig`6667## Validate6869- formatting is reproducible on CI70- no overlapping formatter ownership is left ambiguous7172## Ralph Loop7374Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.75761. Plan first (mandatory):77 - analyze current state78 - define target outcome, constraints, and risks79 - write a detailed execution plan80 - list final validation skills to run at the end, with order and reason812. Execute one planned step and produce a concrete delta.823. Review the result and capture findings with actionable next fixes.834. Apply fixes in small batches and rerun the relevant checks or review steps.845. Update the plan after each iteration.856. Repeat until outcomes are acceptable or only explicit exceptions remain.867. If a dependency is missing, bootstrap it or return `status: not_applicable` with explicit reason and fallback path.8788### Required Result Format8990- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`91- `plan`: concise plan and current iteration step92- `actions_taken`: concrete changes made93- `validation_skills`: final skills run, or skipped with reasons94- `verification`: commands, checks, or review evidence summary95- `remaining`: top unresolved items or `none`9697For setup-only requests with no execution, return `status: configured` and exact next commands.9899## Load References100101- read `references/dotnet-format.md` first102103## Example Requests104105- "Add `dotnet format` to this repo."106- "Make formatting fail CI if files drift."107- "Explain when to use `dotnet format` versus `CSharpier`."