[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-blob-reading":3,"mdc--ts0syz-key":31,"related-repo-microsoft-blob-reading":1376,"related-org-microsoft-blob-reading":1459},{"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":26,"sourceUrl":29,"mdContent":30},"blob-reading","extract fields from blob URIs","Safe resolution of ci-blob:\u002F\u002F URIs — extract specific fields without dumping full payloads",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19],{"name":13,"slug":14,"type":15},"Data Engineering","data-engineering","tag",{"name":17,"slug":18,"type":15},"File Storage","file-storage",{"name":9,"slug":8,"type":15},3,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-context-intelligence","2026-07-07T06:52:39.196485","MIT",4,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"Context Intelligence bundle for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-context-intelligence\u002Ftree\u002FHEAD\u002Fskills\u002Fblob-reading","---\nname: blob-reading\nversion: 1.0.0\ndescription: Safe resolution of ci-blob:\u002F\u002F URIs — extract specific fields without dumping full payloads\nlicense: MIT\n---\n\n# Blob Reading\n\n`ci-blob:\u002F\u002F` URIs appear in graph query results when a payload is too large to inline. This skill covers safe resolution patterns to extract only the data you need.\n\n---\n\n## When to Use blob_read\n\nUse `blob_read` only when you need a **specific payload** from a graph node. Most Cypher queries return structured metadata that is sufficient without resolving any blobs.\n\n**Do resolve a blob when:**\n- You need the full `input` or `output` of a specific tool call\n- You need the `content` of a specific assistant turn\n- You need a specific field that is stored as a blob URI\n\n**Do NOT resolve a blob when:**\n- You are counting events, listing sessions, or summarizing metadata\n- The graph query already returned the structured fields you need\n- You are doing broad exploration — scan metadata first, resolve only if required\n\n> Most queries don't need blobs. Always exhaust what the graph returns before resolving.\n\n---\n\n## How to Resolve a Blob\n\nFollow these four steps to safely resolve a `ci-blob:\u002F\u002F` URI:\n\n**Step 1 — Identify the URI**\nLocate the `ci-blob:\u002F\u002F` URI in the graph query result. It will appear as a string value in a node property.\n\n**Step 2 — Call `blob_read`**\nPass the full URI to the `blob_read` tool:\n```\nblob_read(uri=\"ci-blob:\u002F\u002Fsession_id\u002Fkey\")\n```\n\n**Step 3 — Get the file path back**\n`blob_read` returns `{\"path\": \"...\", \"source\": {\"name\", \"url\", \"origin\"}}` on\nsuccess — a local file path where the blob content has been written, plus the\nendpoint that answered (`origin` is `source`, `destination`, or `env`). The file\nis temporary and exists only for this session. ALWAYS state which `source` a blob\nwas fetched from when reporting.\n\nOn **failure**, `source` is present only when an endpoint was actually chosen:\n**endpoint-level** errors (`connection_error`, `timeout`, `http_status`,\n`decode_error`, `http_error`, and input-validation errors like a missing\u002Finvalid\n`uri` that occur *after* selection) carry `error.source` — cite it.\n**Selection\u002Fconfig** errors before any endpoint is chosen\n(`ambiguous_source_selection`, `unknown_source`, `source_misconfigured`,\n`configuration_error`) have **no** `source`; report that selection failed rather\nthan inventing one. Call `blob_read` with `list_sources: true` to see the\nconnectable set before selecting one by name.\n\n**Step 4 — Read selectively**\nUse `jq`, `head`, or targeted shell commands to extract only the field(s) you need. Never read the full file into context.\n\n---\n\n## Safe Extraction Patterns\n\nAlways check size before reading, then extract only the field you need. In the\nexamples below the path is the exact `path` string returned by `blob_read`\n(real form: `\u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json`) — use that returned value\nverbatim; never hand-construct or guess a blob path.\n\n**Check size before reading:**\n```bash\nls -lh \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\nwc -c \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n```\n\n**Extract a top-level field:**\n```bash\njq '.field_name' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n```\n\n**Check available keys (safe exploration):**\n```bash\njq 'keys' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n```\n\n**Extract a nested field:**\n```bash\njq '.response.content[0].text' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n```\n\n**Extract with a size guard (first 500 chars):**\n```bash\njq -r '.response.content[0].text' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json | head -c 500\n```\n\n---\n\n## Critical Rules\n\n1. **Never dump the full blob** — do not `cat` or `read_file` the entire blob path into context. A single blob can contain 100k+ tokens.\n\n2. **Always check the `ci-blob:\u002F\u002F` prefix** — only strings that start with `ci-blob:\u002F\u002F` are blob URIs. Do not pass other strings to `blob_read`.\n\n3. **Prefer targeted extraction** — use `jq '.specific_field'` rather than reading the whole structure.\n\n4. **Always check size first** — run `ls -lh` or `wc -c` on the file path before extracting content. If the file is very large, be even more selective.\n\n5. **File path is temporary** — the path returned by `blob_read` is a temporary file for this session only. Do not persist or reference it across sessions.\n\n---\n\n## Blob Field Detection\n\nBlob URIs appear as string values in graph node properties. They look like this in raw JSON:\n\n```json\n{\n  \"event_id\": \"evt_abc123\",\n  \"type\": \"tool_result\",\n  \"data\": \"ci-blob:\u002F\u002Fsession_abc\u002Ftool_result_payload_xyz\"\n}\n```\n\n**To detect and resolve:**\n1. Parse the node result as JSON first\n2. Check if the `data` field (or whichever field is relevant) starts with `ci-blob:\u002F\u002F`\n3. Only then call `blob_read` on that URI\n\n> Not every `data` field contains a blob. Small payloads are inlined as plain JSON — only large payloads are stored as `ci-blob:\u002F\u002F` URIs. Always check the prefix before calling `blob_read`.\n",{"data":32,"body":34},{"name":4,"version":33,"description":6,"license":23},"1.0.0",{"type":35,"children":36},"root",[37,45,58,62,69,90,98,142,150,168,177,180,186,198,215,237,249,311,462,487,490,496,524,532,672,680,753,761,832,840,911,919,1015,1018,1024,1144,1147,1153,1158,1297,1305,1342,1370],{"type":38,"tag":39,"props":40,"children":41},"element","h1",{"id":4},[42],{"type":43,"value":44},"text","Blob Reading",{"type":38,"tag":46,"props":47,"children":48},"p",{},[49,56],{"type":38,"tag":50,"props":51,"children":53},"code",{"className":52},[],[54],{"type":43,"value":55},"ci-blob:\u002F\u002F",{"type":43,"value":57}," URIs appear in graph query results when a payload is too large to inline. This skill covers safe resolution patterns to extract only the data you need.",{"type":38,"tag":59,"props":60,"children":61},"hr",{},[],{"type":38,"tag":63,"props":64,"children":66},"h2",{"id":65},"when-to-use-blob_read",[67],{"type":43,"value":68},"When to Use blob_read",{"type":38,"tag":46,"props":70,"children":71},{},[72,74,80,82,88],{"type":43,"value":73},"Use ",{"type":38,"tag":50,"props":75,"children":77},{"className":76},[],[78],{"type":43,"value":79},"blob_read",{"type":43,"value":81}," only when you need a ",{"type":38,"tag":83,"props":84,"children":85},"strong",{},[86],{"type":43,"value":87},"specific payload",{"type":43,"value":89}," from a graph node. Most Cypher queries return structured metadata that is sufficient without resolving any blobs.",{"type":38,"tag":46,"props":91,"children":92},{},[93],{"type":38,"tag":83,"props":94,"children":95},{},[96],{"type":43,"value":97},"Do resolve a blob when:",{"type":38,"tag":99,"props":100,"children":101},"ul",{},[102,124,137],{"type":38,"tag":103,"props":104,"children":105},"li",{},[106,108,114,116,122],{"type":43,"value":107},"You need the full ",{"type":38,"tag":50,"props":109,"children":111},{"className":110},[],[112],{"type":43,"value":113},"input",{"type":43,"value":115}," or ",{"type":38,"tag":50,"props":117,"children":119},{"className":118},[],[120],{"type":43,"value":121},"output",{"type":43,"value":123}," of a specific tool call",{"type":38,"tag":103,"props":125,"children":126},{},[127,129,135],{"type":43,"value":128},"You need the ",{"type":38,"tag":50,"props":130,"children":132},{"className":131},[],[133],{"type":43,"value":134},"content",{"type":43,"value":136}," of a specific assistant turn",{"type":38,"tag":103,"props":138,"children":139},{},[140],{"type":43,"value":141},"You need a specific field that is stored as a blob URI",{"type":38,"tag":46,"props":143,"children":144},{},[145],{"type":38,"tag":83,"props":146,"children":147},{},[148],{"type":43,"value":149},"Do NOT resolve a blob when:",{"type":38,"tag":99,"props":151,"children":152},{},[153,158,163],{"type":38,"tag":103,"props":154,"children":155},{},[156],{"type":43,"value":157},"You are counting events, listing sessions, or summarizing metadata",{"type":38,"tag":103,"props":159,"children":160},{},[161],{"type":43,"value":162},"The graph query already returned the structured fields you need",{"type":38,"tag":103,"props":164,"children":165},{},[166],{"type":43,"value":167},"You are doing broad exploration — scan metadata first, resolve only if required",{"type":38,"tag":169,"props":170,"children":171},"blockquote",{},[172],{"type":38,"tag":46,"props":173,"children":174},{},[175],{"type":43,"value":176},"Most queries don't need blobs. Always exhaust what the graph returns before resolving.",{"type":38,"tag":59,"props":178,"children":179},{},[],{"type":38,"tag":63,"props":181,"children":183},{"id":182},"how-to-resolve-a-blob",[184],{"type":43,"value":185},"How to Resolve a Blob",{"type":38,"tag":46,"props":187,"children":188},{},[189,191,196],{"type":43,"value":190},"Follow these four steps to safely resolve a ",{"type":38,"tag":50,"props":192,"children":194},{"className":193},[],[195],{"type":43,"value":55},{"type":43,"value":197}," URI:",{"type":38,"tag":46,"props":199,"children":200},{},[201,206,208,213],{"type":38,"tag":83,"props":202,"children":203},{},[204],{"type":43,"value":205},"Step 1 — Identify the URI",{"type":43,"value":207},"\nLocate the ",{"type":38,"tag":50,"props":209,"children":211},{"className":210},[],[212],{"type":43,"value":55},{"type":43,"value":214}," URI in the graph query result. It will appear as a string value in a node property.",{"type":38,"tag":46,"props":216,"children":217},{},[218,228,230,235],{"type":38,"tag":83,"props":219,"children":220},{},[221,223],{"type":43,"value":222},"Step 2 — Call ",{"type":38,"tag":50,"props":224,"children":226},{"className":225},[],[227],{"type":43,"value":79},{"type":43,"value":229},"\nPass the full URI to the ",{"type":38,"tag":50,"props":231,"children":233},{"className":232},[],[234],{"type":43,"value":79},{"type":43,"value":236}," tool:",{"type":38,"tag":238,"props":239,"children":243},"pre",{"className":240,"code":242,"language":43},[241],"language-text","blob_read(uri=\"ci-blob:\u002F\u002Fsession_id\u002Fkey\")\n",[244],{"type":38,"tag":50,"props":245,"children":247},{"__ignoreMap":246},"",[248],{"type":43,"value":242},{"type":38,"tag":46,"props":250,"children":251},{},[252,257,262,264,270,272,278,280,286,288,294,296,302,304,309],{"type":38,"tag":83,"props":253,"children":254},{},[255],{"type":43,"value":256},"Step 3 — Get the file path back",{"type":38,"tag":50,"props":258,"children":260},{"className":259},[],[261],{"type":43,"value":79},{"type":43,"value":263}," returns ",{"type":38,"tag":50,"props":265,"children":267},{"className":266},[],[268],{"type":43,"value":269},"{\"path\": \"...\", \"source\": {\"name\", \"url\", \"origin\"}}",{"type":43,"value":271}," on\nsuccess — a local file path where the blob content has been written, plus the\nendpoint that answered (",{"type":38,"tag":50,"props":273,"children":275},{"className":274},[],[276],{"type":43,"value":277},"origin",{"type":43,"value":279}," is ",{"type":38,"tag":50,"props":281,"children":283},{"className":282},[],[284],{"type":43,"value":285},"source",{"type":43,"value":287},", ",{"type":38,"tag":50,"props":289,"children":291},{"className":290},[],[292],{"type":43,"value":293},"destination",{"type":43,"value":295},", or ",{"type":38,"tag":50,"props":297,"children":299},{"className":298},[],[300],{"type":43,"value":301},"env",{"type":43,"value":303},"). The file\nis temporary and exists only for this session. ALWAYS state which ",{"type":38,"tag":50,"props":305,"children":307},{"className":306},[],[308],{"type":43,"value":285},{"type":43,"value":310}," a blob\nwas fetched from when reporting.",{"type":38,"tag":46,"props":312,"children":313},{},[314,316,321,322,327,329,334,336,342,343,349,350,356,358,364,365,371,373,379,381,387,389,395,397,402,404,410,411,417,418,424,425,431,433,438,440,445,447,452,454,460],{"type":43,"value":315},"On ",{"type":38,"tag":83,"props":317,"children":318},{},[319],{"type":43,"value":320},"failure",{"type":43,"value":287},{"type":38,"tag":50,"props":323,"children":325},{"className":324},[],[326],{"type":43,"value":285},{"type":43,"value":328}," is present only when an endpoint was actually chosen:\n",{"type":38,"tag":83,"props":330,"children":331},{},[332],{"type":43,"value":333},"endpoint-level",{"type":43,"value":335}," errors (",{"type":38,"tag":50,"props":337,"children":339},{"className":338},[],[340],{"type":43,"value":341},"connection_error",{"type":43,"value":287},{"type":38,"tag":50,"props":344,"children":346},{"className":345},[],[347],{"type":43,"value":348},"timeout",{"type":43,"value":287},{"type":38,"tag":50,"props":351,"children":353},{"className":352},[],[354],{"type":43,"value":355},"http_status",{"type":43,"value":357},",\n",{"type":38,"tag":50,"props":359,"children":361},{"className":360},[],[362],{"type":43,"value":363},"decode_error",{"type":43,"value":287},{"type":38,"tag":50,"props":366,"children":368},{"className":367},[],[369],{"type":43,"value":370},"http_error",{"type":43,"value":372},", and input-validation errors like a missing\u002Finvalid\n",{"type":38,"tag":50,"props":374,"children":376},{"className":375},[],[377],{"type":43,"value":378},"uri",{"type":43,"value":380}," that occur ",{"type":38,"tag":382,"props":383,"children":384},"em",{},[385],{"type":43,"value":386},"after",{"type":43,"value":388}," selection) carry ",{"type":38,"tag":50,"props":390,"children":392},{"className":391},[],[393],{"type":43,"value":394},"error.source",{"type":43,"value":396}," — cite it.\n",{"type":38,"tag":83,"props":398,"children":399},{},[400],{"type":43,"value":401},"Selection\u002Fconfig",{"type":43,"value":403}," errors before any endpoint is chosen\n(",{"type":38,"tag":50,"props":405,"children":407},{"className":406},[],[408],{"type":43,"value":409},"ambiguous_source_selection",{"type":43,"value":287},{"type":38,"tag":50,"props":412,"children":414},{"className":413},[],[415],{"type":43,"value":416},"unknown_source",{"type":43,"value":287},{"type":38,"tag":50,"props":419,"children":421},{"className":420},[],[422],{"type":43,"value":423},"source_misconfigured",{"type":43,"value":357},{"type":38,"tag":50,"props":426,"children":428},{"className":427},[],[429],{"type":43,"value":430},"configuration_error",{"type":43,"value":432},") have ",{"type":38,"tag":83,"props":434,"children":435},{},[436],{"type":43,"value":437},"no",{"type":43,"value":439}," ",{"type":38,"tag":50,"props":441,"children":443},{"className":442},[],[444],{"type":43,"value":285},{"type":43,"value":446},"; report that selection failed rather\nthan inventing one. Call ",{"type":38,"tag":50,"props":448,"children":450},{"className":449},[],[451],{"type":43,"value":79},{"type":43,"value":453}," with ",{"type":38,"tag":50,"props":455,"children":457},{"className":456},[],[458],{"type":43,"value":459},"list_sources: true",{"type":43,"value":461}," to see the\nconnectable set before selecting one by name.",{"type":38,"tag":46,"props":463,"children":464},{},[465,470,472,478,479,485],{"type":38,"tag":83,"props":466,"children":467},{},[468],{"type":43,"value":469},"Step 4 — Read selectively",{"type":43,"value":471},"\nUse ",{"type":38,"tag":50,"props":473,"children":475},{"className":474},[],[476],{"type":43,"value":477},"jq",{"type":43,"value":287},{"type":38,"tag":50,"props":480,"children":482},{"className":481},[],[483],{"type":43,"value":484},"head",{"type":43,"value":486},", or targeted shell commands to extract only the field(s) you need. Never read the full file into context.",{"type":38,"tag":59,"props":488,"children":489},{},[],{"type":38,"tag":63,"props":491,"children":493},{"id":492},"safe-extraction-patterns",[494],{"type":43,"value":495},"Safe Extraction Patterns",{"type":38,"tag":46,"props":497,"children":498},{},[499,501,507,509,514,516,522],{"type":43,"value":500},"Always check size before reading, then extract only the field you need. In the\nexamples below the path is the exact ",{"type":38,"tag":50,"props":502,"children":504},{"className":503},[],[505],{"type":43,"value":506},"path",{"type":43,"value":508}," string returned by ",{"type":38,"tag":50,"props":510,"children":512},{"className":511},[],[513],{"type":43,"value":79},{"type":43,"value":515},"\n(real form: ",{"type":38,"tag":50,"props":517,"children":519},{"className":518},[],[520],{"type":43,"value":521},"\u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json",{"type":43,"value":523},") — use that returned value\nverbatim; never hand-construct or guess a blob path.",{"type":38,"tag":46,"props":525,"children":526},{},[527],{"type":38,"tag":83,"props":528,"children":529},{},[530],{"type":43,"value":531},"Check size before reading:",{"type":38,"tag":238,"props":533,"children":537},{"className":534,"code":535,"language":536,"meta":246,"style":246},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ls -lh \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\nwc -c \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n","bash",[538],{"type":38,"tag":50,"props":539,"children":540},{"__ignoreMap":246},[541,614],{"type":38,"tag":542,"props":543,"children":546},"span",{"class":544,"line":545},"line",1,[547,553,559,564,570,575,581,586,591,595,600,605,609],{"type":38,"tag":542,"props":548,"children":550},{"style":549},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[551],{"type":43,"value":552},"ls",{"type":38,"tag":542,"props":554,"children":556},{"style":555},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[557],{"type":43,"value":558}," -lh",{"type":38,"tag":542,"props":560,"children":561},{"style":555},[562],{"type":43,"value":563}," \u002Ftmp\u002Fci-blobs\u002F",{"type":38,"tag":542,"props":565,"children":567},{"style":566},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[568],{"type":43,"value":569},"\u003C",{"type":38,"tag":542,"props":571,"children":572},{"style":555},[573],{"type":43,"value":574},"session_i",{"type":38,"tag":542,"props":576,"children":578},{"style":577},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[579],{"type":43,"value":580},"d",{"type":38,"tag":542,"props":582,"children":583},{"style":566},[584],{"type":43,"value":585},">",{"type":38,"tag":542,"props":587,"children":588},{"style":555},[589],{"type":43,"value":590},"\u002F",{"type":38,"tag":542,"props":592,"children":593},{"style":566},[594],{"type":43,"value":569},{"type":38,"tag":542,"props":596,"children":597},{"style":555},[598],{"type":43,"value":599},"ke",{"type":38,"tag":542,"props":601,"children":602},{"style":577},[603],{"type":43,"value":604},"y",{"type":38,"tag":542,"props":606,"children":607},{"style":566},[608],{"type":43,"value":585},{"type":38,"tag":542,"props":610,"children":611},{"style":555},[612],{"type":43,"value":613},".json\n",{"type":38,"tag":542,"props":615,"children":617},{"class":544,"line":616},2,[618,623,628,632,636,640,644,648,652,656,660,664,668],{"type":38,"tag":542,"props":619,"children":620},{"style":549},[621],{"type":43,"value":622},"wc",{"type":38,"tag":542,"props":624,"children":625},{"style":555},[626],{"type":43,"value":627}," -c",{"type":38,"tag":542,"props":629,"children":630},{"style":555},[631],{"type":43,"value":563},{"type":38,"tag":542,"props":633,"children":634},{"style":566},[635],{"type":43,"value":569},{"type":38,"tag":542,"props":637,"children":638},{"style":555},[639],{"type":43,"value":574},{"type":38,"tag":542,"props":641,"children":642},{"style":577},[643],{"type":43,"value":580},{"type":38,"tag":542,"props":645,"children":646},{"style":566},[647],{"type":43,"value":585},{"type":38,"tag":542,"props":649,"children":650},{"style":555},[651],{"type":43,"value":590},{"type":38,"tag":542,"props":653,"children":654},{"style":566},[655],{"type":43,"value":569},{"type":38,"tag":542,"props":657,"children":658},{"style":555},[659],{"type":43,"value":599},{"type":38,"tag":542,"props":661,"children":662},{"style":577},[663],{"type":43,"value":604},{"type":38,"tag":542,"props":665,"children":666},{"style":566},[667],{"type":43,"value":585},{"type":38,"tag":542,"props":669,"children":670},{"style":555},[671],{"type":43,"value":613},{"type":38,"tag":46,"props":673,"children":674},{},[675],{"type":38,"tag":83,"props":676,"children":677},{},[678],{"type":43,"value":679},"Extract a top-level field:",{"type":38,"tag":238,"props":681,"children":683},{"className":534,"code":682,"language":536,"meta":246,"style":246},"jq '.field_name' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n",[684],{"type":38,"tag":50,"props":685,"children":686},{"__ignoreMap":246},[687],{"type":38,"tag":542,"props":688,"children":689},{"class":544,"line":545},[690,694,699,704,709,713,717,721,725,729,733,737,741,745,749],{"type":38,"tag":542,"props":691,"children":692},{"style":549},[693],{"type":43,"value":477},{"type":38,"tag":542,"props":695,"children":696},{"style":566},[697],{"type":43,"value":698}," '",{"type":38,"tag":542,"props":700,"children":701},{"style":555},[702],{"type":43,"value":703},".field_name",{"type":38,"tag":542,"props":705,"children":706},{"style":566},[707],{"type":43,"value":708},"'",{"type":38,"tag":542,"props":710,"children":711},{"style":555},[712],{"type":43,"value":563},{"type":38,"tag":542,"props":714,"children":715},{"style":566},[716],{"type":43,"value":569},{"type":38,"tag":542,"props":718,"children":719},{"style":555},[720],{"type":43,"value":574},{"type":38,"tag":542,"props":722,"children":723},{"style":577},[724],{"type":43,"value":580},{"type":38,"tag":542,"props":726,"children":727},{"style":566},[728],{"type":43,"value":585},{"type":38,"tag":542,"props":730,"children":731},{"style":555},[732],{"type":43,"value":590},{"type":38,"tag":542,"props":734,"children":735},{"style":566},[736],{"type":43,"value":569},{"type":38,"tag":542,"props":738,"children":739},{"style":555},[740],{"type":43,"value":599},{"type":38,"tag":542,"props":742,"children":743},{"style":577},[744],{"type":43,"value":604},{"type":38,"tag":542,"props":746,"children":747},{"style":566},[748],{"type":43,"value":585},{"type":38,"tag":542,"props":750,"children":751},{"style":555},[752],{"type":43,"value":613},{"type":38,"tag":46,"props":754,"children":755},{},[756],{"type":38,"tag":83,"props":757,"children":758},{},[759],{"type":43,"value":760},"Check available keys (safe exploration):",{"type":38,"tag":238,"props":762,"children":764},{"className":534,"code":763,"language":536,"meta":246,"style":246},"jq 'keys' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n",[765],{"type":38,"tag":50,"props":766,"children":767},{"__ignoreMap":246},[768],{"type":38,"tag":542,"props":769,"children":770},{"class":544,"line":545},[771,775,779,784,788,792,796,800,804,808,812,816,820,824,828],{"type":38,"tag":542,"props":772,"children":773},{"style":549},[774],{"type":43,"value":477},{"type":38,"tag":542,"props":776,"children":777},{"style":566},[778],{"type":43,"value":698},{"type":38,"tag":542,"props":780,"children":781},{"style":555},[782],{"type":43,"value":783},"keys",{"type":38,"tag":542,"props":785,"children":786},{"style":566},[787],{"type":43,"value":708},{"type":38,"tag":542,"props":789,"children":790},{"style":555},[791],{"type":43,"value":563},{"type":38,"tag":542,"props":793,"children":794},{"style":566},[795],{"type":43,"value":569},{"type":38,"tag":542,"props":797,"children":798},{"style":555},[799],{"type":43,"value":574},{"type":38,"tag":542,"props":801,"children":802},{"style":577},[803],{"type":43,"value":580},{"type":38,"tag":542,"props":805,"children":806},{"style":566},[807],{"type":43,"value":585},{"type":38,"tag":542,"props":809,"children":810},{"style":555},[811],{"type":43,"value":590},{"type":38,"tag":542,"props":813,"children":814},{"style":566},[815],{"type":43,"value":569},{"type":38,"tag":542,"props":817,"children":818},{"style":555},[819],{"type":43,"value":599},{"type":38,"tag":542,"props":821,"children":822},{"style":577},[823],{"type":43,"value":604},{"type":38,"tag":542,"props":825,"children":826},{"style":566},[827],{"type":43,"value":585},{"type":38,"tag":542,"props":829,"children":830},{"style":555},[831],{"type":43,"value":613},{"type":38,"tag":46,"props":833,"children":834},{},[835],{"type":38,"tag":83,"props":836,"children":837},{},[838],{"type":43,"value":839},"Extract a nested field:",{"type":38,"tag":238,"props":841,"children":843},{"className":534,"code":842,"language":536,"meta":246,"style":246},"jq '.response.content[0].text' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json\n",[844],{"type":38,"tag":50,"props":845,"children":846},{"__ignoreMap":246},[847],{"type":38,"tag":542,"props":848,"children":849},{"class":544,"line":545},[850,854,858,863,867,871,875,879,883,887,891,895,899,903,907],{"type":38,"tag":542,"props":851,"children":852},{"style":549},[853],{"type":43,"value":477},{"type":38,"tag":542,"props":855,"children":856},{"style":566},[857],{"type":43,"value":698},{"type":38,"tag":542,"props":859,"children":860},{"style":555},[861],{"type":43,"value":862},".response.content[0].text",{"type":38,"tag":542,"props":864,"children":865},{"style":566},[866],{"type":43,"value":708},{"type":38,"tag":542,"props":868,"children":869},{"style":555},[870],{"type":43,"value":563},{"type":38,"tag":542,"props":872,"children":873},{"style":566},[874],{"type":43,"value":569},{"type":38,"tag":542,"props":876,"children":877},{"style":555},[878],{"type":43,"value":574},{"type":38,"tag":542,"props":880,"children":881},{"style":577},[882],{"type":43,"value":580},{"type":38,"tag":542,"props":884,"children":885},{"style":566},[886],{"type":43,"value":585},{"type":38,"tag":542,"props":888,"children":889},{"style":555},[890],{"type":43,"value":590},{"type":38,"tag":542,"props":892,"children":893},{"style":566},[894],{"type":43,"value":569},{"type":38,"tag":542,"props":896,"children":897},{"style":555},[898],{"type":43,"value":599},{"type":38,"tag":542,"props":900,"children":901},{"style":577},[902],{"type":43,"value":604},{"type":38,"tag":542,"props":904,"children":905},{"style":566},[906],{"type":43,"value":585},{"type":38,"tag":542,"props":908,"children":909},{"style":555},[910],{"type":43,"value":613},{"type":38,"tag":46,"props":912,"children":913},{},[914],{"type":38,"tag":83,"props":915,"children":916},{},[917],{"type":43,"value":918},"Extract with a size guard (first 500 chars):",{"type":38,"tag":238,"props":920,"children":922},{"className":534,"code":921,"language":536,"meta":246,"style":246},"jq -r '.response.content[0].text' \u002Ftmp\u002Fci-blobs\u002F\u003Csession_id>\u002F\u003Ckey>.json | head -c 500\n",[923],{"type":38,"tag":50,"props":924,"children":925},{"__ignoreMap":246},[926],{"type":38,"tag":542,"props":927,"children":928},{"class":544,"line":545},[929,933,938,942,946,950,954,958,962,966,970,974,978,982,986,990,995,1000,1005,1009],{"type":38,"tag":542,"props":930,"children":931},{"style":549},[932],{"type":43,"value":477},{"type":38,"tag":542,"props":934,"children":935},{"style":555},[936],{"type":43,"value":937}," -r",{"type":38,"tag":542,"props":939,"children":940},{"style":566},[941],{"type":43,"value":698},{"type":38,"tag":542,"props":943,"children":944},{"style":555},[945],{"type":43,"value":862},{"type":38,"tag":542,"props":947,"children":948},{"style":566},[949],{"type":43,"value":708},{"type":38,"tag":542,"props":951,"children":952},{"style":555},[953],{"type":43,"value":563},{"type":38,"tag":542,"props":955,"children":956},{"style":566},[957],{"type":43,"value":569},{"type":38,"tag":542,"props":959,"children":960},{"style":555},[961],{"type":43,"value":574},{"type":38,"tag":542,"props":963,"children":964},{"style":577},[965],{"type":43,"value":580},{"type":38,"tag":542,"props":967,"children":968},{"style":566},[969],{"type":43,"value":585},{"type":38,"tag":542,"props":971,"children":972},{"style":555},[973],{"type":43,"value":590},{"type":38,"tag":542,"props":975,"children":976},{"style":566},[977],{"type":43,"value":569},{"type":38,"tag":542,"props":979,"children":980},{"style":555},[981],{"type":43,"value":599},{"type":38,"tag":542,"props":983,"children":984},{"style":577},[985],{"type":43,"value":604},{"type":38,"tag":542,"props":987,"children":988},{"style":566},[989],{"type":43,"value":585},{"type":38,"tag":542,"props":991,"children":992},{"style":555},[993],{"type":43,"value":994},".json",{"type":38,"tag":542,"props":996,"children":997},{"style":566},[998],{"type":43,"value":999}," |",{"type":38,"tag":542,"props":1001,"children":1002},{"style":549},[1003],{"type":43,"value":1004}," head",{"type":38,"tag":542,"props":1006,"children":1007},{"style":555},[1008],{"type":43,"value":627},{"type":38,"tag":542,"props":1010,"children":1012},{"style":1011},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1013],{"type":43,"value":1014}," 500\n",{"type":38,"tag":59,"props":1016,"children":1017},{},[],{"type":38,"tag":63,"props":1019,"children":1021},{"id":1020},"critical-rules",[1022],{"type":43,"value":1023},"Critical Rules",{"type":38,"tag":1025,"props":1026,"children":1027},"ol",{},[1028,1053,1084,1102,1127],{"type":38,"tag":103,"props":1029,"children":1030},{},[1031,1036,1038,1044,1045,1051],{"type":38,"tag":83,"props":1032,"children":1033},{},[1034],{"type":43,"value":1035},"Never dump the full blob",{"type":43,"value":1037}," — do not ",{"type":38,"tag":50,"props":1039,"children":1041},{"className":1040},[],[1042],{"type":43,"value":1043},"cat",{"type":43,"value":115},{"type":38,"tag":50,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":43,"value":1050},"read_file",{"type":43,"value":1052}," the entire blob path into context. A single blob can contain 100k+ tokens.",{"type":38,"tag":103,"props":1054,"children":1055},{},[1056,1068,1070,1075,1077,1082],{"type":38,"tag":83,"props":1057,"children":1058},{},[1059,1061,1066],{"type":43,"value":1060},"Always check the ",{"type":38,"tag":50,"props":1062,"children":1064},{"className":1063},[],[1065],{"type":43,"value":55},{"type":43,"value":1067}," prefix",{"type":43,"value":1069}," — only strings that start with ",{"type":38,"tag":50,"props":1071,"children":1073},{"className":1072},[],[1074],{"type":43,"value":55},{"type":43,"value":1076}," are blob URIs. Do not pass other strings to ",{"type":38,"tag":50,"props":1078,"children":1080},{"className":1079},[],[1081],{"type":43,"value":79},{"type":43,"value":1083},".",{"type":38,"tag":103,"props":1085,"children":1086},{},[1087,1092,1094,1100],{"type":38,"tag":83,"props":1088,"children":1089},{},[1090],{"type":43,"value":1091},"Prefer targeted extraction",{"type":43,"value":1093}," — use ",{"type":38,"tag":50,"props":1095,"children":1097},{"className":1096},[],[1098],{"type":43,"value":1099},"jq '.specific_field'",{"type":43,"value":1101}," rather than reading the whole structure.",{"type":38,"tag":103,"props":1103,"children":1104},{},[1105,1110,1112,1118,1119,1125],{"type":38,"tag":83,"props":1106,"children":1107},{},[1108],{"type":43,"value":1109},"Always check size first",{"type":43,"value":1111}," — run ",{"type":38,"tag":50,"props":1113,"children":1115},{"className":1114},[],[1116],{"type":43,"value":1117},"ls -lh",{"type":43,"value":115},{"type":38,"tag":50,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":43,"value":1124},"wc -c",{"type":43,"value":1126}," on the file path before extracting content. If the file is very large, be even more selective.",{"type":38,"tag":103,"props":1128,"children":1129},{},[1130,1135,1137,1142],{"type":38,"tag":83,"props":1131,"children":1132},{},[1133],{"type":43,"value":1134},"File path is temporary",{"type":43,"value":1136}," — the path returned by ",{"type":38,"tag":50,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":43,"value":79},{"type":43,"value":1143}," is a temporary file for this session only. Do not persist or reference it across sessions.",{"type":38,"tag":59,"props":1145,"children":1146},{},[],{"type":38,"tag":63,"props":1148,"children":1150},{"id":1149},"blob-field-detection",[1151],{"type":43,"value":1152},"Blob Field Detection",{"type":38,"tag":46,"props":1154,"children":1155},{},[1156],{"type":43,"value":1157},"Blob URIs appear as string values in graph node properties. They look like this in raw JSON:",{"type":38,"tag":238,"props":1159,"children":1163},{"className":1160,"code":1161,"language":1162,"meta":246,"style":246},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"event_id\": \"evt_abc123\",\n  \"type\": \"tool_result\",\n  \"data\": \"ci-blob:\u002F\u002Fsession_abc\u002Ftool_result_payload_xyz\"\n}\n","json",[1164],{"type":38,"tag":50,"props":1165,"children":1166},{"__ignoreMap":246},[1167,1175,1217,1254,1288],{"type":38,"tag":542,"props":1168,"children":1169},{"class":544,"line":545},[1170],{"type":38,"tag":542,"props":1171,"children":1172},{"style":566},[1173],{"type":43,"value":1174},"{\n",{"type":38,"tag":542,"props":1176,"children":1177},{"class":544,"line":616},[1178,1183,1189,1194,1199,1204,1209,1213],{"type":38,"tag":542,"props":1179,"children":1180},{"style":566},[1181],{"type":43,"value":1182},"  \"",{"type":38,"tag":542,"props":1184,"children":1186},{"style":1185},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1187],{"type":43,"value":1188},"event_id",{"type":38,"tag":542,"props":1190,"children":1191},{"style":566},[1192],{"type":43,"value":1193},"\"",{"type":38,"tag":542,"props":1195,"children":1196},{"style":566},[1197],{"type":43,"value":1198},":",{"type":38,"tag":542,"props":1200,"children":1201},{"style":566},[1202],{"type":43,"value":1203}," \"",{"type":38,"tag":542,"props":1205,"children":1206},{"style":555},[1207],{"type":43,"value":1208},"evt_abc123",{"type":38,"tag":542,"props":1210,"children":1211},{"style":566},[1212],{"type":43,"value":1193},{"type":38,"tag":542,"props":1214,"children":1215},{"style":566},[1216],{"type":43,"value":357},{"type":38,"tag":542,"props":1218,"children":1219},{"class":544,"line":20},[1220,1224,1229,1233,1237,1241,1246,1250],{"type":38,"tag":542,"props":1221,"children":1222},{"style":566},[1223],{"type":43,"value":1182},{"type":38,"tag":542,"props":1225,"children":1226},{"style":1185},[1227],{"type":43,"value":1228},"type",{"type":38,"tag":542,"props":1230,"children":1231},{"style":566},[1232],{"type":43,"value":1193},{"type":38,"tag":542,"props":1234,"children":1235},{"style":566},[1236],{"type":43,"value":1198},{"type":38,"tag":542,"props":1238,"children":1239},{"style":566},[1240],{"type":43,"value":1203},{"type":38,"tag":542,"props":1242,"children":1243},{"style":555},[1244],{"type":43,"value":1245},"tool_result",{"type":38,"tag":542,"props":1247,"children":1248},{"style":566},[1249],{"type":43,"value":1193},{"type":38,"tag":542,"props":1251,"children":1252},{"style":566},[1253],{"type":43,"value":357},{"type":38,"tag":542,"props":1255,"children":1256},{"class":544,"line":24},[1257,1261,1266,1270,1274,1278,1283],{"type":38,"tag":542,"props":1258,"children":1259},{"style":566},[1260],{"type":43,"value":1182},{"type":38,"tag":542,"props":1262,"children":1263},{"style":1185},[1264],{"type":43,"value":1265},"data",{"type":38,"tag":542,"props":1267,"children":1268},{"style":566},[1269],{"type":43,"value":1193},{"type":38,"tag":542,"props":1271,"children":1272},{"style":566},[1273],{"type":43,"value":1198},{"type":38,"tag":542,"props":1275,"children":1276},{"style":566},[1277],{"type":43,"value":1203},{"type":38,"tag":542,"props":1279,"children":1280},{"style":555},[1281],{"type":43,"value":1282},"ci-blob:\u002F\u002Fsession_abc\u002Ftool_result_payload_xyz",{"type":38,"tag":542,"props":1284,"children":1285},{"style":566},[1286],{"type":43,"value":1287},"\"\n",{"type":38,"tag":542,"props":1289,"children":1291},{"class":544,"line":1290},5,[1292],{"type":38,"tag":542,"props":1293,"children":1294},{"style":566},[1295],{"type":43,"value":1296},"}\n",{"type":38,"tag":46,"props":1298,"children":1299},{},[1300],{"type":38,"tag":83,"props":1301,"children":1302},{},[1303],{"type":43,"value":1304},"To detect and resolve:",{"type":38,"tag":1025,"props":1306,"children":1307},{},[1308,1313,1330],{"type":38,"tag":103,"props":1309,"children":1310},{},[1311],{"type":43,"value":1312},"Parse the node result as JSON first",{"type":38,"tag":103,"props":1314,"children":1315},{},[1316,1318,1323,1325],{"type":43,"value":1317},"Check if the ",{"type":38,"tag":50,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":43,"value":1265},{"type":43,"value":1324}," field (or whichever field is relevant) starts with ",{"type":38,"tag":50,"props":1326,"children":1328},{"className":1327},[],[1329],{"type":43,"value":55},{"type":38,"tag":103,"props":1331,"children":1332},{},[1333,1335,1340],{"type":43,"value":1334},"Only then call ",{"type":38,"tag":50,"props":1336,"children":1338},{"className":1337},[],[1339],{"type":43,"value":79},{"type":43,"value":1341}," on that URI",{"type":38,"tag":169,"props":1343,"children":1344},{},[1345],{"type":38,"tag":46,"props":1346,"children":1347},{},[1348,1350,1355,1357,1362,1364,1369],{"type":43,"value":1349},"Not every ",{"type":38,"tag":50,"props":1351,"children":1353},{"className":1352},[],[1354],{"type":43,"value":1265},{"type":43,"value":1356}," field contains a blob. Small payloads are inlined as plain JSON — only large payloads are stored as ",{"type":38,"tag":50,"props":1358,"children":1360},{"className":1359},[],[1361],{"type":43,"value":55},{"type":43,"value":1363}," URIs. Always check the prefix before calling ",{"type":38,"tag":50,"props":1365,"children":1367},{"className":1366},[],[1368],{"type":43,"value":79},{"type":43,"value":1083},{"type":38,"tag":1371,"props":1372,"children":1373},"style",{},[1374],{"type":43,"value":1375},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1377,"total":1458},[1378,1384,1401,1416,1426,1443],{"slug":4,"name":4,"fn":5,"description":6,"org":1379,"tags":1380,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1381,1382,1383],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"slug":1385,"name":1385,"fn":1386,"description":1387,"org":1388,"tags":1389,"stars":20,"repoUrl":21,"updatedAt":1400},"context-intelligence-evaluation-methodology","design evaluation metrics for tool signals","Use when deciding how to measure a context-intelligence tool signal — metric design across quality\u002Fefficiency\u002Fefficacy axes, artifact-metric avoidance via precursor measurement, A\u002FB and statistical-N discipline, and test-data fidelity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1390,1393,1396,1397],{"name":1391,"slug":1392,"type":15},"Data Analysis","data-analysis",{"name":1394,"slug":1395,"type":15},"Evals","evals",{"name":9,"slug":8,"type":15},{"name":1398,"slug":1399,"type":15},"Statistics","statistics","2026-07-07T06:52:41.770083",{"slug":1402,"name":1402,"fn":1403,"description":1404,"org":1405,"tags":1406,"stars":20,"repoUrl":21,"updatedAt":1415},"context-intelligence-graph-query","query context intelligence property graphs","Use when querying the context-intelligence property graph for session history, tool call traces, LLM iteration analysis, execution scale metrics, agent delegation trees, skill loading, and recipe orchestration. Covers all graph layers, cross-layer SOURCED_FROM joins, SST navigation, blob handling, and verified Cypher patterns.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1407,1410,1411,1414],{"name":1408,"slug":1409,"type":15},"Agents","agents",{"name":1391,"slug":1392,"type":15},{"name":1412,"slug":1413,"type":15},"Graph Analysis","graph-analysis",{"name":9,"slug":8,"type":15},"2026-07-07T06:52:37.897652",{"slug":1417,"name":1417,"fn":1418,"description":1419,"org":1420,"tags":1421,"stars":20,"repoUrl":21,"updatedAt":1425},"context-intelligence-session-navigation","navigate and extract session data","Use when extracting session data directly from JSONL files — the baseline path when the graph server is unavailable or when operating outside graph-analyst",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1422,1423,1424],{"name":1408,"slug":1409,"type":15},{"name":1391,"slug":1392,"type":15},{"name":9,"slug":8,"type":15},"2026-07-07T06:52:40.507052",{"slug":1427,"name":1427,"fn":1428,"description":1429,"org":1430,"tags":1431,"stars":20,"repoUrl":21,"updatedAt":1442},"context-intelligence-session-reconstruction","reconstruct local Amplifier session files","Reconstruct local Amplifier session files from the context-intelligence graph server — events.jsonl, transcript.jsonl, and metadata.json",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1432,1435,1438,1439],{"name":1433,"slug":1434,"type":15},"Amplifier","amplifier",{"name":1436,"slug":1437,"type":15},"Metadata","metadata",{"name":9,"slug":8,"type":15},{"name":1440,"slug":1441,"type":15},"Observability","observability","2026-07-03T16:31:03.605475",{"slug":1444,"name":1444,"fn":1445,"description":1446,"org":1447,"tags":1448,"stars":20,"repoUrl":21,"updatedAt":1457},"workflow-pattern-analysis","analyze workflow success and failure patterns","Analyse failure and success patterns across many runs of a specific workflow using context-intelligence session data. Use when you want to answer: \"How is \u003Cworkflow> failing?\", \"What does a successful run look like vs a failing one?\", \"Which steps are the most common failure points?\", or \"What patterns appear consistently across sessions?\" Triggers on: workflow failure patterns, session failure analysis, compare successful and failing runs, what patterns appear across sessions, session behaviour investigation, how is the workflow failing, success patterns, failure signals, identify session signals.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1449,1450,1453,1454],{"name":1391,"slug":1392,"type":15},{"name":1451,"slug":1452,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":1455,"slug":1456,"type":15},"Workflow Automation","workflow-automation","2026-07-07T06:52:43.061859",6,{"items":1460,"total":1651},[1461,1483,1502,1521,1536,1553,1564,1577,1592,1607,1626,1639],{"slug":1462,"name":1462,"fn":1463,"description":1464,"org":1465,"tags":1466,"stars":1480,"repoUrl":1481,"updatedAt":1482},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1467,1470,1473,1474,1477],{"name":1468,"slug":1469,"type":15},"Engineering","engineering",{"name":1471,"slug":1472,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1475,"slug":1476,"type":15},"Project Management","project-management",{"name":1478,"slug":1479,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1484,"name":1484,"fn":1485,"description":1486,"org":1487,"tags":1488,"stars":1499,"repoUrl":1500,"updatedAt":1501},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1489,1492,1493,1496],{"name":1490,"slug":1491,"type":15},".NET","net",{"name":1408,"slug":1409,"type":15},{"name":1494,"slug":1495,"type":15},"Azure","azure",{"name":1497,"slug":1498,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1503,"name":1503,"fn":1504,"description":1505,"org":1506,"tags":1507,"stars":1499,"repoUrl":1500,"updatedAt":1520},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1508,1511,1512,1513,1516,1517],{"name":1509,"slug":1510,"type":15},"Analytics","analytics",{"name":1494,"slug":1495,"type":15},{"name":1391,"slug":1392,"type":15},{"name":1514,"slug":1515,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1518,"slug":1519,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1522,"name":1522,"fn":1523,"description":1524,"org":1525,"tags":1526,"stars":1499,"repoUrl":1500,"updatedAt":1535},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1527,1530,1531,1532],{"name":1528,"slug":1529,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1494,"slug":1495,"type":15},{"name":1514,"slug":1515,"type":15},{"name":1533,"slug":1534,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1537,"name":1537,"fn":1538,"description":1539,"org":1540,"tags":1541,"stars":1499,"repoUrl":1500,"updatedAt":1552},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1542,1543,1546,1547,1548,1551],{"name":1494,"slug":1495,"type":15},{"name":1544,"slug":1545,"type":15},"Compliance","compliance",{"name":1497,"slug":1498,"type":15},{"name":9,"slug":8,"type":15},{"name":1549,"slug":1550,"type":15},"Python","python",{"name":1533,"slug":1534,"type":15},"2026-07-18T05:14:23.017504",{"slug":1554,"name":1554,"fn":1555,"description":1556,"org":1557,"tags":1558,"stars":1499,"repoUrl":1500,"updatedAt":1563},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1559,1560,1561,1562],{"name":1509,"slug":1510,"type":15},{"name":1494,"slug":1495,"type":15},{"name":1497,"slug":1498,"type":15},{"name":1549,"slug":1550,"type":15},"2026-07-31T05:54:29.068751",{"slug":1565,"name":1565,"fn":1566,"description":1567,"org":1568,"tags":1569,"stars":1499,"repoUrl":1500,"updatedAt":1576},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1570,1573,1574,1575],{"name":1571,"slug":1572,"type":15},"API Development","api-development",{"name":1494,"slug":1495,"type":15},{"name":9,"slug":8,"type":15},{"name":1549,"slug":1550,"type":15},"2026-07-18T05:14:16.988376",{"slug":1578,"name":1578,"fn":1579,"description":1580,"org":1581,"tags":1582,"stars":1499,"repoUrl":1500,"updatedAt":1591},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1583,1584,1587,1590],{"name":1494,"slug":1495,"type":15},{"name":1585,"slug":1586,"type":15},"Computer Vision","computer-vision",{"name":1588,"slug":1589,"type":15},"Images","images",{"name":1549,"slug":1550,"type":15},"2026-07-18T05:14:18.007737",{"slug":1593,"name":1593,"fn":1594,"description":1595,"org":1596,"tags":1597,"stars":1499,"repoUrl":1500,"updatedAt":1606},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1598,1599,1602,1605],{"name":1494,"slug":1495,"type":15},{"name":1600,"slug":1601,"type":15},"Configuration","configuration",{"name":1603,"slug":1604,"type":15},"Feature Flags","feature-flags",{"name":1514,"slug":1515,"type":15},"2026-07-03T16:32:01.278468",{"slug":1608,"name":1608,"fn":1609,"description":1610,"org":1611,"tags":1612,"stars":1499,"repoUrl":1500,"updatedAt":1625},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1613,1616,1619,1622],{"name":1614,"slug":1615,"type":15},"Cosmos DB","cosmos-db",{"name":1617,"slug":1618,"type":15},"Database","database",{"name":1620,"slug":1621,"type":15},"NoSQL","nosql",{"name":1623,"slug":1624,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1627,"name":1627,"fn":1609,"description":1628,"org":1629,"tags":1630,"stars":1499,"repoUrl":1500,"updatedAt":1638},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1631,1632,1633,1634,1635],{"name":1614,"slug":1615,"type":15},{"name":1617,"slug":1618,"type":15},{"name":9,"slug":8,"type":15},{"name":1620,"slug":1621,"type":15},{"name":1636,"slug":1637,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1640,"name":1640,"fn":1641,"description":1642,"org":1643,"tags":1644,"stars":1499,"repoUrl":1500,"updatedAt":1650},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1645,1646,1647,1648,1649],{"name":1494,"slug":1495,"type":15},{"name":1614,"slug":1615,"type":15},{"name":1617,"slug":1618,"type":15},{"name":1514,"slug":1515,"type":15},{"name":1620,"slug":1621,"type":15},"2026-05-13T06:14:17.582229",267]