solve-issuelisted
Install: claude install-skill ypxing/coding-crew
# Solve Issue
Implement a single issue. One issue in, committed code out.
## Blocked output format
When stopping due to a blocker, always output:
```
BLOCKED: <reason>
<verbatim error or dependency name>
```
Do not attempt workarounds. Do not proceed.
## Inputs
The caller provides one of:
- A **file path** — read the issue from that path.
- **Issue content** inline — use it directly.
Two session-wide variables must be set before any step. If they are already set in the current session, use those values. Otherwise establish them now:
```bash
PROJECT_ROOT=$(pwd)
# If .git is a file we are inside a worktree — derive MAIN_ROOT from the common git dir.
# If .git is a directory we are at the main repo root — MAIN_ROOT equals PROJECT_ROOT.
if [ -f "$PROJECT_ROOT/.git" ]; then
_common=$(git -C "$PROJECT_ROOT" rev-parse --git-common-dir)
MAIN_ROOT=$(cd "$_common/.." && pwd)
else
MAIN_ROOT="$PROJECT_ROOT"
fi
```
- **`PROJECT_ROOT`** — where code lives and all commands run.
- **`MAIN_ROOT`** — main checkout; where `.claude/`, `.scratch/`, and gitignored files live.
## Steps
### 0. Pre-flight
Run `git -C "$PROJECT_ROOT" status --short`. If there are modified or staged tracked files not owned by this issue, stop and report blocked: `BLOCKED: dirty worktree — stash or commit unrelated changes first`.
### 1. Understand the issue
**Finding the issue file:** Issues live as local markdown files in `.scratch/`. Read from the path
the caller provides. Do **not** query GitHu