[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-dot-graph-intelligence":3,"mdc-vxi0yk-key":30,"related-repo-microsoft-dot-graph-intelligence":920,"related-org-microsoft-dot-graph-intelligence":996},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":19,"repoUrl":20,"updatedAt":21,"license":22,"forks":23,"topics":24,"repo":25,"sourceUrl":28,"mdContent":29},"dot-graph-intelligence","analyze graph structures programmatically","Use when you need programmatic graph structure analysis — reachability, cycles, critical paths, and diffs without spending LLM tokens on structural questions code can answer",{"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],{"name":13,"slug":14,"type":15},"Graph Analysis","graph-analysis","tag",{"name":17,"slug":18,"type":15},"Code Analysis","code-analysis",2,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-dot-graph","2026-04-06T18:37:09.744416",null,5,[],{"repoUrl":20,"stars":19,"forks":23,"topics":26,"description":27},[],"DOT graph bundle for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-dot-graph\u002Ftree\u002FHEAD\u002Fskills\u002Fdot-graph-intelligence","---\nname: dot-graph-intelligence\ndescription: Use when you need programmatic graph structure analysis — reachability, cycles, critical paths, and diffs without spending LLM tokens on structural questions code can answer\n---\n\n# DOT Graph Intelligence\n\n## Overview\n\nStructural questions about graphs — \"is this node reachable?\", \"are there cycles?\", \"what changed?\" — are code problems, not language model problems. Graph analysis tools answer these in milliseconds with zero ambiguity. Reserve LLM reasoning for interpretation, not computation.\n\n**Core principle:** Code answers structural questions — that is code's judgment to make. LLMs interpret what the answers mean. Use the right tool for each layer.\n\n---\n\n## When to Use\n\n```dot\ndigraph when_to_use {\n    label=\"When to Use Graph Intelligence\"\n    labelloc=t\n    rankdir=TB\n    node [shape=diamond style=\"rounded,filled\" fillcolor=\"#FFF9C4\" fontname=\"Helvetica\"]\n    edge [fontname=\"Helvetica\" fontsize=10]\n\n    Q1 [label=\"Is the question\\nstructural?\\n(reachability, cycles,\\npaths, counts)\"]\n    Q2 [label=\"Does it require\\nunderstanding\\nmeaning or context?\"]\n\n    node [shape=box style=\"rounded,filled\"]\n    UseCode [label=\"Use graph analysis\\noperations\" fillcolor=\"#C8E6C9\"]\n    UseLLM  [label=\"Use LLM reasoning\\nwith graph as context\" fillcolor=\"#E8F0FE\"]\n    UseBoth [label=\"Run analysis first,\\nthen interpret results\\nwith LLM\" fillcolor=\"#FFF9C4\"]\n\n    Q1 -> UseCode [label=\"yes — pure structure\"]\n    Q1 -> Q2      [label=\"no\"]\n    Q2 -> UseLLM  [label=\"yes — meaning only\"]\n    Q2 -> UseBoth [label=\"both structure\\nand meaning\"]\n}\n```\n\n---\n\n## Operations Reference\n\n| Operation | Question It Answers | Input | Output |\n|-----------|--------------------|---------|----|\n| `reachability` | Can node A reach node B? | source node, target node | yes\u002Fno + path |\n| `unreachable` | Which nodes are isolated or stranded? | graph | list of unreachable nodes |\n| `cycles` | Are there circular dependencies? | graph | list of cycle node sequences |\n| `paths` | What are all paths between two nodes? | source, target | list of paths |\n| `critical_path` | What is the longest path (bottleneck)? | graph (DAG) | ordered node list + length |\n| `subgraph_extract` | What is the subgraph reachable from a node? | root node | subgraph DOT |\n| `diff` | What changed between two versions? | graph A, graph B | added\u002Fremoved nodes+edges |\n| `stats` | How large and dense is this graph? | graph | node count, edge count, density |\n\n---\n\n## The Analysis Loop\n\nA 7-step process for structured graph investigation:\n\n1. **Define the question** — write it as a structural query before running any tool (\"are there cycles in the dependency graph?\")\n2. **Select the operation** — match the question to the operations table above\n3. **Run the operation** — use graph analysis tooling, not manual inspection\n4. **Capture raw output** — save the result before interpreting it\n5. **Interpret with context** — bring the result to LLM reasoning with the original diagram and question\n6. **Update the diagram** — if the analysis reveals a structural issue, fix the diagram to reflect reality\n7. **Re-run to verify** — confirm the fix resolves the original query\n\n---\n\n## Interpretation Guide\n\nWhen analysis returns results, apply these patterns:\n\n**Cycles detected:**\n- In a dependency graph: circular dependency — likely a design problem\n- In a state machine: valid if expected (loop states), invalid if unexpected\n- In a data flow: data is being written back to a source it reads from — check for corruption risk\n\n**Unreachable nodes found:**\n- Dead code path — the node was never connected or was disconnected during refactoring\n- Orphaned component — a service or module with no callers\n- Forgotten placeholder — an intended node that was never wired up\n\n**High density (edges >> nodes):**\n- Everything-talks-to-everything pattern — high coupling, hard to isolate for testing\n- Missing abstraction layer — consider introducing a coordinator or message bus\n\n**Multiple disconnected components:**\n- Expected if diagram covers independent subsystems\n- Unexpected if diagram is supposed to show a single connected system — something is missing\n\n---\n\n## Code vs LLM Decision Matrix\n\n| Task | Use Code | Use LLM |\n|------|----------|---------|\n| Count nodes in a graph | ✓ | |\n| Check if path exists between two nodes | ✓ | |\n| Find all cycles | ✓ | |\n| Determine longest path | ✓ | |\n| List unreachable nodes | ✓ | |\n| Compare two graph versions (diff) | ✓ | |\n| Extract subgraph from root | ✓ | |\n| Calculate graph density | ✓ | |\n| Explain why a cycle is a design problem | | ✓ |\n| Suggest how to break a cycle | | ✓ |\n",{"data":31,"body":32},{"name":4,"description":6},{"type":33,"children":34},"root",[35,43,50,56,67,71,77,268,271,277,529,532,538,543,618,621,627,632,640,659,667,685,693,706,714,727,730,736,914],{"type":36,"tag":37,"props":38,"children":39},"element","h1",{"id":4},[40],{"type":41,"value":42},"text","DOT Graph Intelligence",{"type":36,"tag":44,"props":45,"children":47},"h2",{"id":46},"overview",[48],{"type":41,"value":49},"Overview",{"type":36,"tag":51,"props":52,"children":53},"p",{},[54],{"type":41,"value":55},"Structural questions about graphs — \"is this node reachable?\", \"are there cycles?\", \"what changed?\" — are code problems, not language model problems. Graph analysis tools answer these in milliseconds with zero ambiguity. Reserve LLM reasoning for interpretation, not computation.",{"type":36,"tag":51,"props":57,"children":58},{},[59,65],{"type":36,"tag":60,"props":61,"children":62},"strong",{},[63],{"type":41,"value":64},"Core principle:",{"type":41,"value":66}," Code answers structural questions — that is code's judgment to make. LLMs interpret what the answers mean. Use the right tool for each layer.",{"type":36,"tag":68,"props":69,"children":70},"hr",{},[],{"type":36,"tag":44,"props":72,"children":74},{"id":73},"when-to-use",[75],{"type":41,"value":76},"When to Use",{"type":36,"tag":78,"props":79,"children":84},"pre",{"className":80,"code":81,"language":82,"meta":83,"style":83},"language-dot shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","digraph when_to_use {\n    label=\"When to Use Graph Intelligence\"\n    labelloc=t\n    rankdir=TB\n    node [shape=diamond style=\"rounded,filled\" fillcolor=\"#FFF9C4\" fontname=\"Helvetica\"]\n    edge [fontname=\"Helvetica\" fontsize=10]\n\n    Q1 [label=\"Is the question\\nstructural?\\n(reachability, cycles,\\npaths, counts)\"]\n    Q2 [label=\"Does it require\\nunderstanding\\nmeaning or context?\"]\n\n    node [shape=box style=\"rounded,filled\"]\n    UseCode [label=\"Use graph analysis\\noperations\" fillcolor=\"#C8E6C9\"]\n    UseLLM  [label=\"Use LLM reasoning\\nwith graph as context\" fillcolor=\"#E8F0FE\"]\n    UseBoth [label=\"Run analysis first,\\nthen interpret results\\nwith LLM\" fillcolor=\"#FFF9C4\"]\n\n    Q1 -> UseCode [label=\"yes — pure structure\"]\n    Q1 -> Q2      [label=\"no\"]\n    Q2 -> UseLLM  [label=\"yes — meaning only\"]\n    Q2 -> UseBoth [label=\"both structure\\nand meaning\"]\n}\n","dot","",[85],{"type":36,"tag":86,"props":87,"children":88},"code",{"__ignoreMap":83},[89,100,108,117,126,134,143,153,162,171,179,188,197,206,215,223,232,241,250,259],{"type":36,"tag":90,"props":91,"children":94},"span",{"class":92,"line":93},"line",1,[95],{"type":36,"tag":90,"props":96,"children":97},{},[98],{"type":41,"value":99},"digraph when_to_use {\n",{"type":36,"tag":90,"props":101,"children":102},{"class":92,"line":19},[103],{"type":36,"tag":90,"props":104,"children":105},{},[106],{"type":41,"value":107},"    label=\"When to Use Graph Intelligence\"\n",{"type":36,"tag":90,"props":109,"children":111},{"class":92,"line":110},3,[112],{"type":36,"tag":90,"props":113,"children":114},{},[115],{"type":41,"value":116},"    labelloc=t\n",{"type":36,"tag":90,"props":118,"children":120},{"class":92,"line":119},4,[121],{"type":36,"tag":90,"props":122,"children":123},{},[124],{"type":41,"value":125},"    rankdir=TB\n",{"type":36,"tag":90,"props":127,"children":128},{"class":92,"line":23},[129],{"type":36,"tag":90,"props":130,"children":131},{},[132],{"type":41,"value":133},"    node [shape=diamond style=\"rounded,filled\" fillcolor=\"#FFF9C4\" fontname=\"Helvetica\"]\n",{"type":36,"tag":90,"props":135,"children":137},{"class":92,"line":136},6,[138],{"type":36,"tag":90,"props":139,"children":140},{},[141],{"type":41,"value":142},"    edge [fontname=\"Helvetica\" fontsize=10]\n",{"type":36,"tag":90,"props":144,"children":146},{"class":92,"line":145},7,[147],{"type":36,"tag":90,"props":148,"children":150},{"emptyLinePlaceholder":149},true,[151],{"type":41,"value":152},"\n",{"type":36,"tag":90,"props":154,"children":156},{"class":92,"line":155},8,[157],{"type":36,"tag":90,"props":158,"children":159},{},[160],{"type":41,"value":161},"    Q1 [label=\"Is the question\\nstructural?\\n(reachability, cycles,\\npaths, counts)\"]\n",{"type":36,"tag":90,"props":163,"children":165},{"class":92,"line":164},9,[166],{"type":36,"tag":90,"props":167,"children":168},{},[169],{"type":41,"value":170},"    Q2 [label=\"Does it require\\nunderstanding\\nmeaning or context?\"]\n",{"type":36,"tag":90,"props":172,"children":174},{"class":92,"line":173},10,[175],{"type":36,"tag":90,"props":176,"children":177},{"emptyLinePlaceholder":149},[178],{"type":41,"value":152},{"type":36,"tag":90,"props":180,"children":182},{"class":92,"line":181},11,[183],{"type":36,"tag":90,"props":184,"children":185},{},[186],{"type":41,"value":187},"    node [shape=box style=\"rounded,filled\"]\n",{"type":36,"tag":90,"props":189,"children":191},{"class":92,"line":190},12,[192],{"type":36,"tag":90,"props":193,"children":194},{},[195],{"type":41,"value":196},"    UseCode [label=\"Use graph analysis\\noperations\" fillcolor=\"#C8E6C9\"]\n",{"type":36,"tag":90,"props":198,"children":200},{"class":92,"line":199},13,[201],{"type":36,"tag":90,"props":202,"children":203},{},[204],{"type":41,"value":205},"    UseLLM  [label=\"Use LLM reasoning\\nwith graph as context\" fillcolor=\"#E8F0FE\"]\n",{"type":36,"tag":90,"props":207,"children":209},{"class":92,"line":208},14,[210],{"type":36,"tag":90,"props":211,"children":212},{},[213],{"type":41,"value":214},"    UseBoth [label=\"Run analysis first,\\nthen interpret results\\nwith LLM\" fillcolor=\"#FFF9C4\"]\n",{"type":36,"tag":90,"props":216,"children":218},{"class":92,"line":217},15,[219],{"type":36,"tag":90,"props":220,"children":221},{"emptyLinePlaceholder":149},[222],{"type":41,"value":152},{"type":36,"tag":90,"props":224,"children":226},{"class":92,"line":225},16,[227],{"type":36,"tag":90,"props":228,"children":229},{},[230],{"type":41,"value":231},"    Q1 -> UseCode [label=\"yes — pure structure\"]\n",{"type":36,"tag":90,"props":233,"children":235},{"class":92,"line":234},17,[236],{"type":36,"tag":90,"props":237,"children":238},{},[239],{"type":41,"value":240},"    Q1 -> Q2      [label=\"no\"]\n",{"type":36,"tag":90,"props":242,"children":244},{"class":92,"line":243},18,[245],{"type":36,"tag":90,"props":246,"children":247},{},[248],{"type":41,"value":249},"    Q2 -> UseLLM  [label=\"yes — meaning only\"]\n",{"type":36,"tag":90,"props":251,"children":253},{"class":92,"line":252},19,[254],{"type":36,"tag":90,"props":255,"children":256},{},[257],{"type":41,"value":258},"    Q2 -> UseBoth [label=\"both structure\\nand meaning\"]\n",{"type":36,"tag":90,"props":260,"children":262},{"class":92,"line":261},20,[263],{"type":36,"tag":90,"props":264,"children":265},{},[266],{"type":41,"value":267},"}\n",{"type":36,"tag":68,"props":269,"children":270},{},[],{"type":36,"tag":44,"props":272,"children":274},{"id":273},"operations-reference",[275],{"type":41,"value":276},"Operations Reference",{"type":36,"tag":278,"props":279,"children":280},"table",{},[281,310],{"type":36,"tag":282,"props":283,"children":284},"thead",{},[285],{"type":36,"tag":286,"props":287,"children":288},"tr",{},[289,295,300,305],{"type":36,"tag":290,"props":291,"children":292},"th",{},[293],{"type":41,"value":294},"Operation",{"type":36,"tag":290,"props":296,"children":297},{},[298],{"type":41,"value":299},"Question It Answers",{"type":36,"tag":290,"props":301,"children":302},{},[303],{"type":41,"value":304},"Input",{"type":36,"tag":290,"props":306,"children":307},{},[308],{"type":41,"value":309},"Output",{"type":36,"tag":311,"props":312,"children":313},"tbody",{},[314,342,369,395,422,449,476,503],{"type":36,"tag":286,"props":315,"children":316},{},[317,327,332,337],{"type":36,"tag":318,"props":319,"children":320},"td",{},[321],{"type":36,"tag":86,"props":322,"children":324},{"className":323},[],[325],{"type":41,"value":326},"reachability",{"type":36,"tag":318,"props":328,"children":329},{},[330],{"type":41,"value":331},"Can node A reach node B?",{"type":36,"tag":318,"props":333,"children":334},{},[335],{"type":41,"value":336},"source node, target node",{"type":36,"tag":318,"props":338,"children":339},{},[340],{"type":41,"value":341},"yes\u002Fno + path",{"type":36,"tag":286,"props":343,"children":344},{},[345,354,359,364],{"type":36,"tag":318,"props":346,"children":347},{},[348],{"type":36,"tag":86,"props":349,"children":351},{"className":350},[],[352],{"type":41,"value":353},"unreachable",{"type":36,"tag":318,"props":355,"children":356},{},[357],{"type":41,"value":358},"Which nodes are isolated or stranded?",{"type":36,"tag":318,"props":360,"children":361},{},[362],{"type":41,"value":363},"graph",{"type":36,"tag":318,"props":365,"children":366},{},[367],{"type":41,"value":368},"list of unreachable nodes",{"type":36,"tag":286,"props":370,"children":371},{},[372,381,386,390],{"type":36,"tag":318,"props":373,"children":374},{},[375],{"type":36,"tag":86,"props":376,"children":378},{"className":377},[],[379],{"type":41,"value":380},"cycles",{"type":36,"tag":318,"props":382,"children":383},{},[384],{"type":41,"value":385},"Are there circular dependencies?",{"type":36,"tag":318,"props":387,"children":388},{},[389],{"type":41,"value":363},{"type":36,"tag":318,"props":391,"children":392},{},[393],{"type":41,"value":394},"list of cycle node sequences",{"type":36,"tag":286,"props":396,"children":397},{},[398,407,412,417],{"type":36,"tag":318,"props":399,"children":400},{},[401],{"type":36,"tag":86,"props":402,"children":404},{"className":403},[],[405],{"type":41,"value":406},"paths",{"type":36,"tag":318,"props":408,"children":409},{},[410],{"type":41,"value":411},"What are all paths between two nodes?",{"type":36,"tag":318,"props":413,"children":414},{},[415],{"type":41,"value":416},"source, target",{"type":36,"tag":318,"props":418,"children":419},{},[420],{"type":41,"value":421},"list of paths",{"type":36,"tag":286,"props":423,"children":424},{},[425,434,439,444],{"type":36,"tag":318,"props":426,"children":427},{},[428],{"type":36,"tag":86,"props":429,"children":431},{"className":430},[],[432],{"type":41,"value":433},"critical_path",{"type":36,"tag":318,"props":435,"children":436},{},[437],{"type":41,"value":438},"What is the longest path (bottleneck)?",{"type":36,"tag":318,"props":440,"children":441},{},[442],{"type":41,"value":443},"graph (DAG)",{"type":36,"tag":318,"props":445,"children":446},{},[447],{"type":41,"value":448},"ordered node list + length",{"type":36,"tag":286,"props":450,"children":451},{},[452,461,466,471],{"type":36,"tag":318,"props":453,"children":454},{},[455],{"type":36,"tag":86,"props":456,"children":458},{"className":457},[],[459],{"type":41,"value":460},"subgraph_extract",{"type":36,"tag":318,"props":462,"children":463},{},[464],{"type":41,"value":465},"What is the subgraph reachable from a node?",{"type":36,"tag":318,"props":467,"children":468},{},[469],{"type":41,"value":470},"root node",{"type":36,"tag":318,"props":472,"children":473},{},[474],{"type":41,"value":475},"subgraph DOT",{"type":36,"tag":286,"props":477,"children":478},{},[479,488,493,498],{"type":36,"tag":318,"props":480,"children":481},{},[482],{"type":36,"tag":86,"props":483,"children":485},{"className":484},[],[486],{"type":41,"value":487},"diff",{"type":36,"tag":318,"props":489,"children":490},{},[491],{"type":41,"value":492},"What changed between two versions?",{"type":36,"tag":318,"props":494,"children":495},{},[496],{"type":41,"value":497},"graph A, graph B",{"type":36,"tag":318,"props":499,"children":500},{},[501],{"type":41,"value":502},"added\u002Fremoved nodes+edges",{"type":36,"tag":286,"props":504,"children":505},{},[506,515,520,524],{"type":36,"tag":318,"props":507,"children":508},{},[509],{"type":36,"tag":86,"props":510,"children":512},{"className":511},[],[513],{"type":41,"value":514},"stats",{"type":36,"tag":318,"props":516,"children":517},{},[518],{"type":41,"value":519},"How large and dense is this graph?",{"type":36,"tag":318,"props":521,"children":522},{},[523],{"type":41,"value":363},{"type":36,"tag":318,"props":525,"children":526},{},[527],{"type":41,"value":528},"node count, edge count, density",{"type":36,"tag":68,"props":530,"children":531},{},[],{"type":36,"tag":44,"props":533,"children":535},{"id":534},"the-analysis-loop",[536],{"type":41,"value":537},"The Analysis Loop",{"type":36,"tag":51,"props":539,"children":540},{},[541],{"type":41,"value":542},"A 7-step process for structured graph investigation:",{"type":36,"tag":544,"props":545,"children":546},"ol",{},[547,558,568,578,588,598,608],{"type":36,"tag":548,"props":549,"children":550},"li",{},[551,556],{"type":36,"tag":60,"props":552,"children":553},{},[554],{"type":41,"value":555},"Define the question",{"type":41,"value":557}," — write it as a structural query before running any tool (\"are there cycles in the dependency graph?\")",{"type":36,"tag":548,"props":559,"children":560},{},[561,566],{"type":36,"tag":60,"props":562,"children":563},{},[564],{"type":41,"value":565},"Select the operation",{"type":41,"value":567}," — match the question to the operations table above",{"type":36,"tag":548,"props":569,"children":570},{},[571,576],{"type":36,"tag":60,"props":572,"children":573},{},[574],{"type":41,"value":575},"Run the operation",{"type":41,"value":577}," — use graph analysis tooling, not manual inspection",{"type":36,"tag":548,"props":579,"children":580},{},[581,586],{"type":36,"tag":60,"props":582,"children":583},{},[584],{"type":41,"value":585},"Capture raw output",{"type":41,"value":587}," — save the result before interpreting it",{"type":36,"tag":548,"props":589,"children":590},{},[591,596],{"type":36,"tag":60,"props":592,"children":593},{},[594],{"type":41,"value":595},"Interpret with context",{"type":41,"value":597}," — bring the result to LLM reasoning with the original diagram and question",{"type":36,"tag":548,"props":599,"children":600},{},[601,606],{"type":36,"tag":60,"props":602,"children":603},{},[604],{"type":41,"value":605},"Update the diagram",{"type":41,"value":607}," — if the analysis reveals a structural issue, fix the diagram to reflect reality",{"type":36,"tag":548,"props":609,"children":610},{},[611,616],{"type":36,"tag":60,"props":612,"children":613},{},[614],{"type":41,"value":615},"Re-run to verify",{"type":41,"value":617}," — confirm the fix resolves the original query",{"type":36,"tag":68,"props":619,"children":620},{},[],{"type":36,"tag":44,"props":622,"children":624},{"id":623},"interpretation-guide",[625],{"type":41,"value":626},"Interpretation Guide",{"type":36,"tag":51,"props":628,"children":629},{},[630],{"type":41,"value":631},"When analysis returns results, apply these patterns:",{"type":36,"tag":51,"props":633,"children":634},{},[635],{"type":36,"tag":60,"props":636,"children":637},{},[638],{"type":41,"value":639},"Cycles detected:",{"type":36,"tag":641,"props":642,"children":643},"ul",{},[644,649,654],{"type":36,"tag":548,"props":645,"children":646},{},[647],{"type":41,"value":648},"In a dependency graph: circular dependency — likely a design problem",{"type":36,"tag":548,"props":650,"children":651},{},[652],{"type":41,"value":653},"In a state machine: valid if expected (loop states), invalid if unexpected",{"type":36,"tag":548,"props":655,"children":656},{},[657],{"type":41,"value":658},"In a data flow: data is being written back to a source it reads from — check for corruption risk",{"type":36,"tag":51,"props":660,"children":661},{},[662],{"type":36,"tag":60,"props":663,"children":664},{},[665],{"type":41,"value":666},"Unreachable nodes found:",{"type":36,"tag":641,"props":668,"children":669},{},[670,675,680],{"type":36,"tag":548,"props":671,"children":672},{},[673],{"type":41,"value":674},"Dead code path — the node was never connected or was disconnected during refactoring",{"type":36,"tag":548,"props":676,"children":677},{},[678],{"type":41,"value":679},"Orphaned component — a service or module with no callers",{"type":36,"tag":548,"props":681,"children":682},{},[683],{"type":41,"value":684},"Forgotten placeholder — an intended node that was never wired up",{"type":36,"tag":51,"props":686,"children":687},{},[688],{"type":36,"tag":60,"props":689,"children":690},{},[691],{"type":41,"value":692},"High density (edges >> nodes):",{"type":36,"tag":641,"props":694,"children":695},{},[696,701],{"type":36,"tag":548,"props":697,"children":698},{},[699],{"type":41,"value":700},"Everything-talks-to-everything pattern — high coupling, hard to isolate for testing",{"type":36,"tag":548,"props":702,"children":703},{},[704],{"type":41,"value":705},"Missing abstraction layer — consider introducing a coordinator or message bus",{"type":36,"tag":51,"props":707,"children":708},{},[709],{"type":36,"tag":60,"props":710,"children":711},{},[712],{"type":41,"value":713},"Multiple disconnected components:",{"type":36,"tag":641,"props":715,"children":716},{},[717,722],{"type":36,"tag":548,"props":718,"children":719},{},[720],{"type":41,"value":721},"Expected if diagram covers independent subsystems",{"type":36,"tag":548,"props":723,"children":724},{},[725],{"type":41,"value":726},"Unexpected if diagram is supposed to show a single connected system — something is missing",{"type":36,"tag":68,"props":728,"children":729},{},[],{"type":36,"tag":44,"props":731,"children":733},{"id":732},"code-vs-llm-decision-matrix",[734],{"type":41,"value":735},"Code vs LLM Decision Matrix",{"type":36,"tag":278,"props":737,"children":738},{},[739,760],{"type":36,"tag":282,"props":740,"children":741},{},[742],{"type":36,"tag":286,"props":743,"children":744},{},[745,750,755],{"type":36,"tag":290,"props":746,"children":747},{},[748],{"type":41,"value":749},"Task",{"type":36,"tag":290,"props":751,"children":752},{},[753],{"type":41,"value":754},"Use Code",{"type":36,"tag":290,"props":756,"children":757},{},[758],{"type":41,"value":759},"Use LLM",{"type":36,"tag":311,"props":761,"children":762},{},[763,779,794,809,824,839,854,869,884,899],{"type":36,"tag":286,"props":764,"children":765},{},[766,771,776],{"type":36,"tag":318,"props":767,"children":768},{},[769],{"type":41,"value":770},"Count nodes in a graph",{"type":36,"tag":318,"props":772,"children":773},{},[774],{"type":41,"value":775},"✓",{"type":36,"tag":318,"props":777,"children":778},{},[],{"type":36,"tag":286,"props":780,"children":781},{},[782,787,791],{"type":36,"tag":318,"props":783,"children":784},{},[785],{"type":41,"value":786},"Check if path exists between two nodes",{"type":36,"tag":318,"props":788,"children":789},{},[790],{"type":41,"value":775},{"type":36,"tag":318,"props":792,"children":793},{},[],{"type":36,"tag":286,"props":795,"children":796},{},[797,802,806],{"type":36,"tag":318,"props":798,"children":799},{},[800],{"type":41,"value":801},"Find all cycles",{"type":36,"tag":318,"props":803,"children":804},{},[805],{"type":41,"value":775},{"type":36,"tag":318,"props":807,"children":808},{},[],{"type":36,"tag":286,"props":810,"children":811},{},[812,817,821],{"type":36,"tag":318,"props":813,"children":814},{},[815],{"type":41,"value":816},"Determine longest path",{"type":36,"tag":318,"props":818,"children":819},{},[820],{"type":41,"value":775},{"type":36,"tag":318,"props":822,"children":823},{},[],{"type":36,"tag":286,"props":825,"children":826},{},[827,832,836],{"type":36,"tag":318,"props":828,"children":829},{},[830],{"type":41,"value":831},"List unreachable nodes",{"type":36,"tag":318,"props":833,"children":834},{},[835],{"type":41,"value":775},{"type":36,"tag":318,"props":837,"children":838},{},[],{"type":36,"tag":286,"props":840,"children":841},{},[842,847,851],{"type":36,"tag":318,"props":843,"children":844},{},[845],{"type":41,"value":846},"Compare two graph versions (diff)",{"type":36,"tag":318,"props":848,"children":849},{},[850],{"type":41,"value":775},{"type":36,"tag":318,"props":852,"children":853},{},[],{"type":36,"tag":286,"props":855,"children":856},{},[857,862,866],{"type":36,"tag":318,"props":858,"children":859},{},[860],{"type":41,"value":861},"Extract subgraph from root",{"type":36,"tag":318,"props":863,"children":864},{},[865],{"type":41,"value":775},{"type":36,"tag":318,"props":867,"children":868},{},[],{"type":36,"tag":286,"props":870,"children":871},{},[872,877,881],{"type":36,"tag":318,"props":873,"children":874},{},[875],{"type":41,"value":876},"Calculate graph density",{"type":36,"tag":318,"props":878,"children":879},{},[880],{"type":41,"value":775},{"type":36,"tag":318,"props":882,"children":883},{},[],{"type":36,"tag":286,"props":885,"children":886},{},[887,892,895],{"type":36,"tag":318,"props":888,"children":889},{},[890],{"type":41,"value":891},"Explain why a cycle is a design problem",{"type":36,"tag":318,"props":893,"children":894},{},[],{"type":36,"tag":318,"props":896,"children":897},{},[898],{"type":41,"value":775},{"type":36,"tag":286,"props":900,"children":901},{},[902,907,910],{"type":36,"tag":318,"props":903,"children":904},{},[905],{"type":41,"value":906},"Suggest how to break a cycle",{"type":36,"tag":318,"props":908,"children":909},{},[],{"type":36,"tag":318,"props":911,"children":912},{},[913],{"type":41,"value":775},{"type":36,"tag":915,"props":916,"children":917},"style",{},[918],{"type":41,"value":919},"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":921,"total":136},[922,937,942,955,971,982],{"slug":923,"name":923,"fn":924,"description":925,"org":926,"tags":927,"stars":19,"repoUrl":20,"updatedAt":936},"dot-as-analysis","analyze systems by reconciling DOT diagrams","Use when analyzing a system to surface hidden issues — draw what you believe exists, then reconcile against what actually exists",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[928,929,932,935],{"name":17,"slug":18,"type":15},{"name":930,"slug":931,"type":15},"Diagrams","diagrams",{"name":933,"slug":934,"type":15},"Graphviz","graphviz",{"name":9,"slug":8,"type":15},"2026-04-06T18:37:07.174813",{"slug":4,"name":4,"fn":5,"description":6,"org":938,"tags":939,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[940,941],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":943,"name":943,"fn":944,"description":945,"org":946,"tags":947,"stars":19,"repoUrl":20,"updatedAt":954},"dot-patterns","provide DOT templates for common diagrams","Use when you need copy-paste DOT templates for common diagram types — start from a working pattern rather than blank canvas",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[948,949,952,953],{"name":930,"slug":931,"type":15},{"name":950,"slug":951,"type":15},"Documentation","documentation",{"name":933,"slug":934,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:37:04.633419",{"slug":956,"name":956,"fn":957,"description":958,"org":959,"tags":960,"stars":19,"repoUrl":20,"updatedAt":970},"dot-quality","enforce quality standards on DOT diagrams","Use when enforcing quality standards on DOT diagrams — checking completeness, structure, and visual clarity before sharing or committing",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[961,962,963,964,967],{"name":930,"slug":931,"type":15},{"name":950,"slug":951,"type":15},{"name":933,"slug":934,"type":15},{"name":965,"slug":966,"type":15},"QA","qa",{"name":968,"slug":969,"type":15},"Visual Design","visual-design","2026-04-06T18:37:03.368919",{"slug":972,"name":972,"fn":973,"description":974,"org":975,"tags":976,"stars":19,"repoUrl":20,"updatedAt":981},"dot-syntax","provide DOT and Graphviz syntax reference","Use when writing or reading DOT\u002FGraphviz code and needing quick syntax reference — node declarations, edge syntax, attributes, subgraphs, HTML labels, and common gotchas",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[977,978,979,980],{"name":930,"slug":931,"type":15},{"name":950,"slug":951,"type":15},{"name":933,"slug":934,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:37:05.896668",{"slug":983,"name":983,"fn":984,"description":985,"org":986,"tags":987,"stars":19,"repoUrl":20,"updatedAt":995},"parallax-investigation","investigate complex systems with multi-agent analysis","Use when you need true understanding of a complex system — not a quick answer. Parallax Discovery is a multi-agent, multi-pass investigation methodology that combines three perspectives (code tracing, behavior observation, integration mapping) to produce verified, evidence-backed findings.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[988,989,992],{"name":17,"slug":18,"type":15},{"name":990,"slug":991,"type":15},"Debugging","debugging",{"name":993,"slug":994,"type":15},"Multi-Agent","multi-agent","2026-04-06T18:37:08.486158",{"items":997,"total":1192},[998,1020,1041,1062,1077,1094,1105,1118,1133,1148,1167,1180],{"slug":999,"name":999,"fn":1000,"description":1001,"org":1002,"tags":1003,"stars":1017,"repoUrl":1018,"updatedAt":1019},"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},[1004,1007,1010,1011,1014],{"name":1005,"slug":1006,"type":15},"Engineering","engineering",{"name":1008,"slug":1009,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1012,"slug":1013,"type":15},"Project Management","project-management",{"name":1015,"slug":1016,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1021,"name":1021,"fn":1022,"description":1023,"org":1024,"tags":1025,"stars":1038,"repoUrl":1039,"updatedAt":1040},"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},[1026,1029,1032,1035],{"name":1027,"slug":1028,"type":15},".NET","net",{"name":1030,"slug":1031,"type":15},"Agents","agents",{"name":1033,"slug":1034,"type":15},"Azure","azure",{"name":1036,"slug":1037,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1042,"name":1042,"fn":1043,"description":1044,"org":1045,"tags":1046,"stars":1038,"repoUrl":1039,"updatedAt":1061},"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},[1047,1050,1051,1054,1057,1058],{"name":1048,"slug":1049,"type":15},"Analytics","analytics",{"name":1033,"slug":1034,"type":15},{"name":1052,"slug":1053,"type":15},"Data Analysis","data-analysis",{"name":1055,"slug":1056,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1059,"slug":1060,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1063,"name":1063,"fn":1064,"description":1065,"org":1066,"tags":1067,"stars":1038,"repoUrl":1039,"updatedAt":1076},"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},[1068,1071,1072,1073],{"name":1069,"slug":1070,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1033,"slug":1034,"type":15},{"name":1055,"slug":1056,"type":15},{"name":1074,"slug":1075,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1078,"name":1078,"fn":1079,"description":1080,"org":1081,"tags":1082,"stars":1038,"repoUrl":1039,"updatedAt":1093},"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},[1083,1084,1087,1088,1089,1092],{"name":1033,"slug":1034,"type":15},{"name":1085,"slug":1086,"type":15},"Compliance","compliance",{"name":1036,"slug":1037,"type":15},{"name":9,"slug":8,"type":15},{"name":1090,"slug":1091,"type":15},"Python","python",{"name":1074,"slug":1075,"type":15},"2026-07-18T05:14:23.017504",{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1098,"tags":1099,"stars":1038,"repoUrl":1039,"updatedAt":1104},"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},[1100,1101,1102,1103],{"name":1048,"slug":1049,"type":15},{"name":1033,"slug":1034,"type":15},{"name":1036,"slug":1037,"type":15},{"name":1090,"slug":1091,"type":15},"2026-07-31T05:54:29.068751",{"slug":1106,"name":1106,"fn":1107,"description":1108,"org":1109,"tags":1110,"stars":1038,"repoUrl":1039,"updatedAt":1117},"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},[1111,1114,1115,1116],{"name":1112,"slug":1113,"type":15},"API Development","api-development",{"name":1033,"slug":1034,"type":15},{"name":9,"slug":8,"type":15},{"name":1090,"slug":1091,"type":15},"2026-07-18T05:14:16.988376",{"slug":1119,"name":1119,"fn":1120,"description":1121,"org":1122,"tags":1123,"stars":1038,"repoUrl":1039,"updatedAt":1132},"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},[1124,1125,1128,1131],{"name":1033,"slug":1034,"type":15},{"name":1126,"slug":1127,"type":15},"Computer Vision","computer-vision",{"name":1129,"slug":1130,"type":15},"Images","images",{"name":1090,"slug":1091,"type":15},"2026-07-18T05:14:18.007737",{"slug":1134,"name":1134,"fn":1135,"description":1136,"org":1137,"tags":1138,"stars":1038,"repoUrl":1039,"updatedAt":1147},"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},[1139,1140,1143,1146],{"name":1033,"slug":1034,"type":15},{"name":1141,"slug":1142,"type":15},"Configuration","configuration",{"name":1144,"slug":1145,"type":15},"Feature Flags","feature-flags",{"name":1055,"slug":1056,"type":15},"2026-07-03T16:32:01.278468",{"slug":1149,"name":1149,"fn":1150,"description":1151,"org":1152,"tags":1153,"stars":1038,"repoUrl":1039,"updatedAt":1166},"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},[1154,1157,1160,1163],{"name":1155,"slug":1156,"type":15},"Cosmos DB","cosmos-db",{"name":1158,"slug":1159,"type":15},"Database","database",{"name":1161,"slug":1162,"type":15},"NoSQL","nosql",{"name":1164,"slug":1165,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1168,"name":1168,"fn":1150,"description":1169,"org":1170,"tags":1171,"stars":1038,"repoUrl":1039,"updatedAt":1179},"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},[1172,1173,1174,1175,1176],{"name":1155,"slug":1156,"type":15},{"name":1158,"slug":1159,"type":15},{"name":9,"slug":8,"type":15},{"name":1161,"slug":1162,"type":15},{"name":1177,"slug":1178,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1181,"name":1181,"fn":1182,"description":1183,"org":1184,"tags":1185,"stars":1038,"repoUrl":1039,"updatedAt":1191},"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},[1186,1187,1188,1189,1190],{"name":1033,"slug":1034,"type":15},{"name":1155,"slug":1156,"type":15},{"name":1158,"slug":1159,"type":15},{"name":1055,"slug":1056,"type":15},{"name":1161,"slug":1162,"type":15},"2026-05-13T06:14:17.582229",267]