[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-create-graph":3,"mdc--8nahm2-key":37,"related-org-launchdarkly-create-graph":741,"related-repo-launchdarkly-create-graph":877},{"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},"create-graph","create observability dashboards and graphs","Creates observability dashboards and graphs from logs, traces, errors, sessions, metrics, and events data by previewing charts inline and saving them to a dashboard.",{"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},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Dashboards","dashboards",{"name":20,"slug":21,"type":15},"Data Visualization","data-visualization",{"name":9,"slug":8,"type":15},20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-07-09T06:48:33.172308","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\u002Fobservability\u002Fcreate-graph","---\nname: create-graph\ndescription: \"Creates observability dashboards and graphs from logs, traces, errors, sessions, metrics, and events data by previewing charts inline and saving them to a dashboard.\"\nlicense: Apache-2.0\ncompatibility: Requires the remotely hosted LaunchDarkly MCP server\nmetadata:\n  author: launchdarkly\n  version: \"0.1.0\"\n---\n\n# Create graphs and dashboards\n\n## Prerequisites\n\nThis skill uses the following LaunchDarkly MCP tools:\n\n- `preview-graph` — render a chart preview inline without saving it\n- `create-graph` — add a chart to an existing dashboard\n- `create-dashboard` — create a new empty dashboard\n- `list-dashboards` — list existing dashboards\n- `get-dashboard` — get the full config of a dashboard, including its graphs\n- `get-keys` — discover available metrics, attributes, and keys for a product type\n\nAll of these tools require a `projectKey` (e.g. `\"default\"`).\n\n## Overview\n\nYou are building observability graphs. Your tools are precise — get the enum values wrong and the API rejects the call. Always use `get-keys` before building a query to confirm the dimension names are real.\n\n## Capabilities\n\n- `list-dashboards` — list existing dashboards to check for duplicates or find a target\n- `get-dashboard` — get the full config of an existing dashboard, including its graphs\n- `create-dashboard` — create a new dashboard\n- `preview-graph` — render a chart preview inline\n- `create-graph` — add a chart to a dashboard\n- `get-keys` — discover available metrics, attributes, and keys for a product type\n\nWhen the user's request is purely about visualizing data, stay on task — don't reach for unrelated tools.\n\n## Workflow\n\n1. **Identify the target dashboard.** If the user already has a specific dashboard in mind (by ID or name), add graphs to it directly. Otherwise, call `list-dashboards` and offer to target an existing one or create a new one with `create-dashboard`.\n2. **Discover the data shape.** Call `get-keys` for the relevant product type before building a query. Attribute names vary across services — `service_name` vs `service.name` vs `serviceName`. Guessing wastes tool calls.\n3. **For ambiguous requests, ask a brief clarifying question** as regular text. Example: \"I found several latency-related keys. Would you like P50 or P95 latency, and should I group by service name?\" Keep clarifications short — one or two questions max. For minor ambiguity (chart type preference), make a reasonable default and note your assumption.\n4. **Preview before committing.** Call `preview-graph` first, show the user an inline preview, and confirm before calling `create-graph`. For multiple graphs, preview and confirm each one individually.\n5. **Create the graph** with `create-graph`. Use exact enum casing from `enums.md`.\n6. **Confirm what was created** — provide the dashboard URL and a one-line description of what the graph shows.\n\n## Duplicating existing graphs\n\nWhen asked to duplicate or copy a graph, call `get-dashboard` to retrieve the full configuration (expressions, product type, query, groupBy, display settings), then replicate those values in `create-graph`. Do not guess from the graph title alone — titles drift from the underlying config.\n\n## Guidelines\n\n- **Be concise — don't narrate intermediate tool calls.** Skip prefaces like \"First, let me discover the keys\" or \"Now I'll build the chart.\" One short sentence at the start of the reply is enough if needed (e.g. \"Building a chart of recent logs by level.\"); after that, just call the tools.\n- **Prefer multiple focused graphs over one complex graph.** A dashboard with 3 clean graphs beats one graph with 5 overlapping expressions.\n- **Always call `get-keys` before building a query.** Prevents silent empty results from wrong field names.\n\n## Chart-type picks\n\n- **`Line chart`** — time-series trends. Error rates over time, latency percentiles, request volume.\n- **`Bar chart`** (or histogram) — comparisons across a dimension. Errors by service, requests by endpoint.\n- **`Table`** — detailed breakdowns with multiple dimensions where a chart wouldn't convey the detail.\n\n## Aggregators\n\n- `Count` — total events (most common). Requires `column=\"\"` (empty string).\n- `CountDistinct` — unique values. Users, sessions, flag keys.\n- `Avg`, `P50`, `P90`, `P95`, `P99` — latency distributions.\n- `Sum` — numeric totals (payload size, revenue).\n\n## Common mistakes\n\n- Using lowercase `sessions` for `productType`. It's `Sessions` — PascalCase. See `enums.md`.\n- Omitting `column` on a `Count` expression. The API requires it; pass empty string `\"\"`.\n- Using `count_distinct` or `Count_distinct`. It's `CountDistinct` — PascalCase, no underscore.\n- Building a query without `get-keys` first and getting empty results because the attribute name was wrong.\n- Using date-only format (`2026-03-04`) for `get-keys`. Needs full ISO with time: `2026-03-04T00:00:00Z`.\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},"0.1.0",{"type":43,"children":44},"root",[45,54,61,67,138,159,165,177,183,245,250,256,392,398,417,423,463,469,514,520,604,610],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"create-graphs-and-dashboards",[51],{"type":52,"value":53},"text","Create graphs and dashboards",{"type":46,"tag":55,"props":56,"children":58},"h2",{"id":57},"prerequisites",[59],{"type":52,"value":60},"Prerequisites",{"type":46,"tag":62,"props":63,"children":64},"p",{},[65],{"type":52,"value":66},"This skill uses the following LaunchDarkly MCP tools:",{"type":46,"tag":68,"props":69,"children":70},"ul",{},[71,84,94,105,116,127],{"type":46,"tag":72,"props":73,"children":74},"li",{},[75,82],{"type":46,"tag":76,"props":77,"children":79},"code",{"className":78},[],[80],{"type":52,"value":81},"preview-graph",{"type":52,"value":83}," — render a chart preview inline without saving it",{"type":46,"tag":72,"props":85,"children":86},{},[87,92],{"type":46,"tag":76,"props":88,"children":90},{"className":89},[],[91],{"type":52,"value":4},{"type":52,"value":93}," — add a chart to an existing dashboard",{"type":46,"tag":72,"props":95,"children":96},{},[97,103],{"type":46,"tag":76,"props":98,"children":100},{"className":99},[],[101],{"type":52,"value":102},"create-dashboard",{"type":52,"value":104}," — create a new empty dashboard",{"type":46,"tag":72,"props":106,"children":107},{},[108,114],{"type":46,"tag":76,"props":109,"children":111},{"className":110},[],[112],{"type":52,"value":113},"list-dashboards",{"type":52,"value":115}," — list existing dashboards",{"type":46,"tag":72,"props":117,"children":118},{},[119,125],{"type":46,"tag":76,"props":120,"children":122},{"className":121},[],[123],{"type":52,"value":124},"get-dashboard",{"type":52,"value":126}," — get the full config of a dashboard, including its graphs",{"type":46,"tag":72,"props":128,"children":129},{},[130,136],{"type":46,"tag":76,"props":131,"children":133},{"className":132},[],[134],{"type":52,"value":135},"get-keys",{"type":52,"value":137}," — discover available metrics, attributes, and keys for a product type",{"type":46,"tag":62,"props":139,"children":140},{},[141,143,149,151,157],{"type":52,"value":142},"All of these tools require a ",{"type":46,"tag":76,"props":144,"children":146},{"className":145},[],[147],{"type":52,"value":148},"projectKey",{"type":52,"value":150}," (e.g. ",{"type":46,"tag":76,"props":152,"children":154},{"className":153},[],[155],{"type":52,"value":156},"\"default\"",{"type":52,"value":158},").",{"type":46,"tag":55,"props":160,"children":162},{"id":161},"overview",[163],{"type":52,"value":164},"Overview",{"type":46,"tag":62,"props":166,"children":167},{},[168,170,175],{"type":52,"value":169},"You are building observability graphs. Your tools are precise — get the enum values wrong and the API rejects the call. Always use ",{"type":46,"tag":76,"props":171,"children":173},{"className":172},[],[174],{"type":52,"value":135},{"type":52,"value":176}," before building a query to confirm the dimension names are real.",{"type":46,"tag":55,"props":178,"children":180},{"id":179},"capabilities",[181],{"type":52,"value":182},"Capabilities",{"type":46,"tag":68,"props":184,"children":185},{},[186,196,206,216,226,236],{"type":46,"tag":72,"props":187,"children":188},{},[189,194],{"type":46,"tag":76,"props":190,"children":192},{"className":191},[],[193],{"type":52,"value":113},{"type":52,"value":195}," — list existing dashboards to check for duplicates or find a target",{"type":46,"tag":72,"props":197,"children":198},{},[199,204],{"type":46,"tag":76,"props":200,"children":202},{"className":201},[],[203],{"type":52,"value":124},{"type":52,"value":205}," — get the full config of an existing dashboard, including its graphs",{"type":46,"tag":72,"props":207,"children":208},{},[209,214],{"type":46,"tag":76,"props":210,"children":212},{"className":211},[],[213],{"type":52,"value":102},{"type":52,"value":215}," — create a new dashboard",{"type":46,"tag":72,"props":217,"children":218},{},[219,224],{"type":46,"tag":76,"props":220,"children":222},{"className":221},[],[223],{"type":52,"value":81},{"type":52,"value":225}," — render a chart preview inline",{"type":46,"tag":72,"props":227,"children":228},{},[229,234],{"type":46,"tag":76,"props":230,"children":232},{"className":231},[],[233],{"type":52,"value":4},{"type":52,"value":235}," — add a chart to a dashboard",{"type":46,"tag":72,"props":237,"children":238},{},[239,244],{"type":46,"tag":76,"props":240,"children":242},{"className":241},[],[243],{"type":52,"value":135},{"type":52,"value":137},{"type":46,"tag":62,"props":246,"children":247},{},[248],{"type":52,"value":249},"When the user's request is purely about visualizing data, stay on task — don't reach for unrelated tools.",{"type":46,"tag":55,"props":251,"children":253},{"id":252},"workflow",[254],{"type":52,"value":255},"Workflow",{"type":46,"tag":257,"props":258,"children":259},"ol",{},[260,285,325,335,358,382],{"type":46,"tag":72,"props":261,"children":262},{},[263,269,271,276,278,283],{"type":46,"tag":264,"props":265,"children":266},"strong",{},[267],{"type":52,"value":268},"Identify the target dashboard.",{"type":52,"value":270}," If the user already has a specific dashboard in mind (by ID or name), add graphs to it directly. Otherwise, call ",{"type":46,"tag":76,"props":272,"children":274},{"className":273},[],[275],{"type":52,"value":113},{"type":52,"value":277}," and offer to target an existing one or create a new one with ",{"type":46,"tag":76,"props":279,"children":281},{"className":280},[],[282],{"type":52,"value":102},{"type":52,"value":284},".",{"type":46,"tag":72,"props":286,"children":287},{},[288,293,295,300,302,308,310,316,317,323],{"type":46,"tag":264,"props":289,"children":290},{},[291],{"type":52,"value":292},"Discover the data shape.",{"type":52,"value":294}," Call ",{"type":46,"tag":76,"props":296,"children":298},{"className":297},[],[299],{"type":52,"value":135},{"type":52,"value":301}," for the relevant product type before building a query. Attribute names vary across services — ",{"type":46,"tag":76,"props":303,"children":305},{"className":304},[],[306],{"type":52,"value":307},"service_name",{"type":52,"value":309}," vs ",{"type":46,"tag":76,"props":311,"children":313},{"className":312},[],[314],{"type":52,"value":315},"service.name",{"type":52,"value":309},{"type":46,"tag":76,"props":318,"children":320},{"className":319},[],[321],{"type":52,"value":322},"serviceName",{"type":52,"value":324},". Guessing wastes tool calls.",{"type":46,"tag":72,"props":326,"children":327},{},[328,333],{"type":46,"tag":264,"props":329,"children":330},{},[331],{"type":52,"value":332},"For ambiguous requests, ask a brief clarifying question",{"type":52,"value":334}," as regular text. Example: \"I found several latency-related keys. Would you like P50 or P95 latency, and should I group by service name?\" Keep clarifications short — one or two questions max. For minor ambiguity (chart type preference), make a reasonable default and note your assumption.",{"type":46,"tag":72,"props":336,"children":337},{},[338,343,344,349,351,356],{"type":46,"tag":264,"props":339,"children":340},{},[341],{"type":52,"value":342},"Preview before committing.",{"type":52,"value":294},{"type":46,"tag":76,"props":345,"children":347},{"className":346},[],[348],{"type":52,"value":81},{"type":52,"value":350}," first, show the user an inline preview, and confirm before calling ",{"type":46,"tag":76,"props":352,"children":354},{"className":353},[],[355],{"type":52,"value":4},{"type":52,"value":357},". For multiple graphs, preview and confirm each one individually.",{"type":46,"tag":72,"props":359,"children":360},{},[361,366,368,373,375,381],{"type":46,"tag":264,"props":362,"children":363},{},[364],{"type":52,"value":365},"Create the graph",{"type":52,"value":367}," with ",{"type":46,"tag":76,"props":369,"children":371},{"className":370},[],[372],{"type":52,"value":4},{"type":52,"value":374},". Use exact enum casing from ",{"type":46,"tag":76,"props":376,"children":378},{"className":377},[],[379],{"type":52,"value":380},"enums.md",{"type":52,"value":284},{"type":46,"tag":72,"props":383,"children":384},{},[385,390],{"type":46,"tag":264,"props":386,"children":387},{},[388],{"type":52,"value":389},"Confirm what was created",{"type":52,"value":391}," — provide the dashboard URL and a one-line description of what the graph shows.",{"type":46,"tag":55,"props":393,"children":395},{"id":394},"duplicating-existing-graphs",[396],{"type":52,"value":397},"Duplicating existing graphs",{"type":46,"tag":62,"props":399,"children":400},{},[401,403,408,410,415],{"type":52,"value":402},"When asked to duplicate or copy a graph, call ",{"type":46,"tag":76,"props":404,"children":406},{"className":405},[],[407],{"type":52,"value":124},{"type":52,"value":409}," to retrieve the full configuration (expressions, product type, query, groupBy, display settings), then replicate those values in ",{"type":46,"tag":76,"props":411,"children":413},{"className":412},[],[414],{"type":52,"value":4},{"type":52,"value":416},". Do not guess from the graph title alone — titles drift from the underlying config.",{"type":46,"tag":55,"props":418,"children":420},{"id":419},"guidelines",[421],{"type":52,"value":422},"Guidelines",{"type":46,"tag":68,"props":424,"children":425},{},[426,436,446],{"type":46,"tag":72,"props":427,"children":428},{},[429,434],{"type":46,"tag":264,"props":430,"children":431},{},[432],{"type":52,"value":433},"Be concise — don't narrate intermediate tool calls.",{"type":52,"value":435}," Skip prefaces like \"First, let me discover the keys\" or \"Now I'll build the chart.\" One short sentence at the start of the reply is enough if needed (e.g. \"Building a chart of recent logs by level.\"); after that, just call the tools.",{"type":46,"tag":72,"props":437,"children":438},{},[439,444],{"type":46,"tag":264,"props":440,"children":441},{},[442],{"type":52,"value":443},"Prefer multiple focused graphs over one complex graph.",{"type":52,"value":445}," A dashboard with 3 clean graphs beats one graph with 5 overlapping expressions.",{"type":46,"tag":72,"props":447,"children":448},{},[449,461],{"type":46,"tag":264,"props":450,"children":451},{},[452,454,459],{"type":52,"value":453},"Always call ",{"type":46,"tag":76,"props":455,"children":457},{"className":456},[],[458],{"type":52,"value":135},{"type":52,"value":460}," before building a query.",{"type":52,"value":462}," Prevents silent empty results from wrong field names.",{"type":46,"tag":55,"props":464,"children":466},{"id":465},"chart-type-picks",[467],{"type":52,"value":468},"Chart-type picks",{"type":46,"tag":68,"props":470,"children":471},{},[472,486,500],{"type":46,"tag":72,"props":473,"children":474},{},[475,484],{"type":46,"tag":264,"props":476,"children":477},{},[478],{"type":46,"tag":76,"props":479,"children":481},{"className":480},[],[482],{"type":52,"value":483},"Line chart",{"type":52,"value":485}," — time-series trends. Error rates over time, latency percentiles, request volume.",{"type":46,"tag":72,"props":487,"children":488},{},[489,498],{"type":46,"tag":264,"props":490,"children":491},{},[492],{"type":46,"tag":76,"props":493,"children":495},{"className":494},[],[496],{"type":52,"value":497},"Bar chart",{"type":52,"value":499}," (or histogram) — comparisons across a dimension. Errors by service, requests by endpoint.",{"type":46,"tag":72,"props":501,"children":502},{},[503,512],{"type":46,"tag":264,"props":504,"children":505},{},[506],{"type":46,"tag":76,"props":507,"children":509},{"className":508},[],[510],{"type":52,"value":511},"Table",{"type":52,"value":513}," — detailed breakdowns with multiple dimensions where a chart wouldn't convey the detail.",{"type":46,"tag":55,"props":515,"children":517},{"id":516},"aggregators",[518],{"type":52,"value":519},"Aggregators",{"type":46,"tag":68,"props":521,"children":522},{},[523,542,553,593],{"type":46,"tag":72,"props":524,"children":525},{},[526,532,534,540],{"type":46,"tag":76,"props":527,"children":529},{"className":528},[],[530],{"type":52,"value":531},"Count",{"type":52,"value":533}," — total events (most common). Requires ",{"type":46,"tag":76,"props":535,"children":537},{"className":536},[],[538],{"type":52,"value":539},"column=\"\"",{"type":52,"value":541}," (empty string).",{"type":46,"tag":72,"props":543,"children":544},{},[545,551],{"type":46,"tag":76,"props":546,"children":548},{"className":547},[],[549],{"type":52,"value":550},"CountDistinct",{"type":52,"value":552}," — unique values. Users, sessions, flag keys.",{"type":46,"tag":72,"props":554,"children":555},{},[556,562,564,570,571,577,578,584,585,591],{"type":46,"tag":76,"props":557,"children":559},{"className":558},[],[560],{"type":52,"value":561},"Avg",{"type":52,"value":563},", ",{"type":46,"tag":76,"props":565,"children":567},{"className":566},[],[568],{"type":52,"value":569},"P50",{"type":52,"value":563},{"type":46,"tag":76,"props":572,"children":574},{"className":573},[],[575],{"type":52,"value":576},"P90",{"type":52,"value":563},{"type":46,"tag":76,"props":579,"children":581},{"className":580},[],[582],{"type":52,"value":583},"P95",{"type":52,"value":563},{"type":46,"tag":76,"props":586,"children":588},{"className":587},[],[589],{"type":52,"value":590},"P99",{"type":52,"value":592}," — latency distributions.",{"type":46,"tag":72,"props":594,"children":595},{},[596,602],{"type":46,"tag":76,"props":597,"children":599},{"className":598},[],[600],{"type":52,"value":601},"Sum",{"type":52,"value":603}," — numeric totals (payload size, revenue).",{"type":46,"tag":55,"props":605,"children":607},{"id":606},"common-mistakes",[608],{"type":52,"value":609},"Common mistakes",{"type":46,"tag":68,"props":611,"children":612},{},[613,648,675,702,714],{"type":46,"tag":72,"props":614,"children":615},{},[616,618,624,626,632,634,640,642,647],{"type":52,"value":617},"Using lowercase ",{"type":46,"tag":76,"props":619,"children":621},{"className":620},[],[622],{"type":52,"value":623},"sessions",{"type":52,"value":625}," for ",{"type":46,"tag":76,"props":627,"children":629},{"className":628},[],[630],{"type":52,"value":631},"productType",{"type":52,"value":633},". It's ",{"type":46,"tag":76,"props":635,"children":637},{"className":636},[],[638],{"type":52,"value":639},"Sessions",{"type":52,"value":641}," — PascalCase. See ",{"type":46,"tag":76,"props":643,"children":645},{"className":644},[],[646],{"type":52,"value":380},{"type":52,"value":284},{"type":46,"tag":72,"props":649,"children":650},{},[651,653,659,661,666,668,674],{"type":52,"value":652},"Omitting ",{"type":46,"tag":76,"props":654,"children":656},{"className":655},[],[657],{"type":52,"value":658},"column",{"type":52,"value":660}," on a ",{"type":46,"tag":76,"props":662,"children":664},{"className":663},[],[665],{"type":52,"value":531},{"type":52,"value":667}," expression. The API requires it; pass empty string ",{"type":46,"tag":76,"props":669,"children":671},{"className":670},[],[672],{"type":52,"value":673},"\"\"",{"type":52,"value":284},{"type":46,"tag":72,"props":676,"children":677},{},[678,680,686,688,694,695,700],{"type":52,"value":679},"Using ",{"type":46,"tag":76,"props":681,"children":683},{"className":682},[],[684],{"type":52,"value":685},"count_distinct",{"type":52,"value":687}," or ",{"type":46,"tag":76,"props":689,"children":691},{"className":690},[],[692],{"type":52,"value":693},"Count_distinct",{"type":52,"value":633},{"type":46,"tag":76,"props":696,"children":698},{"className":697},[],[699],{"type":52,"value":550},{"type":52,"value":701}," — PascalCase, no underscore.",{"type":46,"tag":72,"props":703,"children":704},{},[705,707,712],{"type":52,"value":706},"Building a query without ",{"type":46,"tag":76,"props":708,"children":710},{"className":709},[],[711],{"type":52,"value":135},{"type":52,"value":713}," first and getting empty results because the attribute name was wrong.",{"type":46,"tag":72,"props":715,"children":716},{},[717,719,725,727,732,734,740],{"type":52,"value":718},"Using date-only format (",{"type":46,"tag":76,"props":720,"children":722},{"className":721},[],[723],{"type":52,"value":724},"2026-03-04",{"type":52,"value":726},") for ",{"type":46,"tag":76,"props":728,"children":730},{"className":729},[],[731],{"type":52,"value":135},{"type":52,"value":733},". Needs full ISO with time: ",{"type":46,"tag":76,"props":735,"children":737},{"className":736},[],[738],{"type":52,"value":739},"2026-03-04T00:00:00Z",{"type":52,"value":284},{"items":742,"total":876},[743,760,769,783,794,806,814,828,839,848,858,867],{"slug":744,"name":744,"fn":745,"description":746,"org":747,"tags":748,"stars":23,"repoUrl":24,"updatedAt":759},"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},[749,752,755,756],{"name":750,"slug":751,"type":15},"Agents","agents",{"name":753,"slug":754,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},{"name":757,"slug":758,"type":15},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":761,"name":761,"fn":762,"description":763,"org":764,"tags":765,"stars":23,"repoUrl":24,"updatedAt":768},"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},[766,767],{"name":750,"slug":751,"type":15},{"name":753,"slug":754,"type":15},"2026-05-22T06:55:56.527064",{"slug":770,"name":770,"fn":771,"description":772,"org":773,"tags":774,"stars":23,"repoUrl":24,"updatedAt":782},"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},[775,778,779],{"name":776,"slug":777,"type":15},"Analytics","analytics",{"name":9,"slug":8,"type":15},{"name":780,"slug":781,"type":15},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":784,"name":784,"fn":785,"description":786,"org":787,"tags":788,"stars":23,"repoUrl":24,"updatedAt":793},"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},[789,790],{"name":9,"slug":8,"type":15},{"name":791,"slug":792,"type":15},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":795,"name":795,"fn":796,"description":797,"org":798,"tags":799,"stars":23,"repoUrl":24,"updatedAt":805},"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},[800,801,804],{"name":776,"slug":777,"type":15},{"name":802,"slug":803,"type":15},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":15},"2026-05-22T06:55:57.84851",{"slug":807,"name":807,"fn":808,"description":809,"org":810,"tags":811,"stars":23,"repoUrl":24,"updatedAt":813},"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},[812],{"name":791,"slug":792,"type":15},"2026-05-22T06:55:44.464733",{"slug":815,"name":815,"fn":816,"description":817,"org":818,"tags":819,"stars":23,"repoUrl":24,"updatedAt":827},"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},[820,823,824],{"name":821,"slug":822,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":825,"slug":826,"type":15},"Testing","testing","2026-05-22T06:55:55.179617",{"slug":829,"name":829,"fn":830,"description":831,"org":832,"tags":833,"stars":23,"repoUrl":24,"updatedAt":838},"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},[834,837],{"name":835,"slug":836,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},"2026-05-22T06:55:48.522229",{"slug":840,"name":840,"fn":841,"description":842,"org":843,"tags":844,"stars":23,"repoUrl":24,"updatedAt":847},"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},[845,846],{"name":835,"slug":836,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:47.16557",{"slug":849,"name":849,"fn":850,"description":851,"org":852,"tags":853,"stars":23,"repoUrl":24,"updatedAt":857},"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},[854,855,856],{"name":835,"slug":836,"type":15},{"name":802,"slug":803,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:49.845445",{"slug":859,"name":859,"fn":860,"description":861,"org":862,"tags":863,"stars":23,"repoUrl":24,"updatedAt":866},"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},[864,865],{"name":9,"slug":8,"type":15},{"name":791,"slug":792,"type":15},"2026-05-22T06:55:39.13373",{"slug":868,"name":868,"fn":869,"description":870,"org":871,"tags":872,"stars":23,"repoUrl":24,"updatedAt":875},"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},[873,874],{"name":9,"slug":8,"type":15},{"name":791,"slug":792,"type":15},"2026-05-22T06:55:40.464884",49,{"items":878,"total":876},[879,886,891,897,902,908,912],{"slug":744,"name":744,"fn":745,"description":746,"org":880,"tags":881,"stars":23,"repoUrl":24,"updatedAt":759},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[882,883,884,885],{"name":750,"slug":751,"type":15},{"name":753,"slug":754,"type":15},{"name":9,"slug":8,"type":15},{"name":757,"slug":758,"type":15},{"slug":761,"name":761,"fn":762,"description":763,"org":887,"tags":888,"stars":23,"repoUrl":24,"updatedAt":768},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[889,890],{"name":750,"slug":751,"type":15},{"name":753,"slug":754,"type":15},{"slug":770,"name":770,"fn":771,"description":772,"org":892,"tags":893,"stars":23,"repoUrl":24,"updatedAt":782},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[894,895,896],{"name":776,"slug":777,"type":15},{"name":9,"slug":8,"type":15},{"name":780,"slug":781,"type":15},{"slug":784,"name":784,"fn":785,"description":786,"org":898,"tags":899,"stars":23,"repoUrl":24,"updatedAt":793},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[900,901],{"name":9,"slug":8,"type":15},{"name":791,"slug":792,"type":15},{"slug":795,"name":795,"fn":796,"description":797,"org":903,"tags":904,"stars":23,"repoUrl":24,"updatedAt":805},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[905,906,907],{"name":776,"slug":777,"type":15},{"name":802,"slug":803,"type":15},{"name":9,"slug":8,"type":15},{"slug":807,"name":807,"fn":808,"description":809,"org":909,"tags":910,"stars":23,"repoUrl":24,"updatedAt":813},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[911],{"name":791,"slug":792,"type":15},{"slug":815,"name":815,"fn":816,"description":817,"org":913,"tags":914,"stars":23,"repoUrl":24,"updatedAt":827},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[915,916,917],{"name":821,"slug":822,"type":15},{"name":9,"slug":8,"type":15},{"name":825,"slug":826,"type":15}]