Coding & Refactoringlow risk

systematic-test-fix

Fix a failing function by reproducing the failure, localizing the smallest wrong expression, making the minimal change, and re-verifying — for small bug-fix tasks with a known expected behaviour.

sdsrss/super-skill·evals/test-fix-family/handwritten/SKILL.md
32/ 100推薦值

匯入這個 Skill

選擇你的 coding agent,複製專案級或個人級安裝指令。

固定至平台收錄的 commit
匯入目前專案.agents/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a codex -y
匯入個人環境~/.agents/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a codex -g -y
手動放置目錄.agents/skills/handwrittenOfficial docs ↗
匯入目前專案.claude/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a claude-code -y
匯入個人環境~/.claude/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a claude-code -g -y
手動放置目錄.claude/skills/handwrittenOfficial docs ↗
匯入目前專案.agents/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a github-copilot -y
匯入個人環境~/.copilot/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a github-copilot -g -y
手動放置目錄.agents/skills/handwrittenOfficial docs ↗
匯入目前專案.agents/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a cursor -y
匯入個人環境~/.cursor/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a cursor -g -y
手動放置目錄.agents/skills/handwrittenOfficial docs ↗
匯入目前專案.agents/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a gemini-cli -y
匯入個人環境~/.gemini/skills/handwritten
npx skills add https://github.com/sdsrss/super-skill/tree/e13a5b1da1235030e9da480071f2a7e5eb518bbe/evals/test-fix-family/handwritten -a gemini-cli -g -y
Native Gemini CLIgemini skills install https://github.com/sdsrss/super-skill.git --scope workspace --path evals/test-fix-family/handwritten
手動放置目錄.agents/skills/handwrittenOfficial docs ↗
⚠ 安裝指令使用開源 skills CLI。執行前請檢查來源、腳本與權限。
# Systematic test-fix

A discipline for fixing a function whose behaviour is wrong, when you know what
it should do. Optimises for the smallest correct change, not a rewrite.

## When to use

A single function returns wrong results for some inputs and you have concrete
expected input/output pairs (from a description or a failing check).

## Steps

1. **Restate the contract.** Write down the expected output for 2–3 inputs,
   including the boundaries and the empty/degenerate case. These are your oracle.
2. **Reproduce.** Trace the current code by hand on the input that looks most
   likely to break (a boundary, an empty input, a negative number). Confirm the
   wrong output before changing anything — do not fix by guessing.
3. **Localize.** Find the single expression responsible: an off-by-one in a
   slice or index, a `>` that should be `>=`, an accumulator initialised to `0`
   instead of the first element or negative infinity, a wrong base case.
4. **Minimal fix.** Change only that expression. Keep the signature. Resist
   refactoring unrelated code in the same edit.
5. **Re-verify against the oracle** from step 1, especially the boundary and the
   degenerate case, since those are where these bugs hide. If any still fails,
   return to step 3 — the localization was wrong, not the fix.

## Common shapes

- Slice/index endpoints (`len(x) - n` vs `len(x) - n + 1`).
- Boundary comparisons (inclusive vs exclusive).
- Accumulator seeds (`0` breaks all-negative inputs; seed with the first element
  or `float("-inf")`).
- Missing empty-input handling.