← ClaudeAtlas

goal-plan-cleanlisted

Compose a /goal that drives a plan-review-fix loop autonomously. Use when the user says "clean my plan", "goal-plan-clean", "iterate plan review", "auto-review plan", "ган­яй ревью плану", "почисти план", "loop until plan is clean", or wants the model to iterate /lets:review --plan (or /lets:check --plan) with fixes until verdict APPROVED. Composes a paste-ready /goal block — does NOT invoke /goal (UI command). Local test skill, not part of the lets plugin payload.
restarter/lets-workflow · ★ 6 · AI & Automation · score 75
Install: claude install-skill restarter/lets-workflow
# goal-plan-clean Compose a `/goal` that drives the plan review-fix loop: 1. Run `/lets:review --plan` (or `/lets:check --plan`) 2. Read findings from `.lets/reviews/<latest>` 3. Edit the plan file to address each BLOCKER and SUGGESTION 4. Re-run review/check 5. Repeat ≤3 iterations until verdict APPROVED The skill **never invokes `/goal` itself** — Claude Code's `/goal` is a UI command (verified empirically: `Skill(skill: "goal")` returns "goal is a UI command, not a skill. Ask the user to run /goal themselves"). It composes well-structured text and presents for the user to paste. > **IMPORTANT:** If the spec below invokes any deferred tool (e.g. `AskUserQuestion`), you MUST load and call it as specified. Never skip the call, never substitute a default answer of your own — the tool invocation is part of the contract. This is critical. ## Step 1: Resolve plan file ```bash LETS_PROJECT_ROOT=$(git rev-parse --show-toplevel) BRANCH=$(git branch --show-current) SLUG=${BRANCH#feature/} PLAN_PATH="$LETS_PROJECT_ROOT/.lets/plans/${SLUG}.md" test -f "$PLAN_PATH" && echo "found: $PLAN_PATH" || echo "NOT_FOUND" ``` If `NOT_FOUND`: ```bash ls -1 "$LETS_PROJECT_ROOT/.lets/plans/"*.md 2>/dev/null ``` Then AskUserQuestion to pick from existing plans, or exit if none. **Validation** (prevent path traversal): SLUG must match `^[a-zA-Z0-9._-]+$`. If not, fail with "Invalid branch name for plan derivation." ## Step 2: Resolve review tool Parse `args` parameter: - `args` = `"review"`