算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
founder-validation【设计与创意】Use when the user asks to validate a business idea, design experiments, draft interview scripts, capture evidence from real-world tests, or review assumption status. Phase 2 subskill of the founder family. Validation SUPPORT — designs experiments, drafts interview scripts (Mom Test), captures evidence, reads analytics via browser MCP (Envelope D). Yo…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
founder skill. Trigger on: "validate my idea", "design an
experiment", "Mom Test", "interview script", "capture evidence", "what do we know", "assumption
ledger", "read my analytics", "evidence review".Child of founder. Validation support — owns the assumption ledger, experiment design, interview
scripts (Mom Test protocol), browser MCP analytics reading (Envelope D), and evidence capture with
user-reported artifacts. The user is the validator. This skill is the infrastructure.
Scope: Validation infrastructure. Designs experiments, drafts scripts, captures user-reported evidence, reads analytics, reviews evidence gaps. Does NOT autonomously validate a business. The user runs the experiments and reports back.
Siblings (parent = founder):
founder-ideation — Phase 1 — adversarial brainstorm + data groundingfounder-business-model — Phase 2 — calculator mode unit economicsfounder-sprint — Phase 2 — lean gatekeeper stage machinefounder-gtm — Phase 3 (deferred) — positioning, distribution, channel selectionInherited hard rules (from parent founder): HR-1 through HR-11 all apply. Key inherited
constraints: no valuation/legal/tax advice (HR-1, HR-2), no LLM-generated TAM (HR-3), kill
criteria required on all ideas (HR-4), data citations required (HR-5), founder is pre-execution
only (HR-6), venture-brief is canonical state (HR-7), intake required (HR-8), physical-world
bridge preferred (HR-9), epistemic honesty first-class (HR-10), Reddit privacy (HR-11).
design_experimentGiven an assumption from the venture-brief, produce an experiment design.
Input:
mode: "design_experiment"
assumption_id: uuid # links to venture-brief.assumptions[]
assumption_claim: string # the claim to test (from assumptions[].claim)
biz_type: enum # from venture-brief intake
niche: string # from venture-brief intake
stage: enum # from venture-brief intake
Flow:
venture-brief.yaml — load the assumption, existing experiments, intake context.
Refuse if missing or if assumption_id not found.references/experiment-design.md):
experiment:
id: <uuid>
assumption_id: <uuid>
method: <selected>
hypothesis: string # "If [assumption] is true, then [observable outcome]"
success_criteria: string # quantitative threshold
kill_criteria: string # what result would falsify the assumption
minimum_sample_size: int # method-dependent minimum
timeline: string # realistic, not aspirational
steps: list[string] # 5-8 concrete steps the user takes
tools_needed: list[string] # what the user needs (Calendly, Typeform, etc.)
cost_estimate: string # $0 / <$50 / <$200 / custom
risks: list[string] # what could go wrong with this experiment
status: plannedOutput: Structured experiment design ready for the user to execute.
draft_interviewProduce a Mom Test interview script for a specific assumption.
Input:
mode: "draft_interview"
assumption_id: uuid # which assumption this interview targets
target_persona: string # who you're interviewing ("UK accountant, 1-5 person practice")
interview_context: string # optional — "first interview" / "follow-up after landing page"
Flow:
references/interview-scripts-mom-test.md):
interview_script:
target_assumption: string
target_persona: string
warm_up: list[string] # 2-3 context-setting questions
core_questions: list[
question: string
follow_up_prompts: list[string]
red_flag_answers: list[string] # answers that signal fake validation
green_flag_answers: list[string] # answers that signal real pain
]
closing: list[string] # 2-3 wrap-up questions including the "ask"
interviewer_notes:
- "If they say 'I would definitely use that' — DO NOT count this as validation (HR-V1)"
- "If they describe a workaround they've built — this is strong behavioral evidence"
- "If they can't describe the last time they had this problem — the pain may not be real"
Output: Complete interview script with red/green flag guidance.
capture_evidenceUser reports what happened. Skill structures it into the assumption ledger.
Input:
mode: "capture_evidence"
experiment_id: uuid # links to venture-brief.experiments[]
evidence:
type: enum # interview | landing_page | ad_test | survey | concierge | other
date: date
assumption_id: uuid
method: string # "Mom Test interview" / "fake door landing page" / etc.
raw_data:
interviews_completed: int
replies_received: int
objections_heard: list[string]
prepay_asks_made: int
conversion_events: int
qualitative_notes: string
Flow:
confirmed — ONLY with behavioral evidence (HR-V1): signup, prepay, workaround, switch.
Verbal "I'd buy it" does NOT qualify.falsified — experiment ran, results clearly below kill criteriainconclusive — experiment ran, results between success and kill criteria, or sample too
small to concludehigh (large sample, clear signal) / medium (adequate sample, some
noise) / low (small sample or ambiguous signal)experiments[experiment_id].evidence with the artifactexperiments[experiment_id].verdictexperiments[experiment_id].status: completedassumptions[assumption_id].evidence[] with referenceinterview_count if type is interviewVerdict logic detail:
| Evidence type | Confirmed requires | Falsified requires |
|---|---|---|
| Interview | Described workaround, switched from competitor, committed time/money | Could not describe the problem, no workaround, indifferent |
| Landing page | Signup rate > success_criteria, email collection > threshold | Signup rate < kill_criteria after minimum traffic |
| Ad test | CTR > success_criteria, CPC < ceiling | CTR < kill_criteria after minimum impressions |
| Pre-order | Pre-orders > 0 with real payment method | Zero pre-orders after adequate exposure |
| Concierge | Repeat usage, referral, willingness to pay for continued service | Dropped after first session, no referral |
| Survey | WARNING: surveys are the weakest method. Never mark confirmed from survey alone. | Can mark falsified if strong negative signal |
read_analyticsBrowser MCP Envelope D. Reads analytics dashboards and pages for evidence capture.
Input:
mode: "read_analytics"
target: string # URL or description: "my GA4 dashboard", "landing page at example.com"
metrics_of_interest: list[string] # what to look for: "signups", "bounce rate", "CTR"
Flow:
references/browser-mcp-allow-list.md):
navigate to load the URLget_page_text to extract visible contentread_page for DOM structure (forms, CTAs, key elements)read_network_requests for XHR/Fetch responses (GA4 JSON, GSC JSON)find for natural-language element searchjavascript_tool ONLY for read-only expressions (regex-gated — see allow-list)computer ONLY for screenshot + scroll — NO clicks, NO typinganalytics_snapshot:
url: string
captured_at: timestamp
metrics:
- name: string # "signup_rate", "bounce_rate", "sessions"
value: string # "3.2%", "150", "45s"
source: string # "page_text", "network_xhr", "dom_element"
observations: list[string] # "Landing page has no clear CTA above the fold"
raw_data_available: bool # whether XHR captured structured data
capture_evidence mode.Envelope D enforcement: Any tool call not on the allow-list is BLOCKED immediately (HR-V3).
The skill does not attempt the call and explains why it was blocked. See
references/browser-mcp-allow-list.md for the canonical allow-list with regex patterns for
javascript_tool gating.
evidence_reviewAcross all experiments, what do we know? What's still unvalidated? What should we test next?
Input:
mode: "evidence_review"
# No additional input needed — reads everything from venture-brief
Flow:
assumption_matrix:
- id: uuid
claim: string
experiments_run: int
latest_verdict: enum # confirmed | falsified | inconclusive | untested
confidence: enum
evidence_summary: string # 1-sentence summary of what we know
risk_level: enum # high (core viability) | medium (growth) | low (nice-to-have)
next_action: string # "run experiment X" / "sufficient evidence" / "pivot needed"
= 1 real interview logged (HR-V2)
Output:
evidence_review:
total_assumptions: int
tested: int
confirmed: int
falsified: int
inconclusive: int
untested: int
interview_count: int
sprint_ready: bool
sprint_blockers: list[string] # what's missing for Evidence -> Decision transition
gap_analysis: list[string]
recommended_next: list[string]
risk_flags: list[string]
The skill requires user-reported artifacts to close the loop. Evidence is NOT inferred from analytics alone — the user must explicitly report what happened.
evidence_artifact:
type: enum # interview | landing_page | ad_test | survey | concierge | other
date: date
assumption_id: uuid # links to venture-brief assumption
method: string # "Mom Test interview" / "fake door landing page" / etc.
raw_data: # user-reported
interviews_completed: int
replies_received: int
objections_heard: list[string]
prepay_asks_made: int
conversion_events: int
qualitative_notes: string
verdict: enum # confirmed | falsified | inconclusive
confidence: enum # high | medium | low
verdict_rationale: string
See references/evidence-capture-protocol.md for the full protocol including verdict logic,
confidence scoring, and edge cases.
founder (parent)
| intake populated, route to founder-validation
v
founder-validation (this skill)
| read venture-brief
|
|-- design_experiment --> writes to venture-brief.experiments[]
|-- draft_interview --> returns script to user
|-- capture_evidence --> user reports back, updates venture-brief
|-- read_analytics --> browser MCP Envelope D, feeds capture_evidence
|-- evidence_review --> gap analysis, sprint readiness check
|
v
founder-sprint (Phase 2)
| checks evidence_review.sprint_ready before Evidence -> Decision gate
| Failure | Detection | Response |
|---|---|---|
| No venture-brief / missing intake | File missing or intake incomplete | Return to parent: "intake missing"; parent asks the user |
| Assumption not found | assumption_id not in venture-brief.assumptions[] | Return error: "assumption {id} not found in venture-brief" |
| Evidence lacks raw numbers | capture_evidence validation fails (HR-V5) | Reject with: "evidence must include raw numbers — how many interviews? how many conversions?" |
| User claims "confirmed" on verbal intent only | HR-V1 check fails | Reject verdict, explain why verbal intent is not behavioral evidence |
| Browser MCP unavailable | Tool call fails or tools not in environment | Degrade gracefully: "Browser MCP not available — please provide analytics data manually" |
| Browser MCP tool not on allow-list | Tool name not in Envelope D list (HR-V3) | Block immediately, explain: "tool X is not permitted in Envelope D (read-only analytics)" |
| Zero experiments for an assumption | evidence_review surfaces it | Flag honestly as "untested" (HR-V4), recommend experiment |
| Schema version mismatch | venture-brief schema_version != 2 | Error and refuse to proceed (HR-7) |
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Marking "confirmed" because the user said "they loved it" | Verbal intent is the #1 source of false validation; people are polite, not committed | Require behavioral evidence: signup, prepay, workaround, switch (HR-V1) |
| Skipping interviews and going straight to landing page tests | Landing pages test messaging, not problem existence; you need interviews first | Interview first (Mom Test), then landing page to test positioning |
| Treating survey responses as strong evidence | Surveys measure stated preference, not revealed preference; gap is massive | Flag surveys as weak; never mark confirmed from survey alone |
| Running experiments without clear kill criteria | Without kill criteria, every result is "encouraging" | Experiment design MUST include kill criteria before execution |
| Using browser MCP to fill out forms or click buttons | Violates Envelope D (HR-V3); the skill is read-only | BLOCK any write action; explain the Envelope D boundary |
| Inferring evidence from analytics without user confirmation | Analytics can be misleading (bot traffic, self-visits, etc.) | Analytics feed into capture_evidence; user confirms the narrative |
| Advancing to Decision stage with 0 interviews | HR-V2 violation | Refuse and surface the gap: "0 interviews logged, need at least 1" |
| Fabricating confidence from lack of disconfirmation | Absence of evidence is not evidence of absence | Surface as "untested" or "inconclusive" (HR-V4) |
Read these as needed during validation work:
references/assumption-ledger-schema.md — YAML schema for structured assumptions, linking to
experiments and evidencereferences/experiment-design.md — methods matrix (interview / landing page / concierge /
pre-order / ad test / survey), sample sizes, timelines, success criteria templates, cost
estimatesreferences/interview-scripts-mom-test.md — Mom Test protocol, question templates per
assumption type, red flags, anti-patterns, "the three critical questions"references/browser-mcp-allow-list.md — Envelope D tool allow-list with regex patterns for
javascript_tool gating, blocked tools with reasonsreferences/evidence-capture-protocol.md — how to structure user-reported artifacts, verdict
logic per evidence type, confidence scoring, edge casesfounder-ideationfounder-business-modelforge via sprint