Test Fixing
Purpose
Run tests and systematically fix all failing tests using smart error grouping. Use when user asks to fix failing tests, mentions test failures, runs test suite and failures occur, or requests to make tests pass.
This skill provides operational guidance for Test Fixing, including tool usage patterns, workflows, and quality expectations aligned with Syncolab skill standards.
When to Use
- Use when the user needs help with Test Fixing.
- When integrations for this domain are available and the task matches the workflows below.
When NOT to Use
- When the task is unrelated to Test Fixing or covered by a more specific skill.
- When required integrations or credentials are unavailable.
Expected Outcome
- Correct use of domain tools with verified results (not fabricated).
- Clear summary of actions taken, data returned, and recommended next steps.
- Errors and missing permissions reported explicitly.
Inputs to Gather
- User goal, constraints, and any identifiers (URLs, IDs, project keys).
- Available tool sets and connection status.
- Relevant context from related systems before destructive writes.
Workflow
- Confirm the request maps to Test Fixing and required tools are available.
- Gather identifiers and scope (project, channel, repo, date range, etc.).
- Follow the domain guidance below; prefer list/search before get/update when applicable.
- Execute tool calls using schemas from the integration; never invent tool output.
- Summarize results and offer logical follow-ups.
Test Fixing
Systematically identify and fix all failing tests using smart grouping strategies.
When to Use
- Explicitly asks to fix tests ("fix these tests", "make tests pass")
- Reports test failures ("tests are failing", "test suite is broken")
- Completes implementation and wants tests passing
- Mentions CI/CD failures due to tests
Systematic Approach
1. Initial Test Run
Run make test to identify all failing tests.
Analyze output for:
- Total number of failures
- Error types and patterns
- Affected modules/files
2. Smart Error Grouping
Group similar failures by:
- Error type: ImportError, AttributeError, AssertionError, etc.
- Module/file: Same file causing multiple test failure
- Root cause: Missing dependencies, API changes, refactoring impacts
Prioritize groups by:
- Number of affected tests (highest impact first)
- Dependency order (fix infrastructure before functionality)
3. Systematic Fixing Process
For each group (starting with highest impact):
- Identify root cause
- Read relevant code
- Check recent changes with
git diff
- Understand the error pattern
- Implement fix
- Use Edit tool for code changes
- Follow project conventions (see CLAUDE.md)
- Make minimal, focused changes
- Verify fix
- Move to next group
4. Fix Order Strategy
Infrastructure first:
- Import errors
- Missing dependencies
- Configuration issues
Then API changes:
- Function signature changes
- Module reorganization
- Renamed variables/functions
Finally, logic issues:
- Assertion failures
- Business logic bugs
- Edge case handling
5. Final Verification
After all groups fixed:
- Run complete test suite:
make test
- Verify no regressions
- Check test coverage remains intact
Best Practices
- Fix one group at a time
- Run focused tests after each fix
- Use
git diff to understand recent changes
- Look for patterns in failures
- Don't move to next group until current passes
- Keep changes minimal and focused
Example Workflow
User: "The tests are failing after my refactor"
- Run
make test → 15 failures identified
- Group errors:
- 8 ImportErrors (module renamed)
- 5 AttributeErrors (function signature changed)
- 2 AssertionErrors (logic bugs)
- Fix ImportErrors first → Run subset → Verify
- Fix AttributeErrors → Run subset → Verify
- Fix AssertionErrors → Run subset → Verify
- Run full suite → All pass ✓
Tool Availability Rules
| Access |
Behavior |
| Full tool access |
Execute workflows, verify outputs, report errors. |
| Read-only |
Inspect and plan; provide exact commands or dispatch request for writes. |
| No integration |
State limitation; do not fabricate API results. |
Related tool sets
Review / Decision / Execution Criteria
- Prefer smallest safe change; confirm destructive actions with the user.
- Use evidence from tool responses; cite IDs and links when present.
- Match integration-specific conventions (JQL, RFC3339, A1 notation, etc.).
Output Format
Report:
- What was requested and what was done.
- Key results (tables or bullets).
- Errors, blockers, or missing permissions.
- Suggested next steps.
Quality Bar
- Specific, actionable, and grounded in tool output.
- Concise unless the user asked for detail.
- Respect rate limits, pagination, and API semantics.
Safety and Boundaries
- Do not commit secrets, tokens, or PII into skills or user-visible logs.
- Do not fabricate validation, send, or write confirmations.
- Confirm destructive operations (delete, destroy, mass update) when appropriate.
Escalation / Dispatch Rules
- If the task spans multiple domains, use or suggest related skills via
relationships.skills.
- If write access is required but unavailable, dispatch or ask the user to enable tools.
References
- Legacy content migrated from
skills/old_skills.json (test-fixing).
skills/skill.instruction.md, skills/meta.instructions.md
1---2name: test-fixing3description: Run tests and systematically fix all failing tests using smart error grouping. Use when user asks to fix failing tests, mentions test failures, runs test suite and failures occur, or requests to make tests pass.4---56# Test Fixing78## Purpose910Run tests and systematically fix all failing tests using smart error grouping. Use when user asks to fix failing tests, mentions test failures, runs test suite and failures occur, or requests to make tests pass.1112This skill provides operational guidance for Test Fixing, including tool usage patterns, workflows, and quality expectations aligned with Syncolab skill standards.1314## When to Use1516- Use when the user needs help with Test Fixing.17- When integrations for this domain are available and the task matches the workflows below.1819## When NOT to Use2021- When the task is unrelated to Test Fixing or covered by a more specific skill.22- When required integrations or credentials are unavailable.2324## Expected Outcome2526- Correct use of domain tools with verified results (not fabricated).27- Clear summary of actions taken, data returned, and recommended next steps.28- Errors and missing permissions reported explicitly.2930## Inputs to Gather3132- User goal, constraints, and any identifiers (URLs, IDs, project keys).33- Available tool sets and connection status.34- Relevant context from related systems before destructive writes.3536## Workflow37381. Confirm the request maps to Test Fixing and required tools are available.392. Gather identifiers and scope (project, channel, repo, date range, etc.).403. Follow the domain guidance below; prefer list/search before get/update when applicable.414. Execute tool calls using schemas from the integration; never invent tool output.425. Summarize results and offer logical follow-ups.4344# Test Fixing4546Systematically identify and fix all failing tests using smart grouping strategies.4748## When to Use4950- Explicitly asks to fix tests ("fix these tests", "make tests pass")51- Reports test failures ("tests are failing", "test suite is broken")52- Completes implementation and wants tests passing53- Mentions CI/CD failures due to tests5455## Systematic Approach5657### 1. Initial Test Run5859Run `make test` to identify all failing tests.6061Analyze output for:6263- Total number of failures64- Error types and patterns65- Affected modules/files6667### 2. Smart Error Grouping6869Group similar failures by:7071- **Error type**: ImportError, AttributeError, AssertionError, etc.72- **Module/file**: Same file causing multiple test failure73- **Root cause**: Missing dependencies, API changes, refactoring impacts7475Prioritize groups by:7677- Number of affected tests (highest impact first)78- Dependency order (fix infrastructure before functionality)7980### 3. Systematic Fixing Process8182For each group (starting with highest impact):83841. **Identify root cause**8586 - Read relevant code87 - Check recent changes with `git diff`88 - Understand the error pattern89902. **Implement fix**9192 - Use Edit tool for code changes93 - Follow project conventions (see CLAUDE.md)94 - Make minimal, focused changes95963. **Verify fix**9798 - Run subset of tests for this group99 - Use pytest markers or file patterns:100 ```bash101 uv run pytest tests/path/to/test_file.py -v102 uv run pytest -k "pattern" -v103 ```104 - Ensure group passes before moving on1051064. **Move to next group**107108### 4. Fix Order Strategy109110**Infrastructure first:**111112- Import errors113- Missing dependencies114- Configuration issues115116**Then API changes:**117118- Function signature changes119- Module reorganization120- Renamed variables/functions121122**Finally, logic issues:**123124- Assertion failures125- Business logic bugs126- Edge case handling127128### 5. Final Verification129130After all groups fixed:131132- Run complete test suite: `make test`133- Verify no regressions134- Check test coverage remains intact135136## Best Practices137138- Fix one group at a time139- Run focused tests after each fix140- Use `git diff` to understand recent changes141- Look for patterns in failures142- Don't move to next group until current passes143- Keep changes minimal and focused144145## Example Workflow146147User: "The tests are failing after my refactor"1481491. Run `make test` → 15 failures identified1502. Group errors:151 - 8 ImportErrors (module renamed)152 - 5 AttributeErrors (function signature changed)153 - 2 AssertionErrors (logic bugs)1543. Fix ImportErrors first → Run subset → Verify1554. Fix AttributeErrors → Run subset → Verify1565. Fix AssertionErrors → Run subset → Verify1576. Run full suite → All pass ✓158159## Tool Availability Rules160161| Access | Behavior |162|--------|----------|163| Full tool access | Execute workflows, verify outputs, report errors. |164| Read-only | Inspect and plan; provide exact commands or dispatch request for writes. |165| No integration | State limitation; do not fabricate API results. |166167### Related tool sets168169- `github`170- `vscode`171172173174## Review / Decision / Execution Criteria175176- Prefer smallest safe change; confirm destructive actions with the user.177- Use evidence from tool responses; cite IDs and links when present.178- Match integration-specific conventions (JQL, RFC3339, A1 notation, etc.).179180## Output Format181182Report:1831841. What was requested and what was done.1852. Key results (tables or bullets).1863. Errors, blockers, or missing permissions.1874. Suggested next steps.188189## Quality Bar190191- Specific, actionable, and grounded in tool output.192- Concise unless the user asked for detail.193- Respect rate limits, pagination, and API semantics.194195## Safety and Boundaries196197- Do not commit secrets, tokens, or PII into skills or user-visible logs.198- Do not fabricate validation, send, or write confirmations.199- Confirm destructive operations (delete, destroy, mass update) when appropriate.200201## Escalation / Dispatch Rules202203- If the task spans multiple domains, use or suggest related skills via `relationships.skills`.204- If write access is required but unavailable, dispatch or ask the user to enable tools.205206## References207208- Legacy content migrated from `skills/old_skills.json` (`test-fixing`).209- `skills/skill.instruction.md`, `skills/meta.instructions.md`