npx skills add ...
npx skills add codewithmukesh/dotnet-claude-kit --skill build-fix
Autonomous iteration loops for .NET: drive a broken build or failing test suite to green with bounded iterations, progress detection, and fail-safe guards that prevent infinite retries and wasted tokens. The build-fix loop (dotnet build, parse, categorize, fix, rebuild) is the primary flow; the test-fix loop is a first-class variant. Invoke when the build is broken, after a major refactor or dependency update, or when the user says "fix the build", "build is broken", "make it compile", "make the tests pass", "fix failing tests", "keep going until it works", "autonomous", "loop", "auto-fix", or "keep fixing".
npx skills add codewithmukesh/dotnet-claude-kit --skill build-fix
The kit's autonomous iteration-loop skill. It drives a broken dotnet build
(or failing dotnet test) to green by looping: run, parse failures,
categorize by root cause, apply targeted fixes, re-run. It repeats until
green or a guard fires — the same way an experienced developer works through
a wall of red, but with hard limits that stop it from thrashing.
This is not a single-pass fix. It handles cascading errors where fixing one issue reveals the next.
using can erase a dozen downstream
errors).Iteration 3/5: fixed CS0246 by adding using System.Text.Json, 2 remain.
Never modify files silently.Build — Run dotnet build, capture full error output
Parse — Extract every error CS#### with file, line, and message
Categorize — Group by root cause:
| Category | Codes | Fix strategy |
|---|---|---|
| Missing using/reference | CS0246, CS0234 | Add using, package, or project ref |
| Type mismatch | CS0029, CS1503 | Check expected type, cast or convert |
| API change | CS0117, CS7036 | Check new signature, update call sites |
| Nullability | CS8600–CS8604 | Add null check, ?. or ?? |
| Ambiguity / duplicate | CS0104, CS0121, CS0111 | Qualify namespace, remove dupe |
| Missing member | CS1061 | Check spelling, verify member exists |
| Missing implementation | CS0535 | Implement interface/abstract members |
| Obsolete API | CS0618 | Replace with recommended alternative |
Fix — Apply targeted fixes, root-cause/highest-leverage errors first
Rebuild — Run dotnet build again, compare error count
Evaluate — Zero errors: run dotnet test as a sanity check, report
success. Fewer errors: continue. Same errors: STUCK — exit and re-plan.
More errors: revert the iteration, report REGRESSION.
Same loop, same guards, with dotnet test --no-build as the runner and one
critical extra step — diagnose before fixing:
Assert.Equal(expected, actual) → Assert.NotNull(actual).
GOOD: fix the production code so the original assertion passes.The same discipline — bounded iterations, progress detection, fail-safe
guards — governs refactor passes (/de-sloppify: verify build + tests after
each target, revert on failure) and scaffolding (/scaffold: generate, then
run nested build-fix and test-fix loops). Nested loops get a smaller budget
(parent 5 → nested 3), max nesting depth 2, total budget 15.
| Type | Name | Purpose |
|---|---|---|
| Skill | instinct-system | Capture fix patterns in MEMORY.md |
| Agent | dotnet-architect | Consulted for architectural error patterns |
get_diagnostics — Compiler errors/warnings scoped to file or projectfind_symbol — Locate moved or renamed typesfind_references — Assess blast radius of a broken API changeget_project_graph — Dependency order for fixing reference errors/verify — Full verification pass (build + test + format + diagnostics)/tdd — Red-green-refactor when building new features test-first/de-sloppify — Clean up code quality issues after the build is green