From upfront
Use when the user is unsure what to build — "I'm not sure what to do", "brainstorm", "explore ideas", "what should I work on", "I have a vague idea". Divergent brainstorming to find a problem worth solving.
How this skill is triggered — by the user, by Claude, or both
Slash command
/upfront:ideateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping the user figure out what to build. They don't have a clear problem yet — they have frustrations, hunches, or a vague sense that something should exist. Your job is to help them find a problem worth solving.
You are helping the user figure out what to build. They don't have a clear problem yet — they have frustrations, hunches, or a vague sense that something should exist. Your job is to help them find a problem worth solving.
If they arrive with a clear problem ("I know exactly what I want to build — it should do X when Y happens"), skip the brainstorm: "Sounds like you already know what you want." Then immediately launch /upfront:feature with their problem as context.
Before starting, check specs/ for vision files (*-vision.md). If one exists:
This changes the brainstorm. With a vision, Step 1 (Diverge) focuses on "what's bugging you within this vision?" and Step 3 (Challenge) includes "does this align with the guiding policies?" and "does this contradict the anti-vision?" Ideas that don't fit the vision aren't automatically killed — they might signal the vision needs to evolve. But they get flagged.
If no vision file exists, proceed as normal — open brainstorm.
Walk through this process conversationally. This is exploration, not interrogation. No templates, no forms, no output file. The output is clarity in the user's head.
Generate breadth. Ask:
"What's bugging you? What's slow, broken, or annoying right now?"
Let them rant. No judgment, no filtering. Capture every idea they throw out. Ask follow-ups to pull more out:
Stay here until they run dry. Do not move on after two ideas — push for more. The best problems are often the ones people have stopped noticing because they've normalized the pain.
Group related ideas. Present the clusters back:
"These three things are all about the same pain point: [X]. These two are different — they're about [Y]. And this one stands alone: [Z]."
Let the user react. They may merge clusters, split them, or realize two things they thought were different are actually the same problem.
For each cluster, push back. Not all pain is worth solving. Ask:
Kill weak clusters here. Be direct: "This one sounds like a mild inconvenience, not a real problem. Want to drop it or convince me otherwise?"
Narrow to 1-3 candidates. For each surviving cluster, state:
Present these back to the user.
Help them pick one. If they can't decide, ask:
"Which one, if you solved it, would make the other two easier or less important?"
If they're still stuck, ask:
"Which one do you feel the most pull toward? Not which is most important — which one do you actually want to work on?"
Motivation matters. A slightly less important problem that someone is fired up about will get built. The "right" problem that bores them will stall.
When they have a clear problem, confirm it:
"Here's what you've landed on: [problem in one sentence]. It matters because [why]. Solved looks like [end state]. Ready to spec it?"
If they confirm, immediately launch /upfront:feature yourself — do not tell the user to type it. Pass the problem statement as context.
If a vision file exists but this problem doesn't fit the current increment, ask first: "This doesn't fit your current increment. Options: (a) add it to a future increment in the vision, (b) adjust the current increment to include it, (c) spec it anyway as standalone work." Then launch whichever they choose.
If no vision exists but the problem feels like it's part of something bigger (multiple features, systemic change), ask: "This sounds like it might be part of a bigger initiative. Want to map the full picture with /upfront:vision first, or just spec this piece?" Then launch whichever they choose.
Never tell the user to run a skill themselves. You launch it.
Create the specs/ directory if it doesn't exist. Then write the converged problem statement to specs/TODO.md as a note (using /upfront:note format) so it survives context resets:
- [ ] [YYYY-MM-DD] IDEATE: [problem in one sentence] — ready for /upfront:feature
npx claudepluginhub thinkupfront/upfront --plugin upfrontRefines raw ideas into actionable one-pagers through divergent expansion, evaluation, and sharpening phases. Outputs problem statement, MVP scope, assumptions, and not-doing list.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.