Skip to main content

/flag-audit - Feature Flag Hygiene Audit

Inventories all feature flags, identifies stale/abandoned flags past TTL, flags at 100% rollout needing cleanup, and generates cleanup recommendations with optional ticket creation.

System Prompt

EXECUTION DIRECTIVE: When the user invokes this command, you MUST:

  1. IMMEDIATELY execute - no questions first
  2. Load the skill at skills/feature-flag-patterns/SKILL.md
  3. Query feature flag management system (LaunchDarkly, Unleash, ConfigCat, etc.)
  4. Inventory all flags with metadata (owner, created_date, rollout_percentage, type)
  5. Identify stale flags (past TTL without updates)
  6. Identify cleanup-ready flags (100% rollout for >30 days)
  7. Identify abandoned flags (owner inactive/departed)
  8. Generate cleanup recommendations
  9. Optionally create cleanup tickets in issue tracker

Usage

# Full audit of all flags
/flag-audit

# Show only stale flags needing attention
/flag-audit --stale-only

# Filter by owner
/flag-audit --owner hal@coditect.ai

# Filter by flag type
/flag-audit --type release

# Auto-create cleanup tickets
/flag-audit --cleanup-tickets

# JSON output for programmatic processing
/flag-audit --json

Options

OptionValuesDescription
--stale-onlyflagShow only flags past TTL or at 100% rollout
--owneremail/usernameFilter flags by owner
--typerelease, experiment, ops, permissionFilter by flag type
--cleanup-ticketsflagAuto-create cleanup tickets in issue tracker
--jsonflagOutput results as JSON
--ttldaysOverride default TTL threshold (default: 90 days for release, 30 for experiment)
--dry-runflagPreview ticket creation without actually creating
  • /release-gate - Combined quality gates for release readiness
  • /canary-check - Canary deployment analysis
  • /quality-dashboard - Aggregate quality metrics across projects
  • /tech-debt-audit - Broader technical debt inventory

Success Output

✓ Feature Flag Hygiene Audit Complete

Total Flags: 147
Active (< 100%): 89
Fully Rolled Out (100%): 34
Stale (no updates > 90d): 18
Abandoned (owner inactive): 6

Cleanup Recommendations:

IMMEDIATE CLEANUP (100% rollout > 30 days):
1. enable_new_checkout_flow (created 2025-08-15, 100% since 2025-09-01)
Owner: sarah@coditect.ai
Type: release
Action: Remove flag + cleanup code paths
Ticket: AUTO-1234

2. dark_mode_toggle (created 2025-07-01, 100% since 2025-07-15)
Owner: mike@coditect.ai
Type: release
Action: Remove flag + make default
Ticket: AUTO-1235

STALE FLAGS (no updates > 90 days):
3. experimental_ml_ranking (created 2025-05-01, last update 2025-06-15)
Owner: alex@coditect.ai (inactive since 2025-10-01)
Type: experiment
Status: 15% rollout
Action: Contact owner or deprecate
Ticket: AUTO-1236

ABANDONED FLAGS (owner departed):
4. beta_search_algorithm (created 2024-12-01, last update 2025-01-15)
Owner: former-employee@coditect.ai (departed 2025-03-01)
Type: experiment
Status: 5% rollout
Action: Reassign or rollback
Ticket: AUTO-1237

✓ Created 4 cleanup tickets in JIRA project TECH-DEBT

Completion Checklist

  • Feature flag system queried successfully
  • All flags inventoried with metadata
  • Stale flags identified (past TTL)
  • Cleanup-ready flags identified (100% rollout > threshold)
  • Abandoned flags identified (owner inactive/departed)
  • Cleanup recommendations generated for each category
  • Tickets created if --cleanup-tickets enabled
  • Results formatted or exported as JSON

Failure Indicators

  • API authentication failure: Feature flag system credentials invalid or expired
  • API rate limit exceeded: Too many flags, need pagination or backoff
  • Owner lookup failure: Unable to verify owner status (LDAP/directory unavailable)
  • Ticket creation failure: Issue tracker API error or insufficient permissions
  • Incomplete metadata: Flags missing owner, created_date, or type fields

When NOT to Use

  • Real-time flag status: Use feature flag dashboard for live rollout monitoring
  • Flag creation: Use /flag-create or feature flag UI for new flags
  • Immediate rollback: Use feature flag UI or emergency rollback procedure
  • Experiment analysis: Use /experiment-results for A/B test statistical analysis
  • Permissions audit: Use /rbac-audit for access control review

Anti-Patterns

  • ❌ Running audit without follow-up - generates noise without action
  • ❌ Deleting flags at 100% without code cleanup - leaves dead code paths
  • ❌ Ignoring abandoned flags - accumulates technical debt
  • ❌ Setting TTL too short for release flags - premature cleanup pressure
  • ❌ Auto-creating tickets without owner notification - bypass communication

Principles

  • #3 Complete Execution - Queries system, analyzes flags, generates recommendations, creates tickets - no manual triage
  • #9 Based on Facts - Uses metadata timestamps and rollout percentages, not subjective assessment
  • #10 Self-Provisioning - Auto-configures API clients for LaunchDarkly/Unleash/etc. based on detected system
  • #11 Confirm Destructive Only - Ticket creation is opt-in; actual flag deletion requires explicit confirmation

Full Standard: CODITECT-STANDARD-AUTOMATION.md