[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-launchdarkly-flag-command":3,"mdc--c4hku8-key":37,"related-repo-launchdarkly-launchdarkly-flag-command":717,"related-org-launchdarkly-launchdarkly-flag-command":803},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":32,"sourceUrl":35,"mdContent":36},"launchdarkly-flag-command","lookup LaunchDarkly feature flags","Resolve `\u002Fflag` style requests into the right LaunchDarkly flag lookup flow. Use when the user types `\u002Fflag`, asks to quickly find a flag by name\u002Fkey, wants a direct flag detail summary, or needs fast disambiguation between similar flags.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"launchdarkly","LaunchDarkly","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Flaunchdarkly.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Operations","operations","tag",{"name":17,"slug":18,"type":15},"Feature Flags","feature-flags",{"name":20,"slug":21,"type":15},"CLI","cli",{"name":9,"slug":8,"type":15},20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-06-05T07:31:58.151107","Apache-2.0",6,[29,30,31],"agent-skills","launchdarkly-ai","managed-by-terraform",{"repoUrl":24,"stars":23,"forks":27,"topics":33,"description":34},[29,30,31],"LaunchDarkly's official AI tooling","https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling\u002Ftree\u002FHEAD\u002Fskills\u002Ffeature-flags\u002Flaunchdarkly-flag-command","---\nname: launchdarkly-flag-command\ndescription: \"Resolve `\u002Fflag` style requests into the right LaunchDarkly flag lookup flow. Use when the user types `\u002Fflag`, asks to quickly find a flag by name\u002Fkey, wants a direct flag detail summary, or needs fast disambiguation between similar flags.\"\nlicense: Apache-2.0\ncompatibility: Requires the remotely hosted LaunchDarkly MCP server\nmetadata:\n  author: launchdarkly\n  version: \"1.0.0-experimental\"\n---\n\n# LaunchDarkly Flag Command Router\n\nYou're using a skill that standardizes quick `\u002Fflag` requests. Your job is to parse the user intent, resolve the requested flag with minimal friction, return an actionable summary, and route to deeper workflows when needed.\n\n## Scope Boundary\n\nThis skill is a **read-only lookup entrypoint**. It returns flag details and routes forward.\n\n**Hard constraints — you MUST NOT:**\n\n- Create, toggle, update, or delete flags\n- Assess whether a flag is safe to remove, stale, or ready for cleanup\n- Provide a \"verdict\", \"safe to remove\" conclusion, removal steps, or \"before removing\" advice\n- Offer to archive or delete the flag\n\n**When the user asks about removal or staleness**, your entire response for that part must be the flag summary table followed by this exact routing message (you may rephrase slightly but must keep the substance):\n\n> This quick lookup can only show you the flag's current config. To assess whether it's safe to remove, you need the **flag discovery** or **flag cleanup** skill — they scan code references, check status across all environments, and analyze downstream dependencies.\n\nThat's it. No analysis. No bullet points. No verdict. The removal question is answered by the routing message, not by you.\n\n## Prerequisites\n\nThis skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.\n\n**Required MCP tools:**\n- `list-flags` — search and disambiguate flag candidates\n- `get-flag` — fetch detailed configuration for a resolved flag\n\n**Optional MCP tools:**\n- `get-flag-status-across-envs` — compare lifecycle status across environments\n- `get-flag-health` — quick health snapshot for a single flag\n\n## Command Contract\n\nTreat these forms as equivalent intents:\n\n- `\u002Fflag \u003Cquery>`\n- `flag \u003Cquery>`\n- \"find flag \u003Cquery>\"\n- \"show me \u003Cquery> flag\"\n\nUse `production` as the default environment unless the user specifies another environment.\n\n## Workflow\n\n### Step 1: Parse and Normalize Input\n\n1. Extract the query text after `\u002Fflag`.\n2. If no query is provided, ask for one concise identifier (flag key, name fragment, or tag).\n3. Capture optional hints from the request:\n   - Environment (`staging`, `production`, etc.)\n   - Project key\n   - Preference for exact key vs fuzzy search\n\n### Step 2: Resolve the Flag\n\nUse `list-flags` first unless the user clearly provided an exact key and project.\n\n1. Search with `list-flags` using the query.\n2. If one clear exact match exists, resolve to that flag.\n3. If multiple plausible matches exist, return a short disambiguation list (key + name + state) and ask the user to pick.\n4. If no matches exist, tell the user and suggest one broader query.\n\n### Step 3: Return a Useful Summary\n\nFor a resolved flag, call `get-flag` and return:\n\n1. Flag key and name\n2. Environment state (`on`\u002F`off`)\n3. Off variation and fallthrough behavior\n4. Rule\u002Ftarget complexity (simple vs complex)\n5. Direct LaunchDarkly URL for the flag (when project + key are known)\n\n**If the user asked about removal, staleness, or cleanup** (e.g., \"is this safe to remove?\", \"can I clean this up?\", \"is this stale?\"):\n\nShow ONLY the summary table above, then write:\n\n> This quick lookup can only show you the flag's current config. To assess whether it's safe to remove, you need the **flag discovery** or **flag cleanup** skill — they scan code references, check status across all environments, and analyze downstream dependencies.\n\nDo not add a verdict, bullet-point analysis, removal steps, \"before removing\" checklist, or an offer to archive\u002Fdelete. The removal question is **fully answered by the routing message above**. Proceed to Step 4.\n\n### Step 4: Route to the Right Follow-up Workflow\n\nAfter returning the summary, check whether the user's request implies a deeper workflow. If it does, **name the skill and stop** — do not attempt the workflow yourself.\n\n| User intent | Route to |\n|---|---|\n| Create or modify a flag | [flag create skill](..\u002Flaunchdarkly-flag-create\u002FSKILL.md) |\n| Change targeting or rollout | [flag targeting skill](..\u002Flaunchdarkly-flag-targeting\u002FSKILL.md) |\n| \"Is this safe to remove?\", \"Is this stale?\", cleanup | [flag discovery](..\u002Flaunchdarkly-flag-discovery\u002FSKILL.md) \u002F [flag cleanup](..\u002Flaunchdarkly-flag-cleanup\u002FSKILL.md) |\n\nFor removal\u002Fstaleness questions specifically: follow the Scope Boundary instructions above — summary table only, then route. No verdict.\n\n## Output Style\n\nKeep `\u002Fflag` responses brief and operational:\n\n- Start with the resolved flag (or disambiguation list)\n- Include only the minimum config details needed for the next action\n- End with one clear next step question when user intent is ambiguous\n\n## Important Context\n\n- `\u002Fflag` is a fast entrypoint, not a full lifecycle workflow.\n- Prefer disambiguation over guessing when multiple flags match.\n- Treat project + environment as first-class context; avoid hidden assumptions.\n- When sharing rollout percentages, always use human-readable percentages.\n- **Never improvise removal, staleness, or cleanup analysis.** Always route to the dedicated skill.\n",{"data":38,"body":42},{"name":4,"description":6,"license":26,"compatibility":39,"metadata":40},"Requires the remotely hosted LaunchDarkly MCP server",{"author":8,"version":41},"1.0.0-experimental",{"type":43,"children":44},"root",[45,54,69,76,89,97,122,132,155,160,166,171,179,204,212,237,243,248,290,303,309,316,375,381,392,422,428,440,484,494,499,516,528,534,546,632,637,643,655,673,679],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"launchdarkly-flag-command-router",[51],{"type":52,"value":53},"text","LaunchDarkly Flag Command Router",{"type":46,"tag":55,"props":56,"children":57},"p",{},[58,60,67],{"type":52,"value":59},"You're using a skill that standardizes quick ",{"type":46,"tag":61,"props":62,"children":64},"code",{"className":63},[],[65],{"type":52,"value":66},"\u002Fflag",{"type":52,"value":68}," requests. Your job is to parse the user intent, resolve the requested flag with minimal friction, return an actionable summary, and route to deeper workflows when needed.",{"type":46,"tag":70,"props":71,"children":73},"h2",{"id":72},"scope-boundary",[74],{"type":52,"value":75},"Scope Boundary",{"type":46,"tag":55,"props":77,"children":78},{},[79,81,87],{"type":52,"value":80},"This skill is a ",{"type":46,"tag":82,"props":83,"children":84},"strong",{},[85],{"type":52,"value":86},"read-only lookup entrypoint",{"type":52,"value":88},". It returns flag details and routes forward.",{"type":46,"tag":55,"props":90,"children":91},{},[92],{"type":46,"tag":82,"props":93,"children":94},{},[95],{"type":52,"value":96},"Hard constraints — you MUST NOT:",{"type":46,"tag":98,"props":99,"children":100},"ul",{},[101,107,112,117],{"type":46,"tag":102,"props":103,"children":104},"li",{},[105],{"type":52,"value":106},"Create, toggle, update, or delete flags",{"type":46,"tag":102,"props":108,"children":109},{},[110],{"type":52,"value":111},"Assess whether a flag is safe to remove, stale, or ready for cleanup",{"type":46,"tag":102,"props":113,"children":114},{},[115],{"type":52,"value":116},"Provide a \"verdict\", \"safe to remove\" conclusion, removal steps, or \"before removing\" advice",{"type":46,"tag":102,"props":118,"children":119},{},[120],{"type":52,"value":121},"Offer to archive or delete the flag",{"type":46,"tag":55,"props":123,"children":124},{},[125,130],{"type":46,"tag":82,"props":126,"children":127},{},[128],{"type":52,"value":129},"When the user asks about removal or staleness",{"type":52,"value":131},", your entire response for that part must be the flag summary table followed by this exact routing message (you may rephrase slightly but must keep the substance):",{"type":46,"tag":133,"props":134,"children":135},"blockquote",{},[136],{"type":46,"tag":55,"props":137,"children":138},{},[139,141,146,148,153],{"type":52,"value":140},"This quick lookup can only show you the flag's current config. To assess whether it's safe to remove, you need the ",{"type":46,"tag":82,"props":142,"children":143},{},[144],{"type":52,"value":145},"flag discovery",{"type":52,"value":147}," or ",{"type":46,"tag":82,"props":149,"children":150},{},[151],{"type":52,"value":152},"flag cleanup",{"type":52,"value":154}," skill — they scan code references, check status across all environments, and analyze downstream dependencies.",{"type":46,"tag":55,"props":156,"children":157},{},[158],{"type":52,"value":159},"That's it. No analysis. No bullet points. No verdict. The removal question is answered by the routing message, not by you.",{"type":46,"tag":70,"props":161,"children":163},{"id":162},"prerequisites",[164],{"type":52,"value":165},"Prerequisites",{"type":46,"tag":55,"props":167,"children":168},{},[169],{"type":52,"value":170},"This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.",{"type":46,"tag":55,"props":172,"children":173},{},[174],{"type":46,"tag":82,"props":175,"children":176},{},[177],{"type":52,"value":178},"Required MCP tools:",{"type":46,"tag":98,"props":180,"children":181},{},[182,193],{"type":46,"tag":102,"props":183,"children":184},{},[185,191],{"type":46,"tag":61,"props":186,"children":188},{"className":187},[],[189],{"type":52,"value":190},"list-flags",{"type":52,"value":192}," — search and disambiguate flag candidates",{"type":46,"tag":102,"props":194,"children":195},{},[196,202],{"type":46,"tag":61,"props":197,"children":199},{"className":198},[],[200],{"type":52,"value":201},"get-flag",{"type":52,"value":203}," — fetch detailed configuration for a resolved flag",{"type":46,"tag":55,"props":205,"children":206},{},[207],{"type":46,"tag":82,"props":208,"children":209},{},[210],{"type":52,"value":211},"Optional MCP tools:",{"type":46,"tag":98,"props":213,"children":214},{},[215,226],{"type":46,"tag":102,"props":216,"children":217},{},[218,224],{"type":46,"tag":61,"props":219,"children":221},{"className":220},[],[222],{"type":52,"value":223},"get-flag-status-across-envs",{"type":52,"value":225}," — compare lifecycle status across environments",{"type":46,"tag":102,"props":227,"children":228},{},[229,235],{"type":46,"tag":61,"props":230,"children":232},{"className":231},[],[233],{"type":52,"value":234},"get-flag-health",{"type":52,"value":236}," — quick health snapshot for a single flag",{"type":46,"tag":70,"props":238,"children":240},{"id":239},"command-contract",[241],{"type":52,"value":242},"Command Contract",{"type":46,"tag":55,"props":244,"children":245},{},[246],{"type":52,"value":247},"Treat these forms as equivalent intents:",{"type":46,"tag":98,"props":249,"children":250},{},[251,260,269,280],{"type":46,"tag":102,"props":252,"children":253},{},[254],{"type":46,"tag":61,"props":255,"children":257},{"className":256},[],[258],{"type":52,"value":259},"\u002Fflag \u003Cquery>",{"type":46,"tag":102,"props":261,"children":262},{},[263],{"type":46,"tag":61,"props":264,"children":266},{"className":265},[],[267],{"type":52,"value":268},"flag \u003Cquery>",{"type":46,"tag":102,"props":270,"children":271},{},[272,274],{"type":52,"value":273},"\"find flag ",{"type":46,"tag":275,"props":276,"children":277},"query",{},[278],{"type":52,"value":279},"\"",{"type":46,"tag":102,"props":281,"children":282},{},[283,285],{"type":52,"value":284},"\"show me ",{"type":46,"tag":275,"props":286,"children":287},{},[288],{"type":52,"value":289}," flag\"",{"type":46,"tag":55,"props":291,"children":292},{},[293,295,301],{"type":52,"value":294},"Use ",{"type":46,"tag":61,"props":296,"children":298},{"className":297},[],[299],{"type":52,"value":300},"production",{"type":52,"value":302}," as the default environment unless the user specifies another environment.",{"type":46,"tag":70,"props":304,"children":306},{"id":305},"workflow",[307],{"type":52,"value":308},"Workflow",{"type":46,"tag":310,"props":311,"children":313},"h3",{"id":312},"step-1-parse-and-normalize-input",[314],{"type":52,"value":315},"Step 1: Parse and Normalize Input",{"type":46,"tag":317,"props":318,"children":319},"ol",{},[320,332,337],{"type":46,"tag":102,"props":321,"children":322},{},[323,325,330],{"type":52,"value":324},"Extract the query text after ",{"type":46,"tag":61,"props":326,"children":328},{"className":327},[],[329],{"type":52,"value":66},{"type":52,"value":331},".",{"type":46,"tag":102,"props":333,"children":334},{},[335],{"type":52,"value":336},"If no query is provided, ask for one concise identifier (flag key, name fragment, or tag).",{"type":46,"tag":102,"props":338,"children":339},{},[340,342],{"type":52,"value":341},"Capture optional hints from the request:\n",{"type":46,"tag":98,"props":343,"children":344},{},[345,365,370],{"type":46,"tag":102,"props":346,"children":347},{},[348,350,356,358,363],{"type":52,"value":349},"Environment (",{"type":46,"tag":61,"props":351,"children":353},{"className":352},[],[354],{"type":52,"value":355},"staging",{"type":52,"value":357},", ",{"type":46,"tag":61,"props":359,"children":361},{"className":360},[],[362],{"type":52,"value":300},{"type":52,"value":364},", etc.)",{"type":46,"tag":102,"props":366,"children":367},{},[368],{"type":52,"value":369},"Project key",{"type":46,"tag":102,"props":371,"children":372},{},[373],{"type":52,"value":374},"Preference for exact key vs fuzzy search",{"type":46,"tag":310,"props":376,"children":378},{"id":377},"step-2-resolve-the-flag",[379],{"type":52,"value":380},"Step 2: Resolve the Flag",{"type":46,"tag":55,"props":382,"children":383},{},[384,385,390],{"type":52,"value":294},{"type":46,"tag":61,"props":386,"children":388},{"className":387},[],[389],{"type":52,"value":190},{"type":52,"value":391}," first unless the user clearly provided an exact key and project.",{"type":46,"tag":317,"props":393,"children":394},{},[395,407,412,417],{"type":46,"tag":102,"props":396,"children":397},{},[398,400,405],{"type":52,"value":399},"Search with ",{"type":46,"tag":61,"props":401,"children":403},{"className":402},[],[404],{"type":52,"value":190},{"type":52,"value":406}," using the query.",{"type":46,"tag":102,"props":408,"children":409},{},[410],{"type":52,"value":411},"If one clear exact match exists, resolve to that flag.",{"type":46,"tag":102,"props":413,"children":414},{},[415],{"type":52,"value":416},"If multiple plausible matches exist, return a short disambiguation list (key + name + state) and ask the user to pick.",{"type":46,"tag":102,"props":418,"children":419},{},[420],{"type":52,"value":421},"If no matches exist, tell the user and suggest one broader query.",{"type":46,"tag":310,"props":423,"children":425},{"id":424},"step-3-return-a-useful-summary",[426],{"type":52,"value":427},"Step 3: Return a Useful Summary",{"type":46,"tag":55,"props":429,"children":430},{},[431,433,438],{"type":52,"value":432},"For a resolved flag, call ",{"type":46,"tag":61,"props":434,"children":436},{"className":435},[],[437],{"type":52,"value":201},{"type":52,"value":439}," and return:",{"type":46,"tag":317,"props":441,"children":442},{},[443,448,469,474,479],{"type":46,"tag":102,"props":444,"children":445},{},[446],{"type":52,"value":447},"Flag key and name",{"type":46,"tag":102,"props":449,"children":450},{},[451,453,459,461,467],{"type":52,"value":452},"Environment state (",{"type":46,"tag":61,"props":454,"children":456},{"className":455},[],[457],{"type":52,"value":458},"on",{"type":52,"value":460},"\u002F",{"type":46,"tag":61,"props":462,"children":464},{"className":463},[],[465],{"type":52,"value":466},"off",{"type":52,"value":468},")",{"type":46,"tag":102,"props":470,"children":471},{},[472],{"type":52,"value":473},"Off variation and fallthrough behavior",{"type":46,"tag":102,"props":475,"children":476},{},[477],{"type":52,"value":478},"Rule\u002Ftarget complexity (simple vs complex)",{"type":46,"tag":102,"props":480,"children":481},{},[482],{"type":52,"value":483},"Direct LaunchDarkly URL for the flag (when project + key are known)",{"type":46,"tag":55,"props":485,"children":486},{},[487,492],{"type":46,"tag":82,"props":488,"children":489},{},[490],{"type":52,"value":491},"If the user asked about removal, staleness, or cleanup",{"type":52,"value":493}," (e.g., \"is this safe to remove?\", \"can I clean this up?\", \"is this stale?\"):",{"type":46,"tag":55,"props":495,"children":496},{},[497],{"type":52,"value":498},"Show ONLY the summary table above, then write:",{"type":46,"tag":133,"props":500,"children":501},{},[502],{"type":46,"tag":55,"props":503,"children":504},{},[505,506,510,511,515],{"type":52,"value":140},{"type":46,"tag":82,"props":507,"children":508},{},[509],{"type":52,"value":145},{"type":52,"value":147},{"type":46,"tag":82,"props":512,"children":513},{},[514],{"type":52,"value":152},{"type":52,"value":154},{"type":46,"tag":55,"props":517,"children":518},{},[519,521,526],{"type":52,"value":520},"Do not add a verdict, bullet-point analysis, removal steps, \"before removing\" checklist, or an offer to archive\u002Fdelete. The removal question is ",{"type":46,"tag":82,"props":522,"children":523},{},[524],{"type":52,"value":525},"fully answered by the routing message above",{"type":52,"value":527},". Proceed to Step 4.",{"type":46,"tag":310,"props":529,"children":531},{"id":530},"step-4-route-to-the-right-follow-up-workflow",[532],{"type":52,"value":533},"Step 4: Route to the Right Follow-up Workflow",{"type":46,"tag":55,"props":535,"children":536},{},[537,539,544],{"type":52,"value":538},"After returning the summary, check whether the user's request implies a deeper workflow. If it does, ",{"type":46,"tag":82,"props":540,"children":541},{},[542],{"type":52,"value":543},"name the skill and stop",{"type":52,"value":545}," — do not attempt the workflow yourself.",{"type":46,"tag":547,"props":548,"children":549},"table",{},[550,569],{"type":46,"tag":551,"props":552,"children":553},"thead",{},[554],{"type":46,"tag":555,"props":556,"children":557},"tr",{},[558,564],{"type":46,"tag":559,"props":560,"children":561},"th",{},[562],{"type":52,"value":563},"User intent",{"type":46,"tag":559,"props":565,"children":566},{},[567],{"type":52,"value":568},"Route to",{"type":46,"tag":570,"props":571,"children":572},"tbody",{},[573,592,609],{"type":46,"tag":555,"props":574,"children":575},{},[576,582],{"type":46,"tag":577,"props":578,"children":579},"td",{},[580],{"type":52,"value":581},"Create or modify a flag",{"type":46,"tag":577,"props":583,"children":584},{},[585],{"type":46,"tag":586,"props":587,"children":589},"a",{"href":588},"..\u002Flaunchdarkly-flag-create\u002FSKILL.md",[590],{"type":52,"value":591},"flag create skill",{"type":46,"tag":555,"props":593,"children":594},{},[595,600],{"type":46,"tag":577,"props":596,"children":597},{},[598],{"type":52,"value":599},"Change targeting or rollout",{"type":46,"tag":577,"props":601,"children":602},{},[603],{"type":46,"tag":586,"props":604,"children":606},{"href":605},"..\u002Flaunchdarkly-flag-targeting\u002FSKILL.md",[607],{"type":52,"value":608},"flag targeting skill",{"type":46,"tag":555,"props":610,"children":611},{},[612,617],{"type":46,"tag":577,"props":613,"children":614},{},[615],{"type":52,"value":616},"\"Is this safe to remove?\", \"Is this stale?\", cleanup",{"type":46,"tag":577,"props":618,"children":619},{},[620,625,627],{"type":46,"tag":586,"props":621,"children":623},{"href":622},"..\u002Flaunchdarkly-flag-discovery\u002FSKILL.md",[624],{"type":52,"value":145},{"type":52,"value":626}," \u002F ",{"type":46,"tag":586,"props":628,"children":630},{"href":629},"..\u002Flaunchdarkly-flag-cleanup\u002FSKILL.md",[631],{"type":52,"value":152},{"type":46,"tag":55,"props":633,"children":634},{},[635],{"type":52,"value":636},"For removal\u002Fstaleness questions specifically: follow the Scope Boundary instructions above — summary table only, then route. No verdict.",{"type":46,"tag":70,"props":638,"children":640},{"id":639},"output-style",[641],{"type":52,"value":642},"Output Style",{"type":46,"tag":55,"props":644,"children":645},{},[646,648,653],{"type":52,"value":647},"Keep ",{"type":46,"tag":61,"props":649,"children":651},{"className":650},[],[652],{"type":52,"value":66},{"type":52,"value":654}," responses brief and operational:",{"type":46,"tag":98,"props":656,"children":657},{},[658,663,668],{"type":46,"tag":102,"props":659,"children":660},{},[661],{"type":52,"value":662},"Start with the resolved flag (or disambiguation list)",{"type":46,"tag":102,"props":664,"children":665},{},[666],{"type":52,"value":667},"Include only the minimum config details needed for the next action",{"type":46,"tag":102,"props":669,"children":670},{},[671],{"type":52,"value":672},"End with one clear next step question when user intent is ambiguous",{"type":46,"tag":70,"props":674,"children":676},{"id":675},"important-context",[677],{"type":52,"value":678},"Important Context",{"type":46,"tag":98,"props":680,"children":681},{},[682,692,697,702,707],{"type":46,"tag":102,"props":683,"children":684},{},[685,690],{"type":46,"tag":61,"props":686,"children":688},{"className":687},[],[689],{"type":52,"value":66},{"type":52,"value":691}," is a fast entrypoint, not a full lifecycle workflow.",{"type":46,"tag":102,"props":693,"children":694},{},[695],{"type":52,"value":696},"Prefer disambiguation over guessing when multiple flags match.",{"type":46,"tag":102,"props":698,"children":699},{},[700],{"type":52,"value":701},"Treat project + environment as first-class context; avoid hidden assumptions.",{"type":46,"tag":102,"props":703,"children":704},{},[705],{"type":52,"value":706},"When sharing rollout percentages, always use human-readable percentages.",{"type":46,"tag":102,"props":708,"children":709},{},[710,715],{"type":46,"tag":82,"props":711,"children":712},{},[713],{"type":52,"value":714},"Never improvise removal, staleness, or cleanup analysis.",{"type":52,"value":716}," Always route to the dedicated skill.",{"items":718,"total":802},[719,736,745,759,770,780,788],{"slug":720,"name":720,"fn":721,"description":722,"org":723,"tags":724,"stars":23,"repoUrl":24,"updatedAt":735},"agent-graphs","create and manage agent graphs","Create and manage agent graphs — directed graphs of configs connected by edges with handoff logic. Use when building multi-agent workflows where configs route to each other.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[725,728,731,732],{"name":726,"slug":727,"type":15},"Agents","agents",{"name":729,"slug":730,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},{"name":733,"slug":734,"type":15},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":737,"name":737,"fn":738,"description":739,"org":740,"tags":741,"stars":23,"repoUrl":24,"updatedAt":744},"aiconfig-agent-graphs","manage agent graphs","DEPRECATED redirect — this skill was renamed to agent-graphs. Do not use this skill; invoke agent-graphs instead. Kept only so old references to aiconfig-agent-graphs still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[742,743],{"name":726,"slug":727,"type":15},{"name":729,"slug":730,"type":15},"2026-05-22T06:55:56.527064",{"slug":746,"name":746,"fn":747,"description":748,"org":749,"tags":750,"stars":23,"repoUrl":24,"updatedAt":758},"aiconfig-ai-metrics","manage built-in AI metrics","DEPRECATED redirect — this skill was renamed to built-in-metrics. Do not use this skill; invoke built-in-metrics instead. Kept only so old references to aiconfig-ai-metrics still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[751,754,755],{"name":752,"slug":753,"type":15},"Analytics","analytics",{"name":9,"slug":8,"type":15},{"name":756,"slug":757,"type":15},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":760,"name":760,"fn":761,"description":762,"org":763,"tags":764,"stars":23,"repoUrl":24,"updatedAt":769},"aiconfig-create","redirect to configs-create skill","DEPRECATED redirect — this skill was renamed to configs-create. Do not use this skill; invoke configs-create instead. Kept only so old references to aiconfig-create still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[765,766],{"name":9,"slug":8,"type":15},{"name":767,"slug":768,"type":15},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":771,"name":771,"fn":772,"description":773,"org":774,"tags":775,"stars":23,"repoUrl":24,"updatedAt":779},"aiconfig-custom-metrics","configure custom metrics in LaunchDarkly","DEPRECATED redirect — this skill was renamed to custom-metrics. Do not use this skill; invoke custom-metrics instead. Kept only so old references to aiconfig-custom-metrics still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[776,777,778],{"name":752,"slug":753,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:57.84851",{"slug":781,"name":781,"fn":782,"description":783,"org":784,"tags":785,"stars":23,"repoUrl":24,"updatedAt":787},"aiconfig-migrate","redirect to migrate skill","DEPRECATED redirect — this skill was renamed to migrate. Do not use this skill; invoke migrate instead. Kept only so old references to aiconfig-migrate still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[786],{"name":767,"slug":768,"type":15},"2026-05-22T06:55:44.464733",{"slug":789,"name":789,"fn":790,"description":791,"org":792,"tags":793,"stars":23,"repoUrl":24,"updatedAt":801},"aiconfig-online-evals","run online evaluations","DEPRECATED redirect — this skill was renamed to online-evals. Do not use this skill; invoke online-evals instead. Kept only so old references to aiconfig-online-evals still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[794,797,798],{"name":795,"slug":796,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":799,"slug":800,"type":15},"Testing","testing","2026-05-22T06:55:55.179617",49,{"items":804,"total":802},[805,812,817,823,828,834,838,844,855,864,874,883],{"slug":720,"name":720,"fn":721,"description":722,"org":806,"tags":807,"stars":23,"repoUrl":24,"updatedAt":735},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[808,809,810,811],{"name":726,"slug":727,"type":15},{"name":729,"slug":730,"type":15},{"name":9,"slug":8,"type":15},{"name":733,"slug":734,"type":15},{"slug":737,"name":737,"fn":738,"description":739,"org":813,"tags":814,"stars":23,"repoUrl":24,"updatedAt":744},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[815,816],{"name":726,"slug":727,"type":15},{"name":729,"slug":730,"type":15},{"slug":746,"name":746,"fn":747,"description":748,"org":818,"tags":819,"stars":23,"repoUrl":24,"updatedAt":758},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[820,821,822],{"name":752,"slug":753,"type":15},{"name":9,"slug":8,"type":15},{"name":756,"slug":757,"type":15},{"slug":760,"name":760,"fn":761,"description":762,"org":824,"tags":825,"stars":23,"repoUrl":24,"updatedAt":769},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[826,827],{"name":9,"slug":8,"type":15},{"name":767,"slug":768,"type":15},{"slug":771,"name":771,"fn":772,"description":773,"org":829,"tags":830,"stars":23,"repoUrl":24,"updatedAt":779},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[831,832,833],{"name":752,"slug":753,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":781,"name":781,"fn":782,"description":783,"org":835,"tags":836,"stars":23,"repoUrl":24,"updatedAt":787},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[837],{"name":767,"slug":768,"type":15},{"slug":789,"name":789,"fn":790,"description":791,"org":839,"tags":840,"stars":23,"repoUrl":24,"updatedAt":801},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[841,842,843],{"name":795,"slug":796,"type":15},{"name":9,"slug":8,"type":15},{"name":799,"slug":800,"type":15},{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":23,"repoUrl":24,"updatedAt":854},"aiconfig-projects","manage AI configuration projects","DEPRECATED redirect — this skill was renamed to projects. Do not use this skill; invoke projects instead. Kept only so old references to aiconfig-projects still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[850,853],{"name":851,"slug":852,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},"2026-05-22T06:55:48.522229",{"slug":856,"name":856,"fn":857,"description":858,"org":859,"tags":860,"stars":23,"repoUrl":24,"updatedAt":863},"aiconfig-snippets","manage AI configuration snippets","DEPRECATED redirect — this skill was renamed to snippets. Do not use this skill; invoke snippets instead. Kept only so old references to aiconfig-snippets still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[861,862],{"name":851,"slug":852,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:47.16557",{"slug":865,"name":865,"fn":866,"description":867,"org":868,"tags":869,"stars":23,"repoUrl":24,"updatedAt":873},"aiconfig-targeting","configure LaunchDarkly targeting rules","DEPRECATED redirect — this skill was renamed to configs-targeting. Do not use this skill; invoke configs-targeting instead. Kept only so old references to aiconfig-targeting still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[870,871,872],{"name":851,"slug":852,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:49.845445",{"slug":875,"name":875,"fn":876,"description":877,"org":878,"tags":879,"stars":23,"repoUrl":24,"updatedAt":882},"aiconfig-tools","redirect to tools skill","DEPRECATED redirect — this skill was renamed to tools. Do not use this skill; invoke tools instead. Kept only so old references to aiconfig-tools still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[880,881],{"name":9,"slug":8,"type":15},{"name":767,"slug":768,"type":15},"2026-05-22T06:55:39.13373",{"slug":884,"name":884,"fn":885,"description":886,"org":887,"tags":888,"stars":23,"repoUrl":24,"updatedAt":891},"aiconfig-update","redirect to configs-update skill","DEPRECATED redirect — this skill was renamed to configs-update. Do not use this skill; invoke configs-update instead. Kept only so old references to aiconfig-update still point users to the new name.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[889,890],{"name":9,"slug":8,"type":15},{"name":767,"slug":768,"type":15},"2026-05-22T06:55:40.464884"]