tercel/spec-forge/idea
Claude Code and agent skill by tercel/spec-forge
- community
Checking that the SKILL.md file is still in the repository.
Use when exploring a new idea before writing formal specifications. Guides users through iterative discovery, research, and critical analysis to crystallize vague ideas into validated requirement drafts. Includes anti-pseudo-requirement checks, competitive research, demand evidence gathering, and "What if we don't build this?" analysis. Supports pause/resume across sessions, stores ideas in the project's ideas/ directory, and graduates validated ideas into the spec-forge auto chain ([idea] → [decompose] → [prd] → srs → tech-design → review).
Install
npx vskill@latest install tercel/spec-forge/ideaSKILL.md
Idea — Brainstorming & Demand Validation
Explore, research, validate, and crystallize ideas through iterative sessions before committing to formal specification. Every idea must prove it's a real need before graduating.
Core Principles
- Brainstorm freely, validate ruthlessly: Early sessions are open and creative; later sessions demand evidence
- Non-linear: Ideas evolve through multiple sessions, not in one sitting
- Research-driven: Use web search, competitive analysis, and user evidence to ground ideas in reality
- Anti-pseudo-requirement: Before graduating, every idea must answer "What happens if we don't build this?" — if the answer is "nothing significant", the idea is not ready
- Persistent: Every session is recorded, nothing is lost
- Project-local: Ideas live in the project's
ideas/directory, close to the codebase and docs they relate to
Storage Structure
`ideas/` is a top-level directory at the project root, separate from `docs/`. Never nest it inside `docs/`.
.gitignore Guidance
On first run, if ideas/ does not exist, ask the user:
- Add to .gitignore (Recommended) — ideas are personal working notes, keep them local
- Commit to Git — share brainstorming with the team for collaboration
- Decide later — create the directory now, handle .gitignore manually
Session Types
Each return session, the user chooses a focus. The idea matures through these phases:
| Phase | Focus | Key Activities | |
|---|---|---|---|
| Explore | Diverge, discover | Brainstorm, free association, "what if" thinking | |
| Research | Investigate, evidence | Competitive analysis, market research, user pain points | |
| Validate | Challenge, prove | Anti-pseudo-requirement checks, demand evidence, feasibility | |
| Refine | Converge, sharpen | MVP scope, success criteria, draft polishing |
Phases are not strictly sequential — users can revisit any phase at any time. But an idea cannot reach ready status without completing the Validate phase.
Session Overview File
Each idea maintains a sessions/overview.md that tracks all sessions in chronological order. This file is the single source of truth for session ordering — filenames do NOT encode sequence.
Create this file when the first session is recorded. Update it after every subsequent session.
Rules:
- The
#column is the chronological order (for human readability only — NOT part of the filename) - Append new sessions at the bottom
- Never reorder or renumber existing entries
Workflow
Step 1: Initialize or Resume
1.1 Ensure Base Directory
IMPORTANT: `ideas/` MUST be at the project root — the same level as `docs/`, NOT inside it.
- Correct:
{project-root}/ideas/ - Wrong:
{project-root}/docs/ideas/
Check if ideas/ exists in the project root. If not:
- Create the
ideas/directory at the project root - Ask the user about .gitignore preference (see .gitignore Guidance above)
- If user chooses to gitignore, add
ideas/to.gitignore
1.2 Parse Idea Name
Extract idea name from arguments. Convert to kebab-case.
If no name provided, list existing ideas. To gather them, prefer python3 "<sf_scripts>/sf-scan.py" --root "<project_root>" --docs-only (resolve <sf_scripts> per @../shared/scripts.md) — its documents include each idea draft with its type and status; fall back to reading each ideas/*/state.json by hand if python3 is unavailable or the script is not found.
Use AskUserQuestion to let the user choose.
1.3 Check Existing State
Check if ideas/{idea-name}/ exists:
New idea (directory doesn't exist):
- Create directory structure:
state.json,sessions/,research/,draft.md - Initialize
state.json:
``json { "idea": "{idea-name}", "status": "exploring", "created": "{ISO timestamp}", "updated": "{ISO timestamp}", "session_count": 0, "draft_version": 0, "validation": { "problem_evidence": null, "demand_evidence": null, "competitive_analysis": false, "not_build_analysis": null, "validated": false } } ``
- Proceed to Step 2 (New Idea)
Existing idea:
- Read
state.json - If
statusisgraduated: inform user this idea has already moved to formal specs, ask if they want to start a new variant - If
statusisready: ask if they want to continue refining, or graduate now - If
statusisexploring,researching, orrefining: readdraft.mdto restore context, proceed to Step 3 (Continue Session)
Step 2: New Idea — Opening Exploration
This is the first session for a brand new idea. The goal is to understand the user's raw thinking AND begin planting seeds of critical analysis.
2.1 Open-Ended Discovery
Use AskUserQuestion with open questions. Ask only what you cannot already infer from the idea draft (if one exists) or the context the user has given — a single rich answer may satisfy several Draft Validation Checklist dimensions at once. Do NOT march through a fixed sequence; pull from the optional prompt bank below in whatever order fits the conversation, asking a few at a time and adapting follow-ups, and stop once you can fill in the draft.
The prompts below are grouped by theme for convenience — they are optional prompts, not a locked sequence of rounds. Skip any whose answer you already have.
The Spark:
- What's the idea? Describe it however you like (one sentence or a paragraph)
- What triggered this idea? (a pain point you experienced, something you saw, a user complaint, data you noticed?)
The Problem:
- What specific problem does this solve? Can you describe a concrete scenario where someone suffers without this?
- Who suffers from this problem? How often? How severely?
- What happens if this is NOT built? (Plant this question early — it's the core anti-pseudo-requirement check)
The Landscape:
- What existing solutions have you seen? (competitors, workarounds, manual processes)
- What do they get wrong? Why are they insufficient?
- If good solutions exist, why build another one?
The Shape:
- What would the simplest version look like? (MVP)
- What are you most uncertain about?
Do NOT force answers. If the user says "I don't know yet" — record it as an open question that needs research.
2.2 Initial Demand Signal Assessment
Based on the user's answers, provide an honest initial assessment:
Be honest. If the idea sounds like a solution looking for a problem, say so gently:
"The idea is interesting, but I notice we haven't identified who specifically suffers from this problem. In a future session, it would help to research concrete user pain points."
2.3 Record Session
Write the session to ideas/{idea-name}/sessions/{type}-{slug}.md (e.g., explore-initial-spark.md):
Session filename rules:
- Format:
{session-type}-{brief-slug}.mdwhere type is one of:explore,research,validate,refine - The slug is a 2-4 word kebab-case description of the session focus (e.g.,
initial-spark,competitors,demand-check,mvp-scope) - Do NOT use sequential numbers (
001.md,002.md, etc.) — chronological order is tracked insessions/overview.md - If a type repeats (e.g., two explore sessions), differentiate by slug:
explore-initial-spark.md,explore-new-angles.md
Session filename:
2.4 Generate Initial Draft
Create draft.md:
2.5 Update State and Wrap Up
Update state.json: session_count: 1, updated: now, draft_version: 1
Display:
Step 3: Continue Session — Iterative Development
The user is returning to an existing idea.
3.1 Restore Context
Read draft.md and display a concise summary:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/idea/SKILL.md
Popularity
- Repository stars
- 10
- 7-day trend score
- 12
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tercel/spec-forge/idea)