Files
zeekay 1b367e2b62 chore: rebase the tree onto upstream master
The tree was a debranded snapshot of upstream taken around 2026-02-20, and
upstream has moved about five months since. This replaces it with upstream
master, mechanically re-derived: bin/debrand does the rename, and the
pipeline and squashed migrations are restored from the shipped tree.

Not a merge. The previous import replaced the tree wholesale in a single
commit, so there is no shared content history to merge against. Reproducing
the rename on the new tree is what actually converges.

What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints,
compose files, LLM.md, and insights/migrations. The squashed initial
migration is load-bearing — the live database records it by name, so
upstream's ~918 individual migrations cannot come back.

Nine products are dropped as unreferenced. Twenty-one more that we do not run
are kept anyway because the core app still imports them; unpicking those is a
refactor and does not belong in a rebase.

This base does not build yet, and the reasons are not in the rename:
upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against
our 4.2, and the dependency manifests still name upstream packages that we
republish under our own names. Those are decisions, not renames.
2026-08-01 15:44:40 -07:00

2.5 KiB

name, description
name description
finding-experiments Resolves a Insights 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, paused, exposure frozen, stopped, archived), or otherwise refers to an experiment by anything other than its concrete ID.

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 Insights-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, paused, exposure_frozen, 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
  • 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