mirror of
https://github.com/duthaho/claudekit.git
synced 2026-07-20 06:20:59 +03:00
Add comprehensive skills and documentation for various technologies
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
# /fix - Bug Fix Workflow
|
||||
|
||||
## Purpose
|
||||
|
||||
Smart debugging and bug fixing workflow that analyzes errors, identifies root causes, implements fixes, and adds regression tests.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/fix [error message, bug description, or issue reference]
|
||||
```
|
||||
|
||||
## Arguments
|
||||
|
||||
- `$ARGUMENTS`: Error message, stack trace, bug description, or issue number
|
||||
|
||||
---
|
||||
|
||||
Analyze and fix the following issue: **$ARGUMENTS**
|
||||
|
||||
## Workflow
|
||||
|
||||
### Phase 1: Error Analysis
|
||||
|
||||
1. **Parse Error Information**
|
||||
- Extract error type and message
|
||||
- Parse stack trace if available
|
||||
- Identify the failing location
|
||||
|
||||
2. **Gather Context**
|
||||
- When does this error occur?
|
||||
- What triggers it?
|
||||
- Is it reproducible?
|
||||
- When did it start happening?
|
||||
|
||||
3. **Check for Known Patterns**
|
||||
- Common error patterns
|
||||
- Similar issues in codebase
|
||||
- Recent changes that might have caused it
|
||||
|
||||
### Phase 2: Root Cause Investigation
|
||||
|
||||
1. **Trace Execution**
|
||||
- Follow the code path to the error
|
||||
- Identify state at each step
|
||||
- Find where expectations diverge
|
||||
|
||||
2. **Form Hypotheses**
|
||||
- List possible causes ranked by likelihood
|
||||
- Identify minimal tests to validate each
|
||||
|
||||
3. **Validate Hypothesis**
|
||||
- Test the most likely cause first
|
||||
- Confirm root cause before fixing
|
||||
- Don't fix symptoms only
|
||||
|
||||
### Phase 3: Search Related Code
|
||||
|
||||
1. **Find Similar Code**
|
||||
- Search for similar patterns
|
||||
- Check if same bug exists elsewhere
|
||||
- Identify shared code that might be affected
|
||||
|
||||
2. **Review Recent Changes**
|
||||
```bash
|
||||
git log --oneline -20
|
||||
git blame [file]
|
||||
```
|
||||
|
||||
### Phase 4: Implement Fix
|
||||
|
||||
1. **Develop Minimal Fix**
|
||||
- Fix the root cause, not symptoms
|
||||
- Keep changes minimal and focused
|
||||
- Consider edge cases
|
||||
|
||||
2. **Add Defensive Code** (if appropriate)
|
||||
- Input validation
|
||||
- Null checks
|
||||
- Error handling
|
||||
|
||||
3. **Update Related Code** (if needed)
|
||||
- Fix same issue in similar code
|
||||
- Update shared utilities
|
||||
|
||||
### Phase 5: Verification
|
||||
|
||||
1. **Test the Fix**
|
||||
- Verify original error is resolved
|
||||
- Check related functionality
|
||||
- Run existing test suite
|
||||
|
||||
2. **Add Regression Test**
|
||||
- Write test that would have caught this bug
|
||||
- Include edge cases discovered
|
||||
- Ensure test fails without fix
|
||||
|
||||
3. **Run Full Test Suite**
|
||||
```bash
|
||||
# Python
|
||||
pytest -v
|
||||
|
||||
# TypeScript
|
||||
pnpm test
|
||||
```
|
||||
|
||||
### Phase 6: Documentation
|
||||
|
||||
1. **Document the Fix**
|
||||
- What was the issue
|
||||
- What caused it
|
||||
- How it was fixed
|
||||
|
||||
2. **Update Comments** (if needed)
|
||||
- Add clarifying comments
|
||||
- Document non-obvious behavior
|
||||
|
||||
## Output
|
||||
|
||||
### Bug Fix Summary
|
||||
|
||||
```markdown
|
||||
## Bug Fix Complete
|
||||
|
||||
### Issue
|
||||
[Original error/bug description]
|
||||
|
||||
### Root Cause
|
||||
[Explanation of what caused the bug]
|
||||
|
||||
### Location
|
||||
`path/to/file.ts:42` - [function/method name]
|
||||
|
||||
### Fix Applied
|
||||
|
||||
**Before:**
|
||||
```[language]
|
||||
// Problematic code
|
||||
```
|
||||
|
||||
**After:**
|
||||
```[language]
|
||||
// Fixed code
|
||||
```
|
||||
|
||||
### Explanation
|
||||
[Why this fix resolves the issue]
|
||||
|
||||
### Regression Test Added
|
||||
`path/to/test.ts` - `test_[scenario]`
|
||||
|
||||
### Verification
|
||||
- [x] Original error no longer occurs
|
||||
- [x] Existing tests pass
|
||||
- [x] New regression test passes
|
||||
- [x] No new issues introduced
|
||||
|
||||
### Related Areas Checked
|
||||
- [x] `path/to/similar.ts` - No similar issue
|
||||
|
||||
### Commands to Verify
|
||||
```bash
|
||||
pytest tests/test_file.py -v
|
||||
# or
|
||||
pnpm test path/to/file.test.ts
|
||||
```
|
||||
```
|
||||
|
||||
## Common Fix Patterns
|
||||
|
||||
### Null/Undefined Access
|
||||
|
||||
```typescript
|
||||
// Before
|
||||
const name = user.profile.name;
|
||||
|
||||
// After
|
||||
const name = user?.profile?.name ?? 'Unknown';
|
||||
```
|
||||
|
||||
### Missing Error Handling
|
||||
|
||||
```python
|
||||
# Before
|
||||
data = json.loads(response.text)
|
||||
|
||||
# After
|
||||
try:
|
||||
data = json.loads(response.text)
|
||||
except json.JSONDecodeError as e:
|
||||
logger.error(f"Invalid JSON response: {e}")
|
||||
raise InvalidResponseError("Failed to parse response")
|
||||
```
|
||||
|
||||
### Race Condition
|
||||
|
||||
```typescript
|
||||
// Before
|
||||
const data = await fetchData();
|
||||
setState(data); // May be unmounted
|
||||
|
||||
// After
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
fetchData().then(data => {
|
||||
if (!cancelled) setState(data);
|
||||
});
|
||||
return () => { cancelled = true; };
|
||||
}, []);
|
||||
```
|
||||
|
||||
### Off-by-One Error
|
||||
|
||||
```python
|
||||
# Before
|
||||
for i in range(len(items) + 1): # IndexError
|
||||
process(items[i])
|
||||
|
||||
# After
|
||||
for i in range(len(items)):
|
||||
process(items[i])
|
||||
# or
|
||||
for item in items:
|
||||
process(item)
|
||||
```
|
||||
|
||||
## Example
|
||||
|
||||
**Input**: `/fix TypeError: Cannot read property 'email' of undefined in UserService.ts:45`
|
||||
|
||||
**Output**:
|
||||
1. Analysis: User object is undefined when accessed
|
||||
2. Root cause: async fetch didn't await, user not loaded yet
|
||||
3. Fix: Add null check and proper async handling
|
||||
4. Regression test: Test for case when user is not loaded
|
||||
|
||||
<!-- CUSTOMIZATION POINT -->
|
||||
## Variations
|
||||
|
||||
Modify behavior via CLAUDE.md:
|
||||
- Set required test coverage for fixes
|
||||
- Define severity levels for bugs
|
||||
- Configure error reporting format
|
||||
- Set required review process
|
||||
Reference in New Issue
Block a user