[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-sdk-install":3,"mdc-2g1m8c-key":34,"related-repo-launchdarkly-sdk-install":704,"related-org-launchdarkly-sdk-install":792},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":29,"sourceUrl":32,"mdContent":33},"sdk-install","manage LaunchDarkly SDK installation workflow","Install and initialize the correct LaunchDarkly SDK during onboarding by running nested skills in order: detect, plan, apply. Parent onboarding Step 6 is first flag.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"launchdarkly","LaunchDarkly","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Flaunchdarkly.png",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"SDK","sdk",{"name":18,"slug":19,"type":13},"Workflow Automation","workflow-automation",20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-04-16T05:08:00.710423","Apache-2.0",6,[26,27,28],"agent-skills","launchdarkly-ai","managed-by-terraform",{"repoUrl":21,"stars":20,"forks":24,"topics":30,"description":31},[26,27,28],"LaunchDarkly's official AI tooling","https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling\u002Ftree\u002FHEAD\u002Fskills\u002Fonboarding\u002Fsdk-install","---\nname: sdk-install\ndescription: \"Install and initialize the correct LaunchDarkly SDK during onboarding by running nested skills in order: detect, plan, apply. Parent onboarding Step 6 is first flag.\"\nlicense: Apache-2.0\ncompatibility: Requires a supported language\u002Fframework in the project. SDK credentials are required by [Apply](apply\u002FSKILL.md), not for [Detect](detect\u002FSKILL.md) \u002F [Plan](plan\u002FSKILL.md) alone (see parent onboarding **Prerequisites**).\nmetadata:\n  author: launchdarkly\n  version: \"0.2.0\"\n---\n\n# LaunchDarkly SDK Install (onboarding)\n\nInstalls and initializes the right LaunchDarkly SDK for the user’s project by following **three nested skills in order**. **Do not** skip ahead to feature flags here—the parent [LaunchDarkly onboarding](..\u002FSKILL.md) continues with **Step 6: First feature flag** using [Create first feature flag](..\u002Ffirst-flag\u002FSKILL.md).\n\n## Prerequisites\n\n- Project context from parent **Step 1: Explore the Project** (reuse it; only re-run deep detection if something is unclear)\n- **SDK key \u002F client-side ID \u002F mobile key:** Needed when you reach [Apply code changes](apply\u002FSKILL.md) (env wiring). **Do not** ask the user for these during detect or plan solely because you opened this skill—follow parent onboarding: account status is inferred via MCP OAuth (Step 4) or surfaced at D7 in apply; key material is collected at apply (see parent [Prerequisites](..\u002FSKILL.md#prerequisites)).\n\n## Key types (summary)\n\n| SDK Type    | Variable (logical)        | Source in LaunchDarkly        |\n|-------------|---------------------------|-------------------------------|\n| Server-side | `LAUNCHDARKLY_SDK_KEY`    | Environments → SDK key        |\n| Client-side | Client-side ID (bundler-prefixed env names) | Environments → Client-side ID |\n| Mobile      | `LAUNCHDARKLY_MOBILE_KEY` | Environments → Mobile key     |\n\n**Never hardcode keys.** Full env rules, consent, and bundler tables: [Apply code changes](apply\u002FSKILL.md) Step 2.\n\n## Workflow — run these nested skills in order\n\nExecute **all three** unless the [detect decision tree](detect\u002FSKILL.md#decision-tree) short-circuits (e.g. skip to apply only). Each nested skill may contain decision points — some **blocking** (marked `D\u003CN> -- BLOCKING`, where you must call your structured question tool and wait for the user's response before continuing) and some **non-blocking** (where you present information and continue unless the user objects). Do NOT batch tool calls across blocking boundaries.\n\n| Order | Nested skill | Role |\n|-------|----------------|------|\n| 1 | [Detect repository stack](detect\u002FSKILL.md) | Language, package manager, monorepo target, entrypoint, existing LD usage |\n| 2 | [Generate integration plan](plan\u002FSKILL.md) | SDK choice, files to change, env plan -- presented to user (non-blocking; see plan SKILL.md D6) |\n| 3 | [Apply code changes](apply\u002FSKILL.md) | Install package(s), `.env` \u002F secrets with consent, init code, compile check (**both** tracks when [dual-SDK plan](plan\u002FSKILL.md#dual-sdk-integrations)) |\n\nShared references for all steps: [SDK recipes](..\u002Freferences\u002Fsdk\u002Frecipes.md), [SDK snippets](..\u002Freferences\u002Fsdk\u002Fsnippets\u002F).\n\n### After Step 3 completes\n\nContinue with the parent skill:\n\n- **Step 6:** [Create first feature flag](..\u002Ffirst-flag\u002FSKILL.md)\n\nDo not add standalone “sample flag” evaluation in this skill unless the user explicitly needs a throwaway check; the parent flow creates the first flag in order.\n\n## Guidelines\n\n- Match existing codebase conventions for imports, config, and style.\n- Prefer TypeScript in TypeScript projects.\n- If the project uses a shared config layer, initialize LaunchDarkly there.\n- Add `.env.example` entries when the project uses dotenv.\n- **Dependency scope:** Add only LaunchDarkly SDK package(s) from the recipe unless the user **explicitly approves** upgrading or adding other packages ([Apply — Permission before changing other dependencies](apply\u002FSKILL.md#permission-before-changing-other-dependencies)).\n\n## Edge cases\n\n- **Multiple environments (e.g. Next.js server + client) or user asked for frontend + backend:** Use a **dual-SDK** [plan](plan\u002FSKILL.md#dual-sdk-integrations) and [apply](apply\u002FSKILL.md) **both** packages and **both** inits—never summarize the second SDK as done without lockfile + entrypoint evidence.\n- **Monorepo:** Integrate the package the user chose in parent onboarding; stay within that subtree.\n- **SDK already installed and initialized:** Parent may skip this handoff—see parent **Edge Cases** and [detect decision tree](detect\u002FSKILL.md#decision-tree).\n- **Unsupported or uncommon stack:** Use [SDK recipes](..\u002Freferences\u002Fsdk\u002Frecipes.md) and the [full SDK catalog](https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk).\n\n## References\n\n- [Detect repository stack](detect\u002FSKILL.md)\n- [Generate integration plan](plan\u002FSKILL.md)\n- [Apply code changes](apply\u002FSKILL.md)\n- [SDK recipes](..\u002Freferences\u002Fsdk\u002Frecipes.md)\n- [SDK snippets](..\u002Freferences\u002Fsdk\u002Fsnippets\u002F)\n- [LaunchDarkly onboarding (parent)](..\u002FSKILL.md)\n",{"data":35,"body":39},{"name":4,"description":6,"license":23,"compatibility":36,"metadata":37},"Requires a supported language\u002Fframework in the project. SDK credentials are required by [Apply](apply\u002FSKILL.md), not for [Detect](detect\u002FSKILL.md) \u002F [Plan](plan\u002FSKILL.md) alone (see parent onboarding **Prerequisites**).",{"author":8,"version":38},"0.2.0",{"type":40,"children":41},"root",[42,51,96,103,151,157,253,269,275,317,431,451,458,463,480,485,491,546,552,652,658],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"launchdarkly-sdk-install-onboarding",[48],{"type":49,"value":50},"text","LaunchDarkly SDK Install (onboarding)",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55,57,63,65,70,72,79,81,86,88,94],{"type":49,"value":56},"Installs and initializes the right LaunchDarkly SDK for the user’s project by following ",{"type":43,"tag":58,"props":59,"children":60},"strong",{},[61],{"type":49,"value":62},"three nested skills in order",{"type":49,"value":64},". ",{"type":43,"tag":58,"props":66,"children":67},{},[68],{"type":49,"value":69},"Do not",{"type":49,"value":71}," skip ahead to feature flags here—the parent ",{"type":43,"tag":73,"props":74,"children":76},"a",{"href":75},"..\u002FSKILL.md",[77],{"type":49,"value":78},"LaunchDarkly onboarding",{"type":49,"value":80}," continues with ",{"type":43,"tag":58,"props":82,"children":83},{},[84],{"type":49,"value":85},"Step 6: First feature flag",{"type":49,"value":87}," using ",{"type":43,"tag":73,"props":89,"children":91},{"href":90},"..\u002Ffirst-flag\u002FSKILL.md",[92],{"type":49,"value":93},"Create first feature flag",{"type":49,"value":95},".",{"type":43,"tag":97,"props":98,"children":100},"h2",{"id":99},"prerequisites",[101],{"type":49,"value":102},"Prerequisites",{"type":43,"tag":104,"props":105,"children":106},"ul",{},[107,120],{"type":43,"tag":108,"props":109,"children":110},"li",{},[111,113,118],{"type":49,"value":112},"Project context from parent ",{"type":43,"tag":58,"props":114,"children":115},{},[116],{"type":49,"value":117},"Step 1: Explore the Project",{"type":49,"value":119}," (reuse it; only re-run deep detection if something is unclear)",{"type":43,"tag":108,"props":121,"children":122},{},[123,128,130,136,138,142,144,149],{"type":43,"tag":58,"props":124,"children":125},{},[126],{"type":49,"value":127},"SDK key \u002F client-side ID \u002F mobile key:",{"type":49,"value":129}," Needed when you reach ",{"type":43,"tag":73,"props":131,"children":133},{"href":132},"apply\u002FSKILL.md",[134],{"type":49,"value":135},"Apply code changes",{"type":49,"value":137}," (env wiring). ",{"type":43,"tag":58,"props":139,"children":140},{},[141],{"type":49,"value":69},{"type":49,"value":143}," ask the user for these during detect or plan solely because you opened this skill—follow parent onboarding: account status is inferred via MCP OAuth (Step 4) or surfaced at D7 in apply; key material is collected at apply (see parent ",{"type":43,"tag":73,"props":145,"children":147},{"href":146},"..\u002FSKILL.md#prerequisites",[148],{"type":49,"value":102},{"type":49,"value":150},").",{"type":43,"tag":97,"props":152,"children":154},{"id":153},"key-types-summary",[155],{"type":49,"value":156},"Key types (summary)",{"type":43,"tag":158,"props":159,"children":160},"table",{},[161,185],{"type":43,"tag":162,"props":163,"children":164},"thead",{},[165],{"type":43,"tag":166,"props":167,"children":168},"tr",{},[169,175,180],{"type":43,"tag":170,"props":171,"children":172},"th",{},[173],{"type":49,"value":174},"SDK Type",{"type":43,"tag":170,"props":176,"children":177},{},[178],{"type":49,"value":179},"Variable (logical)",{"type":43,"tag":170,"props":181,"children":182},{},[183],{"type":49,"value":184},"Source in LaunchDarkly",{"type":43,"tag":186,"props":187,"children":188},"tbody",{},[189,213,231],{"type":43,"tag":166,"props":190,"children":191},{},[192,198,208],{"type":43,"tag":193,"props":194,"children":195},"td",{},[196],{"type":49,"value":197},"Server-side",{"type":43,"tag":193,"props":199,"children":200},{},[201],{"type":43,"tag":202,"props":203,"children":205},"code",{"className":204},[],[206],{"type":49,"value":207},"LAUNCHDARKLY_SDK_KEY",{"type":43,"tag":193,"props":209,"children":210},{},[211],{"type":49,"value":212},"Environments → SDK key",{"type":43,"tag":166,"props":214,"children":215},{},[216,221,226],{"type":43,"tag":193,"props":217,"children":218},{},[219],{"type":49,"value":220},"Client-side",{"type":43,"tag":193,"props":222,"children":223},{},[224],{"type":49,"value":225},"Client-side ID (bundler-prefixed env names)",{"type":43,"tag":193,"props":227,"children":228},{},[229],{"type":49,"value":230},"Environments → Client-side ID",{"type":43,"tag":166,"props":232,"children":233},{},[234,239,248],{"type":43,"tag":193,"props":235,"children":236},{},[237],{"type":49,"value":238},"Mobile",{"type":43,"tag":193,"props":240,"children":241},{},[242],{"type":43,"tag":202,"props":243,"children":245},{"className":244},[],[246],{"type":49,"value":247},"LAUNCHDARKLY_MOBILE_KEY",{"type":43,"tag":193,"props":249,"children":250},{},[251],{"type":49,"value":252},"Environments → Mobile key",{"type":43,"tag":52,"props":254,"children":255},{},[256,261,263,267],{"type":43,"tag":58,"props":257,"children":258},{},[259],{"type":49,"value":260},"Never hardcode keys.",{"type":49,"value":262}," Full env rules, consent, and bundler tables: ",{"type":43,"tag":73,"props":264,"children":265},{"href":132},[266],{"type":49,"value":135},{"type":49,"value":268}," Step 2.",{"type":43,"tag":97,"props":270,"children":272},{"id":271},"workflow-run-these-nested-skills-in-order",[273],{"type":49,"value":274},"Workflow — run these nested skills in order",{"type":43,"tag":52,"props":276,"children":277},{},[278,280,285,287,293,295,300,302,308,310,315],{"type":49,"value":279},"Execute ",{"type":43,"tag":58,"props":281,"children":282},{},[283],{"type":49,"value":284},"all three",{"type":49,"value":286}," unless the ",{"type":43,"tag":73,"props":288,"children":290},{"href":289},"detect\u002FSKILL.md#decision-tree",[291],{"type":49,"value":292},"detect decision tree",{"type":49,"value":294}," short-circuits (e.g. skip to apply only). Each nested skill may contain decision points — some ",{"type":43,"tag":58,"props":296,"children":297},{},[298],{"type":49,"value":299},"blocking",{"type":49,"value":301}," (marked ",{"type":43,"tag":202,"props":303,"children":305},{"className":304},[],[306],{"type":49,"value":307},"D\u003CN> -- BLOCKING",{"type":49,"value":309},", where you must call your structured question tool and wait for the user's response before continuing) and some ",{"type":43,"tag":58,"props":311,"children":312},{},[313],{"type":49,"value":314},"non-blocking",{"type":49,"value":316}," (where you present information and continue unless the user objects). Do NOT batch tool calls across blocking boundaries.",{"type":43,"tag":158,"props":318,"children":319},{},[320,341],{"type":43,"tag":162,"props":321,"children":322},{},[323],{"type":43,"tag":166,"props":324,"children":325},{},[326,331,336],{"type":43,"tag":170,"props":327,"children":328},{},[329],{"type":49,"value":330},"Order",{"type":43,"tag":170,"props":332,"children":333},{},[334],{"type":49,"value":335},"Nested skill",{"type":43,"tag":170,"props":337,"children":338},{},[339],{"type":49,"value":340},"Role",{"type":43,"tag":186,"props":342,"children":343},{},[344,366,388],{"type":43,"tag":166,"props":345,"children":346},{},[347,352,361],{"type":43,"tag":193,"props":348,"children":349},{},[350],{"type":49,"value":351},"1",{"type":43,"tag":193,"props":353,"children":354},{},[355],{"type":43,"tag":73,"props":356,"children":358},{"href":357},"detect\u002FSKILL.md",[359],{"type":49,"value":360},"Detect repository stack",{"type":43,"tag":193,"props":362,"children":363},{},[364],{"type":49,"value":365},"Language, package manager, monorepo target, entrypoint, existing LD usage",{"type":43,"tag":166,"props":367,"children":368},{},[369,374,383],{"type":43,"tag":193,"props":370,"children":371},{},[372],{"type":49,"value":373},"2",{"type":43,"tag":193,"props":375,"children":376},{},[377],{"type":43,"tag":73,"props":378,"children":380},{"href":379},"plan\u002FSKILL.md",[381],{"type":49,"value":382},"Generate integration plan",{"type":43,"tag":193,"props":384,"children":385},{},[386],{"type":49,"value":387},"SDK choice, files to change, env plan -- presented to user (non-blocking; see plan SKILL.md D6)",{"type":43,"tag":166,"props":389,"children":390},{},[391,396,403],{"type":43,"tag":193,"props":392,"children":393},{},[394],{"type":49,"value":395},"3",{"type":43,"tag":193,"props":397,"children":398},{},[399],{"type":43,"tag":73,"props":400,"children":401},{"href":132},[402],{"type":49,"value":135},{"type":43,"tag":193,"props":404,"children":405},{},[406,408,414,416,421,423,429],{"type":49,"value":407},"Install package(s), ",{"type":43,"tag":202,"props":409,"children":411},{"className":410},[],[412],{"type":49,"value":413},".env",{"type":49,"value":415}," \u002F secrets with consent, init code, compile check (",{"type":43,"tag":58,"props":417,"children":418},{},[419],{"type":49,"value":420},"both",{"type":49,"value":422}," tracks when ",{"type":43,"tag":73,"props":424,"children":426},{"href":425},"plan\u002FSKILL.md#dual-sdk-integrations",[427],{"type":49,"value":428},"dual-SDK plan",{"type":49,"value":430},")",{"type":43,"tag":52,"props":432,"children":433},{},[434,436,442,444,450],{"type":49,"value":435},"Shared references for all steps: ",{"type":43,"tag":73,"props":437,"children":439},{"href":438},"..\u002Freferences\u002Fsdk\u002Frecipes.md",[440],{"type":49,"value":441},"SDK recipes",{"type":49,"value":443},", ",{"type":43,"tag":73,"props":445,"children":447},{"href":446},"..\u002Freferences\u002Fsdk\u002Fsnippets\u002F",[448],{"type":49,"value":449},"SDK snippets",{"type":49,"value":95},{"type":43,"tag":452,"props":453,"children":455},"h3",{"id":454},"after-step-3-completes",[456],{"type":49,"value":457},"After Step 3 completes",{"type":43,"tag":52,"props":459,"children":460},{},[461],{"type":49,"value":462},"Continue with the parent skill:",{"type":43,"tag":104,"props":464,"children":465},{},[466],{"type":43,"tag":108,"props":467,"children":468},{},[469,474,476],{"type":43,"tag":58,"props":470,"children":471},{},[472],{"type":49,"value":473},"Step 6:",{"type":49,"value":475}," ",{"type":43,"tag":73,"props":477,"children":478},{"href":90},[479],{"type":49,"value":93},{"type":43,"tag":52,"props":481,"children":482},{},[483],{"type":49,"value":484},"Do not add standalone “sample flag” evaluation in this skill unless the user explicitly needs a throwaway check; the parent flow creates the first flag in order.",{"type":43,"tag":97,"props":486,"children":488},{"id":487},"guidelines",[489],{"type":49,"value":490},"Guidelines",{"type":43,"tag":104,"props":492,"children":493},{},[494,499,504,509,522],{"type":43,"tag":108,"props":495,"children":496},{},[497],{"type":49,"value":498},"Match existing codebase conventions for imports, config, and style.",{"type":43,"tag":108,"props":500,"children":501},{},[502],{"type":49,"value":503},"Prefer TypeScript in TypeScript projects.",{"type":43,"tag":108,"props":505,"children":506},{},[507],{"type":49,"value":508},"If the project uses a shared config layer, initialize LaunchDarkly there.",{"type":43,"tag":108,"props":510,"children":511},{},[512,514,520],{"type":49,"value":513},"Add ",{"type":43,"tag":202,"props":515,"children":517},{"className":516},[],[518],{"type":49,"value":519},".env.example",{"type":49,"value":521}," entries when the project uses dotenv.",{"type":43,"tag":108,"props":523,"children":524},{},[525,530,532,537,539,545],{"type":43,"tag":58,"props":526,"children":527},{},[528],{"type":49,"value":529},"Dependency scope:",{"type":49,"value":531}," Add only LaunchDarkly SDK package(s) from the recipe unless the user ",{"type":43,"tag":58,"props":533,"children":534},{},[535],{"type":49,"value":536},"explicitly approves",{"type":49,"value":538}," upgrading or adding other packages (",{"type":43,"tag":73,"props":540,"children":542},{"href":541},"apply\u002FSKILL.md#permission-before-changing-other-dependencies",[543],{"type":49,"value":544},"Apply — Permission before changing other dependencies",{"type":49,"value":150},{"type":43,"tag":97,"props":547,"children":549},{"id":548},"edge-cases",[550],{"type":49,"value":551},"Edge cases",{"type":43,"tag":104,"props":553,"children":554},{},[555,596,606,627],{"type":43,"tag":108,"props":556,"children":557},{},[558,563,565,570,571,576,578,583,584,588,590,594],{"type":43,"tag":58,"props":559,"children":560},{},[561],{"type":49,"value":562},"Multiple environments (e.g. Next.js server + client) or user asked for frontend + backend:",{"type":49,"value":564}," Use a ",{"type":43,"tag":58,"props":566,"children":567},{},[568],{"type":49,"value":569},"dual-SDK",{"type":49,"value":475},{"type":43,"tag":73,"props":572,"children":573},{"href":425},[574],{"type":49,"value":575},"plan",{"type":49,"value":577}," and ",{"type":43,"tag":73,"props":579,"children":580},{"href":132},[581],{"type":49,"value":582},"apply",{"type":49,"value":475},{"type":43,"tag":58,"props":585,"children":586},{},[587],{"type":49,"value":420},{"type":49,"value":589}," packages and ",{"type":43,"tag":58,"props":591,"children":592},{},[593],{"type":49,"value":420},{"type":49,"value":595}," inits—never summarize the second SDK as done without lockfile + entrypoint evidence.",{"type":43,"tag":108,"props":597,"children":598},{},[599,604],{"type":43,"tag":58,"props":600,"children":601},{},[602],{"type":49,"value":603},"Monorepo:",{"type":49,"value":605}," Integrate the package the user chose in parent onboarding; stay within that subtree.",{"type":43,"tag":108,"props":607,"children":608},{},[609,614,616,621,622,626],{"type":43,"tag":58,"props":610,"children":611},{},[612],{"type":49,"value":613},"SDK already installed and initialized:",{"type":49,"value":615}," Parent may skip this handoff—see parent ",{"type":43,"tag":58,"props":617,"children":618},{},[619],{"type":49,"value":620},"Edge Cases",{"type":49,"value":577},{"type":43,"tag":73,"props":623,"children":624},{"href":289},[625],{"type":49,"value":292},{"type":49,"value":95},{"type":43,"tag":108,"props":628,"children":629},{},[630,635,637,641,643,651],{"type":43,"tag":58,"props":631,"children":632},{},[633],{"type":49,"value":634},"Unsupported or uncommon stack:",{"type":49,"value":636}," Use ",{"type":43,"tag":73,"props":638,"children":639},{"href":438},[640],{"type":49,"value":441},{"type":49,"value":642}," and the ",{"type":43,"tag":73,"props":644,"children":648},{"href":645,"rel":646},"https:\u002F\u002Flaunchdarkly.com\u002Fdocs\u002Fsdk",[647],"nofollow",[649],{"type":49,"value":650},"full SDK catalog",{"type":49,"value":95},{"type":43,"tag":97,"props":653,"children":655},{"id":654},"references",[656],{"type":49,"value":657},"References",{"type":43,"tag":104,"props":659,"children":660},{},[661,668,675,682,689,696],{"type":43,"tag":108,"props":662,"children":663},{},[664],{"type":43,"tag":73,"props":665,"children":666},{"href":357},[667],{"type":49,"value":360},{"type":43,"tag":108,"props":669,"children":670},{},[671],{"type":43,"tag":73,"props":672,"children":673},{"href":379},[674],{"type":49,"value":382},{"type":43,"tag":108,"props":676,"children":677},{},[678],{"type":43,"tag":73,"props":679,"children":680},{"href":132},[681],{"type":49,"value":135},{"type":43,"tag":108,"props":683,"children":684},{},[685],{"type":43,"tag":73,"props":686,"children":687},{"href":438},[688],{"type":49,"value":441},{"type":43,"tag":108,"props":690,"children":691},{},[692],{"type":43,"tag":73,"props":693,"children":694},{"href":446},[695],{"type":49,"value":449},{"type":43,"tag":108,"props":697,"children":698},{},[699],{"type":43,"tag":73,"props":700,"children":701},{"href":75},[702],{"type":49,"value":703},"LaunchDarkly onboarding (parent)",{"items":705,"total":791},[706,723,732,746,757,769,777],{"slug":707,"name":707,"fn":708,"description":709,"org":710,"tags":711,"stars":20,"repoUrl":21,"updatedAt":722},"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},[712,715,718,719],{"name":713,"slug":714,"type":13},"Agents","agents",{"name":716,"slug":717,"type":13},"Architecture","architecture",{"name":9,"slug":8,"type":13},{"name":720,"slug":721,"type":13},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":724,"name":724,"fn":725,"description":726,"org":727,"tags":728,"stars":20,"repoUrl":21,"updatedAt":731},"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},[729,730],{"name":713,"slug":714,"type":13},{"name":716,"slug":717,"type":13},"2026-05-22T06:55:56.527064",{"slug":733,"name":733,"fn":734,"description":735,"org":736,"tags":737,"stars":20,"repoUrl":21,"updatedAt":745},"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},[738,741,742],{"name":739,"slug":740,"type":13},"Analytics","analytics",{"name":9,"slug":8,"type":13},{"name":743,"slug":744,"type":13},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":747,"name":747,"fn":748,"description":749,"org":750,"tags":751,"stars":20,"repoUrl":21,"updatedAt":756},"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},[752,753],{"name":9,"slug":8,"type":13},{"name":754,"slug":755,"type":13},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":758,"name":758,"fn":759,"description":760,"org":761,"tags":762,"stars":20,"repoUrl":21,"updatedAt":768},"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},[763,764,767],{"name":739,"slug":740,"type":13},{"name":765,"slug":766,"type":13},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":13},"2026-05-22T06:55:57.84851",{"slug":770,"name":770,"fn":771,"description":772,"org":773,"tags":774,"stars":20,"repoUrl":21,"updatedAt":776},"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},[775],{"name":754,"slug":755,"type":13},"2026-05-22T06:55:44.464733",{"slug":778,"name":778,"fn":779,"description":780,"org":781,"tags":782,"stars":20,"repoUrl":21,"updatedAt":790},"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},[783,786,787],{"name":784,"slug":785,"type":13},"Evals","evals",{"name":9,"slug":8,"type":13},{"name":788,"slug":789,"type":13},"Testing","testing","2026-05-22T06:55:55.179617",49,{"items":793,"total":791},[794,801,806,812,817,823,827,833,844,853,863,872],{"slug":707,"name":707,"fn":708,"description":709,"org":795,"tags":796,"stars":20,"repoUrl":21,"updatedAt":722},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[797,798,799,800],{"name":713,"slug":714,"type":13},{"name":716,"slug":717,"type":13},{"name":9,"slug":8,"type":13},{"name":720,"slug":721,"type":13},{"slug":724,"name":724,"fn":725,"description":726,"org":802,"tags":803,"stars":20,"repoUrl":21,"updatedAt":731},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[804,805],{"name":713,"slug":714,"type":13},{"name":716,"slug":717,"type":13},{"slug":733,"name":733,"fn":734,"description":735,"org":807,"tags":808,"stars":20,"repoUrl":21,"updatedAt":745},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[809,810,811],{"name":739,"slug":740,"type":13},{"name":9,"slug":8,"type":13},{"name":743,"slug":744,"type":13},{"slug":747,"name":747,"fn":748,"description":749,"org":813,"tags":814,"stars":20,"repoUrl":21,"updatedAt":756},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[815,816],{"name":9,"slug":8,"type":13},{"name":754,"slug":755,"type":13},{"slug":758,"name":758,"fn":759,"description":760,"org":818,"tags":819,"stars":20,"repoUrl":21,"updatedAt":768},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[820,821,822],{"name":739,"slug":740,"type":13},{"name":765,"slug":766,"type":13},{"name":9,"slug":8,"type":13},{"slug":770,"name":770,"fn":771,"description":772,"org":824,"tags":825,"stars":20,"repoUrl":21,"updatedAt":776},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[826],{"name":754,"slug":755,"type":13},{"slug":778,"name":778,"fn":779,"description":780,"org":828,"tags":829,"stars":20,"repoUrl":21,"updatedAt":790},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[830,831,832],{"name":784,"slug":785,"type":13},{"name":9,"slug":8,"type":13},{"name":788,"slug":789,"type":13},{"slug":834,"name":834,"fn":835,"description":836,"org":837,"tags":838,"stars":20,"repoUrl":21,"updatedAt":843},"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},[839,842],{"name":840,"slug":841,"type":13},"Configuration","configuration",{"name":9,"slug":8,"type":13},"2026-05-22T06:55:48.522229",{"slug":845,"name":845,"fn":846,"description":847,"org":848,"tags":849,"stars":20,"repoUrl":21,"updatedAt":852},"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},[850,851],{"name":840,"slug":841,"type":13},{"name":9,"slug":8,"type":13},"2026-05-22T06:55:47.16557",{"slug":854,"name":854,"fn":855,"description":856,"org":857,"tags":858,"stars":20,"repoUrl":21,"updatedAt":862},"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},[859,860,861],{"name":840,"slug":841,"type":13},{"name":765,"slug":766,"type":13},{"name":9,"slug":8,"type":13},"2026-05-22T06:55:49.845445",{"slug":864,"name":864,"fn":865,"description":866,"org":867,"tags":868,"stars":20,"repoUrl":21,"updatedAt":871},"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},[869,870],{"name":9,"slug":8,"type":13},{"name":754,"slug":755,"type":13},"2026-05-22T06:55:39.13373",{"slug":873,"name":873,"fn":874,"description":875,"org":876,"tags":877,"stars":20,"repoUrl":21,"updatedAt":880},"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},[878,879],{"name":9,"slug":8,"type":13},{"name":754,"slug":755,"type":13},"2026-05-22T06:55:40.464884"]