skill-lake-repair
- Repo stars 435
- Author repo nvim
Lake Repair Skill (Direct Execution)
Direct execution skill for automated Lean build repair. Runs lake build, parses errors, and automatically fixes common mechanical errors in an iterative loop.
This skill executes inline without spawning a subagent.
Execution
Step 1: Parse Arguments
Extract flags from command input:
--clean: Runlake cleanbefore building--max-retries N: Maximum fix iterations (default: 3)--dry-run: Preview fixes without applying--module NAME: Build specific module only
clean=false
max_retries=3
dry_run=false
module=""
for arg in "$@"; do
case "$arg" in
--clean) clean=true ;;
--dry-run) dry_run=true ;;
--max-retries=*) max_retries="${arg#*=}" ;;
--module=*) module="${arg#*=}" ;;
esac
done
Step 2: Initial Clean (Optional)
If --clean flag is set:
if [ "$clean" = true ]; then
echo "Running lake clean..."
lake clean
fi
Step 3: Build Loop
Initialize tracking variables:
retry_count=0previous_errors=""(for cycle detection)total_fixes=0
Step 4: Run Build
Attempt to build the project:
if [ -n "$module" ]; then
build_output=$(lake build "$module" 2>&1)
else
build_output=$(lake build 2>&1)
fi
build_exit_code=$?
Step 5: Parse Build Errors
Extract errors and warnings from build output using regex pattern:
Pattern: ^(.+\.lean):(\d+):(\d+): (error|warning): (.+)$
Step 6: Classify Errors
| Error Pattern | Fix Type |
|---|---|
| Missing cases | missing_cases |
| Unused variable | unused_variable |
| Unused import | unused_import |
| All other | UNFIXABLE |
Step 7: Apply Fixes
Missing Cases Fix
Add match cases with sorry placeholders.
Unused Variable Fix
Rename by adding underscore prefix: {name} -> _{name}
Unused Import Fix
Remove the import line (only clean single-import lines).
Step 8: Final Report
After loop exits:
Lake Build Complete
===================
Build succeeded after {retry_count} iterations.
Fixes applied:
- {file}:{line} - {description}
All modules built successfully.
Error Handling
MCP Tool Failure
Fall back to lake build via Bash.
File Read/Write Failure
Skip that particular fix, continue with others.
Parse Failure
Treat as unfixable error.
Safety Measures
Conservative Fixes
- All missing case fixes use
sorryplaceholders - Unused variable fixes only add underscore prefix
- Unused import removal is cautious (single-import lines only)
Cycle Prevention
- Track error signatures between iterations
- Stop if same errors recur
- Hard limit via max_retries (default 3)
- Fluxly category
- Engineering
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @benbrastmckie · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Guided setup
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Unspecified
- Detected file/system behavior
-
- Read-only
- Write / modify
- Shell exec
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. Extract flags from command input: --clean: Run lake clean before building --max-retries N: Maximum fix iterations (default: 3)
If --clean flag is set:
Initialize tracking variables: retrycount=0 previouserrors="" (for cycle detection)
Attempt to build the project:
Extract errors and warnings from build output using regex pattern:
Error Pattern · Fix Type Missing cases · missingcases Unused variable · unusedvariable
# Lake Repair Skill (Direct Execution)
Direct execution skill for automated Lean build repair. Runs `lake build`, parses errors, and automatically fixes common mechanical errors in an iterative loop.
This skill executes inline without spawning a subagent.
## Execution
### Step 1: Parse Arguments
Extract flags from command input:
- `--clean`: Run `lake clean` before building
- `--max-retries N`: Maximum fix iterations (default: 3)
- `--dry-run`: Preview fixes without applying
- `--module NAME`: Build specific module only
```bash
clean=false
max_retries=3
dry_run=false
module=""
for arg in "$@"; do
case "$arg" in
--clean) clean=true ;;
--dry-run) dry_run=true ;;
--max-retries=*) max_retries="${arg#*=}" ;;
--module=*) module="${arg#*=}" ;;
esac
done
```
---
### Step 2: Initial Clean (Optional)
If `--clean` flag is set:
```bash
if [ "$clean" = true ]; then
echo "Running lake clean..."
lake clean
fi
```
---
### Step 3: Build Loop
Initialize tracking variables:
- `retry_count=0`
- `previous_errors=""` (for cycle detection)
- `total_fixes=0`
---
### Step 4: Run Build
Attempt to build the project:
```bash
if [ -n "$module" ]; then
build_output=$(lake build "$module" 2>&1)
else
build_output=$(lake build 2>&1)
fi
build_exit_code=$?
```
---
### Step 5: Parse Build Errors
Extract errors and warnings from build output using regex pattern:
```
Pattern: ^(.+\.lean):(\d+):(\d+): (error|warning): (.+)$
```
---
### Step 6: Classify Errors
| Error Pattern | Fix Type |
|---------------|----------|
| Missing cases | missing_cases |
| Unused variable | unused_variable |
| Unused import | unused_import |
| All other | UNFIXABLE |
---
### Step 7: Apply Fixes
#### Missing Cases Fix
Add match cases with sorry placeholders.
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> Execution → Step 1: Parse Arguments → Step 2: Initial Clean (Optional) → Step 3: Build Loop → Step 4: Run Build → Step 5: Parse Build Errors
terms -> Direct execution skill for automated Lean build repair. · This skill executes inline without spawning a subagent. · Build succeeded after {retrycount} iterations. · All modules built successfully.
files/cmd -> lake build · --clean · lake clean · --max-retries N · --dry-run · --module NAME · retrycount=0 · previouserrors=""
body sha256 -> db8ba0af0a9a
Decide Fit First
Design Intent
How To Use It
Boundaries And Review