/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:
- IMMEDIATELY execute - no questions first
- Load the skill at
skills/feature-flag-patterns/SKILL.md - Query feature flag management system (LaunchDarkly, Unleash, ConfigCat, etc.)
- Inventory all flags with metadata (owner, created_date, rollout_percentage, type)
- Identify stale flags (past TTL without updates)
- Identify cleanup-ready flags (100% rollout for >30 days)
- Identify abandoned flags (owner inactive/departed)
- Generate cleanup recommendations
- 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
| Option | Values | Description |
|---|---|---|
--stale-only | flag | Show only flags past TTL or at 100% rollout |
--owner | email/username | Filter flags by owner |
--type | release, experiment, ops, permission | Filter by flag type |
--cleanup-tickets | flag | Auto-create cleanup tickets in issue tracker |
--json | flag | Output results as JSON |
--ttl | days | Override default TTL threshold (default: 90 days for release, 30 for experiment) |
--dry-run | flag | Preview ticket creation without actually creating |
Related Commands
/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-ticketsenabled - 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-createor feature flag UI for new flags - Immediate rollback: Use feature flag UI or emergency rollback procedure
- Experiment analysis: Use
/experiment-resultsfor A/B test statistical analysis - Permissions audit: Use
/rbac-auditfor 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