Skip to main content

finding-experiments

Resolves a PostHog experiment reference from natural language to a concrete experiment ID by browsing `experiment-list` (not feature-flag tools), with disambiguation when multiple experiments match. Use when the user names or quotes an experiment ("split test demo", "the File engagement boost experiment", "onboarding retention test", "landing page hero experiment", "pricing experiment"), describes it loosely ("the signup experiment", "my pricing test", "the one with the new checkout"), uses a relative reference ("latest", "most recent", "the one I created yesterday"), filters by status (running, draft, stopped, archived), or otherwise refers to an experiment by anything other than its concrete ID.

Stars
34,779
Source
PostHog/posthog
Updated
2026-05-31
Slug
PostHog--posthog--finding-experiments
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/PostHog/posthog/HEAD/products/experiments/skills/finding-experiments/SKILL.md -o .claude/skills/finding-experiments.md

Drops the SKILL.md into .claude/skills/finding-experiments.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Finding experiments

Users refer to experiments by name, description, or relative references — not by ID. This skill resolves natural language references to concrete experiment IDs.

How to find an experiment

Use the experiment-list tool from the Posthog-local MCP server.

IMPORTANT: Do NOT use feature-flag-get-all or any feature flag tool to find experiments. Use the dedicated experiment list tool: experiment-list.

This tool returns experiments with their id, name, status, feature_flag_key, start_date, end_date, and created_at. Browse the returned list to find the experiment matching the user's reference:

  • By name: scan the name field for matches
  • By recency: results are ordered newest first by default
  • By status: match the status field (draft, running, stopped)
  • By flag key: match the feature_flag_key field

After finding matches

  • Exactly one match: Use it. Confirm with the user by name before destructive actions (delete, ship, end).
  • Multiple matches: List them with name, status, and creation date. Ask the user to pick.
  • No matches: Tell the user. Suggest checking archived experiments or different terms.

Get full details if needed

After resolving to an ID, call experiment-get for the full object (metrics, flag details, parameters).

Examples

User: "pause my signup experiment"

Agent:
1. Calls experiment-list
2. Scans results, finds "New signup process" (ID: 1371, status: running)
3. Proceeds to pause experiment 1371

When NOT to search

  • You already have the experiment ID from earlier in the conversation
  • The user just created the experiment — you have the ID from the create response
  • The user provided the ID directly