[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-launchdarkly-investigate":3,"mdc--y34x1z-key":37,"related-org-launchdarkly-investigate":534,"related-repo-launchdarkly-investigate":670},{"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},"investigate","investigate observability data for root causes","Analyzes observability data — logs, traces, errors, sessions, and metrics — to find root cause and actionable evidence. Use when the user reports a bug, an unexpected behavior, or asks about patterns across application data.",{"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,20],{"name":13,"slug":14,"type":15},"Observability","observability","tag",{"name":17,"slug":18,"type":15},"Logs","logs",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Debugging","debugging",20,"https:\u002F\u002Fgithub.com\u002Flaunchdarkly\u002Fai-tooling","2026-07-09T06:48:31.913419","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\u002Finvestigate","---\nname: investigate\ndescription: \"Analyzes observability data — logs, traces, errors, sessions, and metrics — to find root cause and actionable evidence. Use when the user reports a bug, an unexpected behavior, or asks about patterns across application data.\"\nlicense: Apache-2.0\ncompatibility: Requires the remotely hosted LaunchDarkly MCP server\nmetadata:\n  author: launchdarkly\n  version: \"0.1.0\"\n---\n\n# Investigate\n\nYou are conducting a cross-product investigation. Real investigations almost always touch more than one product — a log error leads into traces, a slow trace reveals a failing span, a failing span correlates with a specific session. Walk the evidence until you have a concrete root cause.\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- `query-logs` — fetch paginated log entries\n- `query-traces` — fetch paginated trace\u002Fspan entries\n- `query-error-groups` — fetch error groups with stack traces and frequency\n- `query-sessions` — fetch session replays with user details\n- `query-aggregations` — bucketed aggregations across a product type for trends and counts\n- `query-timeline-events` — pull the chronological event timeline within a session\n- `get-keys` — discover valid attribute\u002Fgrouping keys for a product type\n\n## Workflow\n\n1. **Plan first.** Before the first tool call, present a concise numbered plan of what you intend to query and why. Then execute it. Skip this only for trivial lookups.\n2. **Start narrow.** Pick a focused time window (default 24h if the user didn't specify) and the most-specific identifier you have — trace ID, session ID, error group ID, flag key. Broad queries return noise.\n3. **Let each result inform the next.** Do not rely on one tool call. Run multiple invocations of `query-logs`, `query-aggregations`, `query-traces`, `query-error-groups`, and `query-sessions`, using the findings of each to sharpen the next.\n4. **Respect the 50-entry limit.** `query-logs`, `query-traces`, `query-error-groups`, and `query-sessions` tools return at most 50 entries per call. For larger datasets, run a `query-aggregations` query first to aggregate, then narrow with targeted fetches.\n5. **Cross-reference aggressively.** Trace IDs in logs, session IDs in errors, error messages in session replays — the point where products connect is usually where the root cause sits.\n6. **Maintain a running checklist.** Periodically summarize what you've confirmed vs. what you still need to test. Keeps investigations from drifting.\n7. **End with actionable output.** Clear insights that answer the original question, direct references the user can click through (log excerpts, trace IDs, session IDs, error group IDs), a severity assessment, and at least one concrete remediation — a config change, a flag flip, a code-level fix with file and line, or a specific diagnostic step with the exact query to run.\n\n## Load companion files when relevant\n\n- `logs.md` — when the investigation touches logs (error messages, level=error filters, service log patterns)\n- `traces.md` — when analyzing request flow, latency, or span relationships\n- `errors.md` — when looking at error groups, stack traces, exception frequency\n- `sessions.md` — when reconstructing user journeys or correlating frontend behavior with backend events\n- `metrics.md` — when aggregating across a large dataset or building a chart\n\n## Universal guidance\n\n- **Prefer aggregation over pagination.** If you want to list unique users, count distinct values, or summarize, use `query-aggregations` with `group_by` — don't paginate through individual records. Use `get-keys` to discover the right grouping dimension first.\n- **Call `get-keys` before attribute filters.** Attribute names vary across product types and services (`spanName` vs `span_name`, `hasErrors` vs `has_errors`). One `get-keys` call upfront prevents wasted queries with wrong field names.\n- **Cite specific identifiers.** Every recommendation should reference the exact flag key, service name, session ID, trace ID, or file path you pulled from the data. The user should be able to act on your summary without redoing your investigation.\n- **Handle large tool outputs.** When a tool result is persisted to a file (you'll see \"Output too large ... Full output saved to: \u003Cpath>\"), do NOT use Read — it has the same token limit. Use Bash with `python3` or `jq` to extract the specific slice you need.\n- **Graceful degradation on tool failure.** If a tool call fails (buffer overflow, timeout, server error), don't end silently. Try an alternative tool or approach. If nothing works, deliver what you've found so far plus concrete next steps the user can take manually.\n- **Handling vague requests.** \"Investigate this\" or \"what's going on\" is an invitation to dig, not to summarize. Iterate tool calls until you have a root cause or have exhausted the available data.\n\nIf a tool isn't available in your environment, the corresponding MCP server may not be connected — surface that rather than working around it.\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,53,59,66,71,80,163,169,308,314,372,378,529],{"type":46,"tag":47,"props":48,"children":49},"element","h1",{"id":4},[50],{"type":51,"value":52},"text","Investigate",{"type":46,"tag":54,"props":55,"children":56},"p",{},[57],{"type":51,"value":58},"You are conducting a cross-product investigation. Real investigations almost always touch more than one product — a log error leads into traces, a slow trace reveals a failing span, a failing span correlates with a specific session. Walk the evidence until you have a concrete root cause.",{"type":46,"tag":60,"props":61,"children":63},"h2",{"id":62},"prerequisites",[64],{"type":51,"value":65},"Prerequisites",{"type":46,"tag":54,"props":67,"children":68},{},[69],{"type":51,"value":70},"This skill requires the remotely hosted LaunchDarkly MCP server to be configured in your environment.",{"type":46,"tag":54,"props":72,"children":73},{},[74],{"type":46,"tag":75,"props":76,"children":77},"strong",{},[78],{"type":51,"value":79},"Required MCP tools:",{"type":46,"tag":81,"props":82,"children":83},"ul",{},[84,97,108,119,130,141,152],{"type":46,"tag":85,"props":86,"children":87},"li",{},[88,95],{"type":46,"tag":89,"props":90,"children":92},"code",{"className":91},[],[93],{"type":51,"value":94},"query-logs",{"type":51,"value":96}," — fetch paginated log entries",{"type":46,"tag":85,"props":98,"children":99},{},[100,106],{"type":46,"tag":89,"props":101,"children":103},{"className":102},[],[104],{"type":51,"value":105},"query-traces",{"type":51,"value":107}," — fetch paginated trace\u002Fspan entries",{"type":46,"tag":85,"props":109,"children":110},{},[111,117],{"type":46,"tag":89,"props":112,"children":114},{"className":113},[],[115],{"type":51,"value":116},"query-error-groups",{"type":51,"value":118}," — fetch error groups with stack traces and frequency",{"type":46,"tag":85,"props":120,"children":121},{},[122,128],{"type":46,"tag":89,"props":123,"children":125},{"className":124},[],[126],{"type":51,"value":127},"query-sessions",{"type":51,"value":129}," — fetch session replays with user details",{"type":46,"tag":85,"props":131,"children":132},{},[133,139],{"type":46,"tag":89,"props":134,"children":136},{"className":135},[],[137],{"type":51,"value":138},"query-aggregations",{"type":51,"value":140}," — bucketed aggregations across a product type for trends and counts",{"type":46,"tag":85,"props":142,"children":143},{},[144,150],{"type":46,"tag":89,"props":145,"children":147},{"className":146},[],[148],{"type":51,"value":149},"query-timeline-events",{"type":51,"value":151}," — pull the chronological event timeline within a session",{"type":46,"tag":85,"props":153,"children":154},{},[155,161],{"type":46,"tag":89,"props":156,"children":158},{"className":157},[],[159],{"type":51,"value":160},"get-keys",{"type":51,"value":162}," — discover valid attribute\u002Fgrouping keys for a product type",{"type":46,"tag":60,"props":164,"children":166},{"id":165},"workflow",[167],{"type":51,"value":168},"Workflow",{"type":46,"tag":170,"props":171,"children":172},"ol",{},[173,183,193,236,278,288,298],{"type":46,"tag":85,"props":174,"children":175},{},[176,181],{"type":46,"tag":75,"props":177,"children":178},{},[179],{"type":51,"value":180},"Plan first.",{"type":51,"value":182}," Before the first tool call, present a concise numbered plan of what you intend to query and why. Then execute it. Skip this only for trivial lookups.",{"type":46,"tag":85,"props":184,"children":185},{},[186,191],{"type":46,"tag":75,"props":187,"children":188},{},[189],{"type":51,"value":190},"Start narrow.",{"type":51,"value":192}," Pick a focused time window (default 24h if the user didn't specify) and the most-specific identifier you have — trace ID, session ID, error group ID, flag key. Broad queries return noise.",{"type":46,"tag":85,"props":194,"children":195},{},[196,201,203,208,210,215,216,221,222,227,229,234],{"type":46,"tag":75,"props":197,"children":198},{},[199],{"type":51,"value":200},"Let each result inform the next.",{"type":51,"value":202}," Do not rely on one tool call. Run multiple invocations of ",{"type":46,"tag":89,"props":204,"children":206},{"className":205},[],[207],{"type":51,"value":94},{"type":51,"value":209},", ",{"type":46,"tag":89,"props":211,"children":213},{"className":212},[],[214],{"type":51,"value":138},{"type":51,"value":209},{"type":46,"tag":89,"props":217,"children":219},{"className":218},[],[220],{"type":51,"value":105},{"type":51,"value":209},{"type":46,"tag":89,"props":223,"children":225},{"className":224},[],[226],{"type":51,"value":116},{"type":51,"value":228},", and ",{"type":46,"tag":89,"props":230,"children":232},{"className":231},[],[233],{"type":51,"value":127},{"type":51,"value":235},", using the findings of each to sharpen the next.",{"type":46,"tag":85,"props":237,"children":238},{},[239,244,246,251,252,257,258,263,264,269,271,276],{"type":46,"tag":75,"props":240,"children":241},{},[242],{"type":51,"value":243},"Respect the 50-entry limit.",{"type":51,"value":245}," ",{"type":46,"tag":89,"props":247,"children":249},{"className":248},[],[250],{"type":51,"value":94},{"type":51,"value":209},{"type":46,"tag":89,"props":253,"children":255},{"className":254},[],[256],{"type":51,"value":105},{"type":51,"value":209},{"type":46,"tag":89,"props":259,"children":261},{"className":260},[],[262],{"type":51,"value":116},{"type":51,"value":228},{"type":46,"tag":89,"props":265,"children":267},{"className":266},[],[268],{"type":51,"value":127},{"type":51,"value":270}," tools return at most 50 entries per call. For larger datasets, run a ",{"type":46,"tag":89,"props":272,"children":274},{"className":273},[],[275],{"type":51,"value":138},{"type":51,"value":277}," query first to aggregate, then narrow with targeted fetches.",{"type":46,"tag":85,"props":279,"children":280},{},[281,286],{"type":46,"tag":75,"props":282,"children":283},{},[284],{"type":51,"value":285},"Cross-reference aggressively.",{"type":51,"value":287}," Trace IDs in logs, session IDs in errors, error messages in session replays — the point where products connect is usually where the root cause sits.",{"type":46,"tag":85,"props":289,"children":290},{},[291,296],{"type":46,"tag":75,"props":292,"children":293},{},[294],{"type":51,"value":295},"Maintain a running checklist.",{"type":51,"value":297}," Periodically summarize what you've confirmed vs. what you still need to test. Keeps investigations from drifting.",{"type":46,"tag":85,"props":299,"children":300},{},[301,306],{"type":46,"tag":75,"props":302,"children":303},{},[304],{"type":51,"value":305},"End with actionable output.",{"type":51,"value":307}," Clear insights that answer the original question, direct references the user can click through (log excerpts, trace IDs, session IDs, error group IDs), a severity assessment, and at least one concrete remediation — a config change, a flag flip, a code-level fix with file and line, or a specific diagnostic step with the exact query to run.",{"type":46,"tag":60,"props":309,"children":311},{"id":310},"load-companion-files-when-relevant",[312],{"type":51,"value":313},"Load companion files when relevant",{"type":46,"tag":81,"props":315,"children":316},{},[317,328,339,350,361],{"type":46,"tag":85,"props":318,"children":319},{},[320,326],{"type":46,"tag":89,"props":321,"children":323},{"className":322},[],[324],{"type":51,"value":325},"logs.md",{"type":51,"value":327}," — when the investigation touches logs (error messages, level=error filters, service log patterns)",{"type":46,"tag":85,"props":329,"children":330},{},[331,337],{"type":46,"tag":89,"props":332,"children":334},{"className":333},[],[335],{"type":51,"value":336},"traces.md",{"type":51,"value":338}," — when analyzing request flow, latency, or span relationships",{"type":46,"tag":85,"props":340,"children":341},{},[342,348],{"type":46,"tag":89,"props":343,"children":345},{"className":344},[],[346],{"type":51,"value":347},"errors.md",{"type":51,"value":349}," — when looking at error groups, stack traces, exception frequency",{"type":46,"tag":85,"props":351,"children":352},{},[353,359],{"type":46,"tag":89,"props":354,"children":356},{"className":355},[],[357],{"type":51,"value":358},"sessions.md",{"type":51,"value":360}," — when reconstructing user journeys or correlating frontend behavior with backend events",{"type":46,"tag":85,"props":362,"children":363},{},[364,370],{"type":46,"tag":89,"props":365,"children":367},{"className":366},[],[368],{"type":51,"value":369},"metrics.md",{"type":51,"value":371}," — when aggregating across a large dataset or building a chart",{"type":46,"tag":60,"props":373,"children":375},{"id":374},"universal-guidance",[376],{"type":51,"value":377},"Universal guidance",{"type":46,"tag":81,"props":379,"children":380},{},[381,413,467,477,509,519],{"type":46,"tag":85,"props":382,"children":383},{},[384,389,391,396,398,404,406,411],{"type":46,"tag":75,"props":385,"children":386},{},[387],{"type":51,"value":388},"Prefer aggregation over pagination.",{"type":51,"value":390}," If you want to list unique users, count distinct values, or summarize, use ",{"type":46,"tag":89,"props":392,"children":394},{"className":393},[],[395],{"type":51,"value":138},{"type":51,"value":397}," with ",{"type":46,"tag":89,"props":399,"children":401},{"className":400},[],[402],{"type":51,"value":403},"group_by",{"type":51,"value":405}," — don't paginate through individual records. Use ",{"type":46,"tag":89,"props":407,"children":409},{"className":408},[],[410],{"type":51,"value":160},{"type":51,"value":412}," to discover the right grouping dimension first.",{"type":46,"tag":85,"props":414,"children":415},{},[416,428,430,436,438,444,445,451,452,458,460,465],{"type":46,"tag":75,"props":417,"children":418},{},[419,421,426],{"type":51,"value":420},"Call ",{"type":46,"tag":89,"props":422,"children":424},{"className":423},[],[425],{"type":51,"value":160},{"type":51,"value":427}," before attribute filters.",{"type":51,"value":429}," Attribute names vary across product types and services (",{"type":46,"tag":89,"props":431,"children":433},{"className":432},[],[434],{"type":51,"value":435},"spanName",{"type":51,"value":437}," vs ",{"type":46,"tag":89,"props":439,"children":441},{"className":440},[],[442],{"type":51,"value":443},"span_name",{"type":51,"value":209},{"type":46,"tag":89,"props":446,"children":448},{"className":447},[],[449],{"type":51,"value":450},"hasErrors",{"type":51,"value":437},{"type":46,"tag":89,"props":453,"children":455},{"className":454},[],[456],{"type":51,"value":457},"has_errors",{"type":51,"value":459},"). One ",{"type":46,"tag":89,"props":461,"children":463},{"className":462},[],[464],{"type":51,"value":160},{"type":51,"value":466}," call upfront prevents wasted queries with wrong field names.",{"type":46,"tag":85,"props":468,"children":469},{},[470,475],{"type":46,"tag":75,"props":471,"children":472},{},[473],{"type":51,"value":474},"Cite specific identifiers.",{"type":51,"value":476}," Every recommendation should reference the exact flag key, service name, session ID, trace ID, or file path you pulled from the data. The user should be able to act on your summary without redoing your investigation.",{"type":46,"tag":85,"props":478,"children":479},{},[480,485,487],{"type":46,"tag":75,"props":481,"children":482},{},[483],{"type":51,"value":484},"Handle large tool outputs.",{"type":51,"value":486}," When a tool result is persisted to a file (you'll see \"Output too large ... Full output saved to: ",{"type":46,"tag":488,"props":489,"children":490},"path",{},[491,493,499,501,507],{"type":51,"value":492},"\"), do NOT use Read — it has the same token limit. Use Bash with ",{"type":46,"tag":89,"props":494,"children":496},{"className":495},[],[497],{"type":51,"value":498},"python3",{"type":51,"value":500}," or ",{"type":46,"tag":89,"props":502,"children":504},{"className":503},[],[505],{"type":51,"value":506},"jq",{"type":51,"value":508}," to extract the specific slice you need.",{"type":46,"tag":85,"props":510,"children":511},{},[512,517],{"type":46,"tag":75,"props":513,"children":514},{},[515],{"type":51,"value":516},"Graceful degradation on tool failure.",{"type":51,"value":518}," If a tool call fails (buffer overflow, timeout, server error), don't end silently. Try an alternative tool or approach. If nothing works, deliver what you've found so far plus concrete next steps the user can take manually.",{"type":46,"tag":85,"props":520,"children":521},{},[522,527],{"type":46,"tag":75,"props":523,"children":524},{},[525],{"type":51,"value":526},"Handling vague requests.",{"type":51,"value":528}," \"Investigate this\" or \"what's going on\" is an invitation to dig, not to summarize. Iterate tool calls until you have a root cause or have exhausted the available data.",{"type":46,"tag":54,"props":530,"children":531},{},[532],{"type":51,"value":533},"If a tool isn't available in your environment, the corresponding MCP server may not be connected — surface that rather than working around it.",{"items":535,"total":669},[536,553,562,576,587,599,607,621,632,641,651,660],{"slug":537,"name":537,"fn":538,"description":539,"org":540,"tags":541,"stars":23,"repoUrl":24,"updatedAt":552},"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},[542,545,548,549],{"name":543,"slug":544,"type":15},"Agents","agents",{"name":546,"slug":547,"type":15},"Architecture","architecture",{"name":9,"slug":8,"type":15},{"name":550,"slug":551,"type":15},"Multi-Agent","multi-agent","2026-07-28T05:33:33.709407",{"slug":554,"name":554,"fn":555,"description":556,"org":557,"tags":558,"stars":23,"repoUrl":24,"updatedAt":561},"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},[559,560],{"name":543,"slug":544,"type":15},{"name":546,"slug":547,"type":15},"2026-05-22T06:55:56.527064",{"slug":563,"name":563,"fn":564,"description":565,"org":566,"tags":567,"stars":23,"repoUrl":24,"updatedAt":575},"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},[568,571,572],{"name":569,"slug":570,"type":15},"Analytics","analytics",{"name":9,"slug":8,"type":15},{"name":573,"slug":574,"type":15},"Metrics","metrics","2026-05-22T06:55:53.858749",{"slug":577,"name":577,"fn":578,"description":579,"org":580,"tags":581,"stars":23,"repoUrl":24,"updatedAt":586},"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},[582,583],{"name":9,"slug":8,"type":15},{"name":584,"slug":585,"type":15},"Reference","reference","2026-05-22T06:55:41.790591",{"slug":588,"name":588,"fn":589,"description":590,"org":591,"tags":592,"stars":23,"repoUrl":24,"updatedAt":598},"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},[593,594,597],{"name":569,"slug":570,"type":15},{"name":595,"slug":596,"type":15},"Feature Flags","feature-flags",{"name":9,"slug":8,"type":15},"2026-05-22T06:55:57.84851",{"slug":600,"name":600,"fn":601,"description":602,"org":603,"tags":604,"stars":23,"repoUrl":24,"updatedAt":606},"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},[605],{"name":584,"slug":585,"type":15},"2026-05-22T06:55:44.464733",{"slug":608,"name":608,"fn":609,"description":610,"org":611,"tags":612,"stars":23,"repoUrl":24,"updatedAt":620},"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},[613,616,617],{"name":614,"slug":615,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":618,"slug":619,"type":15},"Testing","testing","2026-05-22T06:55:55.179617",{"slug":622,"name":622,"fn":623,"description":624,"org":625,"tags":626,"stars":23,"repoUrl":24,"updatedAt":631},"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},[627,630],{"name":628,"slug":629,"type":15},"Configuration","configuration",{"name":9,"slug":8,"type":15},"2026-05-22T06:55:48.522229",{"slug":633,"name":633,"fn":634,"description":635,"org":636,"tags":637,"stars":23,"repoUrl":24,"updatedAt":640},"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},[638,639],{"name":628,"slug":629,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:47.16557",{"slug":642,"name":642,"fn":643,"description":644,"org":645,"tags":646,"stars":23,"repoUrl":24,"updatedAt":650},"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},[647,648,649],{"name":628,"slug":629,"type":15},{"name":595,"slug":596,"type":15},{"name":9,"slug":8,"type":15},"2026-05-22T06:55:49.845445",{"slug":652,"name":652,"fn":653,"description":654,"org":655,"tags":656,"stars":23,"repoUrl":24,"updatedAt":659},"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},[657,658],{"name":9,"slug":8,"type":15},{"name":584,"slug":585,"type":15},"2026-05-22T06:55:39.13373",{"slug":661,"name":661,"fn":662,"description":663,"org":664,"tags":665,"stars":23,"repoUrl":24,"updatedAt":668},"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},[666,667],{"name":9,"slug":8,"type":15},{"name":584,"slug":585,"type":15},"2026-05-22T06:55:40.464884",49,{"items":671,"total":669},[672,679,684,690,695,701,705],{"slug":537,"name":537,"fn":538,"description":539,"org":673,"tags":674,"stars":23,"repoUrl":24,"updatedAt":552},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[675,676,677,678],{"name":543,"slug":544,"type":15},{"name":546,"slug":547,"type":15},{"name":9,"slug":8,"type":15},{"name":550,"slug":551,"type":15},{"slug":554,"name":554,"fn":555,"description":556,"org":680,"tags":681,"stars":23,"repoUrl":24,"updatedAt":561},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[682,683],{"name":543,"slug":544,"type":15},{"name":546,"slug":547,"type":15},{"slug":563,"name":563,"fn":564,"description":565,"org":685,"tags":686,"stars":23,"repoUrl":24,"updatedAt":575},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[687,688,689],{"name":569,"slug":570,"type":15},{"name":9,"slug":8,"type":15},{"name":573,"slug":574,"type":15},{"slug":577,"name":577,"fn":578,"description":579,"org":691,"tags":692,"stars":23,"repoUrl":24,"updatedAt":586},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[693,694],{"name":9,"slug":8,"type":15},{"name":584,"slug":585,"type":15},{"slug":588,"name":588,"fn":589,"description":590,"org":696,"tags":697,"stars":23,"repoUrl":24,"updatedAt":598},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[698,699,700],{"name":569,"slug":570,"type":15},{"name":595,"slug":596,"type":15},{"name":9,"slug":8,"type":15},{"slug":600,"name":600,"fn":601,"description":602,"org":702,"tags":703,"stars":23,"repoUrl":24,"updatedAt":606},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[704],{"name":584,"slug":585,"type":15},{"slug":608,"name":608,"fn":609,"description":610,"org":706,"tags":707,"stars":23,"repoUrl":24,"updatedAt":620},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[708,709,710],{"name":614,"slug":615,"type":15},{"name":9,"slug":8,"type":15},{"name":618,"slug":619,"type":15}]