MoSCoW Prioritization
MoSCoW prioritization: categorize requirements into Must Should Could Won't tiers using failure-focused test. Apply for backlog refinement, feature prioritization, sprint planning, release scope decisions, rebalance Must tier, create Won't items with revisit dates, adjudicate stakeholder disagreements, produce decision log. Keywords: prioritization, backlog, refinement, sprint planning, release scope, rebalance, stakeholder, decisions, MVP, scope control.
npx skills add github:pantheon-org/tekhne --skill project-mgmt--issue-tracker-toolkit--moscow-prioritizationWhen to Use
Use this skill when you need to rank requirements for a release.
When Not to Use
Do not use this skill for task-level estimation, bug triage, or sprint capacity planning by itself.
Principles
Mustmeans release failure if missing.Shouldmeans high value but deferrable.Couldmeans optional enhancement.Won'tmeans explicitly out of scope for this release.
Deterministic Workflow
- Collect candidate requirements in one list.
- Confirm release constraints (date, budget, team).
- Categorize each item with the decision tree in
references/categorization-decision-tree.md. - Challenge every
Mustusing failure-focused questions. - Validate: Verify that the
Mustcount does not exceed 60% of total effort before proceeding. - Rebalance if
Mustwork exceeds 60% of effort. If rebalancing cannot bringMustunder 60%, escalate to stakeholders to either re-scope the release (split into two releases, extend the timeline, or increase capacity) before finalizing categories. - Publish final table with owners and review date.
Quick Commands
Create a workshop draft
cp skills/moscow-prioritization/references/facilitator-workshop-template.md .context/moscow-workshop-draft.md
Expected result: reusable working document for prioritization.
Create a decision log
cat > .context/moscow-decisions-$(date +%Y-%m-%d).md <<'MD'
# MoSCoW Decision Log
| Requirement | Category | Rationale | Owner |
| --- | --- | --- | --- |
MD
Expected result: traceable decisions with ownership.
Validate skill quality after edits
pantheon-skill-auditor evaluate moscow-prioritization --json
Expected result: updated score and grade for this skill.
Lint this skill documentation
rumdl check skills/moscow-prioritization
Expected result: no rumdl errors.
Anti-Patterns
NEVER label stakeholder preference as Must
- WHY: Preference is not the same as release-critical need.
- BAD: “Executive asked for dark mode, so it is Must.”
- GOOD: “Dark mode is Should unless release fails without it.”
- Consequence:
Mustlist inflates and blocks true essentials.
NEVER skip explicit Won't items
- WHY: Missing exclusions invite silent scope creep.
- BAD: Keep backlog open-ended with no rejected items.
- GOOD: Record rejected items with revisit date.
- Consequence: Team repeatedly reopens settled decisions.
NEVER finalize priorities without constraint checks
- WHY: Categories are invalid without timeline and capacity context.
- BAD: Categorize before confirming release limits.
- GOOD: Validate date, staffing, and budget first.
- Consequence: Plans collapse during execution.
NEVER keep categories without rationale
- WHY: Unjustified categories cannot be defended or audited.
- BAD: Spreadsheet with only item and category.
- GOOD: Include business outcome and risk rationale.
- Consequence: Priorities are re-litigated in every review.
References
references/categorization-decision-tree.mdreferences/facilitator-workshop-template.mdreferences/effort-balancing-and-tradeoffs.md
Explicit NEVER/WHY/consequence triplets with side-by-side bad/good examples. Generic warnings score low — concrete failure modes with real impact (security, correctness, performance) score high.
Runtime validation via eval scenarios proving the skill actually changes agent behaviour. Requires evals/ directory, instructions.json, ≥3 scenarios, and ≥80% instruction coverage in summary.json.
Appropriate rigidity for the skill type: strict rules for critical/security skills, balanced steps for process skills, flexible options for tool skills. Mismatched calibration (too rigid or too loose) reduces score.
Expert-only knowledge the AI couldn't derive on its own — domain-specific patterns, production gotchas, decision frameworks, and non-obvious tool behaviour. High scores mean <5% redundancy with what the model already knows.
A clear philosophy plus numbered step-by-step workflows with explicit entry/exit points. Should answer: what is the core principle, how to execute it, and when (and when not) to apply it.
Rich activation keywords and trigger scenarios in the description so the skill fires when needed. Best descriptions read like an exhaustive list of the tasks and concepts that should invoke this skill.
Copy-paste-ready code, complete runnable examples, real file paths and commands. Pseudocode and abstract descriptions score low — concrete, executable content scores high.
SKILL.md as a <100-line navigation hub pointing to focused references/ files. Content should be lazy-loaded on demand, not front-loaded. Includes actionable 'When to Use' conditions per reference.
Proper frontmatter, single-task focus, activation keywords, and cross-harness portability. Skills must work across 40+ agentic harnesses without hardcoded paths or agent-specific references.
Expert-only knowledge the AI couldn't derive on its own — domain-specific patterns, production gotchas, decision frameworks, and non-obvious tool behaviour. High scores mean <5% redundancy with what the model already knows.
A clear philosophy plus numbered step-by-step workflows with explicit entry/exit points. Should answer: what is the core principle, how to execute it, and when (and when not) to apply it.
Explicit NEVER/WHY/consequence triplets with side-by-side bad/good examples. Generic warnings score low — concrete failure modes with real impact (security, correctness, performance) score high.
Proper frontmatter, single-task focus, activation keywords, and cross-harness portability. Skills must work across 40+ agentic harnesses without hardcoded paths or agent-specific references.
SKILL.md as a <100-line navigation hub pointing to focused references/ files. Content should be lazy-loaded on demand, not front-loaded. Includes actionable 'When to Use' conditions per reference.
Appropriate rigidity for the skill type: strict rules for critical/security skills, balanced steps for process skills, flexible options for tool skills. Mismatched calibration (too rigid or too loose) reduces score.
Rich activation keywords and trigger scenarios in the description so the skill fires when needed. Best descriptions read like an exhaustive list of the tasks and concepts that should invoke this skill.
Copy-paste-ready code, complete runnable examples, real file paths and commands. Pseudocode and abstract descriptions score low — concrete, executable content scores high.
No eval scenarios available.
Categorization Decision Tree
Use these questions in order for every requirement.
- Is it legally or contractually required?
- Does the product fail to deliver core value without it?
- Does absence block release approval or market entry?
- Can it be deferred one release with acceptable risk?
Mapping Rules
- If 1-3 are
yes, classify asMust. - If 4 is
yesand value is high, classify asShould. - If value is moderate or low and deferrable, classify as
Could. - If out of scope now, classify as
Won'twith revisit trigger.
Must Challenge Questions
- “What breaks on release day if this is missing?”
- “Can a temporary workaround cover this release?”
- “Is the impact legal, security, revenue-critical, or reputation-critical?”
If answers are vague, downgrade from Must and document rationale.
Effort Balancing and Tradeoffs
Use this guide after initial categorization.
Target Distribution
Must: 50-60% effortShould: 20-30% effortCould: 10-20% effortWon't: explicit exclusions
Rebalance Rules
- If
Must> 60%, downgrade lowest-impact Must items. - If
Couldis empty, force explicit enhancement candidates. - If
Won'tis empty, add at least 3 deferred items.
Tradeoff Examples
- Move advanced analytics from
MusttoShouldto protect launch date. - Move custom theming from
ShouldtoCouldwhen staffing drops. - Move legacy export format from
CouldtoWon'twhen demand is low.
Verification
Review the final mix with stakeholders and capture sign-off date.
MoSCoW Workshop Template
Inputs
- Candidate requirements list
- Release date and budget
- Delivery team capacity
- Decision owners
Agenda (60 minutes)
- Review objective and release constraints (10 min)
- Categorize top requirements using decision tree (30 min)
- Challenge all
Mustcandidates (10 min) - Finalize categories and owners (10 min)
Output Table
| Requirement | Category | Business Outcome | Risk if Deferred | Owner |
|---|---|---|---|---|
| Example: MFA login | Must | Security baseline | Compliance risk | Platform Lead |
Exit Criteria
- Every item has one category.
- Every
Musthas explicit failure rationale. - At least one
Won'titem is documented for scope control.