Install
$ agentstack add skill-growthbook-skills-experiment-brainstorm ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
experiment-brainstorm
Propose new experiment ideas grounded in the team's past stopped experiments. Read history first; propose based on what actually moved metrics, where guardrails failed, and which tags or projects under-explored.
All API calls go through the bundled helper: ${CLAUDE_PLUGIN_ROOT}/scripts/gb-call. It needs GB_API_KEY — set in your shell, or written to ~/.config/growthbook/.env by /growthbook:setup. If unset or invalid, gb-call's error message points back at /growthbook:setup.
Workflow
- Pull the experiment list, most recent first.
``bash gb-call GET '/api/v1/experiments?limit=50&status=stopped' ``
Returns up to 50 experiments per page (the API cap).
- Fetch results for each stopped experiment. Loop over the stopped IDs:
``bash gb-call GET /api/v1/experiments//results ``
Pace the calls — the API is rate-limited at 60 requests per minute. Cap the pull at ~20 experiments unless the user explicitly wants more; that's plenty for pattern-finding and stays well inside the budget.
- Read the patterns. From the result payloads, identify three things before proposing anything:
- What's working — themes shared by experiments where the test variation beat the control (which projects, which surfaces, which kind of change).
- What's stalling — themes shared by losers and inconclusive tests.
- What's under-explored — projects, tags, or surfaces with few experiments compared to the rest.
- Compute light aggregate context. Mentally tally — no need to surface a full dashboard:
- Approximate win rate (won / total settled).
- Top 3 winners by absolute lift on the primary metric.
- Top 3 losers by absolute lift.
- Any experiments flagged for SRM (sample ratio mismatch).
- Project / tag distribution.
- Propose 5–7 ideas. Each proposal contains:
- Hypothesis in one sentence: "If we change X, then Y will improve, because Z."
- Why this is grounded — one sentence linking it to a specific past experiment (winner to extend, loser to retry differently, gap to fill). Cite the experiment name or ID.
- Primary metric — pick one. State the type (proportion, mean, ratio, quantile) and why.
- Expected effect size — order of magnitude only ("comparable to the +3.2% lift on the checkout flow test"), not a precise number.
- Risk to watch — one guardrail metric or potential regression.
- Present with structure. Lead with the patterns you saw (1–2 lines each), then the proposals. End by asking the user which to refine — do not start designing or creating experiments inside this skill. Hand off to
experiment-designfor the one(s) the user picks.
Guardrails
- Stopped experiments only. Filter drafts and running experiments out of your synthesis. If the user asks about the live pipeline, that's a different question — point them at
flag-discoveryorexperiment-designinstead. - Ground every proposal. Cite the specific past experiment(s) you're building on. No proposals based on generic best practices.
- Don't repeat losers without saying why. If a proposal mirrors a recent loser, say so explicitly and explain what's different this time.
- Win rate definition:
won / (won + lost + inconclusive). Don't invent another formula. - Watch for SRM and guardrail issues in the history. If many experiments show SRM failures, mention it and propose at least one idea aimed at improving experiment hygiene rather than another product test.
- Propose, do not create. Never POST to
/api/v1/experiments. The user's next step isexperiment-designfor the proposal they want to pursue. - Avoid metric-fishing proposals. Each idea has one (occasionally two) goal metric. Don't propose tests with five metrics hoping one moves — that's the "too many goal metrics" footgun. GrowthBook's decision framework supports up to two goal metrics, but more dilutes power and confuses the ship/kill call.
- Rate limit awareness. 50 experiments + 20 result fetches = ~21 calls; well under the 60 rpm cap. If the user wants more depth, ask before fanning out to >40 calls.
Endpoints used
GET /api/v1/experiments?limit=50&status=stopped— list experiments (returns metadata including status). Cap is 50 per page.GET /api/v1/experiments/{id}/results— full results for one experiment. One call per stopped experiment in scope.
Output template
## Patterns from your last N stopped experiments
- Working:
- Stalling:
- Under-explored:
## Proposed experiments
### 1.
- Hypothesis: …
- Grounded in:
- Primary metric: ()
- Expected effect:
- Risk:
…
Pick one or two and I'll hand off to `experiment-design` to scope it.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: growthbook
- Source: growthbook/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.