Devloop Plan
Create actionable plan from topic. Do the work directly.
Bash hygiene: prefer quiet flags to minimize output (npm install --silent, git status -sb, pipe long output through | tail -n 20).
Step 1: Parse Input
Extract topic from $ARGUMENTS. If missing, show usage: /devloop:plan <topic> [--deep|--quick|--from-issue N].
If --from-issue N: Fetch with gh issue view $N --json number,title,body,url. Use title as topic, body as context.
Step 2: Check Existing Plan (Silent)
If .devloop/plan.md exists:
- Count tasks (no file read needed):
done=$(grep -cE "^\s*- \[x\]" .devloop/plan.md 2>/dev/null || echo 0)
total=$(grep -cE "^\s*- \[[ x~!-]\]" .devloop/plan.md 2>/dev/null || echo 0)
- If
done == total and total > 0: auto-archive silently:"${CLAUDE_PLUGIN_ROOT}/scripts/archive-plan.sh" .devloop/plan.md --force
- If incomplete (
done < total): prompt to archive (force) or cancel.
- If no plan file or
total == 0: continue to Step 3.
Step 3: Route by Mode
If --quick: Fast Path
Use for bug fixes with known cause or small additions.
- Create todo list (2-4 tasks).
- If too complex, suggest removing
--quick.
- Implement directly: Read (3-5 files), Write/Edit, test, summarize.
- STOP after completion.
If --deep: Comprehensive Exploration
Use for unclear requirements or architectural changes.
- Define Scope: Detect spike type (Tech decision, New feature, Risk, etc.).
- AskUserQuestion: User selects aspects (Feasibility, Scope, Risk, Dependencies, Approach, Effort, Impact).
- Research: Explore 8-10 files.
- Evaluate: Provide verdict per aspect (Confidence, Blockers, Size, Hours/Days).
- Write Report: Save to
.devloop/spikes/{topic}.md.
- Display Summary: Show direct answer, recommendation, and findings.
- Proceed to Step 4.
Default Mode: Autonomous Planning (Steps 4-7)
Step 4: Context Detection (Silent)
Run ${CLAUDE_PLUGIN_ROOT}/scripts/check-devloop-state.sh. Detect tech stack and patterns from CLAUDE.md.
Step 5: Exploration (Silent)
- Search: Grep keywords, Glob patterns. For symbol-level searches, try
LSP.workspaceSymbol for precise results -- fall back to Grep if LSP errors or is unavailable.
- Read: 3-5 files (Standard) or 8-10 (Deep). For affected files, use
LSP.documentSymbol to map their structure -- fall back to Read + Grep if LSP unavailable.
- Assess: Affected files, dependencies, complexity (XS-XL), and risks.
Token efficiency: Read only what is needed for planning. After exploration, filter your findings to the most relevant 3-5 facts (affected files, key dependencies, main risk). Do NOT carry raw file contents into the plan generation step -- summarize findings instead. This keeps the planning context lean and improves prompt caching on subsequent runs.
Step 6: Plan Generation (Silent)
Create .devloop/plan.md with: Overview, Approach, Considerations, and Phased Tasks.
Tasks: Phased, specific, actionable, testable. (XS: 2-3 tasks, XL: 8-12 tasks).
Model Annotations
Annotate each task with a model hint based on complexity:
[model:haiku] — Simple/mechanical: writing tests from existing patterns, documentation, formatting, linting, config changes, file renames
[model:sonnet] — Complex reasoning: architecture, debugging, multi-file refactoring, security, performance optimization
- No annotation — Inline by orchestrator: single-line edits, running commands, status checks
Parallel Groups
Identify tasks that can execute concurrently and assign [parallel:X] groups:
- Tasks modifying different files with no data dependency → same parallel group
- Within a phase, default to looking for parallelism
- Add
[depends:N.M] for tasks that require prior task output
Step 7: Review Checkpoint
Display Summary: Complexity, Task/Phase count, Key files, and Approach.
AskUserQuestion:
- Save and start: Write plan, begin
/devloop:run.
- Save only: Write plan, display path.
- Show full plan: Review before saving.
Now: Parse input and begin.
1---2name: plan3description: Create a devloop workflow plan with autonomous exploration and task breakdown4---56# Devloop Plan78Create actionable plan from topic. **Do the work directly.**910**Bash hygiene**: prefer quiet flags to minimize output (`npm install --silent`, `git status -sb`, pipe long output through `| tail -n 20`).1112## Step 1: Parse Input13Extract topic from `$ARGUMENTS`. If missing, show usage: `/devloop:plan <topic> [--deep|--quick|--from-issue N]`.14If `--from-issue N`: Fetch with `gh issue view $N --json number,title,body,url`. Use title as topic, body as context.1516## Step 2: Check Existing Plan (Silent)17If `.devloop/plan.md` exists:181. Count tasks (no file read needed):19 ```bash20 done=$(grep -cE "^\s*- \[x\]" .devloop/plan.md 2>/dev/null || echo 0)21 total=$(grep -cE "^\s*- \[[ x~!-]\]" .devloop/plan.md 2>/dev/null || echo 0)22 ```232. If `done == total` and `total > 0`: auto-archive silently:24 ```bash25 "${CLAUDE_PLUGIN_ROOT}/scripts/archive-plan.sh" .devloop/plan.md --force26 ```273. If incomplete (`done < total`): prompt to archive (force) or cancel.284. If no plan file or `total == 0`: continue to Step 3.2930## Step 3: Route by Mode3132### If `--quick`: Fast Path33Use for bug fixes with known cause or small additions.341. Create todo list (2-4 tasks).352. If too complex, suggest removing `--quick`.363. Implement directly: Read (3-5 files), Write/Edit, test, summarize.374. **STOP** after completion.3839### If `--deep`: Comprehensive Exploration40Use for unclear requirements or architectural changes.411. **Define Scope**: Detect spike type (Tech decision, New feature, Risk, etc.). 422. **AskUserQuestion**: User selects aspects (Feasibility, Scope, Risk, Dependencies, Approach, Effort, Impact).433. **Research**: Explore 8-10 files.444. **Evaluate**: Provide verdict per aspect (Confidence, Blockers, Size, Hours/Days).455. **Write Report**: Save to `.devloop/spikes/{topic}.md`.466. **Display Summary**: Show direct answer, recommendation, and findings.477. **Proceed to Step 4**.4849### Default Mode: Autonomous Planning (Steps 4-7)5051## Step 4: Context Detection (Silent)52Run `${CLAUDE_PLUGIN_ROOT}/scripts/check-devloop-state.sh`. Detect tech stack and patterns from `CLAUDE.md`.5354## Step 5: Exploration (Silent)551. **Search**: Grep keywords, Glob patterns. For symbol-level searches, try `LSP.workspaceSymbol` for precise results -- fall back to Grep if LSP errors or is unavailable.562. **Read**: 3-5 files (Standard) or 8-10 (Deep). For affected files, use `LSP.documentSymbol` to map their structure -- fall back to Read + Grep if LSP unavailable.573. **Assess**: Affected files, dependencies, complexity (XS-XL), and risks.5859> **Token efficiency**: Read only what is needed for planning. After exploration, filter your findings to the most relevant 3-5 facts (affected files, key dependencies, main risk). Do NOT carry raw file contents into the plan generation step -- summarize findings instead. This keeps the planning context lean and improves prompt caching on subsequent runs.6061## Step 6: Plan Generation (Silent)62Create `.devloop/plan.md` with: Overview, Approach, Considerations, and Phased Tasks.63**Tasks**: Phased, specific, actionable, testable. (XS: 2-3 tasks, XL: 8-12 tasks).6465### Model Annotations66Annotate each task with a model hint based on complexity:67- `[model:haiku]` — Simple/mechanical: writing tests from existing patterns, documentation, formatting, linting, config changes, file renames68- `[model:sonnet]` — Complex reasoning: architecture, debugging, multi-file refactoring, security, performance optimization69- No annotation — Inline by orchestrator: single-line edits, running commands, status checks7071### Parallel Groups72Identify tasks that can execute concurrently and assign `[parallel:X]` groups:73- Tasks modifying different files with no data dependency → same parallel group74- Within a phase, default to looking for parallelism75- Add `[depends:N.M]` for tasks that require prior task output7677## Step 7: Review Checkpoint78Display Summary: Complexity, Task/Phase count, Key files, and Approach.79**AskUserQuestion**:80- **Save and start**: Write plan, begin `/devloop:run`.81- **Save only**: Write plan, display path.82- **Show full plan**: Review before saving.8384---85**Now**: Parse input and begin.