From solopreneur
Orchestrates the full flow from product idea to demo-able MVP: brainstorming, PRD confirmation, template lookup, plan writing, and single-subagent execution. Optimized for time-to-first-demo, skipping TDD and hardening.
How this skill is triggered — by the user, by Claude, or both
Slash command
/solopreneur:mvpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Drives the full new-app / new-product flow with one explicit charter:
Drives the full new-app / new-product flow with one explicit charter:
get to first demo fast. Tests, edge cases, accessibility, i18n, and
refactor passes are deferred — if the user wants those later they invoke
solopreneur:autopilot on the same plan.
This skill is orchestration only — it does NOT reimplement brainstorming
or planning. It chains the right skills in the right order, inserts a
template lookup between brainstorming and plan writing, and runs
execution with a single implementer subagent under the MVP Charter
(rather than via superpowers:executing-plans /
superpowers:subagent-driven-development, which both enforce TDD
discipline that kills demo velocity).
0. Verify dependencies (superpowers + ≥1 *-app-templates)
1. superpowers:brainstorming (clarify needs + classify platform)
2. PRD visual confirmation (render spec via /preview, user-gated)
3. Template lookup (find matching *-app-templates; PRD↔template decision)
4. superpowers:writing-plans (MVP-flavored plan, demo-velocity)
5. Execute the plan (MVP) (single implementer subagent, commit per step)
The single source of truth for the demo-velocity tradeoffs. Step 4 passes
the Plan-writing rules to superpowers:writing-plans; Step 5 passes
the Execution rules and BLOCKED handling to the implementer
subagent. Keep both copies in sync by referencing this section, not by
restating.
PRD visual confirmation (Step 2) is a user gate of the same nature as Step 1's. Both the markdown spec (source of truth) and the confirmed PRD are handed to
writing-plans(Step 4). The Execution rules (Step 5) are unchanged — the PRD is pre-execution direction confirmation; it does not alter the demo-velocity execution discipline.
TODO comments in code, not
plan tasks)TODO comments, in the language's native syntax:
// TODO: handle X for Swift / Kotlin / JS / TS; # TODO: handle X
for Python / Ruby / shell / YAML. Final-report grep uses TODO: so
both forms surface.~/.claude/, sibling repos, global config).First action when dispatched into a fresh worktree (created by
isolation: "worktree"): the auto-created branch is worktree-agent-xxx,
not the target branch. Rename it before doing anything else:
git branch -m {TARGET_BRANCH}
git branch --show-current # confirm output equals {TARGET_BRANCH}
If the rename fails or the verification doesn't match, stop immediately
and report (this is BLOCKED — see handling below). Same pattern as
solopreneur:autopilot's pr-subagent-template.md.
If already in a worktree (orchestrator didn't pass isolation: "worktree"),
skip the rename — assume the caller put you on the right branch.
Commit policy: one commit per plan step.
feat(mvp): <step name>: <one-line outcome>.git branch --show-current
equals {TARGET_BRANCH} and is not main / master. Abort if
mismatch — never push to a branch you didn't start on.git push -u origin {TARGET_BRANCH}
to set upstream. Path A always needs this (fresh branch, no
tracking). Path B may already track origin — try plain git push
first; if it fails with "has no upstream branch", fall back to
git push -u origin {TARGET_BRANCH}.git push.A step is BLOCKED only when an action genuinely cannot proceed: missing credential, broken toolchain, plan step incoherent against current state, external service unreachable. Ambiguity that admits a "simplest path" is not BLOCKED.
The user can run the app / simulator and demo the core demo action captured in Step 1 end-to-end. Stop there. No polishing, no hardening, no nice-to-haves.
Required (check via the available-skills list in the system-reminder):
superpowers:brainstormingsuperpowers:writing-plansCo-packaged in solopreneur (always present alongside this skill —
no runtime check needed): solopreneur:preview (used by Step 2).
Expected (≥1): any skill matching *-app-templates
(e.g. ios-dev:ios-app-templates, ai-engineer:ai-app-templates).
Missing required skill → stop and tell the user what to install.
No *-app-templates → continue with a warning that the plan will be
freeform (no template baseline).
Invoke superpowers:brainstorming via the Skill tool. Follow it fully
— do not short-circuit.
When brainstorming exits, capture:
Confirm explicitly with the user before continuing:
"This is MVP mode — demo-only, no tests, no hardening. Edge cases get
TODO markers. If you want production-grade, abort here and run the
standard superpowers flow or solopreneur:autopilot instead."
Proceed only on explicit confirmation.
Brainstorming produced a committed markdown spec — the source of truth. This step renders it as an interactive visual PRD so the user confirms UI/UX, data shape, flow, and business logic before any template or plan work. For a single-implementer, no-review-loop MVP run, a wrong direction caught here is far cheaper than one caught after execution. This is a deliberate velocity tradeoff: the PRD round is heavier than plain brainstorming, but it de-risks the unsupervised execution that follows.
Inputs: the brainstorming markdown spec (source of truth) plus the Step 1 captures (product description, platforms, core demo action, features vs nice-to-haves).
solopreneur:preview via the Skill tool. Pass the markdown spec
as the source content and explicit PRD rendering instructions: do
not render a markdown wall — present it the most graspable way, and it
MUST cover these four (form follows content otherwise):
/preview's mock-* / mockup recipes)./preview's in-repo commit behavior for this run. At this
point /mvp may be on the product repo's main (Path A — no feature
branch yet, Step 5 creates it) or in an existing feature-branch worktree
(Path B). To keep the defer uniform across both paths — and because
committing to product main is forbidden in the Path A case — instruct
/preview: do not commit the proposal, do not modify
.gitignore. Generate + deploy (or local fallback) only. The PRD dir
physically lands at /preview's resolved in-repo path
(e.g. docs/preview/<date>-<slug>/) but stays uncommitted in the
working tree. Record that path — Step 5 commits it onto the feature
branch./preview's native comment-overlay + revision loop until
the user is satisfied.Carry-forward: the PRD dir path and the (updated, still-uncommitted) markdown spec path, both consumed by Step 5.
Discovery is convention-based, not hardcoded: for each platform
captured in Step 1, look for <plugin>:<platform>-app-templates in the
available-skills list. Examples:
| Platform | Template skill | Status |
|---|---|---|
| iOS app | ios-dev:ios-app-templates | shipping |
| AI backend / LLM API | ai-engineer:ai-app-templates | shipping |
| Android app | android-dev:android-app-templates | planned |
| Web app | web-dev:web-app-templates | planned |
Iterate over the platform list:
*-app-templates skill in the available-skills
list. Not installed → warn user, mark this platform as no-template,
continue to the next platform.PRD ↔ template divergence (decision sub-step). When a candidate template's technical approach diverges from the confirmed PRD (e.g. the PRD specifies an external OpenAI API but the template uses an on-device Foundation Model):
Recovery paths: if the template skill errors, hits a tool restriction, or the user aborts mid-selection, record "no template" for that platform and proceed. Do not silently retry.
Invoke superpowers:writing-plans via the Skill tool. Pass the Step 3
records (per-platform template name + baseline path) as context in the
invocation prompt — writing-plans has no formal baseline parameter,
so list them inline. Also pass the confirmed PRD (its path, and that it
is the visual rendering of the spec) alongside the markdown spec and the
per-platform template records.
Also pass the MVP Charter's Plan-writing rules (see top section)
verbatim to writing-plans so the plan it produces is demo-flavored,
not production-flavored.
If templates were found:
If no templates were found:
Before executing, stop and get explicit user approval of the finalized plan. Do not assume the Step 4 draft is approved.
This is the orchestrator's responsibility — get it wrong and the subagent self-aborts on the branch rename. Two paths:
Path A: orchestrator is on main (no feature branch yet)
feature/mvp-photo-analyze). Confirm it doesn't exist
locally or on origin — both checks matter, because a stale remote
branch with the same name would block git push -u later:
git fetch origin
git rev-parse --verify <name> # must fail (no local)
git ls-remote --exit-code origin refs/heads/<name> # must fail (no remote)
If either succeeds, pick a different name (e.g. append a short suffix).{TARGET_BRANCH} and use isolation: "worktree"
so the Agent tool creates a fresh worktree on an auto-generated
branch; the subagent renames it to {TARGET_BRANCH} as its first
action (see Charter).Path B: orchestrator is already on a feature-branch worktree
{TARGET_BRANCH}. The branch already
exists and may already be checked out here — that's fine because
the subagent runs in the same worktree (no isolation, no
rename).isolation. The Charter's "First action when
dispatched into a fresh worktree" block is skipped.Never pass an existing branch as {TARGET_BRANCH} together with
isolation: "worktree" — the rename would fail (branch already
exists, possibly checked out elsewhere).
The PRD dir and the updated markdown spec sit uncommitted in the working
tree of the checkout where Step 2 ran (Path A: main; Path B: the existing
feature worktree). Step 2 deferred their commit. They must land on
{TARGET_BRANCH}:
isolation: "worktree", fresh worktree on an auto branch):
the PRD/spec files were created in the original main checkout, not
the new worktree — and the worktree does not exist until the Agent tool
creates it at dispatch time, so the orchestrator cannot copy into it
beforehand. Instead, the orchestrator passes the absolute source
paths of the PRD dir + updated markdown spec (in the original main
checkout) in the handoff prompt. The subagent's first action after the
branch rename — before any plan step — is to copy them into its own
worktree (resolved via git rev-parse --show-toplevel) and make a
dedicated docs(mvp): PRD + spec commit that includes them and the
**/comment-overlay.js line /preview normally appends to
.gitignore (deferred from Step 2)..gitignore line included.main dirty with
stale PRD/spec/comment-overlay files, blocking later main-branch work.
After the subagent confirms the docs(mvp): PRD + spec commit is pushed,
the orchestrator restores the original main checkout to clean: delete
the (untracked) PRD dir and git checkout -- <markdown-spec-path> to
discard the uncommitted Step 2 reconcile edits. The authoritative
reconciled copy now lives on {TARGET_BRANCH} and returns to main via
the eventual PR merge. Path B needs no cleanup — the files are already in
the feature worktree where they belong.Dispatch a single implementer subagent via the Agent tool:
subagent_type: general-purpose by default. Single-platform MVPs MAY
use a stack-specific type (ios-dev, ai-engineer, etc.) if the
user prefers that agent's tool surface — but the MVP Charter still
applies and overrides the agent's normal TDD posture. Multi-platform
MVPs stay on general-purpose to avoid agent-per-step churn.isolation: "worktree" only in Path A above. Omit in Path B.prompt: assemble in this order
{TARGET_BRANCH} (resolved in 5a) and
instructions to resolve {WORKTREE_PATH} via
git rev-parse --show-toplevel from the subagent's own cwd at
runtime. Pass the plan file path for cross-reference too.main checkout), plus the instruction that the subagent's first
action after the branch rename is to copy them into its worktree and
make a dedicated docs(mvp): PRD + spec commit — including the
deferred **/comment-overlay.js .gitignore line — before any
plan-step commit. Path B: the files are already in the worktree; same
dedicated first commit, no copy. Without this item the PRD/spec stays
uncommitted or gets folded into the first feature commit, defeating
5a-bis.Do NOT delegate to superpowers:executing-plans or
superpowers:subagent-driven-development — both enforce TDD discipline
and per-task two-stage review, which is the right default for
production work but kills MVP velocity.
Recovery: if the subagent returns BLOCKED (see Charter), surface its report to the user; do not re-dispatch automatically.
Final report from this skill:
List each commit (SHA + step name) and append a "TODO for hardening"
section — a snapshot of TODO: markers left in code at end-of-run. This
becomes the input for a later solopreneur:autopilot pass if the user
decides to harden. Re-grep before the hardening pass starts; the
snapshot will go stale once any commits land.
solopreneur:autopilot for the heavy pipeline, or the standard
superpowers flow for a manual pass. MVP execute leaves the plan and
the TODO: markers as the handoff surface.npx claudepluginhub p/hanamizuki-solopreneur-plugins-solopreneurScopes a minimum viable product by defining the core hypothesis, triaging features by effort/impact, and producing a 2-week sprint plan with success criteria.
Guides users through structured interview to create Product Requirements Documents (PRDs) for apps, features, or projects, outputting markdown PRD and build milestones.
Guides building an MVP using the minimalist entrepreneur approach: manual first, then processized, then productized. Use when ready to build a first product or struggling with scope.