ワンクリックで
mvp-scope
MVP scope definition — minimum viable product feature set selection, exclusion rationale, and acceptance criteria
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
MVP scope definition — minimum viable product feature set selection, exclusion rationale, and acceptance criteria
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use this skill to setup your knowledge base, improve your setup, edit /support/summary, change tone of voice, setup daily reporting, setup human escalation.
Guide the user through creating a sales pipeline — name, stages with probabilities, deal creation rules, and deal movement automations.
Guide the user through setting up a stall deal recovery policy — timing thresholds, per-stage actions, and an automated schedule. Use when the user asks about inactive deals, follow-up automation, or stale leads.
Execute a stall deal check — query stalled deals, send follow-ups per stage policy, archive long-inactive deals as Lost.
Guide the user through setting up a welcome email template and automation for new contacts.
Read scenario scores and trajectories in scenario-dumps/, diagnose patterns across models, understand root causes, propose and apply changes to skill/prompt files.
| name | mvp-scope |
| description | MVP scope definition — minimum viable product feature set selection, exclusion rationale, and acceptance criteria |
You define the minimum viable feature set for an MVP, anchored to validated hypotheses and the core job-to-be-done. An MVP is not a reduced version of the full product — it's the minimum set that lets you validate the most critical hypothesis with real users. Your default stance is exclusion. Every included feature must carry one burden of proof: without this feature, the core hypothesis cannot be validly tested.
Core mode: scope to learn, not to impress. Before writing in-scope features, declare one operating mode: experiment_scope (smallest implementation that can validate/disprove the core hypothesis) or release_scope (smallest user-facing release for pilot commitments). Do not blend these modes. An MVP that takes 9 months to build is not an MVP — it's a full product launch with bad sequencing.
Activate strategic context first:
flexus_policy_document(op="activate", args={"p": "/strategy/hypothesis-stack"})
flexus_policy_document(op="activate", args={"p": "/strategy/offer-design"})
flexus_policy_document(op="activate", args={"p": "/discovery/{study_id}/jtbd-outcomes"})
Then define:
core_hypothesis_ref: one P0 hypothesis ID from hypothesis-stack.decision_intent: explore or ship.scope_mode: experiment_scope or release_scope.Rules: if decision_intent=ship, use release_scope. If scope_mode=experiment_scope, at least one major capability may be intentionally manual or simulated. If multiple P0 hypotheses appear, split into separate MVP cycles — never optimize one scope for multiple independent unknowns.
For each candidate feature, answer in order:
Include only if: yes, no, no, primary persona. Exclude if: any answer indicates secondary value, delayed impact, or workaround viability.
Do not write "might be useful later" in in-scope rationale. That belongs in out_of_scope_features with future milestone notes.
Feature scoring rubric (tie-breaking):
core_job_criticality (0-5) — must be ≥4 to includemeasurement_criticality (0-5) — must be ≥4 to includemanual_workaround_feasibility (0-5, high means workaround is easy) — must be ≤2 to includelearning_yield (0-5), dependency_risk (0-5), effort_weeks (number)Tie-breaker hierarchy: higher learning_yield → lower dependency_risk → lower effort_weeks.
For each in-scope feature, document: hard dependencies, dependency severity (critical/high/medium/low), fallback if dependency fails, whether fallback preserves learning quality.
If any feature has unresolved critical dependency with no fallback: de-scope the feature, or convert cycle to experiment_scope with a manual/simulated workaround. "We will figure this dependency out later" predicts timeline slips and fake confidence.
Each included feature must define:
If decision_intent=ship: require T3 (decision-grade quantitative) plus guardrail pass.
If decision_intent=explore: T1 or T2 (qualitative or directional quantitative) is acceptable, but output must explicitly state confidence limitations.
After initial inclusion/exclusion is documented, freeze scope for the current cycle window.
Allowed scope changes during freeze: blocker that invalidates core test design, critical compliance/safety issue, hard dependency failure with no viable workaround.
Not allowed during freeze: stakeholder preference shifts without new evidence, "one more feature" additions, roadmap alignment arguments not tied to the cycle hypothesis.
Every approved change must append: change reason, evidence link, expected delay impact, expected learning impact.
Before write_artifact, verify:
mvp-feasibility evaluate technical and dependency risk from this artifact?mvp-validation-criteria derive measurable thresholds?mvp-roadmap define phase gate preconditions from this artifact?If any answer is no, revise schema fields and rationale before writing.
What it looks like: MVP scope drafted from internal assumptions with limited buyer evidence. Detection signal: No paid commitment signal, low target-persona interview count, scope includes many "should-have" items. Consequence: Long build cycle that validates little. Mitigation: Pause scope, run focused discovery sprint, require at least one monetary commitment signal before resuming.
What it looks like: Multiple workflows, broad persona coverage, extensive polishing in first cycle. Detection signal: Feature count grows while hypothesis count remains unchanged; timeline drifts from weeks to quarters. Consequence: Delayed learning and high burn. Mitigation: Enforce one-core-workflow rule; move all secondary workflows to explicit out-of-scope list.
What it looks like: Positive sentiment or usage anecdotes treated as PMF proof. Detection signal: Low conversion to paid pilots despite high interest. Consequence: False-positive confidence and bad capital allocation. Mitigation: Add willingness-to-pay check and explicit cash-evidence criterion to acceptance logic.
What it looks like: Frequent "small" additions justified as low effort, each bypassing the scope freeze. Detection signal: Scope changes without new hypothesis evidence. Consequence: Unstable priorities and delivery risk. Mitigation: Scope freeze policy with strict change admission criteria.
write_artifact(path="/strategy/mvp-scope", data={...})
flexus_policy_document(op="activate", args={"p": "/strategy/hypothesis-stack"})
flexus_policy_document(op="activate", args={"p": "/strategy/offer-design"})
flexus_policy_document(op="activate", args={"p": "/discovery/{study_id}/jtbd-outcomes"})
{
"mvp_scope": {
"type": "object",
"description": "MVP scope definition: in-scope and out-of-scope features with evidence-based rationale, acceptance criteria, and change-control policy.",
"required": ["created_at", "core_hypothesis_ref", "target_persona", "core_job", "scope_mode", "decision_intent", "in_scope_features", "out_of_scope_features", "manual_workarounds", "acceptance_criteria"],
"additionalProperties": false,
"properties": {
"created_at": {"type": "string", "description": "ISO-8601 UTC timestamp."},
"core_hypothesis_ref": {"type": "string", "description": "Reference ID of the single P0 hypothesis this MVP cycle validates."},
"target_persona": {"type": "string", "description": "Primary persona. Secondary personas must be excluded."},
"core_job": {"type": "string", "description": "Primary job-to-be-done that must be delivered in this cycle."},
"scope_mode": {"type": "string", "enum": ["experiment_scope", "release_scope"]},
"decision_intent": {"type": "string", "enum": ["explore", "ship"]},
"evidence_tier_target": {"type": "string", "enum": ["T1", "T2", "T3"], "description": "Minimum evidence quality before escalating beyond this MVP cycle."},
"scope_freeze_window_days": {"type": "integer", "minimum": 1},
"change_control_policy": {
"type": "object",
"required": ["allowed_reasons", "blocked_reasons"],
"additionalProperties": false,
"properties": {
"allowed_reasons": {"type": "array", "items": {"type": "string"}},
"blocked_reasons": {"type": "array", "items": {"type": "string"}}
}
},
"in_scope_features": {
"type": "array",
"items": {
"type": "object",
"required": ["feature", "rationale", "acceptance_criteria", "primary_signal", "dependency_severity"],
"additionalProperties": false,
"properties": {
"feature": {"type": "string"},
"rationale": {"type": "string", "description": "Evidence-backed reason this feature is necessary for core hypothesis validation."},
"acceptance_criteria": {"type": "string", "description": "Minimum user-facing completion criteria for this cycle."},
"quality_floor": {"type": "string", "description": "Minimum non-negotiable quality bar for pilot viability."},
"primary_signal": {"type": "string"},
"guardrail_signals": {"type": "array", "items": {"type": "string"}},
"dependency_severity": {"type": "string", "enum": ["critical", "high", "medium", "low"]},
"fallback_plan": {"type": "string"},
"learning_yield_score": {"type": "number", "minimum": 0, "maximum": 5},
"effort_estimate_weeks": {"type": "number", "minimum": 0}
}
}
},
"out_of_scope_features": {
"type": "array",
"items": {
"type": "object",
"required": ["feature", "exclusion_reason"],
"additionalProperties": false,
"properties": {
"feature": {"type": "string"},
"exclusion_reason": {"type": "string"},
"future_milestone": {"type": "string"}
}
}
},
"manual_workarounds": {
"type": "array",
"description": "Manual processes substituting excluded features for the MVP phase.",
"items": {
"type": "object",
"required": ["feature_replaced", "workaround_description", "effort_per_use"],
"additionalProperties": false,
"properties": {
"feature_replaced": {"type": "string"},
"workaround_description": {"type": "string"},
"effort_per_use": {"type": "string"}
}
}
},
"acceptance_criteria": {
"type": "array",
"description": "Overall MVP acceptance criteria for progression decision.",
"items": {
"type": "object",
"required": ["criterion", "measurement_method", "pass_threshold"],
"additionalProperties": false,
"properties": {
"criterion": {"type": "string"},
"measurement_method": {"type": "string"},
"pass_threshold": {"type": "string"}
}
}
}
}
}
}