Skip to main content

fix

Applies targeted fix to known bug/lint error, verifies with same command that surfaced it. Triggers: fix, apply fix, fix bug, fix lint, targeted fix.

소스 정보

저장소
softspark/ai-toolkit
최근 소스 활동
2026년 8월 6일 06:57
감지된 SKILL.md 언어
영어
스타
177
포크
21

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
fix
description
Applies targeted fix to known bug/lint error, verifies with same command that surfaced it. Triggers: fix, apply fix, fix bug, fix lint, targeted fix.
effort
low
disable-model-invocation
true
argument-hint
[test or lint target]
allowed-tools
Bash, Read, Edit, Grep
# Fix Command $ARGUMENTS Attempts to fix code errors autonomously. ## Usage ```bash /fix <file_or_scope> # Example: /fix src/utils.ts ``` ## Automated Error Classification Before entering the fix loop, classify errors to prioritize auto-fixable ones: ```bash # Pipe lint or test output ruff check . 2>&1 | python3 ${CLAUDE_SKILL_DIR}/scripts/error-classifier.py mypy src/ 2>&1 | python3 ${CLAUDE_SKILL_DIR}/scripts/error-classifier.py npx eslint . 2>&1 | python3 ${CLAUDE_SKILL_DIR}/scripts/error-classifier.py ``` The script outputs JSON with: - **total_errors**: count of all parsed errors - **auto_fixable_count**: 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") 1. **Analyze**: Run validation to get the exact error message. ```bash # Get error npm test src/utils.ts 2>&1 | tee error.log ``` 2. **Diagnose**: Analyze `error.log`. - Use `debugging-tactics` skill. - Trace the error to the source line. 3. **Patch**: Apply a fix. - Use `sed` or `write_file`. 4. **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 `/fix` handles — 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 --fix` reorders imports and rewrites them. On files with circular imports or conditional-imports-under-TYPE_CHECKING, the "fix" can break things silently. Run `--check` first, inspect the diff, then apply. - `eslint --fix --cache` skips already-cached files even if their content changed (cache invalidation by mtime). On first-run misses, clear the cache with `--no-cache` to force a complete pass. - `mypy --install-types` auto-installs stub packages, adding dependencies to the environment the user did not request. Reserve it for explicit opt-in; in CI, pass `--non-interactive` to prevent surprise installs. - `npm test -- path/to/test` in a workspace repo runs the **root** workspace's test runner, not the leaf package's. Use `npm test --workspace=<name>` or the per-package `cd packages/foo && npm test` form. - 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 `/debug` first, then `/fix` with a clear target - For systemic refactoring across modules — use `/refactor` or `/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
GitHub에서 보기