{"slug":"solo-plan","title":"solo-plan","summary":"Use when \"plan this feature\", \"create implementation plan\", \"write a spec\", \"battle plan\", describing a feature/bug/refactor, or need task breakdown before building. Do NOT use for idea validation (/validate) or execution (/build).","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-07T19:02:20.012543Z","repo":{"url":"https://github.com/fortunto2/solo-factory","stars":18,"forks":3,"license":"MIT","updatedAt":"2026-09-14T16:23:17Z"},"bodyHtml":"<hr>\n<h2>name: solo-plan\ndescription: Use when \"plan this feature\", \"create implementation plan\", \"write a spec\", \"battle plan\", describing a feature/bug/refactor, or need task breakdown before building. Do NOT use for idea validation (/validate) or execution (/build).\nlicense: MIT\nmetadata:\nauthor: fortunto2\nversion: \"2.3.0\"\nopenclaw:\nemoji: \"\uD83D\uDCCB\"\nallowed-tools: Read, Grep, Bash, Glob, Write, Edit, AskUserQuestion, mcp__solograph__session_search, mcp__solograph__project_code_search, mcp__solograph__codegraph_query, mcp__solograph__codegraph_explain, mcp__solograph__codegraph_repomap, mcp__solograph__kb_search, mcp__searxng__web_search, mcp__context7__resolve-library-id, mcp__context7__query-docs\nargument-hint: \"</h2>\n<h1>/plan</h1>\n<p>This skill is self-contained — follow the steps below instead of delegating to external planning skills (superpowers, etc.).</p>\n<p>Research the codebase and create a spec + phased implementation plan. Zero interactive questions — explores the code instead.</p>\n<h2>When to use</h2>\n<p>Creates a track for any feature, bug fix, or refactor with a concrete, file-level implementation plan. Works with or without <code>/setup</code>.</p>\n<h2>MCP Tools (use if available)</h2>\n<ul>\n<li><code>session_search(query)</code> — find similar past work in Claude Code chat history</li>\n<li><code>project_code_search(query, project)</code> — find reusable code across projects</li>\n<li><code>codegraph_query(query)</code> — check dependencies of affected files</li>\n<li><code>codegraph_explain(project)</code> — architecture overview: stack, languages, directory layers, key patterns, top dependencies, hub files</li>\n<li><code>kb_search(query)</code> — search knowledge base for relevant methodology</li>\n</ul>\n<p>If MCP tools are not available, fall back to Glob + Grep + Read.</p>\n<h2>Steps</h2>\n<ol>\n<li><p><strong>Parse task description</strong> from <code>$ARGUMENTS</code>.</p>\n<ul>\n<li>If empty, ask via AskUserQuestion: \"What feature, bug, or refactor do you want to plan?\"</li>\n<li>This is the ONE question maximum.</li>\n</ul>\n</li>\n<li><p><strong>Detect context</strong> — determine where plan files should be stored:</p>\n<p><strong>Project context</strong> (normal project with code):</p>\n<ul>\n<li>Detected by: <code>package.json</code>, <code>pyproject.toml</code>, <code>Cargo.toml</code>, <code>*.xcodeproj</code>, or <code>build.gradle.kts</code> exists in working directory</li>\n<li>Plan path: <code>docs/plan/{trackId}/</code></li>\n</ul>\n<p><strong>Knowledge base context</strong> (documentation-centric project):</p>\n<ul>\n<li>Detected by: NO package manifest found, BUT directories like <code>docs/</code>, <code>notes/</code>, or structured numbered directories exist</li>\n<li>Plan path: <code>docs/plan/{shortname}/</code></li>\n<li>Note: the shortname is derived from the task (kebab-case, no date suffix for the directory)</li>\n</ul>\n<p>Set <code>$PLAN_ROOT</code> based on detected context. All subsequent file paths use <code>$PLAN_ROOT</code>.</p>\n</li>\n<li><p><strong>Load project context</strong> (parallel reads):</p>\n<ul>\n<li><code>CLAUDE.md</code> — architecture, constraints, Do/Don't</li>\n<li><code>docs/prd.md</code> — what the product does (if exists)</li>\n<li><code>docs/workflow.md</code> — TDD policy, commit strategy (if exists)</li>\n<li><code>package.json</code> or <code>pyproject.toml</code> — stack, versions, deps</li>\n</ul>\n</li>\n<li><p><strong>Auto-classify track type</strong> from keywords in task description:</p>\n<ul>\n<li>Contains \"fix\", \"bug\", \"broken\", \"error\", \"crash\" → <code>bug</code></li>\n<li>Contains \"refactor\", \"cleanup\", \"reorganize\", \"migrate\" → <code>refactor</code></li>\n<li>Contains \"update\", \"upgrade\", \"bump\" → <code>chore</code></li>\n<li>Default → <code>feature</code></li>\n</ul>\n</li>\n<li><p><strong>Research phase</strong> — explore the codebase to understand what needs to change:</p>\n<ol type=\"a\">\n<li><p><strong>Get architecture overview</strong> (if MCP available — do this FIRST):</p>\n<pre><code>codegraph_explain(project=\"{project name from CLAUDE.md or directory name}\")\n</code></pre>\n<p>Gives you: stack, languages, directory layers, key patterns, top dependencies, hub files.</p>\n</li>\n<li><p><strong>Get RepoMap</strong> (if MCP available):</p>\n<pre><code>codegraph_repomap(project=\"{project name from CLAUDE.md or directory name}\")\n</code></pre>\n<p>Gives you a YAML map of the most important files and their exported symbols (classes/functions).</p>\n</li>\n<li><p><strong>Find relevant files</strong> — Glob + Grep for patterns related to the task:</p>\n<ul>\n<li>Search for keywords from the task description</li>\n<li>Look at directory structure to understand architecture</li>\n<li>Identify files that will need modification</li>\n</ul>\n</li>\n<li><p><strong>Precedent retrieval</strong> (context graph pattern — search past solutions BEFORE planning):</p>\n<ul>\n<li>Search past sessions (if MCP available):\n<pre><code>session_search(query=\"{task description keywords}\")\n</code></pre>\nLook for: how similar tasks were solved, what went wrong, what patterns worked.</li>\n<li>Search KB for relevant methodology:\n<pre><code>kb_search(query=\"{task type}: {keywords}\")\n</code></pre>\nCheck for: harness patterns, architectural constraints, quality scores.</li>\n</ul>\n</li>\n<li><p><strong>Search code across projects</strong> (if MCP available):</p>\n<pre><code>project_code_search(query=\"{relevant pattern}\")\n</code></pre>\n</li>\n<li><p><strong>Check dependencies</strong> of affected files (if MCP available):</p>\n<pre><code>codegraph_query(query=\"MATCH (f:File {path: '{file}'})-[:IMPORTS]-&gt;(dep) RETURN dep.path\")\n</code></pre>\n</li>\n<li><p><strong>Read existing tests</strong> in the affected area — understand testing patterns used.</p>\n</li>\n<li><p><strong>Read CLAUDE.md</strong> architecture constraints — understand boundaries and conventions.</p>\n<ul>\n<li>Check for harness section: module boundaries, data validation rules, lint configs.</li>\n<li>Read <code>docs/ARCHITECTURE.md</code> and <code>docs/QUALITY_SCORE.md</code> if they exist.</li>\n</ul>\n</li>\n<li><p><strong>Detect deploy infrastructure</strong> — search for deploy scripts/configs to include deploy phase in plan:</p>\n<pre><code>find . -maxdepth 3 \\( -name 'deploy.sh' -o -name 'Dockerfile' -o -name 'docker-compose.yml' -o -name 'wrangler.toml' -o -name 'sst.config.ts' \\) -type f 2&gt;/dev/null\n</code></pre>\n<p>If found, read them to understand deploy targets. Include a deploy phase in the plan with concrete commands.</p>\n</li>\n</ol>\n</li>\n<li><p><strong>Detect overlapping plans</strong> — before creating a new track, check for existing plans that cover similar scope:</p>\n<pre><code>ls docs/plan/*/plan.md docs/plan/*/spec.md 2&gt;/dev/null\n</code></pre>\n<p>For each existing plan found:</p>\n<ul>\n<li>Read its <code>spec.md</code> Summary and Acceptance Criteria</li>\n<li>Compare scope with the new task description</li>\n<li>Check if tasks overlap (&gt;50% of files or acceptance criteria in common)</li>\n</ul>\n<p><strong>If overlap detected:</strong></p>\n<ul>\n<li>If existing plan is incomplete (<code>[ ]</code> tasks remain): recommend extending it instead of creating a new track. Show the user: \"Existing track <code>{trackId}</code> covers similar scope (). Extend it or create a separate track?\"</li>\n<li>If existing plan is complete (<code>[x]</code> all tasks): proceed with new track but reference the prior track in spec.md Dependencies</li>\n<li>If multiple existing plans overlap with each other: recommend consolidating them into one track before proceeding</li>\n</ul>\n<p><strong>If no overlap:</strong> proceed normally.</p>\n</li>\n<li><p><strong>Generate track ID:</strong></p>\n<ul>\n<li>Extract a short name (2-3 words, kebab-case) from task description.</li>\n<li>Format: <code>{shortname}_{YYYYMMDD}</code> (e.g., <code>user-auth_20260209</code>).</li>\n</ul>\n</li>\n<li><p><strong>Create track directory:</strong></p>\n<pre><code>mkdir -p $PLAN_ROOT\n</code></pre>\n<ul>\n<li>Project context: <code>docs/plan/{trackId}/</code></li>\n<li>KB context: <code>docs/plan/{shortname}/</code></li>\n</ul>\n</li>\n<li><p><strong>Generate <code>$PLAN_ROOT/spec.md</code>:</strong>\nBased on research findings, NOT generic questions.</p>\n<pre><code># Specification: {Title}\n\n**Track ID:** {trackId}\n**Type:** {Feature|Bug|Refactor|Chore}\n**Created:** {YYYY-MM-DD}\n**Status:** Draft\n\n## Summary\n{1-2 paragraph description based on research}\n\n## Acceptance Criteria\n- [ ] {concrete, testable criterion}\n- [ ] {concrete, testable criterion}\n{3-8 criteria based on research findings}\n\n## Dependencies\n- {external deps, packages, other tracks}\n\n## Out of Scope\n- {what this track does NOT cover}\n\n## Technical Notes\n- {architecture decisions from research}\n- {relevant patterns found in codebase}\n- {reusable code from other projects}\n</code></pre>\n</li>\n<li><p><strong>Generate <code>$PLAN_ROOT/plan.md</code>:</strong>\nConcrete, file-level plan from research. Keep it tight: 2-4 phases, 5-15 tasks total.</p>\n<p><strong>Critical format rules</strong> (parsed by <code>/build</code>):</p>\n<ul>\n<li>Phase headers: <code>## Phase N: Name</code></li>\n<li>Tasks: <code>- [ ] Task N.Y: Description</code> (with period or detailed text)</li>\n<li>Subtasks: indented <code>  - [ ] Subtask description</code></li>\n<li>All tasks use <code>[ ]</code> (unchecked), <code>[~]</code> (in progress), <code>[x]</code> (done)</li>\n</ul>\n<pre><code># Implementation Plan: {Title}\n\n**Track ID:** {trackId}\n**Spec:** [spec.md](./spec.md)\n**Created:** {YYYY-MM-DD}\n**Status:** [ ] Not Started\n\n## Overview\n{1-2 sentences on approach}\n\n## Phase 1: {Name}\n{brief description of phase goal}\n\n### Tasks\n- [ ] Task 1.1: {description with concrete file paths}\n- [ ] Task 1.2: {description}\n\n### Verification\n- [ ] {what to check after this phase}\n\n## Phase 2: {Name}\n### Tasks\n- [ ] Task 2.1: {description}\n- [ ] Task 2.2: {description}\n\n### Verification\n- [ ] {verification steps}\n\n{2-4 phases total}\n\n## Phase {N-1}: Deploy (if deploy infrastructure exists)\n_Include this phase ONLY if the project has deploy scripts/configs (deploy.sh, Dockerfile, docker-compose.yml, wrangler.toml, sst.config.ts, vercel.json). Skip if no deploy infra found._\n\n### Tasks\n- [ ] Task {N-1}.1: {concrete deploy step — e.g. \"Run python/deploy.sh to push Docker image to VPS\", \"wrangler deploy\", etc.}\n- [ ] Task {N-1}.2: Verify deployment — health check, logs, HTTP status\n\n### Verification\n- [ ] Service is live and healthy\n- [ ] No runtime errors in production logs\n\n## Phase {N}: Docs &amp; Cleanup\n### Tasks\n- [ ] Task {N}.1: Update CLAUDE.md with any new commands, architecture changes, or key files\n- [ ] Task {N}.2: Update README.md if public API or setup steps changed\n- [ ] Task {N}.3: Remove dead code — unused imports, orphaned files, stale exports\n\n### Verification\n- [ ] CLAUDE.md reflects current project state\n- [ ] Linter clean, tests pass\n\n## Final Verification\n- [ ] All acceptance criteria from spec met\n- [ ] Tests pass\n- [ ] Linter clean\n- [ ] Build succeeds\n- [ ] Documentation up to date\n\n## Context Handoff\n_Summary for /build to load at session start — keeps context compact._\n\n### Session Intent\n{1 sentence: what this track accomplishes}\n\n### Key Files\n{list of files that will be modified, from research}\n\n### Decisions Made\n{key architecture decisions from research phase — why X over Y}\n\n### Risks\n{known risks or edge cases discovered during research}\n\n---\n_Generated by /plan. Tasks marked [~] in progress and [x] complete by /build._\n</code></pre>\n<p><strong>Plan quality rules:</strong></p>\n<ul>\n<li>Every task mentions specific file paths (from research).</li>\n<li>Tasks are atomic — one commit each.</li>\n<li>Phases are independently verifiable.</li>\n<li>Total: 5-15 tasks (not 70).</li>\n<li><strong>Last phase is always \"Docs &amp; Cleanup\"</strong>.</li>\n<li><strong>Criteria-task coverage:</strong> every acceptance criterion in spec.md MUST map to at least one task in plan.md. After generating both files, cross-check: list each criterion and verify a task addresses it. If a criterion has no corresponding task — add one. Uncovered criteria are the #1 cause of \"plan complete but spec not met\" failures.</li>\n<li><strong>Harness-aware:</strong> if the task introduces new patterns, include a task to update lint rules or CLAUDE.md constraints. If it touches module boundaries, include verification of dependency direction. Think: \"what harness change prevents future agents from breaking this?\"</li>\n</ul>\n</li>\n<li><p><strong>Create progress task list</strong> for pipeline visibility:</p>\n</li>\n</ol>\n<p>After writing plan.md, create TaskCreate entries so progress is trackable:</p>\n<ul>\n<li>One task per phase: \"Phase 1: \" with task list as description.</li>\n<li>This gives the user and pipeline real-time visibility into what's planned.</li>\n<li><code>/build</code> will update these tasks as it works through them.</li>\n</ul>\n<p>If <code>superpowers:writing-plans</code> skill is available, follow its granularity format: bite-sized tasks (2-5 minutes each), complete code in task descriptions, exact file paths, verification steps per task. This enhances the built-in format above.</p>\n<ol start=\"11\">\n<li><strong>Show plan for approval</strong> via AskUserQuestion:\nPresent the spec summary + plan overview. Options:</li>\n</ol>\n<ul>\n<li>\"Approve and start\" — ready for <code>/build</code></li>\n<li>\"Edit plan\" — user wants to modify before implementing</li>\n<li>\"Cancel\" — discard the track</li>\n</ul>\n<p>If \"Edit plan\": tell user to edit <code>$PLAN_ROOT/plan.md</code> manually, then run <code>/build</code>.</p>\n<h2>Output</h2>\n<pre><code>Track created: {trackId}\n\n  Type:   {Feature|Bug|Refactor|Chore}\n  Phases: {N}\n  Tasks:  {N}\n  Spec:   $PLAN_ROOT/spec.md\n  Plan:   $PLAN_ROOT/plan.md\n\nResearch findings:\n  - {key finding 1}\n  - {key finding 2}\n  - {reusable code found, if any}\n\nNext: /build {trackId}\n</code></pre>\n<h2>Rationalizations Catalog</h2>\n<p>These thoughts mean STOP — you're skipping research:</p>\n<table>\n<thead>\n<tr>\n<th>Thought</th>\n<th>Reality</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\"I know this codebase\"</td>\n<td>You know what you've seen. Search for what you haven't.</td>\n</tr>\n<tr>\n<td>\"The plan is obvious\"</td>\n<td>Obvious plans miss edge cases. Research first.</td>\n</tr>\n<tr>\n<td>\"Let me just start coding\"</td>\n<td>10 minutes of research prevents 2 hours of rework.</td>\n</tr>\n<tr>\n<td>\"This is a small feature\"</td>\n<td>Small features touch many files. Map the blast radius.</td>\n</tr>\n<tr>\n<td>\"I'll figure it out as I go\"</td>\n<td>That's not a plan. Write the file paths first.</td>\n</tr>\n<tr>\n<td>\"70 tasks should cover it\"</td>\n<td>5-15 tasks. If you need more, split into tracks.</td>\n</tr>\n</tbody>\n</table>\n<h2>Compatibility Notes</h2>\n<ul>\n<li>Plan format must match what <code>/build</code> parses: <code>## Phase N:</code>, <code>- [ ] Task N.Y:</code>.</li>\n<li><code>/build</code> reads <code>docs/workflow.md</code> for TDD policy and commit strategy (if exists).</li>\n<li>If <code>docs/workflow.md</code> missing, <code>/build</code> uses sensible defaults (moderate TDD, conventional commits).</li>\n</ul>\n<h2>Common Issues</h2>\n<h3>Plan has too many tasks</h3>\n<p><strong>Cause:</strong> Feature scope too broad or tasks not atomic enough.\n<strong>Fix:</strong> Target 5-15 tasks across 2-4 phases. Split large features into multiple tracks.</p>\n<h3>Context detection wrong (project vs KB)</h3>\n<p><strong>Cause:</strong> Directory has both code manifests and KB-style directories.\n<strong>Fix:</strong> Project context takes priority if <code>package.json</code>/<code>pyproject.toml</code> exists.</p>\n<h3>Research phase finds no relevant code</h3>\n<p><strong>Cause:</strong> New project with minimal codebase or MCP tools unavailable.\n<strong>Fix:</strong> Skill falls back to Glob + Grep. For new projects, the plan will rely more on CLAUDE.md architecture and stack conventions.</p>\n","files":[{"path":"SKILL.md","sizeBytes":14091,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-07T19:03:02.654288Z","sha256":"F42D19BF28BEA0D8D3B7BCF374EC5735DA8CF35260D00B922B90E43053AF52C3","sizeBytes":5760},"review":null,"source":{"repositoryUrl":"https://github.com/fortunto2/solo-factory","path":"skills/plan","license":"MIT","commit":"a26964729df4c21e4ffb011799b9302987dfd9b2","subtreeSha":"5F503D3F24D8207707D8DAC3218E0ED4122910399B1CEE3103FF89DCB30FC8D5","lastSyncedAt":"2026-09-25T07:36:50.677664Z"},"reviewedAt":"2026-09-07T19:04:22.970232Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/fortunto2/solo-factory/tree/main/skills/plan"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install fortunto2-solo-factory@llmmart"},{"target":"git","command":"git clone https://github.com/fortunto2/solo-factory.git"}]}