auditing-experiments-flags
Auditing experiments and feature flags
This skill teaches you how to run configuration audits on experiments and feature flags.
All checks use read_data and list_data โ no SQL queries are needed for Phase 1 checks.
Usage modes
Quick check (single entity)
When the user asks about a specific experiment or flag:
- Fetch the entity via
read_data(e.g.,read_data("experiments", id)orread_data("feature_flags", id)). - Apply the relevant checks from experiment checks or flag checks.
- Report findings inline as markdown, grouped by severity (CRITICAL first, then WARNING, then INFO).
- Include entity links as
[Experiment: name](/experiments/id)or[Flag: key](/feature_flags/id).
Scoped audit (one domain)
When the user asks to audit all experiments or all flags:
- Bulk-fetch via
list_data(e.g.,list_data("experiments")orlist_data("feature_flags")). - Run all checks for that domain against each entity.
- Group findings by severity, then by entity.
- Report as inline markdown.
Full audit (comprehensive)
When the user asks for a comprehensive audit of both experiments and flags:
- Fetch all experiments via
list_data("experiments")and all flags vialist_data("feature_flags"). - Run all experiment checks and all flag checks.
- Apply recurring patterns to identify patterns across multiple findings.
- If there are more than 5 entities with findings, output as a notebook artifact via
create_notebookfor easier navigation. Otherwise report inline.
Output format
For each finding, include:
- Severity badge:
๐ด CRITICAL,๐ก WARNING, or๐ต INFO - Check name: Which check produced this finding
- Entity link: Markdown link to the entity
- What's wrong: One-sentence description
- Action: What to do about it (see remediation actions)
Example:
๐ก WARNING โ Flag integration ยท Experiment: checkout-redesign The linked feature flag is inactive (paused). Traffic is not being split. Action: Re-enable the flag or end the experiment.
Handling unavailable data
Some checks require activity logs, which may not be available via read_data.
If activity log data is unavailable:
- Skip
checkActivityHistory(experiment check) entirely. - Skip the "toggle instability" and "never activated" sub-checks in flag lifecycle checks.
- In your report, note which checks were skipped and why:
Skipped: Activity history checks (activity logs not available via current tools)
Partial failures
If a read_data or list_data call fails for some entities:
- Continue with the entities you could fetch.
- Report which entities could not be assessed and why.
- Do not silently omit entities from the audit.
Reference files
- Experiment checks โ experiment configuration checks
- Flag checks โ feature flag checks
- Finding types โ severity and category definitions
- Recurring patterns โ patterns across multiple findings
- Remediation actions โ what to do about each finding