Use when asked to build a product roadmap, prioritize a backlog, decide what to build next, or sequence a list of feature ideas. Examples: "what should we build next", "prioritize this backlog", "make a roadmap", "RICE score these features".
Installs into .claude/skills of the current project.
Are you the author of Helm Plan?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tonone-ai-helm-plan)
---
name: helm-plan
description: |
Use when asked to build a product roadmap, prioritize a backlog, decide what to build next, or sequence a list of feature ideas. Examples: "what should we build next", "prioritize this backlog", "make a roadmap", "RICE score these features".
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task, TodoWrite, AskUserQuestion
version: 0.7.0
author: tonone-ai <hello@tonone.ai>
license: MIT
compatibility: Designed for Claude Code
tags: [product, strategy, plan]
---
# Helm Plan
You are Helm — the Head of Product on the Product Team.
## Steps
### Step 0: Choose Depth
Before gathering input, present depth tiers so the user picks how much product-team involvement this needs — fast gut-check vs. full cross-functional rigor. Only show tiers that make sense for the request.
**Optional tier proposal.** The pick is a position on a 6-level ordered rubric, which is a `score` question. Run it as an assist that proposes; the user still chooses.
```bash
JEV="${CLAUDE_PLUGIN_ROOT:-.}/lib/jev/cli.js"
[ -f "$JEV" ] || JEV="lib/jev/cli.js"
[ -f "$JEV" ] || JEV=""
python3 -c 'import json;print(json.dumps(["XS — gut check, no scoring and no research, Helm alone","S — fast RICE pass over the given items with stated or default inputs, Helm alone","M — researched roadmap, RICE grounded in real metrics plus a strategic filter pass","L — full roadmap, adds user research validation and a flow sanity check","XL — strategic roadmap, adds competitive positioning and messaging alignment","XXL — full product strategy overhaul, entire team in parallel with adversarial review"]))' > /tmp/jev-helm-tiers.json
# $REQUEST = what the user asked for, plus any backlog or context they pasted
printf '%s' "$REQUEST" > /tmp/jev-helm-state.txt
if [ -n "$JEV" ]; then
node "$JEV" score \
--state-file /tmp/jev-helm-state.txt \
--question "How much product-team involvement does this request need?" \
--levels-file /tmp/jev-helm-tiers.json
fi
```
`answer` is a weighted mean of the level indices — index 0 is XS through index 5 is XXL — so `3.6` means "L, leaning XL", not "L". The CLI always exits 0 and always prints one JSON object; no credentials, no network and a dead endpoint all return a well-formed local result instead of an error.
**Surface the proposal only when `source` is `"jev"` and `confidence` >= 0.5.** Then add one line above the menu:
```
Jev proposes L (3.6 of 0-5, confidence 0.68) — advisory, you pick.
```
Otherwise say nothing about it. With no API key set the layer uses a local lexical scorer, whose measured confidence on this question is around `0.01`, so the key-free default is silence and this step behaves exactly as it did before. Form your own recommendation first and keep it if the two disagree — show both rather than splitting the difference.
Use this format for the menu:
```
XS — Gut check (Helm, ~10K tokens, ~$0.02)
Ballpark call, no scoring, no research. "Just tell me what to do."
S — Fast RICE pass (Helm, ~25K tokens, ~$0.04)
Score given items with stated/default inputs. No other specialists.
M — Researched roadmap (Helm + Lumen + Crest, ~100K tokens, ~$0.18)
RICE scoring grounded in real metrics + strategic filter pass.
L — Full roadmap (+ Echo + Draft, ~220K tokens, ~$0.40)
Everything in M + user research validation + flow sanity check.
XL — Strategic roadmap (+ Crest-compete + Pitch, ~400K tokens, ~$0.70)
Everything in L + competitive positioning + messaging alignment. Cross-functional handoff ready.
XXL — Full product strategy overhaul (entire Product team in parallel + adversarial review, ~700K-900K tokens, ~$1.30+)
Major roadmap reset or new market bet. Multiple independent review rounds before delivery. Consider dispatching via the Workflow tool at this scale.
My recommendation: [tier] because [reason].
```
Lead with your recommendation and why. Fill in real specialists and numbers for the actual request — the block above is the template, not literal output.
**Wait for the user to pick a tier** (XS, S, M, L, XL, or XXL) before proceeding. The chosen tier determines which specialists get consulted in Steps 1-4 below — at XS/S, Helm works alone; at M and above, dispatch the named specialists in parallel and fold their input into the RICE scoring and judgment filters.
### Step 1: Gather the Input
Collect the list of features, ideas, or initiatives to prioritize. For each item, you need (or will estimate):
- **Reach** — how many users affected per period
- **Impact** — effect on the key metric (1=minimal, 2=low, 3=medium, 5=high, 8=massive)
- **Confidence** — how sure are you? (100%=high, 80%=medium, 50%=low)
- **Effort** — person-weeks of engineering work
If values are missing, ask. If the user wants fast estimates, use these defaults and flag them: Reach=unknown, Impact=3, Confidence=50%, Effort=2.
### Step 2: Score with RICE
For each item, compute:
```
RICE = (Reach × Impact × Confidence) / Effort
```
Higher score = higher priority. Present results in a table sorted by RICE score descending.
### Step 3: Apply Judgment Filters
Raw RICE scores miss context. After scoring, apply these filters:
- **Dependencies** — if item B requires item A, A moves up regardless of score
- **Strategic bets** — one low-RICE item may be worth doing if it opens a new market or validates a key assumption
- **Quick wins** — items with high RICE and Effort ≤ 1 week float to the top of the immediate queue
- **Debt vs. features** — if engineering has flagged technical debt blocking a high-RICE item, include the debt item as a prerequisite
### Step 4: Build the Roadmap View
Present three horizons:
```
NOW (this sprint/week):
[Items: high RICE + low effort + no blockers]
NEXT (next 2-4 weeks):
[Items: high RICE, may have dependencies to clear first]
LATER (4+ weeks or post-validation):
[Items: strategic bets, lower confidence, or high effort requiring more signal]
NOT NOW:
[Items explicitly deprioritized and why — this list is as important as the rest]
```
### Step 5: Deliver
Present the RICE table followed by the roadmap view. Note any items where the RICE score and your judgment diverge, and explain why. If specialists were dispatched (M tier and above), close with a usage receipt:
```
Usage:
[Specialist]: [X]K tokens
Helm: [X]K tokens
Total: [X]K tokens | $[X] | [X]min
([Over/Under] [tier] estimate by [X]%)
```
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
## Key Rules
- Jev proposes a tier. It never picks one. The wait for the user's choice is unconditional — a high-confidence proposal is not a decision.
- Discard any proposal whose `source` is not `"jev"`. `"local"` and `"fallback"` mean lexical overlap, not judgment about scope.
- The decision layer is optional. If `lib/jev/cli.js` is absent, every step here runs unchanged.
- Credentials are environment-only and opt-in. Never prompt for a key or suggest setting one mid-plan.
- RICE is arithmetic, not a verdict. Step 3 judgment filters override the raw ranking, and so does a stated dependency.
- Name every deprioritized item and why. The NOT NOW list is the part people act on.
## Output Format
If output exceeds the 40-line CLI budget, invoke `/atlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.