[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-bundle-to-dot":3,"mdc--xlbpt2-key":30,"related-repo-microsoft-bundle-to-dot":1599,"related-org-microsoft-bundle-to-dot":1619},{"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},"bundle-to-dot","generate bundle.dot repo documentation","Convention for the v3 bundle documentation system: a single bundle.dot + bundle.png per repo, generated by bundle_repo_dot(). Use when generating, validating, or interpreting bundle documentation files. Covers 7-cluster DOT structure, token cost model, color conventions, external reference distinction, freshness tracking via source_hash, generation recipes, and the lifecycle model.",{"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},"Documentation","documentation","tag",{"name":17,"slug":18,"type":15},"Code Analysis","code-analysis",16,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-foundation","2026-04-06T18:37:45.463328",null,17,[],{"repoUrl":20,"stars":19,"forks":23,"topics":26,"description":27},[],"Foundation library for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-foundation\u002Ftree\u002FHEAD\u002Fskills\u002Fbundle-to-dot","---\nname: bundle-to-dot\ndescription: \"Convention for the v3 bundle documentation system: a single bundle.dot + bundle.png per repo, generated by bundle_repo_dot(). Use when generating, validating, or interpreting bundle documentation files. Covers 7-cluster DOT structure, token cost model, color conventions, external reference distinction, freshness tracking via source_hash, generation recipes, and the lifecycle model.\"\nversion: 3.0.0\n---\n\n# Bundle Documentation Convention (v3)\n\n## Overview\n\nThe v3 bundle documentation system produces a single DOT diagram per repository:\n\n| Output | What it is | Location |\n|--------|-----------|----------|\n| `bundle.dot` | Full 7-cluster structural diagram of the entire repo | Repo root |\n| `bundle.png` | Rendered PNG of the diagram | Repo root |\n\nBoth files embed a `source_hash` for freshness tracking. The diagram is\ngenerated by calling `bundle_repo_dot(repo_root)` from `amplifier_foundation.bundle_docs`.\n\n---\n\n## What the DOT Shows\n\nThe `bundle.dot` diagram maps the entire repository into **7 cluster subgraphs**:\n\n| Cluster | Directory | What it contains |\n|---------|-----------|-----------------|\n| **Behaviors** | `behaviors\u002F` | Reusable capability packages (thin bundles) |\n| **Standalones** | `bundles\u002F` | Self-contained session bundles |\n| **Agents** | `agents\u002F` | Agent `.md` files with frontmatter |\n| **Modules** | tools\u002Fmodules | Tool and module declarations |\n| **Providers** | `providers\u002F` | Provider configurations |\n| **Experiments** | `experiments\u002F` | Experimental bundles (exp-* naming) |\n| **Context Files** | `context\u002F` | Shared context files |\n\nThe root bundle node is rendered at the center with edges to the clusters that\nit composes. External references (bundles from other repos) appear with\nvisual distinction (see **External References** below).\n\n---\n\n## Token Cost Model\n\nThe structural DOT encodes the **token cost** of each component:\n\n| Component | Cost source |\n|-----------|------------|\n| Tool\u002Fmodule | Tool schema token count (estimated from schema YAML) |\n| Agent | `meta.description` token count + body |\n| Context file | Full file content token count (recursive @mention expansion) |\n| Bundle instruction | Markdown body token count |\n\nEdges in the DOT reflect composition relationships. Heavier nodes (high token\ncount) appear in more prominent visual styles. The summary node at the bottom\nof each diagram shows total estimated token cost for the composition.\n\n---\n\n## Visual Conventions\n\n### Node Colors (actual code constants from `bundle_to_dot.py`)\n\n| Element | Fill color | Hex | Notes |\n|---------|-----------|-----|-------|\n| Root bundle | teal\u002Fmint | `#80cbc4` | `bundle.md` at repo root |\n| Behavior | light teal | `#e0f2f1` | Entries in `behaviors\u002F` |\n| Standalone | teal\u002Fmint | `#80cbc4` | Entries in `bundles\u002F` (same as root) |\n| Agent | light green | `#c8e6c9` | Agent `.md` files |\n| Module\u002Ftool | light blue | `#bbdefb` | Tool\u002Fmodule declarations |\n| Provider | light grey | `#e0e0e0` | Provider configurations |\n| Experiment | light purple | `#e1bee7` | Entries in `experiments\u002F` |\n| Context file | light purple | `#e1bee7` | Context `.md` files |\n| Cluster fill | near white | `#f9f9f9` | Subgraph background |\n| Summary node | blue-grey | `#eceff1` | Cost summary footer node |\n\n### External References\n\nExternal bundles (referenced by URI, not local to the repo) are visually\ndistinct from local nodes:\n\n| Edge style | Meaning |\n|------------|---------|\n| **Solid** | Local reference — included in token cost count |\n| **Dashed + red border** | External with hidden cost (`_COLOR_EXTERNAL_COST = \"red\"`) — the external bundle contributes tokens at runtime but is NOT counted in the local total |\n| **Dashed + muted fill** (`#f5f5f5`) | External with no additional cost — referenced externally but costs are borne elsewhere |\n\nThe legend node embedded in the DOT explains these conventions inline.\n\n### LLM Enhancement\n\nBy default, the `generate-bundle-docs` recipe sends the structural DOT to\n`foundation:zen-architect` for **label enhancement**: node labels are rewritten\nwith concise, accessible English summaries rather than raw filenames.\n\nTo skip LLM enhancement (structural-only, faster):\n\n```yaml\n# In recipe context\nenhance_diagrams: \"false\"\n```\n\nRules for the LLM enhancement step:\n- Keep ALL structural elements unchanged (node IDs, edges, shapes, colors, clusters)\n- ONLY rewrite `label=\"...\"` values on nodes and clusters, plus the graph title\n- Keep the `source_hash=\"...\"` graph attribute exactly as-is\n- Labels must be ≤2-3 lines; use `\\n` for line breaks\n\n---\n\n## Freshness Model\n\n`bundle.dot` embeds `source_hash=\"\u003Chash>\"` as a graph attribute. The hash is\nderived from all repository entry points combined (all bundle, behavior, agent,\ntool, context, and hook files). If any of these change, the hash changes and\n`bundle.dot` is considered stale.\n\n### Findings\n\n| Code | Severity | Meaning |\n|------|----------|---------| \n| `BUNDLE_DOT_MISSING` | SUGGESTION | No `bundle.dot` found at repo root |\n| `BUNDLE_DOT_STALE` | WARNING | `bundle.dot` source_hash doesn't match current repo state |\n\n---\n\n## Generation\n\n### Direct (bulk generation)\n\n```\ngenerate-bundle-docs\n```\n\nCalls `bundle_repo_dot(repo_path)`, checks freshness via `source_hash`, writes\n`bundle.dot` (optionally LLM-enhanced) and renders `bundle.png` at the repo root.\n\n### Via validation (automatic)\n\n`validate-bundle-repo` auto-regenerates a stale or missing `bundle.dot` as a\nside effect of validation:\n\n```\nvalidate-bundle-repo → detects missing\u002Fstale → regenerates bundle.dot + bundle.png\n```\n\n---\n\n## Lifecycle: When to Regenerate\n\nRegenerate when any of the following change in the repository:\n\n- `bundle.md` \u002F `bundle.yaml` at repo root\n- Any file in `behaviors\u002F` (behavior bundles)\n- Any file in `bundles\u002F` (standalone bundles)\n- Any file in `agents\u002F` (agent definitions)\n- Any file in `context\u002F` (context files)\n- Any tool\u002Fmodule declaration\n- Any hook definition\n- Any file in `providers\u002F`, `experiments\u002F`\n\n**Tip:** If unsure, run `validate-bundle-repo` — it checks hashes and\nregenerates only if stale.\n\n---\n\n## API Reference\n\n```python\nfrom amplifier_foundation.bundle_docs import bundle_repo_dot\n\ndot_content = bundle_repo_dot(repo_root)  # returns DOT string with source_hash\n```\n\nThe function is the sole public entry point. It takes a `str | Path` pointing\nto the repository root and returns a complete DOT graph string.\n\n---\n\n## Checklist\n\nBefore committing a bundle or behavior change:\n\n- [ ] `bundle.dot` exists at repo root\n- [ ] `source_hash` in `bundle.dot` matches current repo state (or run `generate-bundle-docs`)\n- [ ] `bundle.png` exists and is fresh\n",{"data":31,"body":33},{"name":4,"description":6,"version":32},"3.0.0",{"type":34,"children":35},"root",[36,45,52,58,135,164,168,174,194,400,412,415,421,433,513,518,521,527,542,870,875,880,967,972,978,1006,1011,1065,1070,1119,1122,1128,1153,1159,1241,1244,1250,1256,1266,1300,1306,1324,1333,1336,1342,1347,1438,1455,1458,1464,1499,1512,1515,1521,1526,1593],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"bundle-documentation-convention-v3",[42],{"type":43,"value":44},"text","Bundle Documentation Convention (v3)",{"type":37,"tag":46,"props":47,"children":49},"h2",{"id":48},"overview",[50],{"type":43,"value":51},"Overview",{"type":37,"tag":53,"props":54,"children":55},"p",{},[56],{"type":43,"value":57},"The v3 bundle documentation system produces a single DOT diagram per repository:",{"type":37,"tag":59,"props":60,"children":61},"table",{},[62,86],{"type":37,"tag":63,"props":64,"children":65},"thead",{},[66],{"type":37,"tag":67,"props":68,"children":69},"tr",{},[70,76,81],{"type":37,"tag":71,"props":72,"children":73},"th",{},[74],{"type":43,"value":75},"Output",{"type":37,"tag":71,"props":77,"children":78},{},[79],{"type":43,"value":80},"What it is",{"type":37,"tag":71,"props":82,"children":83},{},[84],{"type":43,"value":85},"Location",{"type":37,"tag":87,"props":88,"children":89},"tbody",{},[90,114],{"type":37,"tag":67,"props":91,"children":92},{},[93,104,109],{"type":37,"tag":94,"props":95,"children":96},"td",{},[97],{"type":37,"tag":98,"props":99,"children":101},"code",{"className":100},[],[102],{"type":43,"value":103},"bundle.dot",{"type":37,"tag":94,"props":105,"children":106},{},[107],{"type":43,"value":108},"Full 7-cluster structural diagram of the entire repo",{"type":37,"tag":94,"props":110,"children":111},{},[112],{"type":43,"value":113},"Repo root",{"type":37,"tag":67,"props":115,"children":116},{},[117,126,131],{"type":37,"tag":94,"props":118,"children":119},{},[120],{"type":37,"tag":98,"props":121,"children":123},{"className":122},[],[124],{"type":43,"value":125},"bundle.png",{"type":37,"tag":94,"props":127,"children":128},{},[129],{"type":43,"value":130},"Rendered PNG of the diagram",{"type":37,"tag":94,"props":132,"children":133},{},[134],{"type":43,"value":113},{"type":37,"tag":53,"props":136,"children":137},{},[138,140,146,148,154,156,162],{"type":43,"value":139},"Both files embed a ",{"type":37,"tag":98,"props":141,"children":143},{"className":142},[],[144],{"type":43,"value":145},"source_hash",{"type":43,"value":147}," for freshness tracking. The diagram is\ngenerated by calling ",{"type":37,"tag":98,"props":149,"children":151},{"className":150},[],[152],{"type":43,"value":153},"bundle_repo_dot(repo_root)",{"type":43,"value":155}," from ",{"type":37,"tag":98,"props":157,"children":159},{"className":158},[],[160],{"type":43,"value":161},"amplifier_foundation.bundle_docs",{"type":43,"value":163},".",{"type":37,"tag":165,"props":166,"children":167},"hr",{},[],{"type":37,"tag":46,"props":169,"children":171},{"id":170},"what-the-dot-shows",[172],{"type":43,"value":173},"What the DOT Shows",{"type":37,"tag":53,"props":175,"children":176},{},[177,179,184,186,192],{"type":43,"value":178},"The ",{"type":37,"tag":98,"props":180,"children":182},{"className":181},[],[183],{"type":43,"value":103},{"type":43,"value":185}," diagram maps the entire repository into ",{"type":37,"tag":187,"props":188,"children":189},"strong",{},[190],{"type":43,"value":191},"7 cluster subgraphs",{"type":43,"value":193},":",{"type":37,"tag":59,"props":195,"children":196},{},[197,218],{"type":37,"tag":63,"props":198,"children":199},{},[200],{"type":37,"tag":67,"props":201,"children":202},{},[203,208,213],{"type":37,"tag":71,"props":204,"children":205},{},[206],{"type":43,"value":207},"Cluster",{"type":37,"tag":71,"props":209,"children":210},{},[211],{"type":43,"value":212},"Directory",{"type":37,"tag":71,"props":214,"children":215},{},[216],{"type":43,"value":217},"What it contains",{"type":37,"tag":87,"props":219,"children":220},{},[221,246,271,304,325,350,375],{"type":37,"tag":67,"props":222,"children":223},{},[224,232,241],{"type":37,"tag":94,"props":225,"children":226},{},[227],{"type":37,"tag":187,"props":228,"children":229},{},[230],{"type":43,"value":231},"Behaviors",{"type":37,"tag":94,"props":233,"children":234},{},[235],{"type":37,"tag":98,"props":236,"children":238},{"className":237},[],[239],{"type":43,"value":240},"behaviors\u002F",{"type":37,"tag":94,"props":242,"children":243},{},[244],{"type":43,"value":245},"Reusable capability packages (thin bundles)",{"type":37,"tag":67,"props":247,"children":248},{},[249,257,266],{"type":37,"tag":94,"props":250,"children":251},{},[252],{"type":37,"tag":187,"props":253,"children":254},{},[255],{"type":43,"value":256},"Standalones",{"type":37,"tag":94,"props":258,"children":259},{},[260],{"type":37,"tag":98,"props":261,"children":263},{"className":262},[],[264],{"type":43,"value":265},"bundles\u002F",{"type":37,"tag":94,"props":267,"children":268},{},[269],{"type":43,"value":270},"Self-contained session bundles",{"type":37,"tag":67,"props":272,"children":273},{},[274,282,291],{"type":37,"tag":94,"props":275,"children":276},{},[277],{"type":37,"tag":187,"props":278,"children":279},{},[280],{"type":43,"value":281},"Agents",{"type":37,"tag":94,"props":283,"children":284},{},[285],{"type":37,"tag":98,"props":286,"children":288},{"className":287},[],[289],{"type":43,"value":290},"agents\u002F",{"type":37,"tag":94,"props":292,"children":293},{},[294,296,302],{"type":43,"value":295},"Agent ",{"type":37,"tag":98,"props":297,"children":299},{"className":298},[],[300],{"type":43,"value":301},".md",{"type":43,"value":303}," files with frontmatter",{"type":37,"tag":67,"props":305,"children":306},{},[307,315,320],{"type":37,"tag":94,"props":308,"children":309},{},[310],{"type":37,"tag":187,"props":311,"children":312},{},[313],{"type":43,"value":314},"Modules",{"type":37,"tag":94,"props":316,"children":317},{},[318],{"type":43,"value":319},"tools\u002Fmodules",{"type":37,"tag":94,"props":321,"children":322},{},[323],{"type":43,"value":324},"Tool and module declarations",{"type":37,"tag":67,"props":326,"children":327},{},[328,336,345],{"type":37,"tag":94,"props":329,"children":330},{},[331],{"type":37,"tag":187,"props":332,"children":333},{},[334],{"type":43,"value":335},"Providers",{"type":37,"tag":94,"props":337,"children":338},{},[339],{"type":37,"tag":98,"props":340,"children":342},{"className":341},[],[343],{"type":43,"value":344},"providers\u002F",{"type":37,"tag":94,"props":346,"children":347},{},[348],{"type":43,"value":349},"Provider configurations",{"type":37,"tag":67,"props":351,"children":352},{},[353,361,370],{"type":37,"tag":94,"props":354,"children":355},{},[356],{"type":37,"tag":187,"props":357,"children":358},{},[359],{"type":43,"value":360},"Experiments",{"type":37,"tag":94,"props":362,"children":363},{},[364],{"type":37,"tag":98,"props":365,"children":367},{"className":366},[],[368],{"type":43,"value":369},"experiments\u002F",{"type":37,"tag":94,"props":371,"children":372},{},[373],{"type":43,"value":374},"Experimental bundles (exp-* naming)",{"type":37,"tag":67,"props":376,"children":377},{},[378,386,395],{"type":37,"tag":94,"props":379,"children":380},{},[381],{"type":37,"tag":187,"props":382,"children":383},{},[384],{"type":43,"value":385},"Context Files",{"type":37,"tag":94,"props":387,"children":388},{},[389],{"type":37,"tag":98,"props":390,"children":392},{"className":391},[],[393],{"type":43,"value":394},"context\u002F",{"type":37,"tag":94,"props":396,"children":397},{},[398],{"type":43,"value":399},"Shared context files",{"type":37,"tag":53,"props":401,"children":402},{},[403,405,410],{"type":43,"value":404},"The root bundle node is rendered at the center with edges to the clusters that\nit composes. External references (bundles from other repos) appear with\nvisual distinction (see ",{"type":37,"tag":187,"props":406,"children":407},{},[408],{"type":43,"value":409},"External References",{"type":43,"value":411}," below).",{"type":37,"tag":165,"props":413,"children":414},{},[],{"type":37,"tag":46,"props":416,"children":418},{"id":417},"token-cost-model",[419],{"type":43,"value":420},"Token Cost Model",{"type":37,"tag":53,"props":422,"children":423},{},[424,426,431],{"type":43,"value":425},"The structural DOT encodes the ",{"type":37,"tag":187,"props":427,"children":428},{},[429],{"type":43,"value":430},"token cost",{"type":43,"value":432}," of each component:",{"type":37,"tag":59,"props":434,"children":435},{},[436,452],{"type":37,"tag":63,"props":437,"children":438},{},[439],{"type":37,"tag":67,"props":440,"children":441},{},[442,447],{"type":37,"tag":71,"props":443,"children":444},{},[445],{"type":43,"value":446},"Component",{"type":37,"tag":71,"props":448,"children":449},{},[450],{"type":43,"value":451},"Cost source",{"type":37,"tag":87,"props":453,"children":454},{},[455,468,487,500],{"type":37,"tag":67,"props":456,"children":457},{},[458,463],{"type":37,"tag":94,"props":459,"children":460},{},[461],{"type":43,"value":462},"Tool\u002Fmodule",{"type":37,"tag":94,"props":464,"children":465},{},[466],{"type":43,"value":467},"Tool schema token count (estimated from schema YAML)",{"type":37,"tag":67,"props":469,"children":470},{},[471,476],{"type":37,"tag":94,"props":472,"children":473},{},[474],{"type":43,"value":475},"Agent",{"type":37,"tag":94,"props":477,"children":478},{},[479,485],{"type":37,"tag":98,"props":480,"children":482},{"className":481},[],[483],{"type":43,"value":484},"meta.description",{"type":43,"value":486}," token count + body",{"type":37,"tag":67,"props":488,"children":489},{},[490,495],{"type":37,"tag":94,"props":491,"children":492},{},[493],{"type":43,"value":494},"Context file",{"type":37,"tag":94,"props":496,"children":497},{},[498],{"type":43,"value":499},"Full file content token count (recursive @mention expansion)",{"type":37,"tag":67,"props":501,"children":502},{},[503,508],{"type":37,"tag":94,"props":504,"children":505},{},[506],{"type":43,"value":507},"Bundle instruction",{"type":37,"tag":94,"props":509,"children":510},{},[511],{"type":43,"value":512},"Markdown body token count",{"type":37,"tag":53,"props":514,"children":515},{},[516],{"type":43,"value":517},"Edges in the DOT reflect composition relationships. Heavier nodes (high token\ncount) appear in more prominent visual styles. The summary node at the bottom\nof each diagram shows total estimated token cost for the composition.",{"type":37,"tag":165,"props":519,"children":520},{},[],{"type":37,"tag":46,"props":522,"children":524},{"id":523},"visual-conventions",[525],{"type":43,"value":526},"Visual Conventions",{"type":37,"tag":528,"props":529,"children":531},"h3",{"id":530},"node-colors-actual-code-constants-from-bundle_to_dotpy",[532,534,540],{"type":43,"value":533},"Node Colors (actual code constants from ",{"type":37,"tag":98,"props":535,"children":537},{"className":536},[],[538],{"type":43,"value":539},"bundle_to_dot.py",{"type":43,"value":541},")",{"type":37,"tag":59,"props":543,"children":544},{},[545,571],{"type":37,"tag":63,"props":546,"children":547},{},[548],{"type":37,"tag":67,"props":549,"children":550},{},[551,556,561,566],{"type":37,"tag":71,"props":552,"children":553},{},[554],{"type":43,"value":555},"Element",{"type":37,"tag":71,"props":557,"children":558},{},[559],{"type":43,"value":560},"Fill color",{"type":37,"tag":71,"props":562,"children":563},{},[564],{"type":43,"value":565},"Hex",{"type":37,"tag":71,"props":567,"children":568},{},[569],{"type":43,"value":570},"Notes",{"type":37,"tag":87,"props":572,"children":573},{},[574,607,639,670,702,729,755,786,816,843],{"type":37,"tag":67,"props":575,"children":576},{},[577,582,587,596],{"type":37,"tag":94,"props":578,"children":579},{},[580],{"type":43,"value":581},"Root bundle",{"type":37,"tag":94,"props":583,"children":584},{},[585],{"type":43,"value":586},"teal\u002Fmint",{"type":37,"tag":94,"props":588,"children":589},{},[590],{"type":37,"tag":98,"props":591,"children":593},{"className":592},[],[594],{"type":43,"value":595},"#80cbc4",{"type":37,"tag":94,"props":597,"children":598},{},[599,605],{"type":37,"tag":98,"props":600,"children":602},{"className":601},[],[603],{"type":43,"value":604},"bundle.md",{"type":43,"value":606}," at repo root",{"type":37,"tag":67,"props":608,"children":609},{},[610,615,620,629],{"type":37,"tag":94,"props":611,"children":612},{},[613],{"type":43,"value":614},"Behavior",{"type":37,"tag":94,"props":616,"children":617},{},[618],{"type":43,"value":619},"light teal",{"type":37,"tag":94,"props":621,"children":622},{},[623],{"type":37,"tag":98,"props":624,"children":626},{"className":625},[],[627],{"type":43,"value":628},"#e0f2f1",{"type":37,"tag":94,"props":630,"children":631},{},[632,634],{"type":43,"value":633},"Entries in ",{"type":37,"tag":98,"props":635,"children":637},{"className":636},[],[638],{"type":43,"value":240},{"type":37,"tag":67,"props":640,"children":641},{},[642,647,651,659],{"type":37,"tag":94,"props":643,"children":644},{},[645],{"type":43,"value":646},"Standalone",{"type":37,"tag":94,"props":648,"children":649},{},[650],{"type":43,"value":586},{"type":37,"tag":94,"props":652,"children":653},{},[654],{"type":37,"tag":98,"props":655,"children":657},{"className":656},[],[658],{"type":43,"value":595},{"type":37,"tag":94,"props":660,"children":661},{},[662,663,668],{"type":43,"value":633},{"type":37,"tag":98,"props":664,"children":666},{"className":665},[],[667],{"type":43,"value":265},{"type":43,"value":669}," (same as root)",{"type":37,"tag":67,"props":671,"children":672},{},[673,677,682,691],{"type":37,"tag":94,"props":674,"children":675},{},[676],{"type":43,"value":475},{"type":37,"tag":94,"props":678,"children":679},{},[680],{"type":43,"value":681},"light green",{"type":37,"tag":94,"props":683,"children":684},{},[685],{"type":37,"tag":98,"props":686,"children":688},{"className":687},[],[689],{"type":43,"value":690},"#c8e6c9",{"type":37,"tag":94,"props":692,"children":693},{},[694,695,700],{"type":43,"value":295},{"type":37,"tag":98,"props":696,"children":698},{"className":697},[],[699],{"type":43,"value":301},{"type":43,"value":701}," files",{"type":37,"tag":67,"props":703,"children":704},{},[705,710,715,724],{"type":37,"tag":94,"props":706,"children":707},{},[708],{"type":43,"value":709},"Module\u002Ftool",{"type":37,"tag":94,"props":711,"children":712},{},[713],{"type":43,"value":714},"light blue",{"type":37,"tag":94,"props":716,"children":717},{},[718],{"type":37,"tag":98,"props":719,"children":721},{"className":720},[],[722],{"type":43,"value":723},"#bbdefb",{"type":37,"tag":94,"props":725,"children":726},{},[727],{"type":43,"value":728},"Tool\u002Fmodule declarations",{"type":37,"tag":67,"props":730,"children":731},{},[732,737,742,751],{"type":37,"tag":94,"props":733,"children":734},{},[735],{"type":43,"value":736},"Provider",{"type":37,"tag":94,"props":738,"children":739},{},[740],{"type":43,"value":741},"light grey",{"type":37,"tag":94,"props":743,"children":744},{},[745],{"type":37,"tag":98,"props":746,"children":748},{"className":747},[],[749],{"type":43,"value":750},"#e0e0e0",{"type":37,"tag":94,"props":752,"children":753},{},[754],{"type":43,"value":349},{"type":37,"tag":67,"props":756,"children":757},{},[758,763,768,777],{"type":37,"tag":94,"props":759,"children":760},{},[761],{"type":43,"value":762},"Experiment",{"type":37,"tag":94,"props":764,"children":765},{},[766],{"type":43,"value":767},"light purple",{"type":37,"tag":94,"props":769,"children":770},{},[771],{"type":37,"tag":98,"props":772,"children":774},{"className":773},[],[775],{"type":43,"value":776},"#e1bee7",{"type":37,"tag":94,"props":778,"children":779},{},[780,781],{"type":43,"value":633},{"type":37,"tag":98,"props":782,"children":784},{"className":783},[],[785],{"type":43,"value":369},{"type":37,"tag":67,"props":787,"children":788},{},[789,793,797,805],{"type":37,"tag":94,"props":790,"children":791},{},[792],{"type":43,"value":494},{"type":37,"tag":94,"props":794,"children":795},{},[796],{"type":43,"value":767},{"type":37,"tag":94,"props":798,"children":799},{},[800],{"type":37,"tag":98,"props":801,"children":803},{"className":802},[],[804],{"type":43,"value":776},{"type":37,"tag":94,"props":806,"children":807},{},[808,810,815],{"type":43,"value":809},"Context ",{"type":37,"tag":98,"props":811,"children":813},{"className":812},[],[814],{"type":43,"value":301},{"type":43,"value":701},{"type":37,"tag":67,"props":817,"children":818},{},[819,824,829,838],{"type":37,"tag":94,"props":820,"children":821},{},[822],{"type":43,"value":823},"Cluster fill",{"type":37,"tag":94,"props":825,"children":826},{},[827],{"type":43,"value":828},"near white",{"type":37,"tag":94,"props":830,"children":831},{},[832],{"type":37,"tag":98,"props":833,"children":835},{"className":834},[],[836],{"type":43,"value":837},"#f9f9f9",{"type":37,"tag":94,"props":839,"children":840},{},[841],{"type":43,"value":842},"Subgraph background",{"type":37,"tag":67,"props":844,"children":845},{},[846,851,856,865],{"type":37,"tag":94,"props":847,"children":848},{},[849],{"type":43,"value":850},"Summary node",{"type":37,"tag":94,"props":852,"children":853},{},[854],{"type":43,"value":855},"blue-grey",{"type":37,"tag":94,"props":857,"children":858},{},[859],{"type":37,"tag":98,"props":860,"children":862},{"className":861},[],[863],{"type":43,"value":864},"#eceff1",{"type":37,"tag":94,"props":866,"children":867},{},[868],{"type":43,"value":869},"Cost summary footer node",{"type":37,"tag":528,"props":871,"children":873},{"id":872},"external-references",[874],{"type":43,"value":409},{"type":37,"tag":53,"props":876,"children":877},{},[878],{"type":43,"value":879},"External bundles (referenced by URI, not local to the repo) are visually\ndistinct from local nodes:",{"type":37,"tag":59,"props":881,"children":882},{},[883,899],{"type":37,"tag":63,"props":884,"children":885},{},[886],{"type":37,"tag":67,"props":887,"children":888},{},[889,894],{"type":37,"tag":71,"props":890,"children":891},{},[892],{"type":43,"value":893},"Edge style",{"type":37,"tag":71,"props":895,"children":896},{},[897],{"type":43,"value":898},"Meaning",{"type":37,"tag":87,"props":900,"children":901},{},[902,918,942],{"type":37,"tag":67,"props":903,"children":904},{},[905,913],{"type":37,"tag":94,"props":906,"children":907},{},[908],{"type":37,"tag":187,"props":909,"children":910},{},[911],{"type":43,"value":912},"Solid",{"type":37,"tag":94,"props":914,"children":915},{},[916],{"type":43,"value":917},"Local reference — included in token cost count",{"type":37,"tag":67,"props":919,"children":920},{},[921,929],{"type":37,"tag":94,"props":922,"children":923},{},[924],{"type":37,"tag":187,"props":925,"children":926},{},[927],{"type":43,"value":928},"Dashed + red border",{"type":37,"tag":94,"props":930,"children":931},{},[932,934,940],{"type":43,"value":933},"External with hidden cost (",{"type":37,"tag":98,"props":935,"children":937},{"className":936},[],[938],{"type":43,"value":939},"_COLOR_EXTERNAL_COST = \"red\"",{"type":43,"value":941},") — the external bundle contributes tokens at runtime but is NOT counted in the local total",{"type":37,"tag":67,"props":943,"children":944},{},[945,962],{"type":37,"tag":94,"props":946,"children":947},{},[948,953,955,961],{"type":37,"tag":187,"props":949,"children":950},{},[951],{"type":43,"value":952},"Dashed + muted fill",{"type":43,"value":954}," (",{"type":37,"tag":98,"props":956,"children":958},{"className":957},[],[959],{"type":43,"value":960},"#f5f5f5",{"type":43,"value":541},{"type":37,"tag":94,"props":963,"children":964},{},[965],{"type":43,"value":966},"External with no additional cost — referenced externally but costs are borne elsewhere",{"type":37,"tag":53,"props":968,"children":969},{},[970],{"type":43,"value":971},"The legend node embedded in the DOT explains these conventions inline.",{"type":37,"tag":528,"props":973,"children":975},{"id":974},"llm-enhancement",[976],{"type":43,"value":977},"LLM Enhancement",{"type":37,"tag":53,"props":979,"children":980},{},[981,983,989,991,997,999,1004],{"type":43,"value":982},"By default, the ",{"type":37,"tag":98,"props":984,"children":986},{"className":985},[],[987],{"type":43,"value":988},"generate-bundle-docs",{"type":43,"value":990}," recipe sends the structural DOT to\n",{"type":37,"tag":98,"props":992,"children":994},{"className":993},[],[995],{"type":43,"value":996},"foundation:zen-architect",{"type":43,"value":998}," for ",{"type":37,"tag":187,"props":1000,"children":1001},{},[1002],{"type":43,"value":1003},"label enhancement",{"type":43,"value":1005},": node labels are rewritten\nwith concise, accessible English summaries rather than raw filenames.",{"type":37,"tag":53,"props":1007,"children":1008},{},[1009],{"type":43,"value":1010},"To skip LLM enhancement (structural-only, faster):",{"type":37,"tag":1012,"props":1013,"children":1018},"pre",{"className":1014,"code":1015,"language":1016,"meta":1017,"style":1017},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# In recipe context\nenhance_diagrams: \"false\"\n","yaml","",[1019],{"type":37,"tag":98,"props":1020,"children":1021},{"__ignoreMap":1017},[1022,1034],{"type":37,"tag":1023,"props":1024,"children":1027},"span",{"class":1025,"line":1026},"line",1,[1028],{"type":37,"tag":1023,"props":1029,"children":1031},{"style":1030},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1032],{"type":43,"value":1033},"# In recipe context\n",{"type":37,"tag":1023,"props":1035,"children":1037},{"class":1025,"line":1036},2,[1038,1044,1049,1054,1060],{"type":37,"tag":1023,"props":1039,"children":1041},{"style":1040},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1042],{"type":43,"value":1043},"enhance_diagrams",{"type":37,"tag":1023,"props":1045,"children":1047},{"style":1046},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1048],{"type":43,"value":193},{"type":37,"tag":1023,"props":1050,"children":1051},{"style":1046},[1052],{"type":43,"value":1053}," \"",{"type":37,"tag":1023,"props":1055,"children":1057},{"style":1056},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1058],{"type":43,"value":1059},"false",{"type":37,"tag":1023,"props":1061,"children":1062},{"style":1046},[1063],{"type":43,"value":1064},"\"\n",{"type":37,"tag":53,"props":1066,"children":1067},{},[1068],{"type":43,"value":1069},"Rules for the LLM enhancement step:",{"type":37,"tag":1071,"props":1072,"children":1073},"ul",{},[1074,1080,1093,1106],{"type":37,"tag":1075,"props":1076,"children":1077},"li",{},[1078],{"type":43,"value":1079},"Keep ALL structural elements unchanged (node IDs, edges, shapes, colors, clusters)",{"type":37,"tag":1075,"props":1081,"children":1082},{},[1083,1085,1091],{"type":43,"value":1084},"ONLY rewrite ",{"type":37,"tag":98,"props":1086,"children":1088},{"className":1087},[],[1089],{"type":43,"value":1090},"label=\"...\"",{"type":43,"value":1092}," values on nodes and clusters, plus the graph title",{"type":37,"tag":1075,"props":1094,"children":1095},{},[1096,1098,1104],{"type":43,"value":1097},"Keep the ",{"type":37,"tag":98,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":43,"value":1103},"source_hash=\"...\"",{"type":43,"value":1105}," graph attribute exactly as-is",{"type":37,"tag":1075,"props":1107,"children":1108},{},[1109,1111,1117],{"type":43,"value":1110},"Labels must be ≤2-3 lines; use ",{"type":37,"tag":98,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":43,"value":1116},"\\n",{"type":43,"value":1118}," for line breaks",{"type":37,"tag":165,"props":1120,"children":1121},{},[],{"type":37,"tag":46,"props":1123,"children":1125},{"id":1124},"freshness-model",[1126],{"type":43,"value":1127},"Freshness Model",{"type":37,"tag":53,"props":1129,"children":1130},{},[1131,1136,1138,1144,1146,1151],{"type":37,"tag":98,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":43,"value":103},{"type":43,"value":1137}," embeds ",{"type":37,"tag":98,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":43,"value":1143},"source_hash=\"\u003Chash>\"",{"type":43,"value":1145}," as a graph attribute. The hash is\nderived from all repository entry points combined (all bundle, behavior, agent,\ntool, context, and hook files). If any of these change, the hash changes and\n",{"type":37,"tag":98,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":43,"value":103},{"type":43,"value":1152}," is considered stale.",{"type":37,"tag":528,"props":1154,"children":1156},{"id":1155},"findings",[1157],{"type":43,"value":1158},"Findings",{"type":37,"tag":59,"props":1160,"children":1161},{},[1162,1182],{"type":37,"tag":63,"props":1163,"children":1164},{},[1165],{"type":37,"tag":67,"props":1166,"children":1167},{},[1168,1173,1178],{"type":37,"tag":71,"props":1169,"children":1170},{},[1171],{"type":43,"value":1172},"Code",{"type":37,"tag":71,"props":1174,"children":1175},{},[1176],{"type":43,"value":1177},"Severity",{"type":37,"tag":71,"props":1179,"children":1180},{},[1181],{"type":43,"value":898},{"type":37,"tag":87,"props":1183,"children":1184},{},[1185,1214],{"type":37,"tag":67,"props":1186,"children":1187},{},[1188,1197,1202],{"type":37,"tag":94,"props":1189,"children":1190},{},[1191],{"type":37,"tag":98,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":43,"value":1196},"BUNDLE_DOT_MISSING",{"type":37,"tag":94,"props":1198,"children":1199},{},[1200],{"type":43,"value":1201},"SUGGESTION",{"type":37,"tag":94,"props":1203,"children":1204},{},[1205,1207,1212],{"type":43,"value":1206},"No ",{"type":37,"tag":98,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":43,"value":103},{"type":43,"value":1213}," found at repo root",{"type":37,"tag":67,"props":1215,"children":1216},{},[1217,1226,1231],{"type":37,"tag":94,"props":1218,"children":1219},{},[1220],{"type":37,"tag":98,"props":1221,"children":1223},{"className":1222},[],[1224],{"type":43,"value":1225},"BUNDLE_DOT_STALE",{"type":37,"tag":94,"props":1227,"children":1228},{},[1229],{"type":43,"value":1230},"WARNING",{"type":37,"tag":94,"props":1232,"children":1233},{},[1234,1239],{"type":37,"tag":98,"props":1235,"children":1237},{"className":1236},[],[1238],{"type":43,"value":103},{"type":43,"value":1240}," source_hash doesn't match current repo state",{"type":37,"tag":165,"props":1242,"children":1243},{},[],{"type":37,"tag":46,"props":1245,"children":1247},{"id":1246},"generation",[1248],{"type":43,"value":1249},"Generation",{"type":37,"tag":528,"props":1251,"children":1253},{"id":1252},"direct-bulk-generation",[1254],{"type":43,"value":1255},"Direct (bulk generation)",{"type":37,"tag":1012,"props":1257,"children":1261},{"className":1258,"code":1260,"language":43},[1259],"language-text","generate-bundle-docs\n",[1262],{"type":37,"tag":98,"props":1263,"children":1264},{"__ignoreMap":1017},[1265],{"type":43,"value":1260},{"type":37,"tag":53,"props":1267,"children":1268},{},[1269,1271,1277,1279,1284,1286,1291,1293,1298],{"type":43,"value":1270},"Calls ",{"type":37,"tag":98,"props":1272,"children":1274},{"className":1273},[],[1275],{"type":43,"value":1276},"bundle_repo_dot(repo_path)",{"type":43,"value":1278},", checks freshness via ",{"type":37,"tag":98,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":43,"value":145},{"type":43,"value":1285},", writes\n",{"type":37,"tag":98,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":43,"value":103},{"type":43,"value":1292}," (optionally LLM-enhanced) and renders ",{"type":37,"tag":98,"props":1294,"children":1296},{"className":1295},[],[1297],{"type":43,"value":125},{"type":43,"value":1299}," at the repo root.",{"type":37,"tag":528,"props":1301,"children":1303},{"id":1302},"via-validation-automatic",[1304],{"type":43,"value":1305},"Via validation (automatic)",{"type":37,"tag":53,"props":1307,"children":1308},{},[1309,1315,1317,1322],{"type":37,"tag":98,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":43,"value":1314},"validate-bundle-repo",{"type":43,"value":1316}," auto-regenerates a stale or missing ",{"type":37,"tag":98,"props":1318,"children":1320},{"className":1319},[],[1321],{"type":43,"value":103},{"type":43,"value":1323}," as a\nside effect of validation:",{"type":37,"tag":1012,"props":1325,"children":1328},{"className":1326,"code":1327,"language":43},[1259],"validate-bundle-repo → detects missing\u002Fstale → regenerates bundle.dot + bundle.png\n",[1329],{"type":37,"tag":98,"props":1330,"children":1331},{"__ignoreMap":1017},[1332],{"type":43,"value":1327},{"type":37,"tag":165,"props":1334,"children":1335},{},[],{"type":37,"tag":46,"props":1337,"children":1339},{"id":1338},"lifecycle-when-to-regenerate",[1340],{"type":43,"value":1341},"Lifecycle: When to Regenerate",{"type":37,"tag":53,"props":1343,"children":1344},{},[1345],{"type":43,"value":1346},"Regenerate when any of the following change in the repository:",{"type":37,"tag":1071,"props":1348,"children":1349},{},[1350,1367,1379,1390,1401,1412,1417,1422],{"type":37,"tag":1075,"props":1351,"children":1352},{},[1353,1358,1360,1366],{"type":37,"tag":98,"props":1354,"children":1356},{"className":1355},[],[1357],{"type":43,"value":604},{"type":43,"value":1359}," \u002F ",{"type":37,"tag":98,"props":1361,"children":1363},{"className":1362},[],[1364],{"type":43,"value":1365},"bundle.yaml",{"type":43,"value":606},{"type":37,"tag":1075,"props":1368,"children":1369},{},[1370,1372,1377],{"type":43,"value":1371},"Any file in ",{"type":37,"tag":98,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":43,"value":240},{"type":43,"value":1378}," (behavior bundles)",{"type":37,"tag":1075,"props":1380,"children":1381},{},[1382,1383,1388],{"type":43,"value":1371},{"type":37,"tag":98,"props":1384,"children":1386},{"className":1385},[],[1387],{"type":43,"value":265},{"type":43,"value":1389}," (standalone bundles)",{"type":37,"tag":1075,"props":1391,"children":1392},{},[1393,1394,1399],{"type":43,"value":1371},{"type":37,"tag":98,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":43,"value":290},{"type":43,"value":1400}," (agent definitions)",{"type":37,"tag":1075,"props":1402,"children":1403},{},[1404,1405,1410],{"type":43,"value":1371},{"type":37,"tag":98,"props":1406,"children":1408},{"className":1407},[],[1409],{"type":43,"value":394},{"type":43,"value":1411}," (context files)",{"type":37,"tag":1075,"props":1413,"children":1414},{},[1415],{"type":43,"value":1416},"Any tool\u002Fmodule declaration",{"type":37,"tag":1075,"props":1418,"children":1419},{},[1420],{"type":43,"value":1421},"Any hook definition",{"type":37,"tag":1075,"props":1423,"children":1424},{},[1425,1426,1431,1433],{"type":43,"value":1371},{"type":37,"tag":98,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":43,"value":344},{"type":43,"value":1432},", ",{"type":37,"tag":98,"props":1434,"children":1436},{"className":1435},[],[1437],{"type":43,"value":369},{"type":37,"tag":53,"props":1439,"children":1440},{},[1441,1446,1448,1453],{"type":37,"tag":187,"props":1442,"children":1443},{},[1444],{"type":43,"value":1445},"Tip:",{"type":43,"value":1447}," If unsure, run ",{"type":37,"tag":98,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":43,"value":1314},{"type":43,"value":1454}," — it checks hashes and\nregenerates only if stale.",{"type":37,"tag":165,"props":1456,"children":1457},{},[],{"type":37,"tag":46,"props":1459,"children":1461},{"id":1460},"api-reference",[1462],{"type":43,"value":1463},"API Reference",{"type":37,"tag":1012,"props":1465,"children":1469},{"className":1466,"code":1467,"language":1468,"meta":1017,"style":1017},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","from amplifier_foundation.bundle_docs import bundle_repo_dot\n\ndot_content = bundle_repo_dot(repo_root)  # returns DOT string with source_hash\n","python",[1470],{"type":37,"tag":98,"props":1471,"children":1472},{"__ignoreMap":1017},[1473,1481,1490],{"type":37,"tag":1023,"props":1474,"children":1475},{"class":1025,"line":1026},[1476],{"type":37,"tag":1023,"props":1477,"children":1478},{},[1479],{"type":43,"value":1480},"from amplifier_foundation.bundle_docs import bundle_repo_dot\n",{"type":37,"tag":1023,"props":1482,"children":1483},{"class":1025,"line":1036},[1484],{"type":37,"tag":1023,"props":1485,"children":1487},{"emptyLinePlaceholder":1486},true,[1488],{"type":43,"value":1489},"\n",{"type":37,"tag":1023,"props":1491,"children":1493},{"class":1025,"line":1492},3,[1494],{"type":37,"tag":1023,"props":1495,"children":1496},{},[1497],{"type":43,"value":1498},"dot_content = bundle_repo_dot(repo_root)  # returns DOT string with source_hash\n",{"type":37,"tag":53,"props":1500,"children":1501},{},[1502,1504,1510],{"type":43,"value":1503},"The function is the sole public entry point. It takes a ",{"type":37,"tag":98,"props":1505,"children":1507},{"className":1506},[],[1508],{"type":43,"value":1509},"str | Path",{"type":43,"value":1511}," pointing\nto the repository root and returns a complete DOT graph string.",{"type":37,"tag":165,"props":1513,"children":1514},{},[],{"type":37,"tag":46,"props":1516,"children":1518},{"id":1517},"checklist",[1519],{"type":43,"value":1520},"Checklist",{"type":37,"tag":53,"props":1522,"children":1523},{},[1524],{"type":43,"value":1525},"Before committing a bundle or behavior change:",{"type":37,"tag":1071,"props":1527,"children":1530},{"className":1528},[1529],"contains-task-list",[1531,1550,1578],{"type":37,"tag":1075,"props":1532,"children":1535},{"className":1533},[1534],"task-list-item",[1536,1541,1543,1548],{"type":37,"tag":1537,"props":1538,"children":1540},"input",{"disabled":1486,"type":1539},"checkbox",[],{"type":43,"value":1542}," ",{"type":37,"tag":98,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":43,"value":103},{"type":43,"value":1549}," exists at repo root",{"type":37,"tag":1075,"props":1551,"children":1553},{"className":1552},[1534],[1554,1557,1558,1563,1565,1570,1572,1577],{"type":37,"tag":1537,"props":1555,"children":1556},{"disabled":1486,"type":1539},[],{"type":43,"value":1542},{"type":37,"tag":98,"props":1559,"children":1561},{"className":1560},[],[1562],{"type":43,"value":145},{"type":43,"value":1564}," in ",{"type":37,"tag":98,"props":1566,"children":1568},{"className":1567},[],[1569],{"type":43,"value":103},{"type":43,"value":1571}," matches current repo state (or run ",{"type":37,"tag":98,"props":1573,"children":1575},{"className":1574},[],[1576],{"type":43,"value":988},{"type":43,"value":541},{"type":37,"tag":1075,"props":1579,"children":1581},{"className":1580},[1534],[1582,1585,1586,1591],{"type":37,"tag":1537,"props":1583,"children":1584},{"disabled":1486,"type":1539},[],{"type":43,"value":1542},{"type":37,"tag":98,"props":1587,"children":1589},{"className":1588},[],[1590],{"type":43,"value":125},{"type":43,"value":1592}," exists and is fresh",{"type":37,"tag":1594,"props":1595,"children":1596},"style",{},[1597],{"type":43,"value":1598},"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":1600,"total":1036},[1601,1606],{"slug":4,"name":4,"fn":5,"description":6,"org":1602,"tags":1603,"stars":19,"repoUrl":20,"updatedAt":21},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1604,1605],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"slug":1607,"name":1607,"fn":1608,"description":1609,"org":1610,"tags":1611,"stars":19,"repoUrl":20,"updatedAt":1618},"creating-amplifier-modules","create Amplifier modules","Use when creating a new Amplifier module (tool, hook, orchestrator, context, or provider). Covers the mount() contract, protocol compliance validation, placeholder patterns, and the module directory structure. Prevents the common mistake of creating no-op mount() stubs that fail protocol_compliance validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1612,1615],{"name":1613,"slug":1614,"type":15},"Agent Context","agent-context",{"name":1616,"slug":1617,"type":15},"Plugin Development","plugin-development","2026-04-06T18:37:44.170027",{"items":1620,"total":1813},[1621,1643,1663,1684,1699,1715,1726,1739,1754,1769,1788,1801],{"slug":1622,"name":1622,"fn":1623,"description":1624,"org":1625,"tags":1626,"stars":1640,"repoUrl":1641,"updatedAt":1642},"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},[1627,1630,1633,1634,1637],{"name":1628,"slug":1629,"type":15},"Engineering","engineering",{"name":1631,"slug":1632,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1635,"slug":1636,"type":15},"Project Management","project-management",{"name":1638,"slug":1639,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1644,"name":1644,"fn":1645,"description":1646,"org":1647,"tags":1648,"stars":1660,"repoUrl":1661,"updatedAt":1662},"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},[1649,1652,1654,1657],{"name":1650,"slug":1651,"type":15},".NET","net",{"name":281,"slug":1653,"type":15},"agents",{"name":1655,"slug":1656,"type":15},"Azure","azure",{"name":1658,"slug":1659,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1664,"name":1664,"fn":1665,"description":1666,"org":1667,"tags":1668,"stars":1660,"repoUrl":1661,"updatedAt":1683},"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},[1669,1672,1673,1676,1679,1680],{"name":1670,"slug":1671,"type":15},"Analytics","analytics",{"name":1655,"slug":1656,"type":15},{"name":1674,"slug":1675,"type":15},"Data Analysis","data-analysis",{"name":1677,"slug":1678,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1681,"slug":1682,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1685,"name":1685,"fn":1686,"description":1687,"org":1688,"tags":1689,"stars":1660,"repoUrl":1661,"updatedAt":1698},"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},[1690,1693,1694,1695],{"name":1691,"slug":1692,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1655,"slug":1656,"type":15},{"name":1677,"slug":1678,"type":15},{"name":1696,"slug":1697,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1700,"name":1700,"fn":1701,"description":1702,"org":1703,"tags":1704,"stars":1660,"repoUrl":1661,"updatedAt":1714},"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},[1705,1706,1709,1710,1711,1713],{"name":1655,"slug":1656,"type":15},{"name":1707,"slug":1708,"type":15},"Compliance","compliance",{"name":1658,"slug":1659,"type":15},{"name":9,"slug":8,"type":15},{"name":1712,"slug":1468,"type":15},"Python",{"name":1696,"slug":1697,"type":15},"2026-07-18T05:14:23.017504",{"slug":1716,"name":1716,"fn":1717,"description":1718,"org":1719,"tags":1720,"stars":1660,"repoUrl":1661,"updatedAt":1725},"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},[1721,1722,1723,1724],{"name":1670,"slug":1671,"type":15},{"name":1655,"slug":1656,"type":15},{"name":1658,"slug":1659,"type":15},{"name":1712,"slug":1468,"type":15},"2026-07-31T05:54:29.068751",{"slug":1727,"name":1727,"fn":1728,"description":1729,"org":1730,"tags":1731,"stars":1660,"repoUrl":1661,"updatedAt":1738},"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},[1732,1735,1736,1737],{"name":1733,"slug":1734,"type":15},"API Development","api-development",{"name":1655,"slug":1656,"type":15},{"name":9,"slug":8,"type":15},{"name":1712,"slug":1468,"type":15},"2026-07-18T05:14:16.988376",{"slug":1740,"name":1740,"fn":1741,"description":1742,"org":1743,"tags":1744,"stars":1660,"repoUrl":1661,"updatedAt":1753},"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},[1745,1746,1749,1752],{"name":1655,"slug":1656,"type":15},{"name":1747,"slug":1748,"type":15},"Computer Vision","computer-vision",{"name":1750,"slug":1751,"type":15},"Images","images",{"name":1712,"slug":1468,"type":15},"2026-07-18T05:14:18.007737",{"slug":1755,"name":1755,"fn":1756,"description":1757,"org":1758,"tags":1759,"stars":1660,"repoUrl":1661,"updatedAt":1768},"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},[1760,1761,1764,1767],{"name":1655,"slug":1656,"type":15},{"name":1762,"slug":1763,"type":15},"Configuration","configuration",{"name":1765,"slug":1766,"type":15},"Feature Flags","feature-flags",{"name":1677,"slug":1678,"type":15},"2026-07-03T16:32:01.278468",{"slug":1770,"name":1770,"fn":1771,"description":1772,"org":1773,"tags":1774,"stars":1660,"repoUrl":1661,"updatedAt":1787},"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},[1775,1778,1781,1784],{"name":1776,"slug":1777,"type":15},"Cosmos DB","cosmos-db",{"name":1779,"slug":1780,"type":15},"Database","database",{"name":1782,"slug":1783,"type":15},"NoSQL","nosql",{"name":1785,"slug":1786,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1789,"name":1789,"fn":1771,"description":1790,"org":1791,"tags":1792,"stars":1660,"repoUrl":1661,"updatedAt":1800},"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},[1793,1794,1795,1796,1797],{"name":1776,"slug":1777,"type":15},{"name":1779,"slug":1780,"type":15},{"name":9,"slug":8,"type":15},{"name":1782,"slug":1783,"type":15},{"name":1798,"slug":1799,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1802,"name":1802,"fn":1803,"description":1804,"org":1805,"tags":1806,"stars":1660,"repoUrl":1661,"updatedAt":1812},"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},[1807,1808,1809,1810,1811],{"name":1655,"slug":1656,"type":15},{"name":1776,"slug":1777,"type":15},{"name":1779,"slug":1780,"type":15},{"name":1677,"slug":1678,"type":15},{"name":1782,"slug":1783,"type":15},"2026-05-13T06:14:17.582229",267]