feature-flag-cleanup / env /data /easy_tasks.json
Falgunisharma's picture
Improve environment depth: investigate action, cascading deps, rich observations, harder hard task
5f6895d
[
{
"flag_name": "enable_new_checkout_flow",
"description": "Enables the redesigned checkout page with one-click purchase",
"rollout_percentage": 1.0,
"age_days": 180,
"last_modified_days": 150,
"owner": "payments-team",
"owner_active": true,
"num_code_references": 3,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 50000,
"in_active_experiment": false,
"services": ["checkout-service"],
"code_snippet": "if feature_flags.is_enabled('enable_new_checkout_flow'):\n return render_new_checkout()\nelse:\n return render_legacy_checkout()",
"last_commit_message": "feat: roll out new checkout to 100% of users",
"pr_context": "PR #2341: New checkout flow — approved by payments-team lead, all metrics stable after 2 weeks at 100%",
"related_incidents": [],
"investigation_notes": "Flag was rolled to 100% on 2024-07-15. No incidents since. Legacy checkout code path is dead code.",
"correct_action": "remove",
"explanation": "Fully rolled out for 6 months, no dependencies, safe to remove"
},
{
"flag_name": "dark_mode_v2",
"description": "Enables dark mode v2 with improved contrast ratios",
"rollout_percentage": 1.0,
"age_days": 365,
"last_modified_days": 300,
"owner": "jane.smith",
"owner_active": false,
"num_code_references": 8,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 120000,
"in_active_experiment": false,
"services": ["frontend-web"],
"code_snippet": "const theme = featureFlags.get('dark_mode_v2') ? darkThemeV2 : darkThemeV1;\napplyTheme(theme);",
"last_commit_message": "chore: bump dark mode v2 to 100%",
"pr_context": "PR #1876: Dark mode v2 rollout — jane.smith (now left company). V1 theme file still in repo but unused.",
"related_incidents": [],
"investigation_notes": "jane.smith left the company 6 months ago. No one on frontend-web team knows why V1 was kept. V1 theme has 0 test coverage.",
"correct_action": "remove",
"explanation": "Fully rolled out for a year, owner left the company, no dependencies"
},
{
"flag_name": "rate_limiter_kill_switch",
"description": "Emergency kill switch to disable rate limiting on API gateway",
"rollout_percentage": 0.0,
"age_days": 90,
"last_modified_days": 5,
"owner": "platform-team",
"owner_active": true,
"num_code_references": 2,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": true,
"has_active_incident": false,
"usage_last_30d": 0,
"in_active_experiment": false,
"services": ["api-gateway"],
"code_snippet": "if kill_switches.is_active('rate_limiter_kill_switch'):\n logger.warn('RATE LIMITING DISABLED BY KILL SWITCH')\n return allow_request()\nreturn rate_limiter.check(request)",
"last_commit_message": "ops: test kill switch during incident drill",
"pr_context": "PR #3012: Add rate limiter kill switch — required by SRE team for incident response runbook",
"related_incidents": ["INC-4521: API gateway overload (kill switch used successfully)"],
"investigation_notes": "Part of SRE incident response runbook. Last tested 5 days ago during quarterly drill. Platform-team confirmed it must stay.",
"correct_action": "keep",
"explanation": "Active kill switch, recently modified, must be kept for emergencies"
},
{
"flag_name": "legacy_search_algorithm",
"description": "Falls back to legacy search ranking when enabled",
"rollout_percentage": 0.0,
"age_days": 540,
"last_modified_days": 400,
"owner": "search-team",
"owner_active": true,
"num_code_references": 12,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 0,
"in_active_experiment": false,
"services": ["search-service"],
"code_snippet": "ranker = LegacyRanker() if flags.get('legacy_search_algorithm') else MLRankerV3()\nresults = ranker.rank(query, candidates)",
"last_commit_message": "fix: remove legacy ranker from hot path metrics",
"pr_context": "PR #987: Introduce ML ranker v3 — legacy ranker kept as fallback. Note from author: 'remove after 3 months if v3 is stable'",
"related_incidents": [],
"investigation_notes": "ML ranker v3 has been stable for 18 months. Legacy ranker uses deprecated Elasticsearch API. Search-team lead confirmed safe to remove.",
"correct_action": "remove",
"explanation": "Disabled for over a year, no usage, many stale code references to clean up"
},
{
"flag_name": "signup_bonus_experiment",
"description": "A/B test for showing signup bonus on landing page",
"rollout_percentage": 0.5,
"age_days": 14,
"last_modified_days": 2,
"owner": "growth-team",
"owner_active": true,
"num_code_references": 4,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 80000,
"in_active_experiment": true,
"services": ["landing-page-service"],
"code_snippet": "const showBonus = await experiment.isInVariant('signup_bonus_experiment', userId);\nreturn showBonus ? <BonusBanner amount={50} /> : null;",
"last_commit_message": "experiment: adjust signup bonus from $25 to $50",
"pr_context": "PR #3200: Signup bonus A/B test — growth-team running for Q1 metrics. Expected to run 4-6 weeks.",
"related_incidents": [],
"investigation_notes": "Experiment started 2 weeks ago. Growth-team expecting results in 2 more weeks. Preliminary data shows 12% lift in signups.",
"correct_action": "keep",
"explanation": "Active experiment only 2 weeks old, high usage, recently modified"
},
{
"flag_name": "old_notification_system",
"description": "Routes notifications through the legacy system instead of new event bus",
"rollout_percentage": 0.0,
"age_days": 420,
"last_modified_days": 380,
"owner": "messaging-team",
"owner_active": true,
"num_code_references": 6,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 0,
"in_active_experiment": false,
"services": ["notification-service"],
"code_snippet": "if flags.enabled('old_notification_system'):\n legacy_notifier.send(user_id, message)\nelse:\n event_bus.publish('notification', {user_id, message})",
"last_commit_message": "migrate: switch all notifications to event bus",
"pr_context": "PR #1200: Notification system migration — legacy system fully deprecated, event bus handles all traffic",
"related_incidents": [],
"investigation_notes": "Event bus has processed 50M+ notifications without issues since migration. Legacy notifier service is scheduled for decommission.",
"correct_action": "remove",
"explanation": "Legacy fallback disabled for over a year with zero usage"
},
{
"flag_name": "enable_cdn_caching",
"description": "Enables aggressive CDN caching for static assets",
"rollout_percentage": 1.0,
"age_days": 60,
"last_modified_days": 55,
"owner": "infra-team",
"owner_active": true,
"num_code_references": 2,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 200000,
"in_active_experiment": false,
"services": ["cdn-proxy"],
"code_snippet": "cache_control = 'max-age=86400' if flags.get('enable_cdn_caching') else 'no-cache'",
"last_commit_message": "perf: enable CDN caching for all static assets",
"pr_context": "PR #2890: CDN caching — reduced origin load by 70%. Infra-team confirmed stable.",
"related_incidents": [],
"investigation_notes": "CDN cache hit rate is 94%. No cache invalidation issues reported. Infra-team says flag can be removed.",
"correct_action": "remove",
"explanation": "Fully rolled out for 2 months, simple flag with no dependencies"
},
{
"flag_name": "beta_dashboard_widgets",
"description": "Shows new beta dashboard widgets to internal users",
"rollout_percentage": 0.1,
"age_days": 30,
"last_modified_days": 7,
"owner": "dashboard-team",
"owner_active": true,
"num_code_references": 5,
"has_dependencies": false,
"dependent_flags": [],
"is_kill_switch": false,
"has_active_incident": false,
"usage_last_30d": 500,
"in_active_experiment": false,
"services": ["dashboard-service"],
"code_snippet": "const widgets = baseWidgets.concat(\n featureFlags.get('beta_dashboard_widgets') ? betaWidgets : []\n);",
"last_commit_message": "feat: add revenue chart to beta dashboard widgets",
"pr_context": "PR #3150: Beta dashboard widgets — internal dogfooding phase. Plan to roll out to 50% next sprint.",
"related_incidents": [],
"investigation_notes": "Dashboard-team is actively developing. 3 new widgets added in last 2 sprints. Planned for GA in 6 weeks.",
"correct_action": "keep",
"explanation": "Low rollout, recently modified, actively being developed"
}
]