Automated code quality assistant that formats code, fixes syntax/type errors, detects bugs, and validates fixes across Python, JavaScript, TypeScript, Java, Go, and Rust
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: code-fix-assistant
description: Automated code quality assistant that formats code, fixes syntax/type errors, detects bugs, and validates fixes across Python, JavaScript, TypeScript, Java, Go, and Rust
---
# Code Fix Assistant
Automated code quality assistant providing a complete fix pipeline: formatting → syntax/type fixing → bug detection → validation, supporting multiple programming languages.
## Capabilities
- **Code Formatting**: Automatically apply standard code style and formatting rules
- Python: Black, autopep8, isort
- JavaScript/TypeScript: Prettier, ESLint
- Java: Google Java Format
- Go: gofmt, goimports
- Rust: rustfmt
- **Syntax/Type Error Fixing**: Detect and fix common syntax and type issues
- Missing semicolons, unmatched brackets
- Import/dependency issues
- Type errors (TypeScript, Java, Rust)
- Unused variables and imports
- **Bug Detection & Fixing**: Static analysis and intelligent fixes
- Null pointer/null reference issues
- Array out of bounds
- Resource leaks (files, connections)
- Logic errors (incorrect conditions)
- Dead code detection
- **Fix Validation**: Automatically validate fix effectiveness
- Run linter checks
- Syntax validation
- Generate fix reports
- Compare before/after differences
## Input Requirements
**Required Inputs**:
- `file_path`: Path to code file to fix
- `language`: Programming language (python, javascript, typescript, java, go, rust)
- `fix_types`: List of fix types (optional, defaults to all)
- `format`: Code formatting
- `syntax`: Syntax/type fixing
- `bugs`: Bug detection and fixing
- `validate`: Fix validation
**Optional Inputs**:
- `config`: Custom configuration (e.g., ESLint rules, Black options)
- `severity_threshold`: Severity threshold (error, warning, info)
- `auto_apply`: Whether to auto-apply fixes (default false, report only)
**Input Format**:
```json
{
"file_path": "src/main.py",
"language": "python",
"fix_types": ["format", "syntax", "bugs", "validate"],
"auto_apply": true,
"severity_threshold": "warning"
}
```
## Output Formats
**Fix Report** (JSON format):
```json
{
"file": "src/main.py",
"language": "python",
"fixes_applied": {
"format": { "changes": 15, "status": "success" },
"syntax": { "issues_found": 3, "issues_fixed": 3 },
"bugs": { "issues_found": 2, "issues_fixed": 1, "unfixable": 1 },
"validation": { "linter_passed": true, "syntax_valid": true }
},
"issues": [
{
"type": "syntax",
"severity": "error",
"line": 42,
"message": "Undefined variable 'results'",
"fix": "Added variable initialization",
"status": "fixed"
},
{
"type": "bug",
"severity": "warning",
"line": 58,
"message": "Potential null pointer dereference",
"fix": "Added null check",
"status": "fixed"
}
],
"diff": "--- original\n+++ fixed\n@@ -42,3 +42,4 @@\n+results = []\n",
"summary": "Applied 15 formatting changes, fixed 3 syntax errors, fixed 1/2 bugs, validation passed"
}
```
**Fixed Code File** (if `auto_apply: true`)
## How to Use
**Basic Usage**:
```
@code-fix-assistant
Fix formatting and syntax issues in this Python file: src/main.py
```
**Complete Fix Pipeline**:
```
@code-fix-assistant
Run complete fix pipeline on src/app.ts:
1. Format code
2. Fix TypeScript type errors
3. Detect and fix potential bugs
4. Validate fix results
```
**Batch Fixing**:
```
@code-fix-assistant
Fix code quality issues in all Python files under src/ directory
```
**Check Only (No Auto-Fix)**:
```
@code-fix-assistant
Check code issues in main.go and generate report, but don't auto-fix
```
## Scripts
- `code_fixer.py`: Main fix engine coordinating all fix steps
- `formatters.py`: Code formatting module (multi-language support)
- `syntax_checker.py`: Syntax and type error detection & fixing
- `bug_detector.py`: Static analysis and bug detection
- `validator.py`: Fix validation and report generation
- `language_config.py`: Language-specific config and tool mapping
## Best Practices
1. **Incremental Fixing**: Recommended order: format → syntax → bugs
2. **Version Control**: Commit code before fixing for easy rollback
3. **Test Validation**: Run test suites after fixing to ensure no functionality breakage
4. **Review Fixes**: For critical code, generate report and manually review before applying
5. **Config Files**: Use project-level configs (.prettierrc, .black.toml) for consistency
6. **Batch Fixing**: For large projects, fix incrementally to avoid massive changesets
## Limitations
**Tool Dependencies**:
- Requires language-specific linter/formatter tools installed
- Python: `black`, `flake8`, `mypy`
- JavaScript/TypeScript: `prettier`, `eslint`
- Java: `google-java-format`, `checkstyle`
- Go: `gofmt`, `golangci-lint`
- Rust: `rustfmt`, `clippy`
**Fix Capabilities**:
- Can only fix automatable issues (formatting, common syntax errors, simple bugs)
- Complex logic errors require human intervention
- Cannot guarantee 100% fix rate for all issues
- Some bugs require contextual understanding and may be misdiagnosed
**Performance Considerations**:
- Large files (>10,000 lines) may be slow to process
- Batch fixing many files takes time
- Static analysis depth is limited (not full program analysis)
**Security**:
- Will not modify .git/ or config files
- Will not execute code (static analysis only)
- Recommended to test in isolated environment
- Critical production code should be manually reviewed
## Language-Specific Notes
### Python
- Default uses Black format (88-character line width)
- Supports type hint checking (mypy)
- Auto-sorts imports (isort)
### JavaScript/TypeScript
- Follows Prettier default rules
- ESLint rules customizable
- TypeScript type errors auto-fixed (simple types only)
### Java
- Google Java Format style
- Supports null checking and resource leak detection
- Unused imports auto-cleaned
### Go
- Strictly follows gofmt standard
- goimports auto-manages imports
- Supports go vet static checks
### Rust
- rustfmt standard formatting
- Clippy lint suggestion fixes
- Ownership and lifetime errors reported (not auto-fixable)
## Error Handling
**Tools Not Installed**:
- Prompts to install missing tools
- Provides installation commands
- Skips step and continues with other fixes
**Fix Failures**:
- Logs failure reason
- Preserves original file unchanged
- Provides manual fix suggestions
**File Permission Issues**:
- Checks read/write permissions
- Prompts permission errors
- Suggests solutions
## Examples
### Example 1: Python Formatting and Syntax Fixing
**Input**:
```python
# bad_code.py
import os,sys
import json
def process_data(data):
results=[]
for item in data:
if item['value']>0:
results.append(item)
return results
def main( ):
data=[{'value':1},{'value':-1}]
result=process_data(data)
print(result)
```
**After Fix**:
```python
# bad_code.py
import json
import os
import sys
def process_data(data):
results = []
for item in data:
if item["value"] > 0:
results.append(item)
return results
def main():
data = [{"value": 1}, {"value": -1}]
result = process_data(data)
print(result)
```
### Example 2: TypeScript Type Error Fixing
**Input**:
```typescript
// app.ts
function greet(name) {
return "Hello, " + name;
}
let user = { name: "Alice", age: 30 };
console.log(greet(user.name));
console.log(user.address); // Error: Property 'address' does not exist
```
**After Fix**:
```typescript
// app.ts
function greet(name: string): string {
return "Hello, " + name;
}
interface User {
name: string;
age: number;
}
let user: User = { name: "Alice", age: 30 };
console.log(greet(user.name));
// Removed: console.log(user.address); - Property does not exist
```
### Example 3: Go Code Formatting and Lint Fixing
**Input**:
```go
// main.go
package main
import "fmt"
func main(){
var x int=10
if x>5{
fmt.Println("x is greater than 5")
}
}
```
**After Fix**:
```go
// main.go
package main
import "fmt"
func main() {
var x int = 10
if x > 5 {
fmt.Println("x is greater than 5")
}
}
```
No comments yet. Be the first to comment!