feature-flags — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited feature-flags (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Deploying code and releasing a feature are different events, and conflating them is why launches are scary. A feature flag separates them: merge and deploy the code dark, then turn it on for 1%, a cohort, or everyone — and turn it off in seconds if it misbehaves, with no rollback deploy. The power comes with a cost: every flag is a branch in your runtime and a line of debt. This skill is how to get the control without drowning in permanent conditional spaghetti.
It's the delivery mechanism the rest of the lifecycle leans on: [[incremental-delivery]] merges work behind a flag, [[experimentation]] uses flags to split variants, and [[launch-readiness]] uses them for gradual rollout and instant kill. Pair with [[observability]] (watch the metric as you ramp) and [[simplify]] (remove the flag when done).
Skip when a change is trivial and safe to ship directly — a flag adds a code path to test and remove; don't flag a typo fix. Don't use flags to avoid ever finishing the work either (see debt below).
Not a substitute for [[launch-readiness]] (the full release gate) or [[migration-path]] (data/contract migration) — flags control exposure; those govern readiness and schema change.
Knowing the type up front tells you when (or whether) it dies. Most pain comes from release flags that never got removed.
Name for intent and direction (enable_new_checkout, not flag2). Default to off / the safe path — a missing or failed flag lookup must fall back to current behavior, never to the half-built new one.
Both states ship in the binary, so both must work. Test flag-on and flag-off paths ([[test-first]]); CI should exercise both. Don't let the off-path rot — it's your rollback.
depends on flag combinations, you have a state-machine problem, not a flag.
needs stable assignment).
Ramp deliberately — internal → 1% → 10% → 50% → 100% — watching the primary and guardrail metrics at each step ([[observability]]). Define the kill condition before ramping (error rate, latency, a business metric) and confirm the off-switch actually works. A kill switch you've never tested is a hope, not a control.
Maintain a registry: each flag's owner, type, default, created date, and expected removal. A flag with no owner is a future incident. Stale release flags are tech debt with a security and correctness cost (dead code paths, surprising states).
Once a release flag is at 100% and stable, delete it and the losing code path ([[simplify]]). The task isn't done at full rollout; it's done when the flag is gone. Schedule removal when you create the flag, not "someday." Permanent flags (entitlement, kill switches) are the only ones that stay.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.