Install
$ agentstack add skill-softspark-ai-toolkit-fix ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Fix Command
$ARGUMENTS
Attempts to fix code errors autonomously.
Usage
/fix
# Example: /fix src/utils.ts
Automated Error Classification
Before entering the fix loop, classify errors to prioritize auto-fixable ones:
# Pipe lint or test output
ruff check . 2>&1 | python3 "$(dirname "$0")/scripts/error-classifier.py"
mypy src/ 2>&1 | python3 scripts/error-classifier.py
npx eslint . 2>&1 | python3 scripts/error-classifier.py
The script outputs JSON with:
- total_errors: count of all parsed errors
- autofixablecount: errors that tools can fix automatically (e.g., F401 unused imports, formatting)
- manual_count: errors requiring human/agent intervention
- tools_detected: which linters produced the output (ruff, mypy, eslint, tsc, phpstan)
- errors[]: each error with file, line, code, message, and auto_fixable flag
- suggested_order: files to fix, auto-fixable first
- fix_strategy: recommended approach (auto-fix first, then manual)
Use this to run auto-fixers (e.g., ruff check --fix .) before spending time on manual fixes.
Protocol (The "Fix Loop")
- Analyze: Run validation to get the exact error message.
``bash # Get error npm test src/utils.ts 2>&1 | tee error.log ``
- Diagnose: Analyze
error.log.
- Use
debugging-tacticsskill. - Trace the error to the source line.
- Patch: Apply a fix.
- Use
sedorwrite_file.
- Verify: Run validation again.
- If PASS: Stop.
- If FAIL: Repeat (Max 3 retries).
Safety Limits
- Max Retries: 3
- Scope: Only modify the specified files.
- Stop Condition: If new errors appear that are totally different, STOP and ask user.
Example Flow
User: /fix app.py
Agent: Running tests... FAIL (NameError)
Agent: Fixing app.py (Import missing module)
Agent: Running tests... PASS
Agent: Fixed NameError in app.py
Rules
- MUST know the exact symptom (error message, failing test, lint code) before editing — guessing is not fixing
- MUST verify the fix by rerunning the same command that exposed the problem, not a different validator
- NEVER modify tests to make them pass — fixing the test is not fixing the bug
- NEVER touch files outside the declared scope — scope creep hides regressions
- CRITICAL: hard-stop after 3 iterations. If the fix loop has not converged, the problem is deeper than
/fixhandles — escalate to/debug. - MANDATORY: if new, unrelated errors appear during a fix attempt, stop and ask the user — do not chase them
Gotchas
ruff check --fixreorders imports and rewrites them. On files with circular imports or conditional-imports-under-TYPE_CHECKING, the "fix" can break things silently. Run--checkfirst, inspect the diff, then apply.eslint --fix --cacheskips already-cached files even if their content changed (cache invalidation by mtime). On first-run misses, clear the cache with--no-cacheto force a complete pass.mypy --install-typesauto-installs stub packages, adding dependencies to the environment the user did not request. Reserve it for explicit opt-in; in CI, pass--non-interactiveto prevent surprise installs.npm test -- path/to/testin a workspace repo runs the root workspace's test runner, not the leaf package's. Usenpm test --workspace=or the per-packagecd packages/foo && npm testform.- Fix loops occasionally produce cycle diffs — iteration 1 fixes A which triggers B, iteration 2 fixes B which re-breaks A. After every iteration compare the diff to the previous; identical or inverse diffs mean a cycle — stop.
When NOT to Use
- When the root cause is unknown — use
/debugfirst, then/fixwith a clear target - For systemic refactoring across modules — use
/refactoror/refactor-plan - For writing new features test-first — use
/tdd - For CI failures spanning many files — use
/workflow debugging(coordinated) - When the failing validation is itself broken — repair the validator separately, do not patch code to satisfy it
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: softspark
- Source: softspark/ai-toolkit
- License: MIT
- Homepage: https://softspark.eu
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.