[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HN5WVN9WB6W700N8GGDPPC":3,"skill-same:01M6HN5WVN9WB6W700N8GGDPPC":123},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":15,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6HN5WVN9WB6W700N8GGDPPC","openspec-archive-change",null,"Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.","salexandr0s\u002Fai-config","salexandr0s","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F250535030?v=4","01M6DE8DS7P9KZ6AVRN7WXK5WK","01M6HMVRBX2B360FVWFTE7K28E",14,"MIT","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fopenspec-archive-change\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"change","openspec archive change","archive","openspec","cli","workflow","user","use","implementation","complete","when","2026-11-10 10:12:30",false,"---\nname: feature-flags-architect\ndescription: Use when adding, retiring, or auditing feature flags. Triggers on \"add a flag\", \"ship behind a flag\", \"rollout plan\", \"kill switch\", \"stale flags\", \"flag debt\", \"LaunchDarkly\", \"GrowthBook\", \"Statsig\", \"Unleash\", \"Flipt\", or any progressive-delivery question. Ships flag debt scanner, rollout planner, and kill-switch auditor (all stdlib Python), 4 references on flag taxonomy + provider trade-offs + rollout strategies + lifecycle, plus a \u002Fflag-cleanup slash command.\ncontext: fork\nversion: 2.9.0\nauthor: claude-code-skills\nlicense: MIT\ntags: [feature-flags, progressive-delivery, rollout, kill-switch, launchdarkly, growthbook, statsig, unleash, flipt, release-engineering]\ncompatible_tools: [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli]\n---\n\n# Feature Flags Architect\n\nEnd-to-end discipline for feature flags: classify them, ship them, ramp them, and retire them. Most teams treat flags as throwaway `if`-statements; this skill treats them as a controlled lifecycle with measurable debt.\n\n## When to use\n\n- Adding a new flag and need a rollout plan\n- Auditing a codebase for stale or orphaned flags\n- Choosing a flag provider (LaunchDarkly vs GrowthBook vs Statsig vs Unleash vs Flipt vs build-your-own)\n- Designing a kill-switch path for a risky launch\n- Cleaning up flag debt before a release freeze\n- Reviewing whether a feature should ship behind a flag at all\n\n## Core principle: flags are a lifecycle, not an `if`\n\n```\nrequest → design → ship → ramp → cleanup → archive\n```\n\nFlags that skip cleanup become debt: dead branches, stale defaults, untested code paths, unbounded blast radius. The three scripts in this skill enforce the lifecycle.\n\n## Quick start\n\n```bash\n# 1. Audit the repo for flag debt\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 90\n\n# 2. Plan a progressive rollout for a new flag\npython scripts\u002Frollout_planner.py --population 100000 --target-percent 100 --duration-days 14 --strategy ring\n\n# 3. Verify every flag has a documented kill switch\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc docs\u002Ffeature-flags.md\n```\n\n## The 4 flag types (taxonomy)\n\nDifferent flag types have different lifespans and ownership. Misclassifying creates debt.\n\n| Type | Purpose | Typical lifespan | Owner | Cleanup trigger |\n|---|---|---|---|---|\n| **Release** | Hide unfinished features in production | days–weeks | Eng | 100% rollout reached |\n| **Experiment** | A\u002FB test variants | weeks | Product\u002FMarketing | Test concluded; winner picked |\n| **Operational** | Circuit breakers, perf toggles, kill switches | months–years | Eng\u002FSRE | Replaced by autoscaling\u002Ffeature retirement |\n| **Permission** | Entitlements per user\u002Faccount\u002Fplan | years (permanent) | Product | Plan\u002Frole removed |\n\nOnly Release and Experiment flags should be on a debt-scanner watchlist. Operational and Permission flags are by design long-lived. See `references\u002Fflag_taxonomy.md` for decision tree.\n\n## The 3 Python tools\n\nAll three are stdlib-only. Run with `--help`.\n\n### `flag_debt_scanner.py`\n\nFinds flags older than `--max-age-days` with low usage, suggesting candidates for cleanup.\n\n```bash\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 90 --format text\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 60 --format json > debt.json\n```\n\n**Detection heuristic:**\n1. Walk `--repo` for code references matching common flag-call patterns:\n   - `flag(\"...\")`, `isFlagEnabled(\"...\")`, `featureFlag(\"...\")`, `getFlag(\"...\")`\n   - `client.variation(\"...\", ...)`, `unleash.isEnabled(\"...\")`, `growthbook.feature(\"...\")`\n2. For each unique flag identifier, find the oldest commit that introduced it (`git log --diff-filter=A -S \u003Cname>`).\n3. Flag as DEBT if introduced > `--max-age-days` ago AND used in ≤`--min-uses` places.\n\nOutputs flag name, age in days, file references, suggested action. JSON mode is CI-friendly.\n\n### `rollout_planner.py`\n\nGenerates a phased rollout schedule from population size, target percent, duration, and strategy.\n\n```bash\npython scripts\u002Frollout_planner.py --population 100000 --target-percent 100 --duration-days 14 --strategy ring\npython scripts\u002Frollout_planner.py --population 50000 --target-percent 25 --duration-days 7 --strategy linear\npython scripts\u002Frollout_planner.py --population 1000000 --target-percent 100 --duration-days 30 --strategy log\n```\n\n**Strategies:**\n- `ring`: 1% → 5% → 25% → 50% → 100%, evenly spaced. Default for risky launches.\n- `linear`: constant rate per day. Default for medium-risk.\n- `log`: rapid early, slow tail. Default for low-risk launches with confidence.\n- `cohort`: by named cohort (internal → beta → free → paid → all).\n\nOutputs a markdown table with date, percent, expected user count, abort criteria, and verification step per phase.\n\n### `kill_switch_audit.py`\n\nCross-references code-discovered flags against documentation to verify each has a kill switch path written down.\n\n```bash\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc docs\u002Ffeature-flags.md\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc runbooks\u002Fflags.md --format json\n```\n\n**What it checks:**\n1. Every code-discovered flag has an entry in `--flag-doc`\n2. Each entry declares: owner, type, kill-switch trigger, monitoring dashboard\n3. Reports flags missing documentation (FAIL) or missing fields (WARN)\n\nUse as a pre-merge gate before any new flag ships.\n\n## Provider chooser (5 + DIY)\n\n| Provider | Best for | Pricing model | Lock-in risk | OSS option |\n|---|---|---|---|---|\n| **LaunchDarkly** | Enterprise, complex targeting, audit\u002Fcompliance | Per-MAU, expensive | High | No |\n| **GrowthBook** | Mid-market, A\u002FB testing focused, OSS-friendly | Per-MAU + OSS | Low | Yes (self-host) |\n| **Statsig** | Growth\u002Fproduct teams, advanced experimentation | Free tier + per-MAU | Medium | No |\n| **Unleash** | OSS-first, self-hosted, dev-friendly | OSS + Enterprise | Low | Yes |\n| **Flipt** | Lightweight, k8s-native, simple needs | OSS-only | None | Yes |\n| **DIY** | \u003C100 flags, no targeting, full control | None | None | N\u002FA |\n\nDecision rules:\n- \u003C50 flags + no targeting → DIY with config file or env vars\n- Need analytics + experimentation → Statsig or GrowthBook\n- Compliance\u002FSOC2 audit logs required → LaunchDarkly\n- Self-hosting required (data residency \u002F air-gapped) → Unleash or Flipt\n- See `references\u002Fprovider_comparison.md` for detail.\n\n## Workflows\n\n### Workflow 1: Ship a new feature behind a flag\n\n```\n1. Classify: which of the 4 flag types?\n   → Release (most common for engineering work)\n2. Run rollout_planner.py to design the ramp\n3. Add flag entry to docs\u002Ffeature-flags.md BEFORE writing code:\n   - name, owner, type, kill-switch trigger, dashboard URL\n4. Write the code with the flag\n5. Run kill_switch_audit.py — must pass before merge\n6. Deploy at 0%; verify kill switch works\n7. Execute rollout schedule; abort if abort criteria met\n8. At 100% for 7+ days: remove flag, delete dead branch, archive doc entry\n```\n\n### Workflow 2: Quarterly flag cleanup\n\n```\n1. Run flag_debt_scanner.py --repo . --max-age-days 90 > debt.md\n2. For each flagged item:\n   a. Confirm it reached 100% (or was killed)\n   b. Find the issue\u002FPR that introduced it; verify owner agrees to remove\n   c. Delete dead branches; remove flag config\n   d. Run kill_switch_audit.py — should now show one fewer flag\n3. Update CHANGELOG: \"Removed N stale flags\"\n```\n\n### Workflow 3: Choose a provider\n\n```\n1. Estimate flag count (current + 12-month projection)\n2. Required features:\n   - Targeting rules (user, account, geo, %)?\n   - A\u002FB testing + stats?\n   - Audit log \u002F SOC2?\n   - Self-hosting \u002F data residency?\n3. Pricing budget (MAU * cost-per-MAU)\n4. See provider_comparison.md decision tree\n5. Build a 30-day proof-of-concept before signing\n```\n\n### Workflow 4: Design a kill switch\n\n```\n1. Identify the failure modes:\n   - Latency spike (which threshold?)\n   - Error rate spike (which threshold?)\n   - Business metric regression (which threshold?)\n2. Wire each to an abort:\n   - Manual: dashboard link + on-call playbook\n   - Automated: alert threshold flips flag back to 0%\n3. Test the kill switch in staging BEFORE production rollout\n4. Document in flag-doc; pass kill_switch_audit.py\n```\n\n## References\n\n- `references\u002Fflag_taxonomy.md` — 4 types, decision tree, ownership, lifespan\n- `references\u002Fprovider_comparison.md` — LaunchDarkly \u002F GrowthBook \u002F Statsig \u002F Unleash \u002F Flipt \u002F DIY trade-offs\n- `references\u002Frollout_strategies.md` — ring \u002F linear \u002F log \u002F cohort \u002F geo, abort criteria, monitoring\n- `references\u002Fflag_lifecycle.md` — request → design → ship → ramp → cleanup → archive\n\n## Slash command\n\n`\u002Fflag-cleanup` — Run the full cleanup workflow on the current repo: scan for debt, generate a removal plan, audit kill switches.\n\n## Asset templates\n\n- `assets\u002Fflag_request_template.md` — fill-in form for new flag requests (name, owner, type, kill switch, rollout plan)\n\n## Anti-patterns\n\n- **Permanent flag with `if (FLAG_FOO)` 50 places** — should be a Permission flag with a runtime config, not a Release flag\n- **Flag with no owner** — when the original engineer leaves, no one cleans it up\n- **No kill switch documented** — when the feature breaks, no one knows how to disable it\n- **A\u002FB test that ran 6 months** — pick a winner; running indefinitely is debt\n- **Flags as feature toggles for cosmetic changes** — ship via deploy, not flag\n\n## Verifiable success\n\nA team using this skill should achieve:\n- 100% of new flags pass `kill_switch_audit.py` at merge time\n- `flag_debt_scanner.py --max-age-days 90` returns ≤5 stale flags repo-wide\n- Every flag has a documented owner, type, and kill switch\n- Mean time to retire a Release flag: \u003C60 days from 100% rollout\n","# Feature Flags Architect\n\nEnd-to-end discipline for feature flags: classify them, ship them, ramp them, and retire them. Most teams treat flags as throwaway `if`-statements; this skill treats them as a controlled lifecycle with measurable debt.\n\n## When to use\n\n- Adding a new flag and need a rollout plan\n- Auditing a codebase for stale or orphaned flags\n- Choosing a flag provider (LaunchDarkly vs GrowthBook vs Statsig vs Unleash vs Flipt vs build-your-own)\n- Designing a kill-switch path for a risky launch\n- Cleaning up flag debt before a release freeze\n- Reviewing whether a feature should ship behind a flag at all\n\n## Core principle: flags are a lifecycle, not an `if`\n\n```\nrequest → design → ship → ramp → cleanup → archive\n```\n\nFlags that skip cleanup become debt: dead branches, stale defaults, untested code paths, unbounded blast radius. The three scripts in this skill enforce the lifecycle.\n\n## Quick start\n\n```bash\n# 1. Audit the repo for flag debt\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 90\n\n# 2. Plan a progressive rollout for a new flag\npython scripts\u002Frollout_planner.py --population 100000 --target-percent 100 --duration-days 14 --strategy ring\n\n# 3. Verify every flag has a documented kill switch\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc docs\u002Ffeature-flags.md\n```\n\n## The 4 flag types (taxonomy)\n\nDifferent flag types have different lifespans and ownership. Misclassifying creates debt.\n\n| Type | Purpose | Typical lifespan | Owner | Cleanup trigger |\n|---|---|---|---|---|\n| **Release** | Hide unfinished features in production | days–weeks | Eng | 100% rollout reached |\n| **Experiment** | A\u002FB test variants | weeks | Product\u002FMarketing | Test concluded; winner picked |\n| **Operational** | Circuit breakers, perf toggles, kill switches | months–years | Eng\u002FSRE | Replaced by autoscaling\u002Ffeature retirement |\n| **Permission** | Entitlements per user\u002Faccount\u002Fplan | years (permanent) | Product | Plan\u002Frole removed |\n\nOnly Release and Experiment flags should be on a debt-scanner watchlist. Operational and Permission flags are by design long-lived. See `references\u002Fflag_taxonomy.md` for decision tree.\n\n## The 3 Python tools\n\nAll three are stdlib-only. Run with `--help`.\n\n### `flag_debt_scanner.py`\n\nFinds flags older than `--max-age-days` with low usage, suggesting candidates for cleanup.\n\n```bash\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 90 --format text\npython scripts\u002Fflag_debt_scanner.py --repo . --max-age-days 60 --format json > debt.json\n```\n\n**Detection heuristic:**\n1. Walk `--repo` for code references matching common flag-call patterns:\n   - `flag(\"...\")`, `isFlagEnabled(\"...\")`, `featureFlag(\"...\")`, `getFlag(\"...\")`\n   - `client.variation(\"...\", ...)`, `unleash.isEnabled(\"...\")`, `growthbook.feature(\"...\")`\n2. For each unique flag identifier, find the oldest commit that introduced it (`git log --diff-filter=A -S \u003Cname>`).\n3. Flag as DEBT if introduced > `--max-age-days` ago AND used in ≤`--min-uses` places.\n\nOutputs flag name, age in days, file references, suggested action. JSON mode is CI-friendly.\n\n### `rollout_planner.py`\n\nGenerates a phased rollout schedule from population size, target percent, duration, and strategy.\n\n```bash\npython scripts\u002Frollout_planner.py --population 100000 --target-percent 100 --duration-days 14 --strategy ring\npython scripts\u002Frollout_planner.py --population 50000 --target-percent 25 --duration-days 7 --strategy linear\npython scripts\u002Frollout_planner.py --population 1000000 --target-percent 100 --duration-days 30 --strategy log\n```\n\n**Strategies:**\n- `ring`: 1% → 5% → 25% → 50% → 100%, evenly spaced. Default for risky launches.\n- `linear`: constant rate per day. Default for medium-risk.\n- `log`: rapid early, slow tail. Default for low-risk launches with confidence.\n- `cohort`: by named cohort (internal → beta → free → paid → all).\n\nOutputs a markdown table with date, percent, expected user count, abort criteria, and verification step per phase.\n\n### `kill_switch_audit.py`\n\nCross-references code-discovered flags against documentation to verify each has a kill switch path written down.\n\n```bash\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc docs\u002Ffeature-flags.md\npython scripts\u002Fkill_switch_audit.py --repo . --flag-doc runbooks\u002Fflags.md --format json\n```\n\n**What it checks:**\n1. Every code-discovered flag has an entry in `--flag-doc`\n2. Each entry declares: owner, type, kill-switch trigger, monitoring dashboard\n3. Reports flags missing documentation (FAIL) or missing fields (WARN)\n\nUse as a pre-merge gate before any new flag ships.\n\n## Provider chooser (5 + DIY)\n\n| Provider | Best for | Pricing model | Lock-in risk | OSS option |\n|---|---|---|---|---|\n| **LaunchDarkly** | Enterprise, complex targeting, audit\u002Fcompliance | Per-MAU, expensive | High | No |\n| **GrowthBook** | Mid-market, A\u002FB testing focused, OSS-friendly | Per-MAU + OSS | Low | Yes (self-host) |\n| **Statsig** | Growth\u002Fproduct teams, advanced experimentation | Free tier + per-MAU | Medium | No |\n| **Unleash** | OSS-first, self-hosted, dev-friendly | OSS + Enterprise | Low | Yes |\n| **Flipt** | Lightweight, k8s-native, simple needs | OSS-only | None | Yes |\n| **DIY** | \u003C100 flags, no targeting, full control | None | None | N\u002FA |\n\nDecision rules:\n- \u003C50 flags + no targeting → DIY with config file or env vars\n- Need analytics + experimentation → Statsig or GrowthBook\n- Compliance\u002FSOC2 audit logs required → LaunchDarkly\n- Self-hosting required (data residency \u002F air-gapped) → Unleash or Flipt\n- See `references\u002Fprovider_comparison.md` for detail.\n\n## Workflows\n\n### Workflow 1: Ship a new feature behind a flag\n\n```\n1. Classify: which of the 4 flag types?\n   → Release (most common for engineering work)\n2. Run rollout_planner.py to design the ramp\n3. Add flag entry to docs\u002Ffeature-flags.md BEFORE writing code:\n   - name, owner, type, kill-switch trigger, dashboard URL\n4. Write the code with the flag\n5. Run kill_switch_audit.py — must pass before merge\n6. Deploy at 0%; verify kill switch works\n7. Execute rollout schedule; abort if abort criteria met\n8. At 100% for 7+ days: remove flag, delete dead branch, archive doc entry\n```\n\n### Workflow 2: Quarterly flag cleanup\n\n```\n1. Run flag_debt_scanner.py --repo . --max-age-days 90 > debt.md\n2. For each flagged item:\n   a. Confirm it reached 100% (or was killed)\n   b. Find the issue\u002FPR that introduced it; verify owner agrees to remove\n   c. Delete dead branches; remove flag config\n   d. Run kill_switch_audit.py — should now show one fewer flag\n3. Update CHANGELOG: \"Removed N stale flags\"\n```\n\n### Workflow 3: Choose a provider\n\n```\n1. Estimate flag count (current + 12-month projection)\n2. Required features:\n   - Targeting rules (user, account, geo, %)?\n   - A\u002FB testing + stats?\n   - Audit log \u002F SOC2?\n   - Self-hosting \u002F data residency?\n3. Pricing budget (MAU * cost-per-MAU)\n4. See provider_comparison.md decision tree\n5. Build a 30-day proof-of-concept before signing\n```\n\n### Workflow 4: Design a kill switch\n\n```\n1. Identify the failure modes:\n   - Latency spike (which threshold?)\n   - Error rate spike (which threshold?)\n   - Business metric regression (which threshold?)\n2. Wire each to an abort:\n   - Manual: dashboard link + on-call playbook\n   - Automated: alert threshold flips flag back to 0%\n3. Test the kill switch in staging BEFORE production rollout\n4. Document in flag-doc; pass kill_switch_audit.py\n```\n\n## References\n\n- `references\u002Fflag_taxonomy.md` — 4 types, decision tree, ownership, lifespan\n- `references\u002Fprovider_comparison.md` — LaunchDarkly \u002F GrowthBook \u002F Statsig \u002F Unleash \u002F Flipt \u002F DIY trade-offs\n- `references\u002Frollout_strategies.md` — ring \u002F linear \u002F log \u002F cohort \u002F geo, abort criteria, monitoring\n- `references\u002Fflag_lifecycle.md` — request → design → ship → ramp → cleanup → archive\n\n## Slash command\n\n`\u002Fflag-cleanup` — Run the full cleanup workflow on the current repo: scan for debt, generate a removal plan, audit kill switches.\n\n## Asset templates\n\n- `assets\u002Fflag_request_template.md` — fill-in form for new flag requests (name, owner, type, kill switch, rollout plan)\n\n## Anti-patterns\n\n- **Permanent flag with `if (FLAG_FOO)` 50 places** — should be a Permission flag with a runtime config, not a Release flag\n- **Flag with no owner** — when the original engineer leaves, no one cleans it up\n- **No kill switch documented** — when the feature breaks, no one knows how to disable it\n- **A\u002FB test that ran 6 months** — pick a winner; running indefinitely is debt\n- **Flags as feature toggles for cosmetic changes** — ship via deploy, not flag\n\n## Verifiable success\n\nA team using this skill should achieve:\n- 100% of new flags pass `kill_switch_audit.py` at merge time\n- `flag_debt_scanner.py --max-age-days 90` returns ≤5 stale flags repo-wide\n- Every flag has a documented owner, type, and kill switch\n- Mean time to retire a Release flag: \u003C60 days from 100% rollout\n",{"name":35,"tags":36,"author":47,"context":48,"license":14,"version":49,"description":50,"compatible_tools":51},"feature-flags-architect",[37,38,39,40,41,42,43,44,45,46],"feature-flags","progressive-delivery","rollout","kill-switch","launchdarkly","growthbook","statsig","unleash","flipt","release-engineering","claude-code-skills","fork","2.9.0","Use when adding, retiring, or auditing feature flags. Triggers on \"add a flag\", \"ship behind a flag\", \"rollout plan\", \"kill switch\", \"stale flags\", \"flag debt\", \"LaunchDarkly\", \"GrowthBook\", \"Statsig\", \"Unleash\", \"Flipt\", or any progressive-delivery question. Ships flag debt scanner, rollout planner, and kill-switch auditor (all stdlib Python), 4 references on flag taxonomy + provider trade-offs + rollout strategies + lifecycle, plus a \u002Fflag-cleanup slash command.",[52,53,54,55,56,57],"claude-code","codex-cli","cursor","antigravity","opencode","gemini-cli","main","510dd2917e051cc953dc55f56fd6ef442aa01b38","shared\u002Fskills\u002Fopenspec-archive-change",3,"https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config","https:\u002F\u002Fgithub.com\u002Fsalexandr0s","https:\u002F\u002Fsavorg.xyz\u002F","Solo building with agents since 2025. Learning as i do. Do not blindly trust my code.","2026-11-09 09:22:33",{"source":8,"skillName":35,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add salexandr0s\u002Fai-config --skill feature-flags-architect",{"tool":73,"command":74},"bunx","bunx skills add salexandr0s\u002Fai-config --skill feature-flags-architect",{"tool":76,"command":77},"pnpm","pnpm dlx skills add salexandr0s\u002Fai-config --skill feature-flags-architect","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",true,[81,87,91,97,101,105,109,115,119],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002Fflag_request_template.md","ASSET","资产文件",1770,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Fassets\u002Fflag_request_template.md",{"path":88,"resourceType":88,"resourceTypeDesc":89,"sizeBytes":90,"sourceHtmlUrl":15},"LICENSE","许可证",1079,{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fflag_lifecycle.md","REFERENCE","参考文档",5869,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Freferences\u002Fflag_lifecycle.md",{"path":98,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fflag_taxonomy.md",4511,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Freferences\u002Fflag_taxonomy.md",{"path":102,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Fprovider_comparison.md",5148,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Freferences\u002Fprovider_comparison.md",{"path":106,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Frollout_strategies.md",5024,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Freferences\u002Frollout_strategies.md",{"path":110,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":113,"sourceHtmlUrl":114},"scripts\u002Fflag_debt_scanner.py","SCRIPT","脚本",4827,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Fscripts\u002Fflag_debt_scanner.py",{"path":116,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":117,"sourceHtmlUrl":118},"scripts\u002Fkill_switch_audit.py",5000,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Fscripts\u002Fkill_switch_audit.py",{"path":120,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":121,"sourceHtmlUrl":122},"scripts\u002Frollout_planner.py",4533,"https:\u002F\u002Fgithub.com\u002Fmne20114-hash\u002Fgest35bi\u002Fblob\u002Fmain\u002Fclaude-skills\u002Fengineering\u002Ffeature-flags-architect\u002Fskills\u002Ffeature-flags-architect\u002Fscripts\u002Frollout_planner.py",[124,157,187,211,234,265],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":128,"sourceHtmlUrl":129,"categories":130,"keywords":136,"publishedAt":30},"01M6HN7EHN65GQEVEHWJ146W8C","swiftui-performance-audit","Audit and improve SwiftUI runtime performance from code review and architecture. Use for requests to diagnose slow rendering, janky scrolling, high CPU\u002Fmemory usage, excessive view updates, or layout thrash in SwiftUI apps, and to provide guidance for user-run Instruments profiling when code review alone is insufficient.","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fswiftui-performance-audit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fswiftui-performance-audit\u002FSKILL.md",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[137,138,139,140,141,142,143,144,145,146,147,148,149,26,150,151,152,153,154,155,156,29],"performance","swiftui performance audit","audit","swiftui","performance audit","code review","review","memory","architecture","diagnose","code","improve","view","instruments profiling","runtime","apps","usage","updates","high","for",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":167,"publishedAt":30},"01M6HN68GQ9MYF3VVJ8RH8EE54","stageshow","Build faux product UI that looks like a real product, as a still illustration or an animated demo with a cursor. Browser and app windows, dashboards, phones, notifications, terminals, bento grids and cursor walkthroughs, framed, masked and cropped the way a marketing page, feature card or docs hero needs them. Use whenever someone wants a fake or mocked UI, a product demo or walkthrough animation, a hero or feature-card illustration of an app, a product shot in the style of a polished marketing site, or an animated cursor doing things in an interface, even if they never say \"faux UI\". React and plain CSS.","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fstageshow\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fstageshow\u002FSKILL.md",[164],{"categoryNo":165,"categoryName":166,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000009","前端开发",[159,168,169,170,171,172,173,174,175,176,26,177,178,179,180,181,182,183,184,185,186],"css","react","windows","browser","demo","notifications","Animation","walkthrough","page","never","illustration","feature","as","app","framed","card","interface","things","hero",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":191,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":30},"01M6HN62WDPD2REKFZ0QH712BA","shadcn","Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn\u002Fui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for \"shadcn init\", \"create an app with --preset\", or \"switch to --preset\".","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fshadcn\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fshadcn\u002FSKILL.md",[],[189,195,196,197,198,199,200,201,202,203,204,205,206,181,207,208,209,210,153,156,29],"components","component","init","preset","debugging","create","file","examples","projects","switch","project","triggers","false","component docs","codes","with",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":215,"licenseFileUrl":216,"sourceHtmlUrl":217,"categories":218,"keywords":219,"publishedAt":30},"01M6HN5Z52QN1BF5B0XNHEN4FZ","portless","Set up and use portless for named local dev server URLs (e.g. https:\u002F\u002Fmyapp.localhost instead of http:\u002F\u002Flocalhost:3000). Use when integrating portless into a project, configuring dev server names, setting up the local proxy, working with .localhost domains, or troubleshooting port\u002Fproxy issues.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fportless\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fportless\u002FSKILL.md",[],[213,220,221,222,223,224,225,226,227,228,26,229,230,231,205,232,233,210,156,29],"local dev","http","dev","issues","proxy","https","server","SET","troubleshooting","local dev server","up","local","domains","port",{"skillNo":235,"name":236,"nameZh":6,"description":237,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":238,"sourceHtmlUrl":239,"categories":240,"keywords":247,"publishedAt":30},"01M6HN5MXHWEVRWHPPZ0S5AE3A","ios-simulator-skill","21 production-ready scripts for iOS app testing, building, and automation. Provides semantic UI navigation, build automation, accessibility testing, and simulator lifecycle management. Optimized for AI agents with minimal token output.","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fios-simulator-skill\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fios-simulator-skill\u002FSKILL.md",[241,244],{"categoryNo":242,"categoryName":243,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":245,"categoryName":246,"taxonomyType":134,"taxonomyTypeDesc":135},"01JBSEEDCAT000000000000023","Skill与智能体开发",[248,249,250,251,252,253,254,255,256,257,258,259,260,261,181,262,263,210,264,156],"ios","ios simulator skill","ios simulator","testing","ai agents","automation","accessibility","lifecycle","ready","minimal","build","accessibility testing","ios app","token","scripts","output","production-ready",{"skillNo":266,"name":267,"nameZh":6,"description":268,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":215,"licenseFileUrl":269,"sourceHtmlUrl":270,"categories":271,"keywords":272,"publishedAt":30},"01M6HN48WA9ZZNPR7C3A43Z4X1","deepsec","Run deepsec, an AI-powered cyber-security vulnerability scanner. Activates when the user invokes \u002Fdeepsec, asks to run deepsec, or wants to scan their repo, branch, or uncommitted changes for vulnerabilities.","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fdeepsec\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsalexandr0s\u002Fai-config\u002Fblob\u002Fmain\u002Fshared\u002Fskills\u002Fdeepsec\u002FSKILL.md",[],[267,273,274,275,276,277,278,279,280,25,281,282,283,156,284,29],"security","security vulnerability","vulnerabilities","run","vulnerability","vulnerability scanner","branch","repo","scanner","scan","security vulnerability scanner","changes"]