Official agent skill

Managing Experiment Lifecycle

by PostHog in PostHog/posthog-foss

Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and…

OfficialMITAuto-check passed

Install Managing Experiment Lifecycle

skills CLI
$ npx skills add PostHog/posthog-foss --skill managing-experiment-lifecycle -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PostHog/posthog-foss managing-experiment-lifecycle --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PostHog/posthog-foss.git skills-src && mkdir -p .claude/skills && cp -r skills-src/products/experiments/skills/managing-experiment-lifecycle .claude/skills/managing-experiment-lifecycle && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
managing-experiment-lifecycle
GitHub stars
721
Token cost
~4.8k tokens
SKILL.md length
2,241 words
Files
1
Skills in repo
213
Repo updated
First seen
Licence
MIT

At a glance

Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and…

  • Works in 2 steps: Who sees what variant? (user perspective) → Who is in my analysis? (statistical…
  • : user asks to launch
  • SKILL.md covers State diagram, Actions and their implications, Decision framework and Resolving experiments, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Managing Experiment Lifecycle is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and migrating a legacy experiment to the new experiments engine. Covers preconditions, implications for variant assignment and analysis, and the decision framework for when to use each action. TRIGGER when: user asks to launch, pause, resume, end, ship, archive, reset, duplicate, or copy an experiment to another project, to…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: PostHog FOSS is a read-only mirror of PostHog, with all proprietary code removed. NOTE: This repo is synced automatically from the main PostHog repo. Please raise any issues and… The licence is MIT.

When your agent uses it

  • : user asks to launch
  • Copy an experiment to another project
  • Freeze/unfreeze exposure (stop enrolling new users while metrics keep flowing
  • Reopen enrollment)

Example prompts

  • “Use the managing-experiment-lifecycle skill to guide experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure…”
  • “/managing-experiment-lifecycle”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Who sees what variant? (user perspective)
  2. Who is in my analysis? (statistical perspective)

What it can do on your machine

Read from SKILL.md and the folder at commit 2c48221. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Managing Experiment Lifecycle loads about 4.8k tokens when it runs. Until then it costs about 237 tokens; SKILL.md has 2,241 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~237
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from PostHog/posthog-foss at commit 2c48221, republished under its MIT licence (© PostHog). 2,241 words, ~4,750 tokens.

Download SKILL.mdSave it as .claude/skills/managing-experiment-lifecycle/SKILL.md (or your agent's skills folder).
name
managing-experiment-lifecycle
description
Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and migrating a legacy experiment to the new experiments engine. Covers preconditions, implications for variant assignment and analysis, and the decision framework for when to use each action. TRIGGER when: user asks to launch, pause, resume, end, ship, archive, reset, duplicate, or copy an experiment to another project, to freeze/unfreeze exposure (stop enrolling new users while metrics keep flowing, or reopen enrollment), or to migrate, convert, move or upgrade a legacy experiment to the new engine or the new metric format. DO NOT TRIGGER when: user is creating an experiment (use creating-experiments), configuring rollout (use configuring-experiment-rollout), or setting up metrics (use configuring-experiment-analytics).

Managing experiment lifecycle

This skill covers experiment state transitions — what each action does, when to use it, and how it affects variant assignment and analysis.

State diagram

text
draft ──launch──▶ running ──end──▶ stopped ──archive──▶ archived
                  │ │   ▲              │
                  │ pause resume  ship_variant
                  │ │   │         (also ends if running)
                  │ ▼   │
                  │ paused (flag inactive, still "running" status)
                  │
                  ├─freeze_exposure──▶ exposure_frozen ──unfreeze_exposure──▶ running
                  │                    (enrollment closed, metrics keep flowing)

Any non-draft state ──reset──▶ draft

Actions and their implications

For each action, the two key questions:

  1. Who sees what variant? (user perspective)
  2. Who is in my analysis? (statistical perspective)
Launch (experiment-launch)

Transitions draft → running. Activates the feature flag and sets start_date.

  • Preconditions: must be in draft, flag needs 2-20 multivariate variants (no specific key required; the baseline defaults to "control" when present, else the first variant)
  • Pre-launch checklist: has at least one metric? Variants correct? Flag implemented in code?
  • Variants: users start being bucketed into variants based on the configured split
  • Analysis: data collection begins from start_date

No request body needed.

One optional item worth a single mention at launch, when the change is user-facing and substantial: a short survey, shown when users finish the experimented flow (e.g. triggered by the form's submit event), collects qualitative feedback (a rating, an optional comment) alongside the metrics, from day one. Offer it once as setup advice, drop it if declined, and never let it delay the launch. Do not raise it at end or ship-variant time — there it reads as a gate on rolling out. → See references/qualitative-feedback.md in [[diagnosing-experiment-health]]

Pause (experiment-pause)

Deactivates the feature flag. Users fall back to the default experience (typically control).

  • Preconditions: must be running and not already paused
  • Variants: flag is not returned by /decide — no new exposure events recorded
  • Analysis: no new data while paused, but existing data is preserved. Experiment stays "running".

No request body. Use experiment-resume to reactivate.

Resume (experiment-resume)

Reactivates the feature flag after a pause. Users are re-bucketed deterministically into the same variants.

  • Preconditions: must be paused
  • Variants: same assignment as before pause — deterministic bucketing
  • Analysis: exposure tracking resumes

No request body.

Freeze exposure (experiment-freeze-exposure)

Stops enrolling new users while everything else keeps going: already-enrolled users keep their variant, metrics keep flowing, and end_date stays null. Snapshots the already-exposed users into a static cohort and narrows every release condition on the feature flag to that cohort. Status becomes exposure_frozen.

Use for long-horizon metrics (revenue, LTV, retention, renewals) when the sample is big enough and you want to stop adding users without stopping measurement. Neither end nor pause fits that job: end stops measurement at end_date, and pause deactivates the flag for everyone.

  • Preconditions: must be running (not draft, stopped, paused, or already frozen), flag linked and not deleted, at least one release condition
  • Variants: enrolled users keep their variant (deterministic bucketing); new users no longer match the flag
  • Analysis: exposures stop growing (a flat exposure curve is expected), but metric data keeps accumulating for enrolled users

Timing: the exposure scan and cohort snapshot run synchronously inside the API call, and duration scales with the number of exposed persons — an experiment with tens of thousands of exposed users can take on the order of tens of seconds. Set expectations with the user, wait for the response, and don't treat a slow call as a failure or retry it.

Not applicable (400) for:

  • Group-aggregated experiments — the flag targets groups, not persons, and a person cohort can't freeze group-based matching
  • Experiments in a holdout — holdout assignment is evaluated before release conditions, so new users would keep entering the holdout
  • Flags with early access conditions — also evaluated before release conditions, so freezing can't stop new enrollment
  • Mostly-anonymous exposure (e.g. experiments on logged-out surfaces) — anonymous "personless" users can never match a person cohort and would silently lose their variant, so freezes with more than a small unresolved share are rejected
  • Very large exposed sets — the exposure scan is bounded by a person cap and a timeout; over either bound the API returns a clean 400 rather than freezing

When a freeze is rejected, explain which limitation applies rather than retrying — these are structural, not transient.

Interactions with other actions: ship-variant and reset strip the freeze (both also delete the snapshot cohort); end does NOT touch the flag, so ending a frozen experiment leaves the flag narrowed to the snapshot cohort. SDKs using local evaluation can't resolve static cohorts, so a frozen flag evaluates via the /decide endpoint (standard static-cohort behavior). Exposures ingested in the final moments before freezing may miss the snapshot (ingestion lag).

No request body. Use experiment-unfreeze-exposure to reopen enrollment.

Unfreeze exposure (experiment-unfreeze-exposure)

Reopens enrollment on an exposure-frozen experiment. Removes the snapshot-cohort condition and freeze markers from every release group, restoring the flag's original targeting, and deletes the snapshot cohort. Status returns to running.

  • Preconditions: exposure must be frozen (and the experiment not ended)
  • Variants: enrolled users keep their variant; new users can enroll again under the original release conditions
  • Analysis: exposures resume growing

Can introduce bias: reopening enrollment re-exposes the flag to a potentially new population. Users who enrolled before the freeze and those who enroll after the unfreeze joined at different times, and possibly under different conditions — mixing the two cohorts in one analysis can bias the results. Warn the user before unfreezing, especially after a long freeze or if the audience or product changed in between. If they only wanted to sanity-check the frozen results, they may not need to unfreeze at all.

No request body.

End (experiment-end)

Sets end_date and transitions to stopped. The feature flag is NOT modified.

  • Preconditions: must be running (launched, not already stopped)
  • Variants: users continue seeing assigned variants (flag stays active)
  • Analysis: results frozen to data up to end_date

Optional body: conclusion ("won", "lost", "inconclusive", "stopped_early", "invalid") and conclusion_comment.

Use this when you want to freeze results without changing what users see. If the experiment's exposure was frozen, ending does not strip the freeze — the flag stays narrowed to the snapshot cohort (unfreeze first, or ship a variant, if that's not desired).

Ship variant (experiment-ship-variant)

Rewrites the feature flag so the selected variant is served to 100% of users.

  • Preconditions: must be launched (running or stopped). Cannot ship from draft.
  • Variants: ALL users see the shipped variant. The flag is rewritten with a catch-all group.
  • Analysis: if still running, the experiment is also ended (end_date set)

Always confirm with the user before shipping — this permanently rewrites the feature flag.

Required: variant_key (e.g. "test"). Optional: conclusion, conclusion_comment.

Returns 409 if an approval policy requires review before the flag change.

Flag cleanup PR (option on end and ship variant)

Both experiment-end and experiment-ship-variant accept open_cleanup_pr: true. A background PostHog Code task then removes the experiment's feature flag code and opens a draft pull request in the team's connected GitHub repository.

  • Only set this when the user asks for it or confirms it.
  • The key must carry the task:write scope, or the whole request is rejected with a 403 and the experiment is not ended or shipped.
  • The cleanup runs only when the call actually ends the experiment and a conclusion is set — shipping an already-stopped experiment, or ending without a conclusion, skips it. It also requires the team to have the flag cleanup feature enabled; silently skipped when it isn't.
  • repository ("organization/repository") picks the target when several repositories are connected. Omit it to fall back to the experiment's saved repository, the team default, or the only connected repository. With several candidates and no default, the cleanup is skipped unless provided.
  • Track progress with experiment-cleanup-task — the PR URL appears there once opened; a cleanup typically takes several minutes.
Archive (experiment-archive)

Hides a stopped experiment from the default list view.

  • Preconditions: must be stopped (end_date set)
  • Variants: no change — flag is unaffected
  • Analysis: no change — results remain accessible

No request body. Can be restored by setting archived=false via experiment-update.

Reset (experiment-reset)

Returns an experiment to draft state. Clears start_date, end_date, conclusion, and archived.

  • Preconditions: must not already be in draft
  • Variants: flag is left unchanged — users continue seeing assigned variants
  • Analysis: previously collected data still exists but won't be included in results unless start_date is adjusted after re-launch

No request body.

Duplicate (experiment-duplicate)

Creates a copy as a new draft with fresh dates and no results.

Important: always provide a unique feature_flag_key different from the original. If the same key is used, both experiments share a flag — changes to one affect both.

Optional: custom name (defaults to "Original Name (Copy)").

Show full SKILL.md (878 more words)Show less
Copy to project (experiment-copy-to-project)

Copies an experiment into a different project in the same organization as a new draft. Use this instead of experiment-duplicate when the copy should land in another project; use duplicate when it stays in the same project.

  • Preconditions: source must not use legacy metrics; target project must be in the same organization and you must have write access to it. Cannot copy across organizations or regions.
  • What's copied: name, description, type, parameters, filters, primary/secondary metrics (fresh uuids), stats and scheduling config, exposure criteria. Not copied: saved-metric references (project-scoped), holdout, exposure cohort, dates, results, conclusion.
  • Feature flag: target_team_id is required; feature_flag_key is optional. The resolved key is then looked up in the target project, and the lookup result — not whether you passed the key — decides what happens:
    • If feature_flag_key is omitted: it defaults to the source experiment's flag key. That key normally doesn't exist in the target project, so a new flag with it is created there. (The default can still collide — see the next point — so to be safe, pass an explicit key.)
    • If the resolved key already exists as a flag in the target project: the copy shares that existing flag instead of creating one. Both experiments then point at the same flag, so lifecycle ops (ship, pause) on either affect both. The existing flag must be multivariate with 2-20 variants, otherwise the call returns 400.
    • If the resolved key does not exist in the target project: a new, independent flag is created with that key. To guarantee independence, pass a feature_flag_key that doesn't already exist in the target.

Confirm the source experiment and target project by name before calling — this writes into a project the user isn't looking at. The returned experiment (and its id) belongs to the target project.

Migrate to the new engine (experiment-migrate)

Moves a legacy experiment (is_legacy: true, metrics of kind ExperimentTrendsQuery or ExperimentFunnelsQuery) onto the new experiments engine.

Never hand-roll this. Creating a new experiment and copying the metrics over produces a second feature flag, so the new experiment starts with no exposures and no data. experiment-migrate reuses the original flag, so the migrated experiment keeps its audience from the first minute.

  • Preconditions: the experiment must be legacy. A 400 says it is already on the new engine.
  • What happens: a new experiment is created with the same configuration and the metrics converted to the new format. The legacy one is left untouched and keeps its results, so the project ends up with two experiments on one feature flag.
  • Legacy shared metrics: converted in the same call. Each gets a new shared metric that the migrated experiment links to.
  • Variants: unchanged — the flag is shared, so users keep the variant they have.
  • Analysis: the migrated experiment reads the same exposures. Results are recomputed by the new engine, so numbers can differ from the legacy view.

Tell the user there will be two experiments before you call it, and link both afterwards. Calling it again returns the experiment the first call created, so a retry is safe.

No request body.

A legacy experiment also refuses most edits: experiment-update returns 400 for anything but name, description and end_date. Those three still work on the legacy experiment, so edit it directly and do not migrate for them. Migrate only when the user asks for it, or when a requested change touches a field the guard blocks, and then apply the change to the migrated experiment.

Decision framework

SituationActionTool
Draft ready, flag implemented, metrics setLaunchexperiment-launch
Clear winner, significant resultsShip the winning variantexperiment-ship-variant
No significant difference after sufficient timeEnd as inconclusiveexperiment-end
Something wrong, need to stop exposure temporarilyPauseexperiment-pause
Resume after pauseResumeexperiment-resume
Stop enrolling new users, keep measuring enrolledFreeze exposureexperiment-freeze-exposure
Reopen enrollment after a freezeUnfreeze exposureexperiment-unfreeze-exposure
Experiment ended, ready to clean upArchiveexperiment-archive
Need to start over with same configReset to draftexperiment-reset
Want a similar experiment with a fresh startDuplicateexperiment-duplicate
Want the same experiment in a different projectCopy to another projectexperiment-copy-to-project
Experiment is legacy and needs the new engineMigrateexperiment-migrate

Resolving experiments

All lifecycle actions require an experiment ID. If you don't have one, load the finding-experiments skill to resolve the user's reference (name, description, "latest", etc.) to a concrete ID before proceeding.

Error handling

Error messageMeaning
"Experiment has already been launched."Can't launch a non-draft experiment
"Experiment has not been launched yet."Can't end/pause/ship a draft
"Experiment has already ended."Can't end/pause a stopped experiment
"Experiment is already paused."Use resume instead
"Experiment is not paused."It's already active
"Experiment is already in draft state."Nothing to reset
"Experiment is already archived."Already done
"Experiment exposure is already frozen."Nothing to freeze
"Experiment exposure is not frozen."Nothing to unfreeze
"Cannot freeze a paused experiment. Resume it first."Resume, then freeze
"Group-aggregated experiments cannot have their exposure frozen."Structural limitation — don't retry
"This experiment uses legacy metric formats..."Migrate it first — experiment-migrate

When you get a 400, explain the situation to the user rather than retrying.

  • creating-experiments — create the next experiment from scratch
  • diagnosing-experiment-health — sanity-check results before a ship or end decision
  • configuring-experiment-rollout — split and rollout changes, which are config edits rather than lifecycle operations

© PostHog, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in products/experiments/skills/managing-experiment-lifecycle of PostHog/posthog-foss.

Open the folder on GitHubat commit 2c48221

Compare with similar skills

Managing Experiment Lifecycle next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Managing Experiment Lifecycle compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Managing Experiment Lifecycle this skillPostHog/posthog-foss721—~4.8kAutomated safety check: PassMIT
Resume Version Managerdavila7/claude-code-templates32k2 repos~2.1kAutomated safety check: PassMIT
Caveman Experiment ManagerJuliusBrussee/caveman110k1 repos~975Automated safety check: PassApache-2.0
Stage Launchalirezarezvani/claude-skills28k—~964Automated safety check: PassMIT
Resume Managerailabs-393/ai-labs-claude-skills454—~5.2kAutomated safety check: PassMIT
Shipping and Launch Checklistaddyosmani/agent-skills102k1 repos~2.8kAutomated safety check: PassMIT

Similar skills

  • Resume Version Manager

    davila7/claude-code-templates

    Track different resume versions, maintain a master resume, and manage tailored variants.

    32k GitHub starsUsed in 2 repos~2.1k tokens
    Business, Finance & HRAuto-check passed
  • Caveman Experiment Manager

    JuliusBrussee/caveman

    Reads the state and results of Caveman Cloud experiments and reports one recommendation or a block, without changing an experiment's lifecycle itself.

    110k GitHub starsUsed in 1 repo~975 tokens
    AI & LLM EngineeringAuto-check passed
  • Stage Launch

    alirezarezvani/claude-skills

    Phase 2 of building a Claude Managed Agent — turn a validated build sheet into exact API payloads and a resumable BYOK curl launch script, then launch (environment → agent → session → kickoff) using…

    28k GitHub stars~964 tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed
  • Resume Manager

    ailabs-393/ai-labs-claude-skills

    This skill should be used whenever users need help with resume creation, updating professional profiles, tracking career experiences, managing projects portfolio, or generating tailored resumes for…

    454 GitHub stars~5.2k tokensUpdated 11 mo ago
    Business, Finance & HRAuto-check passed
  • Shipping and Launch Checklist

    addyosmani/agent-skills

    Prepares a production launch with a pre-launch checklist, monitoring, a staged rollout and a rollback plan so every release is reversible and observable.

    102k GitHub starsUsed in 1 repo~2.8k tokens
    DevOps & CloudAuto-check passed
  • Content Management Systems

    github/awesome-copilot

    Official

    Workflow for building and modifying content management systems across WordPress, Shopify, Wix, Squarespace, Drupal, WooCommerce, Joomla, HubSpot CMS Hub, Webflow, Adobe Experience Manager, and…

    40k GitHub starsUsed in 1 repo~1.3k tokens
    Sales & SupportAuto-check passed

More from PostHog/posthog-foss

All 213 skills in this repo
  • Authoring Log Alerts

    PostHog/posthog-foss

    Official

    Author useful, low-noise log alerts on services in a PostHog project.

    721 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Autoresolving PR Conflicts

    PostHog/posthog-foss

    Official

    Operating procedure for the conflict-autoresolver agent: sweep open PostHog/posthog PRs that conflict with master, resolve the trivial conflicts (generated artifacts deterministically, source…

    721 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Official

    Help users debug PostHog Error Tracking stack-trace symbolication for any supported platform — JavaScript/TypeScript web, React Native (Hermes), Android (Proguard / R8), or iOS / macOS (dSYM).

    721 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Exploring Apm Traces

    PostHog/posthog-foss

    Official

    Investigates distributed application performance using PostHog APM (OpenTelemetry span) data via MCP.

    721 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Exploring LLM Traces

    PostHog/posthog-foss

    Official

    Debug and inspect LLM/AI agent traces using PostHog's MCP tools.

    721 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Investigate Metric

    PostHog/posthog-foss

    Official

    Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries.

    721 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Managing Experiment Lifecycle

What does Managing Experiment Lifecycle do?

Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and…. Managing Experiment Lifecycle is an agent skill from PostHog/posthog-foss, published by the product's own GitHub organization. Guides experiment state transitions: launching, pausing, resuming, freezing/unfreezing exposure, ending, shipping variants, archiving, resetting, duplicating, copying to another project, and migrating a legacy experiment to the new experiments engine.

When should I use Managing Experiment Lifecycle?

Managing Experiment Lifecycle fits situations like: : user asks to launch; copy an experiment to another project; freeze/unfreeze exposure (stop enrolling new users while metrics keep flowing; reopen enrollment).

How do I install Managing Experiment Lifecycle in Claude Code?

Run `npx skills add PostHog/posthog-foss --skill managing-experiment-lifecycle -a claude-code`. Or copy the skill folder (products/experiments/skills/managing-experiment-lifecycle in PostHog/posthog-foss) into .claude/skills/managing-experiment-lifecycle in your project. Claude Code loads it when a task matches its description.

How do I install Managing Experiment Lifecycle in Codex?

Run `npx skills add PostHog/posthog-foss --skill managing-experiment-lifecycle -a codex`. Or copy the skill folder (products/experiments/skills/managing-experiment-lifecycle in PostHog/posthog-foss) into .agents/skills/managing-experiment-lifecycle in your project. Codex loads it when a task matches its description.

Can I use Managing Experiment Lifecycle in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PostHog/posthog-foss --skill managing-experiment-lifecycle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/managing-experiment-lifecycle, .gemini/skills/managing-experiment-lifecycle, .github/skills/managing-experiment-lifecycle and .opencode/skills/managing-experiment-lifecycle in your project.

What does Managing Experiment Lifecycle need to run?

SKILL.md names no scripts, command-line tools or credentials: Managing Experiment Lifecycle is instructions for the agent only.

Does Managing Experiment Lifecycle access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Managing Experiment Lifecycle safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Managing Experiment Lifecycle use?

Managing Experiment Lifecycle is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Managing Experiment Lifecycle use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Managing Experiment Lifecycle?

Skills that share tags, products or a category with Managing Experiment Lifecycle: Resume Version Manager (davila7/claude-code-templates, 32k stars), Caveman Experiment Manager (JuliusBrussee/caveman, 110k stars), Stage Launch (alirezarezvani/claude-skills, 28k stars) and Resume Manager (ailabs-393/ai-labs-claude-skills, 454 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Managing Experiment Lifecycle?

PostHog (a GitHub organization, an official publisher) maintains it in PostHog/posthog-foss, which has 721 GitHub stars. The repository holds 213 skills in this directory. The repository was last updated on October 7, 2026.

Source: PostHog/posthog-foss on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.