协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
viral-product-evaluator【开发与工程】Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: "viral-product-evaluator" description: "Review a product codebase and landing page against 32 viral principles and produce a Virality Score plus ranked fixes. Use to audit virality or prioritize growth. Don't use for SEO, ASO, copywriting, or code review." license: MIT effort: high dependencies:
Grade a product against the 32 principles of viral products. Two inputs — a codebase and a landing page — produce one output: a scored report of what's already satisfied and, in priority order, what to do next to make it more viral.
Trigger when the user wants to:
Do not use for: technical SEO (seo-ai-optimizer), App Store ASO (aso-marketing),
turning a README into a page (landing-page-generator), or bug-hunting code review
(code-review).
evidence-dir.references/*.md files present.Missing prerequisites after the one ask in Edge cases → stop with a BLOCKED response
(references/final-report.md) before gathering evidence.
It reads the codebase, fetches the landing page, and writes one report file
(viral-evaluation.md) — it never edits source, changes copy, or commits. Applying fixes is
a separate task for a copy/frontend skill; this skill stops at the prioritized plan.
This skill invokes /browse (frontmatter dependencies), and only on the live URL path;
every other input needs nothing installed. Run once, before the first fetch:
if test -f "$HOME/.claude/skills/browse/SKILL.md"; then
echo "browse_mode=installed browse_skill=$HOME/.claude/skills/browse/SKILL.md"
elif test -f "$HOME/.agents/skills/browse/SKILL.md"; then
echo "browse_mode=installed browse_skill=$HOME/.agents/skills/browse/SKILL.md"
elif command -v asm >/dev/null && asm deps --help >/dev/null 2>&1; then
asm deps discover viral-product-evaluator --json || echo "discover failed; acquire still runs" >&2
echo "browse_mode=lease"
else
echo "Missing skill: browse. Install: asm install github:garrytan/gstack:browse -p claude -s global --yes" >&2
echo "No asm yet: npm install -g agent-skill-manager@latest" >&2
echo "browse_mode=none"
fi
printf 'vpe_session=%s\n' "viral-product-evaluator-$(date +%s)-$" # record it; reuse it verbatim
The install-path tests run first because gstack may install /browse without asm knowing.
browse_mode=installed: read the recorded browse_skill path.browse_mode=lease: run asm deps acquire browse --session <vpe_session> --json; read the
returned skillMdPath directly.browse_mode=none, or step 2 failed: fail-soft — print the install lines, then ask the
user for a local file or saved HTML of the page. Never score a URL you could not load.finally. If step 2 ran, run asm deps release --session <vpe_session> --json
once at every terminal outcome, stops included.Phase 3 writes viral-evaluation.md. An inline-only run never syncs or stashes a checkout.
When the output path is inside a git worktree, follow references/repo-sync.md: confirm with
the user, then stash, sync and pop before the write.
evidence-dir → read its page.html + head.json; no /browse./browse skill (headless). Capture rendered copy, headline, CTAs, pricing
section, testimonials, nav, and <head> meta (og:image, twitter:image, description,
<title>).index.html, a JSX/TSX/MDX page, a built dist/) → read it directly.index.html, app/page.tsx,
pages/index.*, src/App.*, landing/, marketing/, public/). If exactly one
candidate is found, use it. If none or several are found, ask the user.price, plan, tier, checkout, subscription, free, trial, stripe,
paddle and read the matches.references/principles.md).
When nothing matches, record "no billing evidence found" — that is itself evidence.references/principles.md — the full rubric.judgment/visual principle (hero punch, emotional headline, OG-image design,
founder presence, novelty, price-vs-competitor) low-confidence and record what a human
must eyeball. When a principle's evidence source was unavailable (no codebase access, a
failed fetch), tag it low-confidence as well and say why.scripts/virality_score.py — pass every verdict as
{"verdicts": {"<n>": "PASS|PARTIAL|FAIL", ...}} (contract in references/principles.md →
Scoring). Do not tally or round in prose.references/report-template.md and build the report in that exact shape: verdict
block → scorecard (all 32) → top fixes → what's working → caveats.references/repo-sync.md when needed, then write
viral-evaluation.md to output-dir, else the repo root, else the current working
directory.references/final-report.md, including its status rule.With orchestrated-by, evidence-dir, skip-checks or output-dir lines, follow
references/orchestrated-runs.md; without them nothing changes. All 32 principles are
always scored.
This is a critique tool — its value is candor. The full candor rules are in
references/honest-evaluation.md.
After each phase, emit the report from references/step-reports.md — Gather Evidence,
Evaluate, Prioritize & Report.
scripts/virality_score.py over all 32 verdicts;
verdicts and evidence remain model-owned.references/final-report.md: Result: PASS | PARTIAL | BLOCKED
first, then Evidence, Uncertainty and Decision.A viral-evaluation.md report (plus an inline summary and a Result:-first final response)
containing:
/browse missing for a live URL: fail-soft per the Dependency Preflight.references/repo-sync.md before
writing.references/principles.md — the 32-principle rubric: per-principle checks, evidence source,
PASS/PARTIAL/FAIL bars, confidence flags, and the scripts/virality_score.py scoring
contract. Load every run.references/report-template.md — the exact report shape, with a calibration example.references/final-report.md — the final chat response: status rule (PASS / PARTIAL /
BLOCKED), response shapes, and the reader-check criteria.references/repo-sync.md — the confirm-first sync procedure for an output path inside a git
worktree.references/step-reports.md — Step Completion Report formats for the three phases.references/honest-evaluation.md — the candor rules: no inflation, no invented flaws,
labelled low-confidence.scripts/virality_score.py — deterministic Virality Score + tier helper (tests/ holds its
stdlib fixtures).