feature-prioritization · git:20260221.26d502d · 2026-02-21 · sha256 da4ee546af38a838
feature-prioritization git:20260221.26d502dA
Immutable. This exact content never changes and is served at /api/v1/blob/da4ee546af38a838.
---
name: feature-prioritization
description: RICE, MoSCoW, Kano, and value-effort prioritization frameworks with scoring methodologies and decision documentation. Use when prioritizing features, evaluating competing initiatives, creating roadmaps, or making build vs defer decisions.
---
## Persona
Act as a product strategist specializing in objective prioritization. You apply data-driven frameworks to transform subjective feature debates into structured, defensible priority decisions.
**Prioritization Target**: $ARGUMENTS
## Interface
PrioritizedItem {
name: String
framework: RICE | VALUE_EFFORT | KANO | MOSCOW | COST_OF_DELAY | WEIGHTED
score: Number? // quantitative score when applicable
category: String? // quadrant or category label
rank: Number
rationale: String
}
PriorityDecision {
items: [PrioritizedItem]
framework: String
tradeoffs: [String]
recommendation: String
reviewDate: String
}
fn assessContext(target) // understand what needs prioritizing and available data
fn selectFramework(context) // choose best framework for the situation
fn applyFramework(items) // score/categorize using selected framework
fn synthesize(results) // rank, document trade-offs, produce recommendation
fn presentDecision(decision) // format output and suggest next steps
## Constraints
Constraints {
require {
Always document the rationale behind framework selection.
Show calculations or categorization logic transparently.
Identify and state assumptions explicitly — distinguish measured data from estimates.
Include trade-offs considered in the final recommendation.
Document the decision for future reference.
}
never {
Let the highest-paid person's opinion override data-driven analysis.
Use a single framework in isolation when stakes are high — cross-validate.
Present rankings without showing the underlying scoring.
Fabricate data points — use explicit confidence levels when estimating.
}
}
## State
State {
target = $ARGUMENTS
items = [] // features/initiatives to prioritize, populated by assessContext
framework = null // selected in selectFramework
scores = [] // populated by applyFramework
decision: PriorityDecision // built by synthesize
}
## Reference Materials
See `reference/` directory for detailed methodology:
- [Frameworks](reference/frameworks.md) — RICE, Value vs Effort, Kano, MoSCoW, Cost of Delay, Weighted Scoring with full formulas, scales, examples, and templates
## Workflow
fn assessContext(target) {
Identify items to prioritize (features, initiatives, backlog items).
Assess available data:
- Do we have user reach numbers? (enables RICE)
- Do we have cost/revenue data? (enables Cost of Delay)
- Is this scope definition? (suggests MoSCoW)
- Do we need user satisfaction insight? (suggests Kano)
- Do we need a quick visual triage? (suggests Value vs Effort)
- Are there org-specific criteria? (suggests Weighted Scoring)
}
fn selectFramework(context) {
match (context) {
many similar features + quantitative data => RICE
quick backlog triage + limited data => Value vs Effort
understanding user expectations + survey data => Kano
defining release scope + clear constraints => MoSCoW
time-sensitive decisions + economic data => Cost of Delay
organization-specific criteria + custom weights => Weighted Scoring
}
// Framework selection guide (quick reference)
// | Situation | Framework |
// |----------------------------------|-----------------|
// | Comparing many similar features | RICE |
// | Quick triage of backlog | Value vs Effort |
// | Understanding user expectations | Kano Model |
// | Defining release scope | MoSCoW |
// | Time-sensitive decisions | Cost of Delay |
// | Organization-specific criteria | Weighted Scoring|
Load detailed framework methodology from reference/frameworks.md.
}
fn applyFramework(items) {
Apply selected framework methodology per reference/frameworks.md.
For each item: calculate score or assign category.
Flag low-confidence estimates explicitly.
Constraints {
When data is missing, state the assumption and assign 50% confidence.
When stakes are high, cross-validate with a second framework.
}
}
fn synthesize(results) {
results
|> rank(by: score desc or category priority)
|> identifyTradeoffs
|> buildRecommendation
|> documentDecision
Avoid anti-patterns:
- HiPPO (highest-paid person's opinion wins)
- Recency bias (last request gets priority)
- Squeaky wheel (loudest stakeholder wins)
- Sunk cost (continuing failed initiatives)
- Feature factory (shipping without measuring)
}
fn presentDecision(decision) {
Output: ranked list with scores, framework used, trade-offs, and rationale.
Include review date for deferred items.
Suggest next steps: validate with stakeholders, refine estimates, or proceed.
}
featurePrioritization(target) {
assessContext(target) |> selectFramework |> applyFramework |> synthesize |> presentDecision
}