技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
idea-validator【数据与研究】Validate app/startup ideas with market, feasibility, commercial, and open-source competitor analysis. Use when asked to evaluate, validate, or score a product idea. Don't use for PRDs, go-to-market plans, or investor decks.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Critically evaluate ideas with honest feedback on market viability, technical feasibility, and actionable improvements.
Trigger this skill when the user asks to:
Run the steps in this order: Setup → Phase 1 Clarify → Phase 2 Technical Context → Phase 3 Competitive Landscape → Phase 4 Evaluate → Phase 5 Improve → Commit and Push → Final Report. Do not skip or reorder a step, except where an Edge Cases row says to stop. A stop after Setup step 4 still runs Commit and Push on the files written so far, then the Final Report. If the ideas root is the root of an ideas repo, also run README Maintenance after each file update (detection rule in that section).
Terms used throughout:
<ideas root>/YYYY_MM_DD_<short_snake_case_name>/, holding this idea's idea.md and validate.md.COMPLETE, PARTIAL or BLOCKED, chosen by the rules in Final Report.Run this in the ideas root, before Setup step 3 creates or changes any file. Skip it when the ideas root is not inside a git repository (git -C <ideas root> rev-parse --git-dir fails), and record that skip for the Final Report.
If git status --porcelain prints nothing, sync directly:
cd "<ideas root>"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin
git pull --rebase origin "$branch"
If it prints anything, stash first, sync, then restore:
git stash push -u -m "pre-sync"
branch="$(git rev-parse --abbrev-ref HEAD)"
git fetch origin && git pull --rebase origin "$branch"
git stash pop
If origin is missing, the pull fails, or the rebase or stash pop conflicts, stop and ask the user before continuing.
Get the idea. Use the idea in $ARGUMENTS. If $ARGUMENTS is empty, ask the user to describe the concept. If no description arrives, stop with status BLOCKED.
Resolve the ideas root (tool-agnostic; ask once per environment). Take the first that applies:
IDEAS_ROOT, if set.~/.config/ideas-root.txt, if that file exists.~/.openclaw/ideas-root.txt, if that file exists. Copy the value into ~/.config/ideas-root.txt.~/workspace/ideas. Save the answer to ~/.config/ideas-root.txt.Ask again only when the user asks to change the location.
Create the project folder under the ideas root. If a folder with the same date and name already exists, reuse it and update its files instead of creating a second one.
Create idea.md with the idea and the clarifications.
Create validate.md for the evaluation and recommendations.
Echo the absolute project folder path in your response, so downstream skills can pick it up.
If the ideas root cannot be created or written, stop with status BLOCKED and name the path.
Read references/file-templates.md when creating either file or updating a section named in Phases 1-5. That file owns header names and order; the phase instructions own the content.
Ask the user these questions with the question tool (AskUserQuestion or equivalent). If no question tool exists, ask in plain chat. Skip a question that the idea description from Setup step 1 already answers.
Update idea.md with the responses. Write unknown for each question the user declines or cannot answer, and list it under Uncertainty in the Final Report. The target-user question is the exception: see Edge Cases.
Ask the user, with the same tool and skip rule as Phase 1:
Update the idea.md Technical Context section. Write unknown for each unanswered item.
Before evaluating the idea, perform live web research to find what already exists in the space. Do not rely on memory or training data for market, pricing, traction, competitor, or open-source claims — web search is mandatory so the report reflects current information.
Use the available web search tool (WebSearch, web_search, or equivalent) to run at least 4 varied queries covering:
Commercial tools/services — SaaS products, mobile apps, enterprise platforms, paid APIs, agencies, marketplaces, and other commercial offerings solving the same or adjacent problem. Search the core problem statement plus keywords like "app", "tool", "platform", "SaaS", "startup", "pricing", "alternative", and audience-specific terms.
Open-source solutions — GitHub/GitLab repositories, self-hosted tools, packages, frameworks, templates, and OSS alternatives that solve the same problem or provide a strong foundation. Search with terms like "open source", "GitHub", "self-hosted", "OSS", "alternative", "library", and relevant package registry names. If no credible OSS option is found, document the queries tried and state that no maintained open-source baseline was found.
Adjacent solutions — products or projects that solve a related problem or serve the same audience differently. These reveal how users currently cope without the proposed solution.
Failed attempts — startups, products, or OSS projects that tried something similar and stalled, shut down, or were abandoned. Search for "[concept] startup failed", "[concept] post-mortem", "[concept] abandoned GitHub", or check product directories.
For each competitor or OSS project found, capture:
Aim for 3-8 total competitors, with at least one commercial and one open-source search path. If fewer than 3 credible results are found, record that in validate.md as a signal: the market is niche, the terms need refining, or the idea is framed in unfamiliar language.
When an open-source solution already solves a meaningful part of the idea, compare license fit, maintenance health, architecture, extensibility, deployment burden, and community before recommending a greenfield build. Decide whether the user should build on it, fork it, contribute to it, or differentiate sharply.
Update validate.md with a ## Competitive Landscape section containing:
If web search is unavailable or blocked, stop and ask the user whether to continue without it. If the user says yes, label the Competitive Landscape section Not verified by live search and set the status to PARTIAL. If the user says no, stop with status BLOCKED. Never silently replace live research with general knowledge.
Evaluate honestly and update validate.md:
Market Analysis:
Demand Assessment:
Feasibility:
Monetization:
Technical Risk:
Duplication / Reuse Risk:
Ratings (1-10): Creativity, Feasibility, Market Impact, Technical Execution. Give each score a one-line reason.
Verdict. Take the first rule that matches:
Skip it — Phase 3 found a near-identical product and the user named no genuine differentiator, or a hard blocker exists that the stated team and budget cannot remove.Maybe — any of: an unresolved hard technical risk, a maintained OSS project that covers most of the idea with no chosen build-on path, demand or willingness to pay with no evidence, or a Feasibility score below 6.Build it — none of the above.Write the verdict with the rule that produced it and a 2-3 sentence rationale.
Update validate.md with:
PARTIAL and save idea.md.Skip it (rule 1), skip Phase 5, and set the status to PARTIAL.Build it verdict.Build it.PARTIAL. Do not run git init unless the user asks.PARTIAL.After completing each step from Setup through Phase 5, output a status report in this format:
◆ [Step Name] ([step N of 6] — [idea name])
··································································
[Check 1]: √ pass
[Check 2]: × fail — [reason]
____________________________
Result: PASS | FAIL | PARTIAL
Use √ for pass, × for fail, and — to add brief context. The per-phase check blocks live in references/step-completion-reports.md; read the block matching the step you just completed.
Run this when the ideas root contains a README.md and at least two YYYY_MM_DD_* idea folders. After each update to idea.md or validate.md, insert or update an ## Ideas index table in that README.md with one row per idea:
idea.mdPRD if a prd.md exists in the folder, tasks if a tasks.md exists, else nonevalidate.mdSkip this step when the ideas root is not a git repository (see Edge Cases). Otherwise, run it after Phase 5, or at an earlier stop (see Instructions):
git add <project folder>/idea.md <project folder>/validate.md, plus README.md when README Maintenance changed it. Never run git add -A.git diff --cached --name-only to confirm that only those files are staged. If another file is staged, unstage it with git restore --staged <file>.docs(ideas): validate <short_snake_case_name>.branch="$(git rev-parse --abbrev-ref HEAD)" && git fetch origin && git rebase "origin/$branch" && git push.origin missing, rebase conflict, repeated rejection), stop and ask the user before continuing.Invoking this skill authorizes the commit and push. Do not ask for push permission again. Never force-push or run git reset in the ideas repo; resolve a rebase conflict only after the user's confirmation.
The expected output of every run, stops included, is one summary in concise chat text: the main result stays visible without opening a file, and the full detail lives in validate.md. Honor a different format only if the user asks for one. Take the status from the first rule that matches:
BLOCKED — no idea description, the ideas root cannot be written, or the user declined to continue without web search.PARTIAL — a step was skipped or stopped early, Phase 3 ran without live search, or the files were not committed and pushed.COMPLETE — Setup through Commit and Push all finished.The summary carries these lines, in order:
Result: the status, then the verdict and the four ratings when Phase 4 ran; for PARTIAL or BLOCKED, the step where the run stopped and why.Evidence: the project folder path; the GitHub links to idea.md, validate.md and, when changed, README.md; the commit hash; the number of live queries run and competitors found. Cite only checks that ran.Strengths: and Concerns: the top 3 of each.Uncertainty: each unknown answer, each claim that rests on an assumption instead of a source, and each skipped check. Write none within the checks run when there are none.Decision: No approval needed. (commit and push are authorized by invocation), or the question the run stopped on.Next step: the single most important action for the user.Build each GitHub link from git remote get-url origin and the current branch: https://github.com/<owner>/<repo>/blob/<branch>/<relative-path>. The example summary and the fill rules live in references/final-report.md.
validate.mdBuild it / Maybe / Skip it) names the verdict rule that produced it and a rationalePARTIAL)Result: and the status, and carries Evidence:, Uncertainty: and Decision: linesreferences/final-report.md → Reader checks; scenario cases in evals/evals.json)