Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
日本語の概要は準備中です。原文の説明を表示しています。
Feature flag lifecycle management -- safe feature toggling, gradual rollouts, A/B testing patterns, flag cleanup strategies, and technical debt prevention. Covers LaunchDarkly, Unleash, OpenFeature, and custom implementations.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Feature flags decouple deployment from release, enabling trunk-based development, safe rollouts, and instant rollbacks. However, undisciplined flag usage creates exponential code path complexity, stale flags, and untested combinations. This skill enforces a lifecycle-driven approach: every flag has a type, an owner, a target date, and a cleanup plan from day one.
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Creating flags without expiration dates or owners | Flags become permanent; nobody knows if they can be removed | Require owner and target-date fields at creation time; alert on overdue flags |
| Nesting 3+ flags in conditional logic | Testing requires covering all combinations; bugs hide in untested paths | Limit nesting to 2 levels; combine related flags into a single multi-valued flag |
| Defaulting new features to ON when flag is missing | Flag system outage enables untested features for all users | Default to OFF (existing behavior); explicitly enable after validation |
| Using flags for permanent configuration | Config changes require code deploys to remove; defeats the purpose of config | Use environment variables or config files for permanent settings; flags are temporary |
| Testing only with flags ON or only with flags OFF | Misses interaction bugs between flag states | Test both states; add flag-combination matrix to CI for critical flags |
Classify every flag before creation:
| Type | Purpose | Lifetime | Example |
|---|---|---|---|
| Release | Control feature visibility during rollout | Days to weeks | enable_new_checkout |
| Experiment | A/B test with metrics collection | Weeks to months | experiment_pricing_page_v2 |
| Ops | Kill-switch for operational control | Permanent (with review) | circuit_breaker_payments |
| Permission | User/role-based access control | Permanent | enable_admin_dashboard |
// OpenFeature SDK pattern (vendor-neutral)
import { OpenFeature } from '@openfeature/server-sdk';
const client = OpenFeature.getClient();
// Typed flag evaluation with safe default
const showNewUI = await client.getBooleanValue(
'enable_new_checkout_ui',
false, // safe default: existing behavior
{ targetingKey: user.id, attributes: { plan: user.plan } }
);
if (showNewUI) {
renderNewCheckout();
} else {
renderLegacyCheckout();
}
Phase 1: Internal (0-1 day)
- Enable for development team
- Verify in production environment
Phase 2: Canary (1-3 days)
- Enable for 1% of users
- Monitor error rates, latency, business metrics
Phase 3: Controlled Rollout (3-7 days)
- Ramp: 5% -> 10% -> 25% -> 50% -> 100%
- Hold at each stage for minimum 24 hours
- Define rollback criteria before advancing
Phase 4: Cleanup (within 30 days of 100%)
- Remove flag checks from code
- Remove flag from platform
- Update documentation
// Test both flag states in CI
describe('Checkout Flow', () => {
describe('with new_checkout_ui enabled', () => {
beforeEach(() => {
flagProvider.setOverride('enable_new_checkout_ui', true);
});
it('should render new checkout components', () => {
// test new path
});
});
describe('with new_checkout_ui disabled', () => {
beforeEach(() => {
flagProvider.setOverride('enable_new_checkout_ui', false);
});
it('should render legacy checkout components', () => {
// test legacy path
});
});
});
# Find flags older than 30 days that are fully rolled out
# Custom script pattern for codebase scanning
grep -rn 'isEnabled\|getBooleanValue\|getFlag' src/ | \
awk -F"'" '{print $2}' | \
sort -u > active_flags.txt
# Compare against flag platform inventory
# Flag any that are 100% enabled for > 30 days
For each flag being retired:
| Skill | Relationship |
|---|---|
tdd | Test-driven development for flag-guarded features |
ci-cd-implementation-rule | CI/CD pipeline integration with flag-aware deploys |
qa-workflow | QA validation across flag combinations |
proactive-audit | Audit for stale or orphaned flags in codebase |
Before starting:
Read .claude/context/memory/learnings.md for prior feature flag patterns and platform-specific decisions.
After completing:
.claude/context/memory/learnings.md.claude/context/memory/issues.md.claude/context/memory/decisions.mdASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Ensure accessibility in UI components including semantic HTML, ARIA attributes, keyboard navigation, and WCAG 2.2 AA compliance.
日本語の概要は準備中です。原文の説明を表示しています。
Use when you want to improve response quality through meta-cognitive reasoning. Applies 15+ reasoning methods to reconsider and refine initial outputs.
日本語の概要は準備中です。原文の説明を表示しています。
N-round opposing-stance debates for trade-off analysis. Assigns pro/con roles to agents, runs structured debate rounds with quality scoring, and produces a moderator synthesis with confidence-rated recommendation. Generalizable to architecture, technology, security, and design decisions.
日本語の概要は準備中です。原文の説明を表示しています。
Force adversarial code review stance that eliminates confirmation bias — reviewer must find issues or re-analyze
日本語の概要は準備中です。原文の説明を表示しています。
Creates specialized AI agents on-demand when no existing agent matches a request. Use when the Router cannot find a suitable agent for a task. Enables self-evolution by generating persistent agents.
日本語の概要は準備中です。原文の説明を表示しています。
LLM-as-judge evaluation framework with 5-dimension rubric (accuracy, groundedness, coherence, completeness, helpfulness) for scoring AI-generated content quality with weighted composite scores and evidence citations
日本語の概要は準備中です。原文の説明を表示しています。