Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Translate ideas, feature requests, or vague concepts into specific, actionable dev briefs. Use this skill whenever the user has an idea they want to build, a feature to spec out, a bug to file, a project to scope, or needs to convert a half-formed idea into a clear implementation brief. Triggers on I want to add, we should build, can we make, what is the plan for, how do we implement, dev brief, feature spec, PRD, user story, acceptance criteria, scope this, prioritize. Also triggers when the us
.claude/skills/rampstackco-pm-spec-writing/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 71% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 123% | 0% |
Take an idea (often vague) and turn it into a specification a developer or AI agent can actually build from. Stack-agnostic. Works for new features, bug fixes, content changes, or infrastructure work.
roadmap-planning)code-review-web)design-standards)ux-research)If the idea is vague, the workflow's first step is clarification. Do not write specs around vagueness.
Every PM workflow follows the same arc. The phases are universal even if the specific outputs vary.
Before any spec, answer four questions. If any answer is "I don't know," go back to the user.
Plot every candidate idea on the impact/effort grid:
HIGH IMPACT / LOW EFFORT Ship immediately
Examples: copy fixes, contrast fixes, meta tags,
broken links, missing alt text, redirects
HIGH IMPACT / HIGH EFFORT Plan and batch
Examples: new page type, new feature, schema overhaul,
major redesign, new integration
LOW IMPACT / LOW EFFORT Nice-to-have batch
Examples: tooltip improvements, minor copy polish,
cosmetic UX touches
LOW IMPACT / HIGH EFFORT Skip or defer indefinitely
Examples: rebuilding what already works, exotic
edge case features, premature optimizationThis is not a perfect framework. Some "low impact" things are mandatory (compliance, accessibility, security). Note exceptions.
Three formats based on the type of work.
TITLE: [Specific, action-oriented]
PROBLEM
[1-2 sentences. The user problem and current state.]
USERS
[Who specifically benefits. Be precise about the user segment.]
PROPOSAL
[1 paragraph. The proposed solution. Stay at the conceptual level.]
USER STORIES
- As a [user type], I want to [action], so that [outcome]
- As a [user type], I want to [action], so that [outcome]
ACCEPTANCE CRITERIA
- Given [context], when [action], then [expected outcome]
- Given [context], when [action], then [expected outcome]
OUT OF SCOPE
[What this spec explicitly does NOT cover. Important for scope control.]
DEPENDENCIES
[Other systems, APIs, designs, content needed before this can ship.]
SUCCESS METRIC
[The one primary metric that tells us this worked. With current baseline if known.]
ESTIMATED EFFORT
[Small (hours) / Medium (1-3 days) / Large (1-2 weeks) / XL (sprints)]
PRIORITY
[P0 launch blocker / P1 next sprint / P2 within quarter / P3 backlog]For tactical, ready-to-build work. Lighter than a full spec.
CONTEXT: [1-2 sentences explaining why this matters]
TASK: [Specific files, exact changes needed]
CONSTRAINTS: [What must NOT change, what to preserve]
VERIFY: [Exact steps to confirm the work is done correctly]The verify section is the most-skipped and most-important. Without it, "done" means whatever the implementer thinks done means.
URL or context: [Where it happens]
Symptom: [What the user sees or experiences]
Expected: [What should happen instead]
Steps to reproduce:
1. [Specific step]
2. [Specific step]
3. [Specific step]
Hypothesis: [Likely root cause if known]
Files to investigate: [Likely files involved if known]
Priority:
P0 - blocking critical user flow, ship immediately
P1 - degrades UX significantly, fix this sprint
P2 - minor issue, fix when convenient
P3 - nice-to-have improvement
Browser/device: [If reproducibility might be browser-specific]Specs without sequencing become dust on a shelf.
For a single feature: identify the smallest shippable increment. What is the smallest version that delivers user value? Ship that first. Then iterate.
For a backlog: order by dependencies first, then by priority, then by impact/effort. The order matters more than the priority labels.
Output is one of three formats based on work type, all in markdown:
spec-[feature-name].md for feature specsbrief-[task-name].md for dev briefsbug-[summary].md for bug reportsFor larger initiatives, group related specs in a folder:
specs/
initiative-name/
spec-feature-1.md
spec-feature-2.md
brief-task-1.md
README.md (overview and sequencing)This skill's output depends on data, measurements, or tool results it cannot generate on its own. When a required input, tool, or data source is unavailable or unverifiable, the sanctioned output is the deliverable with the gap stated: what was needed, what was actually obtained or verified, and which parts of the output are affected. Fabricating, estimating, or interpolating a required number to complete the deliverable is never sanctioned. A stated gap is a complete answer.
references/feature-spec-template.md - Full feature spec template.references/dev-brief-template.md - Compact dev brief template for tactical work.references/prioritization-frameworks.md - Beyond impact/effort: RICE, weighted scoring, MoSCoW.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,371 | 12,668 | -31% | 1 | 1 | 0% | 3,353 | 4,327 | +29% | 0 | 0 | — |
case-02 | fail→pass | 11,660 | 7,555 | -35% | 1 | 1 | 0% | 2,114 | 3,260 | +54% | 0 | 0 | — |
case-03 | fail→pass | 10,340 | 18,803 | +82% | 1 | 1 | 0% | 1,863 | 3,191 | +71% | 0 | 0 | — |
case-04 | fail→fail | 19,942 | 5,971 | -70% | 1 | 1 | 0% | 3,506 | 2,999 | -14% | 0 | 0 | — |
case-05 | fail→fail | 8,739 | 6,332 | -28% | 1 | 1 | 0% | 626 | 3,033 | +385% | 0 | 0 | — |
case-06 | fail→fail | 17,593 | 20,644 | +17% | 1 | 1 | 0% | 3,043 | 5,391 | +77% | 0 | 0 | — |
case-07 | fail→fail | 12,391 | 12,781 | +3% | 1 | 1 | 0% | 1,939 | 4,175 | +115% | 0 | 0 | — |
case-08 | fail→pass | 11,456 | 7,782 | -32% | 1 | 1 | 0% | 1,929 | 3,213 | +67% | 0 | 0 | — |
case-09 | pass→pass | 8,630 | 4,118 | -52% | 1 | 1 | 0% | 1,361 | 2,677 | +97% | 0 | 0 | — |
case-10 | pass→pass | 13,010 | 8,165 | -37% | 1 | 1 | 0% | 2,072 | 3,239 | +56% | 0 | 0 | — |
case-11 | fail→fail | 16,490 | 11,039 | -33% | 1 | 1 | 0% | 2,692 | 3,872 | +44% | 0 | 0 | — |
case-12 | fail→pass | 19,185 | 11,790 | -39% | 1 | 1 | 0% | 3,669 | 4,110 | +12% | 0 | 0 | — |
case-13 | fail→pass | 8,761 | 7,875 | -10% | 1 | 1 | 0% | 1,475 | 3,291 | +123% | 0 | 0 | — |
case-14 | fail→pass | 19,867 | 14,879 | -25% | 1 | 1 | 0% | 3,208 | 4,519 | +41% | 0 | 0 | — |
case-15 | pass→pass | 18,198 | 11,769 | -35% | 1 | 1 | 0% | 2,995 | 3,992 | +33% | 0 | 0 | — |
case-16 | pass→pass | 23,900 | 15,539 | -35% | 1 | 1 | 0% | 3,888 | 4,527 | +16% | 0 | 0 | — |
case-17 | pass→pass | 19,671 | 17,374 | -12% | 1 | 1 | 0% | 3,144 | 4,906 | +56% | 0 | 0 | — |
case-18 | fail→pass | 10,534 | 5,741 | -46% | 1 | 1 | 0% | 1,761 | 2,938 | +67% | 0 | 0 | — |
case-19 | fail→fail | 10,741 | 5,423 | -50% | 1 | 1 | 0% | 2,109 | 3,069 | +46% | 0 | 0 | — |
case-20 | fail→pass | 15,373 | 10,492 | -32% | 1 | 1 | 0% | 2,744 | 3,775 | +38% | 0 | 0 | — |
case-21 | pass→pass | 10,609 | 7,911 | -25% | 1 | 1 | 0% | 1,881 | 3,277 | +74% | 0 | 0 | — |
case-22 | fail→pass | 15,148 | 7,922 | -48% | 1 | 1 | 0% | 2,689 | 3,383 | +26% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.