con un clic
bug-fixing
// Test-driven bug fixing workflow. Activates when: fixing bugs, debugging issues, resolving defects, investigating errors, or when user mentions: bug, fix, broken, not working, error, issue, defect, regression.
// Test-driven bug fixing workflow. Activates when: fixing bugs, debugging issues, resolving defects, investigating errors, or when user mentions: bug, fix, broken, not working, error, issue, defect, regression.
MUST USE when creating, updating, or managing AI skills and guidelines. Activates when: creating a new skill, editing existing skills, updating coding guidelines, modifying AI instructions, working with .ai/ directory, or when user mentions: skill, CLAUDE.md, guidelines, AI configuration.
Author a boost.php config file. Covers all five with* methods, when each matters, and what NOT to put in there.
Requests an independent code review from OpenAI Codex CLI, critically evaluates its findings, and applies warranted fixes. Activates when: the user says /codex-review, asks for a Codex review, or wants an external AI review of changes.
Applies PR review feedback with critical evaluation. Activates when: applying review comments, addressing PR feedback, responding to code review, or when user mentions: review feedback, PR comments, apply feedback, address comments, reviewer feedback.
Pre-push / pre-release checklist. Runs Rector, Pint, full test suite, PHPStan, and audits README + `.ai/` docs for staleness. Activate before: pushing to remote, tagging a release, writing release notes, or when user mentions: pre-release, pre-push, release checklist, ship, cut release, release notes.
Implement a FileEmitter for boost-core to emit a custom file (e.g. .mcp.json, .editorconfig) into the host project during boost:sync.
| name | bug-fixing |
| description | Test-driven bug fixing workflow. Activates when: fixing bugs, debugging issues, resolving defects, investigating errors, or when user mentions: bug, fix, broken, not working, error, issue, defect, regression. |
| argument-hint | ["bug description or issue reference"] |
A disciplined approach to fixing bugs: reproduce first, fix second. Write a failing test that captures the bug, then fix the code to make it pass.
Never start by trying to fix the bug. Instead:
Use this skill when:
Before writing any code:
Gather information
Identify the scope
Confirm understanding
This is the critical step. Write a test that:
it('handles edge case with empty input', function () {
// Arrange: Set up the scenario that triggers the bug
$subject = new Subject(input: []);
// Act: Perform the action that fails
$result = $subject->process();
// Assert: What SHOULD happen (currently fails)
expect($result)->toBe('expected outcome');
});
Run the test to confirm it fails:
vendor/bin/pest --filter=handles_edge_case_with_empty_array_input
If the test passes: The bug may not be what we thought. Revisit Phase 1.
If the test fails: Proceed to fixing.
Use a subagent to investigate and fix:
Task: Fix the bug causing [test name] to fail.
Context:
- Test file: tests/RelevantTest.php
- Test method: handles_edge_case_with_empty_array_input
- Current error: [paste error message]
The test reproduces the bug. Find and fix the root cause.
Do NOT modify the test - only fix the production code.
Run the test after each change to verify progress.
Run quality checks based on which files were changed:
backend-quality skill (Tier 1 only: Pint + related tests). PHPStan and the full test suite run at completion — see the backend-quality skill for details.When creating/updating a PR, include a technical description:
### What was the bug?
Description of the root cause with file and line references.
### How was it fixed?
Description of the fix and why it works.
### Test coverage
Added `test_name` to verify the fix and prevent regression.
Don't test general functionality - test the exact scenario that was broken:
// Good - tests the specific bug scenario
it('expands wildcards when data has missing nested keys')
// Bad - too generic
it('expands wildcards')
Test names should describe the scenario and expected outcome:
// Good
it('compiles rules with nested each() calls')
it('handles nullable fields with required children')
it('validates arrays with mixed scalar and object children')
// Bad
it('works')
it('handles arrays')
For bugs that can't be reproduced with tests: