[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-cosmosdb-best-practices":3,"mdc--p1x0fp-key":41,"related-repo-microsoft-cosmosdb-best-practices":1522,"related-org-microsoft-cosmosdb-best-practices":1533},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":36,"sourceUrl":39,"mdContent":40},"cosmosdb-best-practices","optimize Azure Cosmos DB code","Azure Cosmos DB performance optimization and best practices guidelines for NoSQL,\npartitioning, queries, and SDK usage. Use when writing, reviewing, or refactoring\ncode that interacts with Azure Cosmos DB, designing data models, optimizing queries,\nor implementing high-performance database operations.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Azure","azure",{"name":20,"slug":21,"type":15},"Cosmos DB","cosmos-db",{"name":23,"slug":24,"type":15},"NoSQL","nosql",{"name":26,"slug":27,"type":15},"Database","database",198,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-cosmosdb","2026-04-06T18:38:20.527233","MIT",84,[34,21,8,24,35],"azure-cosmos-db","vscode",{"repoUrl":29,"stars":28,"forks":32,"topics":37,"description":38},[34,21,8,24,35],"Azure Cosmos DB extension for VS Code","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode-cosmosdb\u002Ftree\u002FHEAD\u002Fskills\u002Fcosmosdb-best-practices","---\nname: cosmosdb-best-practices\ndescription: |\n  Azure Cosmos DB performance optimization and best practices guidelines for NoSQL,\n  partitioning, queries, and SDK usage. Use when writing, reviewing, or refactoring\n  code that interacts with Azure Cosmos DB, designing data models, optimizing queries,\n  or implementing high-performance database operations.\n\nlicense: MIT\nmetadata:\n  author: cosmosdb-agent-kit\n  version: \"1.0.0\"\n---\n\n# Azure Cosmos DB Best Practices\n\nComprehensive performance optimization guide for Azure Cosmos DB applications, containing 75+ rules across 11 categories, prioritized by impact to guide automated refactoring and code generation.\n\n## When to Apply\n\nReference these guidelines when:\n- Designing data models for Cosmos DB\n- Choosing partition keys\n- Writing or optimizing queries\n- Implementing SDK patterns\n- Using the Cosmos DB Emulator for local development\n- Inspecting or managing Cosmos DB data with developer tooling\n- Implementing vector search or RAG features on Cosmos DB\n- Reviewing code for performance issues\n- Configuring throughput and scaling\n- Building globally distributed applications\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Data Modeling | CRITICAL | `model-` |\n| 2 | Partition Key Design | CRITICAL | `partition-` |\n| 3 | Query Optimization | HIGH | `query-` |\n| 4 | SDK Best Practices | HIGH | `sdk-` |\n| 5 | Indexing Strategies | MEDIUM-HIGH | `index-` |\n| 6 | Throughput & Scaling | MEDIUM | `throughput-` |\n| 7 | Global Distribution | MEDIUM | `global-` |\n| 8 | Monitoring & Diagnostics | LOW-MEDIUM | `monitoring-` |\n| 9 | Design Patterns | HIGH | `pattern-` |\n| 10 | Developer Tooling | MEDIUM | `tooling-` |\n| 11 | Vector Search | HIGH | `vector-` |\n\n## Quick Reference\n\n### 1. Data Modeling (CRITICAL)\n\n- [model-embed-related](rules\u002Fmodel-embed-related.md) - Embed related data retrieved together\n- [model-reference-large](rules\u002Fmodel-reference-large.md) - Reference data when items get too large\n- [model-avoid-2mb-limit](rules\u002Fmodel-avoid-2mb-limit.md) - Keep items well under 2MB limit\n- [model-id-constraints](rules\u002Fmodel-id-constraints.md) - Follow ID value length and character constraints\n- [model-nesting-depth](rules\u002Fmodel-nesting-depth.md) - Stay within 128-level nesting depth limit\n- [model-numeric-precision](rules\u002Fmodel-numeric-precision.md) - Understand IEEE 754 numeric precision limits\n- [model-denormalize-reads](rules\u002Fmodel-denormalize-reads.md) - Denormalize for read-heavy workloads\n- [model-schema-versioning](rules\u002Fmodel-schema-versioning.md) - Version your document schemas\n- [model-type-discriminator](rules\u002Fmodel-type-discriminator.md) - Use type discriminators for polymorphic data\n- [model-json-serialization](rules\u002Fmodel-json-serialization.md) - Handle JSON serialization correctly for Cosmos DB documents\n- [model-relationship-references](rules\u002Fmodel-relationship-references.md) - Use ID references with transient hydration for document relationships\n\n### 2. Partition Key Design (CRITICAL)\n\n- [partition-high-cardinality](rules\u002Fpartition-high-cardinality.md) - Choose high-cardinality partition keys\n- [partition-avoid-hotspots](rules\u002Fpartition-avoid-hotspots.md) - Distribute writes evenly\n- [partition-hierarchical](rules\u002Fpartition-hierarchical.md) - Use hierarchical partition keys for flexibility\n- [partition-query-patterns](rules\u002Fpartition-query-patterns.md) - Align partition key with query patterns\n- [partition-synthetic-keys](rules\u002Fpartition-synthetic-keys.md) - Create synthetic keys when needed\n- [partition-key-length](rules\u002Fpartition-key-length.md) - Respect partition key value length limits\n- [partition-20gb-limit](rules\u002Fpartition-20gb-limit.md) - Plan for 20GB logical partition limit\n\n### 3. Query Optimization (HIGH)\n\n- [query-avoid-cross-partition](rules\u002Fquery-avoid-cross-partition.md) - Minimize cross-partition queries\n- [query-use-projections](rules\u002Fquery-use-projections.md) - Project only needed fields\n- [query-pagination](rules\u002Fquery-pagination.md) - Use continuation tokens for pagination\n- [query-avoid-scans](rules\u002Fquery-avoid-scans.md) - Avoid full container scans\n- [query-parameterize](rules\u002Fquery-parameterize.md) - Use parameterized queries\n- [query-order-filters](rules\u002Fquery-order-filters.md) - Order filters by selectivity\n- [query-top-literal](rules\u002Fquery-top-literal.md) - Use literal integers for TOP, never parameters\n\n### 4. SDK Best Practices (HIGH)\n\n- [sdk-singleton-client](rules\u002Fsdk-singleton-client.md) - Reuse CosmosClient as singleton\n- [sdk-async-api](rules\u002Fsdk-async-api.md) - Use async APIs for throughput\n- [sdk-retry-429](rules\u002Fsdk-retry-429.md) - Handle 429s with retry-after\n- [sdk-connection-mode](rules\u002Fsdk-connection-mode.md) - Use Direct mode for production\n- [sdk-preferred-regions](rules\u002Fsdk-preferred-regions.md) - Configure preferred regions\n- [sdk-excluded-regions](rules\u002Fsdk-excluded-regions.md) - Exclude regions experiencing issues\n- [sdk-availability-strategy](rules\u002Fsdk-availability-strategy.md) - Configure availability strategy for resilience\n- [sdk-circuit-breaker](rules\u002Fsdk-circuit-breaker.md) - Use circuit breaker for fault tolerance\n- [sdk-diagnostics](rules\u002Fsdk-diagnostics.md) - Log diagnostics for troubleshooting\n- [sdk-serialization-enums](rules\u002Fsdk-serialization-enums.md) - Serialize enums as strings not integers\n- [sdk-emulator-ssl](rules\u002Fsdk-emulator-ssl.md) - Configure SSL and connection mode for Cosmos DB Emulator\n- [sdk-etag-concurrency](rules\u002Fsdk-etag-concurrency.md) - Use ETags for optimistic concurrency on read-modify-write operations\n- [sdk-java-content-response](rules\u002Fsdk-java-content-response.md) - Enable content response on write operations (Java)\n- [sdk-java-cosmos-config](rules\u002Fsdk-java-cosmos-config.md) - Configure Cosmos DB initialization correctly in Spring Boot\n- [sdk-java-spring-boot-versions](rules\u002Fsdk-java-spring-boot-versions.md) - Match Java version to Spring Boot requirements\n- [sdk-local-dev-config](rules\u002Fsdk-local-dev-config.md) - Configure local development to avoid cloud conflicts\n- [sdk-newtonsoft-dependency](rules\u002Fsdk-newtonsoft-dependency.md) - Explicitly reference Newtonsoft.Json package\n- [sdk-python-async-deps](rules\u002Fsdk-python-async-deps.md) - Include aiohttp when using Python async SDK\n- [sdk-spring-data-annotations](rules\u002Fsdk-spring-data-annotations.md) - Annotate entities for Spring Data Cosmos\n- [sdk-spring-data-repository](rules\u002Fsdk-spring-data-repository.md) - Use CosmosRepository correctly and handle Iterable return types\n\n### 5. Indexing Strategies (MEDIUM-HIGH)\n\n- [index-path-syntax](rules\u002Findex-path-syntax.md) - Use correct indexing path syntax (`\u002F?` for scalars, `\u002F[]` for arrays, `\u002F*` terminal-only)\n- [index-exclude-unused](rules\u002Findex-exclude-unused.md) - Exclude paths never queried\n- [index-composite](rules\u002Findex-composite.md) - Use composite indexes for ORDER BY\n- [index-composite-direction](rules\u002Findex-composite-direction.md) - Match composite index directions to ORDER BY\n- [index-spatial](rules\u002Findex-spatial.md) - Add spatial indexes for geo queries\n- [index-range-vs-hash](rules\u002Findex-range-vs-hash.md) - Choose appropriate index types\n- [index-lazy-consistent](rules\u002Findex-lazy-consistent.md) - Understand indexing modes\n\n### 6. Throughput & Scaling (MEDIUM)\n\n- [throughput-autoscale](rules\u002Fthroughput-autoscale.md) - Use autoscale for variable workloads\n- [throughput-right-size](rules\u002Fthroughput-right-size.md) - Right-size provisioned throughput\n- [throughput-serverless](rules\u002Fthroughput-serverless.md) - Consider serverless for dev\u002Ftest\n- [throughput-burst](rules\u002Fthroughput-burst.md) - Understand burst capacity\n- [throughput-container-vs-database](rules\u002Fthroughput-container-vs-database.md) - Choose allocation level wisely\n\n### 7. Global Distribution (MEDIUM)\n\n- [global-multi-region](rules\u002Fglobal-multi-region.md) - Configure multi-region writes\n- [global-consistency](rules\u002Fglobal-consistency.md) - Choose appropriate consistency level\n- [global-conflict-resolution](rules\u002Fglobal-conflict-resolution.md) - Implement conflict resolution\n- [global-failover](rules\u002Fglobal-failover.md) - Configure automatic failover\n- [global-read-regions](rules\u002Fglobal-read-regions.md) - Add read regions near users\n- [global-zone-redundancy](rules\u002Fglobal-zone-redundancy.md) - Enable zone redundancy for HA\n\n### 8. Monitoring & Diagnostics (LOW-MEDIUM)\n\n- [monitoring-ru-consumption](rules\u002Fmonitoring-ru-consumption.md) - Track RU consumption\n- [monitoring-latency](rules\u002Fmonitoring-latency.md) - Monitor P99 latency\n- [monitoring-throttling](rules\u002Fmonitoring-throttling.md) - Alert on throttling\n- [monitoring-azure-monitor](rules\u002Fmonitoring-azure-monitor.md) - Integrate Azure Monitor\n- [monitoring-diagnostic-logs](rules\u002Fmonitoring-diagnostic-logs.md) - Enable diagnostic logging\n\n### 9. Design Patterns (HIGH)\n\n- [pattern-change-feed-materialized-views](rules\u002Fpattern-change-feed-materialized-views.md) - Use Change Feed for cross-partition query optimization\n- [pattern-efficient-ranking](rules\u002Fpattern-efficient-ranking.md) - Use count-based or cached approaches for efficient ranking\n- [pattern-service-layer-relationships](rules\u002Fpattern-service-layer-relationships.md) - Use a service layer to hydrate document references\n\n### 10. Developer Tooling (MEDIUM)\n\n- [tooling-vscode-extension](rules\u002Ftooling-vscode-extension.md) - Use the VS Code extension for routine inspection and management\n- [tooling-emulator-setup](rules\u002Ftooling-emulator-setup.md) - Use the Emulator for local development and testing\n\n### 11. Vector Search (HIGH)\n\n- [vector-enable-feature](rules\u002Fvector-enable-feature.md) - Enable vector search on the account before using vector features\n- [vector-embedding-policy](rules\u002Fvector-embedding-policy.md) - Define vector embedding policy for vector properties\n- [vector-index-type](rules\u002Fvector-index-type.md) - Configure vector indexes in the indexing policy\n- [vector-normalize-embeddings](rules\u002Fvector-normalize-embeddings.md) - Normalize embeddings for cosine similarity\n- [vector-distance-query](rules\u002Fvector-distance-query.md) - Use VectorDistance for similarity search\n- [vector-repository-pattern](rules\u002Fvector-repository-pattern.md) - Implement a repository pattern for vector search\n\n## How to Use\n\nUse the linked rule files above for detailed explanations and code examples. The links give the agent direct paths to the relevant guidance instead of relying on folder scanning or inferred filenames.\n\nEach rule file contains:\n- Brief explanation of why it matters\n- Incorrect code example with explanation\n- Correct code example with explanation\n- Additional context and references\n\n## Full Compiled Document\n\nFor the complete guide with all rules expanded: [AGENTS.md](AGENTS.md)\n",{"data":42,"body":46},{"name":4,"description":6,"license":31,"metadata":43},{"author":44,"version":45},"cosmosdb-agent-kit","1.0.0",{"type":47,"children":48},"root",[49,58,64,71,76,131,137,467,473,480,605,611,691,697,777,783,1006,1012,1116,1122,1180,1186,1255,1261,1319,1325,1361,1367,1392,1398,1467,1473,1478,1483,1506,1512],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"azure-cosmos-db-best-practices",[55],{"type":56,"value":57},"text","Azure Cosmos DB Best Practices",{"type":50,"tag":59,"props":60,"children":61},"p",{},[62],{"type":56,"value":63},"Comprehensive performance optimization guide for Azure Cosmos DB applications, containing 75+ rules across 11 categories, prioritized by impact to guide automated refactoring and code generation.",{"type":50,"tag":65,"props":66,"children":68},"h2",{"id":67},"when-to-apply",[69],{"type":56,"value":70},"When to Apply",{"type":50,"tag":59,"props":72,"children":73},{},[74],{"type":56,"value":75},"Reference these guidelines when:",{"type":50,"tag":77,"props":78,"children":79},"ul",{},[80,86,91,96,101,106,111,116,121,126],{"type":50,"tag":81,"props":82,"children":83},"li",{},[84],{"type":56,"value":85},"Designing data models for Cosmos DB",{"type":50,"tag":81,"props":87,"children":88},{},[89],{"type":56,"value":90},"Choosing partition keys",{"type":50,"tag":81,"props":92,"children":93},{},[94],{"type":56,"value":95},"Writing or optimizing queries",{"type":50,"tag":81,"props":97,"children":98},{},[99],{"type":56,"value":100},"Implementing SDK patterns",{"type":50,"tag":81,"props":102,"children":103},{},[104],{"type":56,"value":105},"Using the Cosmos DB Emulator for local development",{"type":50,"tag":81,"props":107,"children":108},{},[109],{"type":56,"value":110},"Inspecting or managing Cosmos DB data with developer tooling",{"type":50,"tag":81,"props":112,"children":113},{},[114],{"type":56,"value":115},"Implementing vector search or RAG features on Cosmos DB",{"type":50,"tag":81,"props":117,"children":118},{},[119],{"type":56,"value":120},"Reviewing code for performance issues",{"type":50,"tag":81,"props":122,"children":123},{},[124],{"type":56,"value":125},"Configuring throughput and scaling",{"type":50,"tag":81,"props":127,"children":128},{},[129],{"type":56,"value":130},"Building globally distributed applications",{"type":50,"tag":65,"props":132,"children":134},{"id":133},"rule-categories-by-priority",[135],{"type":56,"value":136},"Rule Categories by Priority",{"type":50,"tag":138,"props":139,"children":140},"table",{},[141,170],{"type":50,"tag":142,"props":143,"children":144},"thead",{},[145],{"type":50,"tag":146,"props":147,"children":148},"tr",{},[149,155,160,165],{"type":50,"tag":150,"props":151,"children":152},"th",{},[153],{"type":56,"value":154},"Priority",{"type":50,"tag":150,"props":156,"children":157},{},[158],{"type":56,"value":159},"Category",{"type":50,"tag":150,"props":161,"children":162},{},[163],{"type":56,"value":164},"Impact",{"type":50,"tag":150,"props":166,"children":167},{},[168],{"type":56,"value":169},"Prefix",{"type":50,"tag":171,"props":172,"children":173},"tbody",{},[174,203,229,256,282,309,336,362,389,415,441],{"type":50,"tag":146,"props":175,"children":176},{},[177,183,188,193],{"type":50,"tag":178,"props":179,"children":180},"td",{},[181],{"type":56,"value":182},"1",{"type":50,"tag":178,"props":184,"children":185},{},[186],{"type":56,"value":187},"Data Modeling",{"type":50,"tag":178,"props":189,"children":190},{},[191],{"type":56,"value":192},"CRITICAL",{"type":50,"tag":178,"props":194,"children":195},{},[196],{"type":50,"tag":197,"props":198,"children":200},"code",{"className":199},[],[201],{"type":56,"value":202},"model-",{"type":50,"tag":146,"props":204,"children":205},{},[206,211,216,220],{"type":50,"tag":178,"props":207,"children":208},{},[209],{"type":56,"value":210},"2",{"type":50,"tag":178,"props":212,"children":213},{},[214],{"type":56,"value":215},"Partition Key Design",{"type":50,"tag":178,"props":217,"children":218},{},[219],{"type":56,"value":192},{"type":50,"tag":178,"props":221,"children":222},{},[223],{"type":50,"tag":197,"props":224,"children":226},{"className":225},[],[227],{"type":56,"value":228},"partition-",{"type":50,"tag":146,"props":230,"children":231},{},[232,237,242,247],{"type":50,"tag":178,"props":233,"children":234},{},[235],{"type":56,"value":236},"3",{"type":50,"tag":178,"props":238,"children":239},{},[240],{"type":56,"value":241},"Query Optimization",{"type":50,"tag":178,"props":243,"children":244},{},[245],{"type":56,"value":246},"HIGH",{"type":50,"tag":178,"props":248,"children":249},{},[250],{"type":50,"tag":197,"props":251,"children":253},{"className":252},[],[254],{"type":56,"value":255},"query-",{"type":50,"tag":146,"props":257,"children":258},{},[259,264,269,273],{"type":50,"tag":178,"props":260,"children":261},{},[262],{"type":56,"value":263},"4",{"type":50,"tag":178,"props":265,"children":266},{},[267],{"type":56,"value":268},"SDK Best Practices",{"type":50,"tag":178,"props":270,"children":271},{},[272],{"type":56,"value":246},{"type":50,"tag":178,"props":274,"children":275},{},[276],{"type":50,"tag":197,"props":277,"children":279},{"className":278},[],[280],{"type":56,"value":281},"sdk-",{"type":50,"tag":146,"props":283,"children":284},{},[285,290,295,300],{"type":50,"tag":178,"props":286,"children":287},{},[288],{"type":56,"value":289},"5",{"type":50,"tag":178,"props":291,"children":292},{},[293],{"type":56,"value":294},"Indexing Strategies",{"type":50,"tag":178,"props":296,"children":297},{},[298],{"type":56,"value":299},"MEDIUM-HIGH",{"type":50,"tag":178,"props":301,"children":302},{},[303],{"type":50,"tag":197,"props":304,"children":306},{"className":305},[],[307],{"type":56,"value":308},"index-",{"type":50,"tag":146,"props":310,"children":311},{},[312,317,322,327],{"type":50,"tag":178,"props":313,"children":314},{},[315],{"type":56,"value":316},"6",{"type":50,"tag":178,"props":318,"children":319},{},[320],{"type":56,"value":321},"Throughput & Scaling",{"type":50,"tag":178,"props":323,"children":324},{},[325],{"type":56,"value":326},"MEDIUM",{"type":50,"tag":178,"props":328,"children":329},{},[330],{"type":50,"tag":197,"props":331,"children":333},{"className":332},[],[334],{"type":56,"value":335},"throughput-",{"type":50,"tag":146,"props":337,"children":338},{},[339,344,349,353],{"type":50,"tag":178,"props":340,"children":341},{},[342],{"type":56,"value":343},"7",{"type":50,"tag":178,"props":345,"children":346},{},[347],{"type":56,"value":348},"Global Distribution",{"type":50,"tag":178,"props":350,"children":351},{},[352],{"type":56,"value":326},{"type":50,"tag":178,"props":354,"children":355},{},[356],{"type":50,"tag":197,"props":357,"children":359},{"className":358},[],[360],{"type":56,"value":361},"global-",{"type":50,"tag":146,"props":363,"children":364},{},[365,370,375,380],{"type":50,"tag":178,"props":366,"children":367},{},[368],{"type":56,"value":369},"8",{"type":50,"tag":178,"props":371,"children":372},{},[373],{"type":56,"value":374},"Monitoring & Diagnostics",{"type":50,"tag":178,"props":376,"children":377},{},[378],{"type":56,"value":379},"LOW-MEDIUM",{"type":50,"tag":178,"props":381,"children":382},{},[383],{"type":50,"tag":197,"props":384,"children":386},{"className":385},[],[387],{"type":56,"value":388},"monitoring-",{"type":50,"tag":146,"props":390,"children":391},{},[392,397,402,406],{"type":50,"tag":178,"props":393,"children":394},{},[395],{"type":56,"value":396},"9",{"type":50,"tag":178,"props":398,"children":399},{},[400],{"type":56,"value":401},"Design Patterns",{"type":50,"tag":178,"props":403,"children":404},{},[405],{"type":56,"value":246},{"type":50,"tag":178,"props":407,"children":408},{},[409],{"type":50,"tag":197,"props":410,"children":412},{"className":411},[],[413],{"type":56,"value":414},"pattern-",{"type":50,"tag":146,"props":416,"children":417},{},[418,423,428,432],{"type":50,"tag":178,"props":419,"children":420},{},[421],{"type":56,"value":422},"10",{"type":50,"tag":178,"props":424,"children":425},{},[426],{"type":56,"value":427},"Developer Tooling",{"type":50,"tag":178,"props":429,"children":430},{},[431],{"type":56,"value":326},{"type":50,"tag":178,"props":433,"children":434},{},[435],{"type":50,"tag":197,"props":436,"children":438},{"className":437},[],[439],{"type":56,"value":440},"tooling-",{"type":50,"tag":146,"props":442,"children":443},{},[444,449,454,458],{"type":50,"tag":178,"props":445,"children":446},{},[447],{"type":56,"value":448},"11",{"type":50,"tag":178,"props":450,"children":451},{},[452],{"type":56,"value":453},"Vector Search",{"type":50,"tag":178,"props":455,"children":456},{},[457],{"type":56,"value":246},{"type":50,"tag":178,"props":459,"children":460},{},[461],{"type":50,"tag":197,"props":462,"children":464},{"className":463},[],[465],{"type":56,"value":466},"vector-",{"type":50,"tag":65,"props":468,"children":470},{"id":469},"quick-reference",[471],{"type":56,"value":472},"Quick Reference",{"type":50,"tag":474,"props":475,"children":477},"h3",{"id":476},"_1-data-modeling-critical",[478],{"type":56,"value":479},"1. Data Modeling (CRITICAL)",{"type":50,"tag":77,"props":481,"children":482},{},[483,495,506,517,528,539,550,561,572,583,594],{"type":50,"tag":81,"props":484,"children":485},{},[486,493],{"type":50,"tag":487,"props":488,"children":490},"a",{"href":489},"rules\u002Fmodel-embed-related.md",[491],{"type":56,"value":492},"model-embed-related",{"type":56,"value":494}," - Embed related data retrieved together",{"type":50,"tag":81,"props":496,"children":497},{},[498,504],{"type":50,"tag":487,"props":499,"children":501},{"href":500},"rules\u002Fmodel-reference-large.md",[502],{"type":56,"value":503},"model-reference-large",{"type":56,"value":505}," - Reference data when items get too large",{"type":50,"tag":81,"props":507,"children":508},{},[509,515],{"type":50,"tag":487,"props":510,"children":512},{"href":511},"rules\u002Fmodel-avoid-2mb-limit.md",[513],{"type":56,"value":514},"model-avoid-2mb-limit",{"type":56,"value":516}," - Keep items well under 2MB limit",{"type":50,"tag":81,"props":518,"children":519},{},[520,526],{"type":50,"tag":487,"props":521,"children":523},{"href":522},"rules\u002Fmodel-id-constraints.md",[524],{"type":56,"value":525},"model-id-constraints",{"type":56,"value":527}," - Follow ID value length and character constraints",{"type":50,"tag":81,"props":529,"children":530},{},[531,537],{"type":50,"tag":487,"props":532,"children":534},{"href":533},"rules\u002Fmodel-nesting-depth.md",[535],{"type":56,"value":536},"model-nesting-depth",{"type":56,"value":538}," - Stay within 128-level nesting depth limit",{"type":50,"tag":81,"props":540,"children":541},{},[542,548],{"type":50,"tag":487,"props":543,"children":545},{"href":544},"rules\u002Fmodel-numeric-precision.md",[546],{"type":56,"value":547},"model-numeric-precision",{"type":56,"value":549}," - Understand IEEE 754 numeric precision limits",{"type":50,"tag":81,"props":551,"children":552},{},[553,559],{"type":50,"tag":487,"props":554,"children":556},{"href":555},"rules\u002Fmodel-denormalize-reads.md",[557],{"type":56,"value":558},"model-denormalize-reads",{"type":56,"value":560}," - Denormalize for read-heavy workloads",{"type":50,"tag":81,"props":562,"children":563},{},[564,570],{"type":50,"tag":487,"props":565,"children":567},{"href":566},"rules\u002Fmodel-schema-versioning.md",[568],{"type":56,"value":569},"model-schema-versioning",{"type":56,"value":571}," - Version your document schemas",{"type":50,"tag":81,"props":573,"children":574},{},[575,581],{"type":50,"tag":487,"props":576,"children":578},{"href":577},"rules\u002Fmodel-type-discriminator.md",[579],{"type":56,"value":580},"model-type-discriminator",{"type":56,"value":582}," - Use type discriminators for polymorphic data",{"type":50,"tag":81,"props":584,"children":585},{},[586,592],{"type":50,"tag":487,"props":587,"children":589},{"href":588},"rules\u002Fmodel-json-serialization.md",[590],{"type":56,"value":591},"model-json-serialization",{"type":56,"value":593}," - Handle JSON serialization correctly for Cosmos DB documents",{"type":50,"tag":81,"props":595,"children":596},{},[597,603],{"type":50,"tag":487,"props":598,"children":600},{"href":599},"rules\u002Fmodel-relationship-references.md",[601],{"type":56,"value":602},"model-relationship-references",{"type":56,"value":604}," - Use ID references with transient hydration for document relationships",{"type":50,"tag":474,"props":606,"children":608},{"id":607},"_2-partition-key-design-critical",[609],{"type":56,"value":610},"2. Partition Key Design (CRITICAL)",{"type":50,"tag":77,"props":612,"children":613},{},[614,625,636,647,658,669,680],{"type":50,"tag":81,"props":615,"children":616},{},[617,623],{"type":50,"tag":487,"props":618,"children":620},{"href":619},"rules\u002Fpartition-high-cardinality.md",[621],{"type":56,"value":622},"partition-high-cardinality",{"type":56,"value":624}," - Choose high-cardinality partition keys",{"type":50,"tag":81,"props":626,"children":627},{},[628,634],{"type":50,"tag":487,"props":629,"children":631},{"href":630},"rules\u002Fpartition-avoid-hotspots.md",[632],{"type":56,"value":633},"partition-avoid-hotspots",{"type":56,"value":635}," - Distribute writes evenly",{"type":50,"tag":81,"props":637,"children":638},{},[639,645],{"type":50,"tag":487,"props":640,"children":642},{"href":641},"rules\u002Fpartition-hierarchical.md",[643],{"type":56,"value":644},"partition-hierarchical",{"type":56,"value":646}," - Use hierarchical partition keys for flexibility",{"type":50,"tag":81,"props":648,"children":649},{},[650,656],{"type":50,"tag":487,"props":651,"children":653},{"href":652},"rules\u002Fpartition-query-patterns.md",[654],{"type":56,"value":655},"partition-query-patterns",{"type":56,"value":657}," - Align partition key with query patterns",{"type":50,"tag":81,"props":659,"children":660},{},[661,667],{"type":50,"tag":487,"props":662,"children":664},{"href":663},"rules\u002Fpartition-synthetic-keys.md",[665],{"type":56,"value":666},"partition-synthetic-keys",{"type":56,"value":668}," - Create synthetic keys when needed",{"type":50,"tag":81,"props":670,"children":671},{},[672,678],{"type":50,"tag":487,"props":673,"children":675},{"href":674},"rules\u002Fpartition-key-length.md",[676],{"type":56,"value":677},"partition-key-length",{"type":56,"value":679}," - Respect partition key value length limits",{"type":50,"tag":81,"props":681,"children":682},{},[683,689],{"type":50,"tag":487,"props":684,"children":686},{"href":685},"rules\u002Fpartition-20gb-limit.md",[687],{"type":56,"value":688},"partition-20gb-limit",{"type":56,"value":690}," - Plan for 20GB logical partition limit",{"type":50,"tag":474,"props":692,"children":694},{"id":693},"_3-query-optimization-high",[695],{"type":56,"value":696},"3. Query Optimization (HIGH)",{"type":50,"tag":77,"props":698,"children":699},{},[700,711,722,733,744,755,766],{"type":50,"tag":81,"props":701,"children":702},{},[703,709],{"type":50,"tag":487,"props":704,"children":706},{"href":705},"rules\u002Fquery-avoid-cross-partition.md",[707],{"type":56,"value":708},"query-avoid-cross-partition",{"type":56,"value":710}," - Minimize cross-partition queries",{"type":50,"tag":81,"props":712,"children":713},{},[714,720],{"type":50,"tag":487,"props":715,"children":717},{"href":716},"rules\u002Fquery-use-projections.md",[718],{"type":56,"value":719},"query-use-projections",{"type":56,"value":721}," - Project only needed fields",{"type":50,"tag":81,"props":723,"children":724},{},[725,731],{"type":50,"tag":487,"props":726,"children":728},{"href":727},"rules\u002Fquery-pagination.md",[729],{"type":56,"value":730},"query-pagination",{"type":56,"value":732}," - Use continuation tokens for pagination",{"type":50,"tag":81,"props":734,"children":735},{},[736,742],{"type":50,"tag":487,"props":737,"children":739},{"href":738},"rules\u002Fquery-avoid-scans.md",[740],{"type":56,"value":741},"query-avoid-scans",{"type":56,"value":743}," - Avoid full container scans",{"type":50,"tag":81,"props":745,"children":746},{},[747,753],{"type":50,"tag":487,"props":748,"children":750},{"href":749},"rules\u002Fquery-parameterize.md",[751],{"type":56,"value":752},"query-parameterize",{"type":56,"value":754}," - Use parameterized queries",{"type":50,"tag":81,"props":756,"children":757},{},[758,764],{"type":50,"tag":487,"props":759,"children":761},{"href":760},"rules\u002Fquery-order-filters.md",[762],{"type":56,"value":763},"query-order-filters",{"type":56,"value":765}," - Order filters by selectivity",{"type":50,"tag":81,"props":767,"children":768},{},[769,775],{"type":50,"tag":487,"props":770,"children":772},{"href":771},"rules\u002Fquery-top-literal.md",[773],{"type":56,"value":774},"query-top-literal",{"type":56,"value":776}," - Use literal integers for TOP, never parameters",{"type":50,"tag":474,"props":778,"children":780},{"id":779},"_4-sdk-best-practices-high",[781],{"type":56,"value":782},"4. SDK Best Practices (HIGH)",{"type":50,"tag":77,"props":784,"children":785},{},[786,797,808,819,830,841,852,863,874,885,896,907,918,929,940,951,962,973,984,995],{"type":50,"tag":81,"props":787,"children":788},{},[789,795],{"type":50,"tag":487,"props":790,"children":792},{"href":791},"rules\u002Fsdk-singleton-client.md",[793],{"type":56,"value":794},"sdk-singleton-client",{"type":56,"value":796}," - Reuse CosmosClient as singleton",{"type":50,"tag":81,"props":798,"children":799},{},[800,806],{"type":50,"tag":487,"props":801,"children":803},{"href":802},"rules\u002Fsdk-async-api.md",[804],{"type":56,"value":805},"sdk-async-api",{"type":56,"value":807}," - Use async APIs for throughput",{"type":50,"tag":81,"props":809,"children":810},{},[811,817],{"type":50,"tag":487,"props":812,"children":814},{"href":813},"rules\u002Fsdk-retry-429.md",[815],{"type":56,"value":816},"sdk-retry-429",{"type":56,"value":818}," - Handle 429s with retry-after",{"type":50,"tag":81,"props":820,"children":821},{},[822,828],{"type":50,"tag":487,"props":823,"children":825},{"href":824},"rules\u002Fsdk-connection-mode.md",[826],{"type":56,"value":827},"sdk-connection-mode",{"type":56,"value":829}," - Use Direct mode for production",{"type":50,"tag":81,"props":831,"children":832},{},[833,839],{"type":50,"tag":487,"props":834,"children":836},{"href":835},"rules\u002Fsdk-preferred-regions.md",[837],{"type":56,"value":838},"sdk-preferred-regions",{"type":56,"value":840}," - Configure preferred regions",{"type":50,"tag":81,"props":842,"children":843},{},[844,850],{"type":50,"tag":487,"props":845,"children":847},{"href":846},"rules\u002Fsdk-excluded-regions.md",[848],{"type":56,"value":849},"sdk-excluded-regions",{"type":56,"value":851}," - Exclude regions experiencing issues",{"type":50,"tag":81,"props":853,"children":854},{},[855,861],{"type":50,"tag":487,"props":856,"children":858},{"href":857},"rules\u002Fsdk-availability-strategy.md",[859],{"type":56,"value":860},"sdk-availability-strategy",{"type":56,"value":862}," - Configure availability strategy for resilience",{"type":50,"tag":81,"props":864,"children":865},{},[866,872],{"type":50,"tag":487,"props":867,"children":869},{"href":868},"rules\u002Fsdk-circuit-breaker.md",[870],{"type":56,"value":871},"sdk-circuit-breaker",{"type":56,"value":873}," - Use circuit breaker for fault tolerance",{"type":50,"tag":81,"props":875,"children":876},{},[877,883],{"type":50,"tag":487,"props":878,"children":880},{"href":879},"rules\u002Fsdk-diagnostics.md",[881],{"type":56,"value":882},"sdk-diagnostics",{"type":56,"value":884}," - Log diagnostics for troubleshooting",{"type":50,"tag":81,"props":886,"children":887},{},[888,894],{"type":50,"tag":487,"props":889,"children":891},{"href":890},"rules\u002Fsdk-serialization-enums.md",[892],{"type":56,"value":893},"sdk-serialization-enums",{"type":56,"value":895}," - Serialize enums as strings not integers",{"type":50,"tag":81,"props":897,"children":898},{},[899,905],{"type":50,"tag":487,"props":900,"children":902},{"href":901},"rules\u002Fsdk-emulator-ssl.md",[903],{"type":56,"value":904},"sdk-emulator-ssl",{"type":56,"value":906}," - Configure SSL and connection mode for Cosmos DB Emulator",{"type":50,"tag":81,"props":908,"children":909},{},[910,916],{"type":50,"tag":487,"props":911,"children":913},{"href":912},"rules\u002Fsdk-etag-concurrency.md",[914],{"type":56,"value":915},"sdk-etag-concurrency",{"type":56,"value":917}," - Use ETags for optimistic concurrency on read-modify-write operations",{"type":50,"tag":81,"props":919,"children":920},{},[921,927],{"type":50,"tag":487,"props":922,"children":924},{"href":923},"rules\u002Fsdk-java-content-response.md",[925],{"type":56,"value":926},"sdk-java-content-response",{"type":56,"value":928}," - Enable content response on write operations (Java)",{"type":50,"tag":81,"props":930,"children":931},{},[932,938],{"type":50,"tag":487,"props":933,"children":935},{"href":934},"rules\u002Fsdk-java-cosmos-config.md",[936],{"type":56,"value":937},"sdk-java-cosmos-config",{"type":56,"value":939}," - Configure Cosmos DB initialization correctly in Spring Boot",{"type":50,"tag":81,"props":941,"children":942},{},[943,949],{"type":50,"tag":487,"props":944,"children":946},{"href":945},"rules\u002Fsdk-java-spring-boot-versions.md",[947],{"type":56,"value":948},"sdk-java-spring-boot-versions",{"type":56,"value":950}," - Match Java version to Spring Boot requirements",{"type":50,"tag":81,"props":952,"children":953},{},[954,960],{"type":50,"tag":487,"props":955,"children":957},{"href":956},"rules\u002Fsdk-local-dev-config.md",[958],{"type":56,"value":959},"sdk-local-dev-config",{"type":56,"value":961}," - Configure local development to avoid cloud conflicts",{"type":50,"tag":81,"props":963,"children":964},{},[965,971],{"type":50,"tag":487,"props":966,"children":968},{"href":967},"rules\u002Fsdk-newtonsoft-dependency.md",[969],{"type":56,"value":970},"sdk-newtonsoft-dependency",{"type":56,"value":972}," - Explicitly reference Newtonsoft.Json package",{"type":50,"tag":81,"props":974,"children":975},{},[976,982],{"type":50,"tag":487,"props":977,"children":979},{"href":978},"rules\u002Fsdk-python-async-deps.md",[980],{"type":56,"value":981},"sdk-python-async-deps",{"type":56,"value":983}," - Include aiohttp when using Python async SDK",{"type":50,"tag":81,"props":985,"children":986},{},[987,993],{"type":50,"tag":487,"props":988,"children":990},{"href":989},"rules\u002Fsdk-spring-data-annotations.md",[991],{"type":56,"value":992},"sdk-spring-data-annotations",{"type":56,"value":994}," - Annotate entities for Spring Data Cosmos",{"type":50,"tag":81,"props":996,"children":997},{},[998,1004],{"type":50,"tag":487,"props":999,"children":1001},{"href":1000},"rules\u002Fsdk-spring-data-repository.md",[1002],{"type":56,"value":1003},"sdk-spring-data-repository",{"type":56,"value":1005}," - Use CosmosRepository correctly and handle Iterable return types",{"type":50,"tag":474,"props":1007,"children":1009},{"id":1008},"_5-indexing-strategies-medium-high",[1010],{"type":56,"value":1011},"5. Indexing Strategies (MEDIUM-HIGH)",{"type":50,"tag":77,"props":1013,"children":1014},{},[1015,1050,1061,1072,1083,1094,1105],{"type":50,"tag":81,"props":1016,"children":1017},{},[1018,1024,1026,1032,1034,1040,1042,1048],{"type":50,"tag":487,"props":1019,"children":1021},{"href":1020},"rules\u002Findex-path-syntax.md",[1022],{"type":56,"value":1023},"index-path-syntax",{"type":56,"value":1025}," - Use correct indexing path syntax (",{"type":50,"tag":197,"props":1027,"children":1029},{"className":1028},[],[1030],{"type":56,"value":1031},"\u002F?",{"type":56,"value":1033}," for scalars, ",{"type":50,"tag":197,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":56,"value":1039},"\u002F[]",{"type":56,"value":1041}," for arrays, ",{"type":50,"tag":197,"props":1043,"children":1045},{"className":1044},[],[1046],{"type":56,"value":1047},"\u002F*",{"type":56,"value":1049}," terminal-only)",{"type":50,"tag":81,"props":1051,"children":1052},{},[1053,1059],{"type":50,"tag":487,"props":1054,"children":1056},{"href":1055},"rules\u002Findex-exclude-unused.md",[1057],{"type":56,"value":1058},"index-exclude-unused",{"type":56,"value":1060}," - Exclude paths never queried",{"type":50,"tag":81,"props":1062,"children":1063},{},[1064,1070],{"type":50,"tag":487,"props":1065,"children":1067},{"href":1066},"rules\u002Findex-composite.md",[1068],{"type":56,"value":1069},"index-composite",{"type":56,"value":1071}," - Use composite indexes for ORDER BY",{"type":50,"tag":81,"props":1073,"children":1074},{},[1075,1081],{"type":50,"tag":487,"props":1076,"children":1078},{"href":1077},"rules\u002Findex-composite-direction.md",[1079],{"type":56,"value":1080},"index-composite-direction",{"type":56,"value":1082}," - Match composite index directions to ORDER BY",{"type":50,"tag":81,"props":1084,"children":1085},{},[1086,1092],{"type":50,"tag":487,"props":1087,"children":1089},{"href":1088},"rules\u002Findex-spatial.md",[1090],{"type":56,"value":1091},"index-spatial",{"type":56,"value":1093}," - Add spatial indexes for geo queries",{"type":50,"tag":81,"props":1095,"children":1096},{},[1097,1103],{"type":50,"tag":487,"props":1098,"children":1100},{"href":1099},"rules\u002Findex-range-vs-hash.md",[1101],{"type":56,"value":1102},"index-range-vs-hash",{"type":56,"value":1104}," - Choose appropriate index types",{"type":50,"tag":81,"props":1106,"children":1107},{},[1108,1114],{"type":50,"tag":487,"props":1109,"children":1111},{"href":1110},"rules\u002Findex-lazy-consistent.md",[1112],{"type":56,"value":1113},"index-lazy-consistent",{"type":56,"value":1115}," - Understand indexing modes",{"type":50,"tag":474,"props":1117,"children":1119},{"id":1118},"_6-throughput-scaling-medium",[1120],{"type":56,"value":1121},"6. Throughput & Scaling (MEDIUM)",{"type":50,"tag":77,"props":1123,"children":1124},{},[1125,1136,1147,1158,1169],{"type":50,"tag":81,"props":1126,"children":1127},{},[1128,1134],{"type":50,"tag":487,"props":1129,"children":1131},{"href":1130},"rules\u002Fthroughput-autoscale.md",[1132],{"type":56,"value":1133},"throughput-autoscale",{"type":56,"value":1135}," - Use autoscale for variable workloads",{"type":50,"tag":81,"props":1137,"children":1138},{},[1139,1145],{"type":50,"tag":487,"props":1140,"children":1142},{"href":1141},"rules\u002Fthroughput-right-size.md",[1143],{"type":56,"value":1144},"throughput-right-size",{"type":56,"value":1146}," - Right-size provisioned throughput",{"type":50,"tag":81,"props":1148,"children":1149},{},[1150,1156],{"type":50,"tag":487,"props":1151,"children":1153},{"href":1152},"rules\u002Fthroughput-serverless.md",[1154],{"type":56,"value":1155},"throughput-serverless",{"type":56,"value":1157}," - Consider serverless for dev\u002Ftest",{"type":50,"tag":81,"props":1159,"children":1160},{},[1161,1167],{"type":50,"tag":487,"props":1162,"children":1164},{"href":1163},"rules\u002Fthroughput-burst.md",[1165],{"type":56,"value":1166},"throughput-burst",{"type":56,"value":1168}," - Understand burst capacity",{"type":50,"tag":81,"props":1170,"children":1171},{},[1172,1178],{"type":50,"tag":487,"props":1173,"children":1175},{"href":1174},"rules\u002Fthroughput-container-vs-database.md",[1176],{"type":56,"value":1177},"throughput-container-vs-database",{"type":56,"value":1179}," - Choose allocation level wisely",{"type":50,"tag":474,"props":1181,"children":1183},{"id":1182},"_7-global-distribution-medium",[1184],{"type":56,"value":1185},"7. Global Distribution (MEDIUM)",{"type":50,"tag":77,"props":1187,"children":1188},{},[1189,1200,1211,1222,1233,1244],{"type":50,"tag":81,"props":1190,"children":1191},{},[1192,1198],{"type":50,"tag":487,"props":1193,"children":1195},{"href":1194},"rules\u002Fglobal-multi-region.md",[1196],{"type":56,"value":1197},"global-multi-region",{"type":56,"value":1199}," - Configure multi-region writes",{"type":50,"tag":81,"props":1201,"children":1202},{},[1203,1209],{"type":50,"tag":487,"props":1204,"children":1206},{"href":1205},"rules\u002Fglobal-consistency.md",[1207],{"type":56,"value":1208},"global-consistency",{"type":56,"value":1210}," - Choose appropriate consistency level",{"type":50,"tag":81,"props":1212,"children":1213},{},[1214,1220],{"type":50,"tag":487,"props":1215,"children":1217},{"href":1216},"rules\u002Fglobal-conflict-resolution.md",[1218],{"type":56,"value":1219},"global-conflict-resolution",{"type":56,"value":1221}," - Implement conflict resolution",{"type":50,"tag":81,"props":1223,"children":1224},{},[1225,1231],{"type":50,"tag":487,"props":1226,"children":1228},{"href":1227},"rules\u002Fglobal-failover.md",[1229],{"type":56,"value":1230},"global-failover",{"type":56,"value":1232}," - Configure automatic failover",{"type":50,"tag":81,"props":1234,"children":1235},{},[1236,1242],{"type":50,"tag":487,"props":1237,"children":1239},{"href":1238},"rules\u002Fglobal-read-regions.md",[1240],{"type":56,"value":1241},"global-read-regions",{"type":56,"value":1243}," - Add read regions near users",{"type":50,"tag":81,"props":1245,"children":1246},{},[1247,1253],{"type":50,"tag":487,"props":1248,"children":1250},{"href":1249},"rules\u002Fglobal-zone-redundancy.md",[1251],{"type":56,"value":1252},"global-zone-redundancy",{"type":56,"value":1254}," - Enable zone redundancy for HA",{"type":50,"tag":474,"props":1256,"children":1258},{"id":1257},"_8-monitoring-diagnostics-low-medium",[1259],{"type":56,"value":1260},"8. Monitoring & Diagnostics (LOW-MEDIUM)",{"type":50,"tag":77,"props":1262,"children":1263},{},[1264,1275,1286,1297,1308],{"type":50,"tag":81,"props":1265,"children":1266},{},[1267,1273],{"type":50,"tag":487,"props":1268,"children":1270},{"href":1269},"rules\u002Fmonitoring-ru-consumption.md",[1271],{"type":56,"value":1272},"monitoring-ru-consumption",{"type":56,"value":1274}," - Track RU consumption",{"type":50,"tag":81,"props":1276,"children":1277},{},[1278,1284],{"type":50,"tag":487,"props":1279,"children":1281},{"href":1280},"rules\u002Fmonitoring-latency.md",[1282],{"type":56,"value":1283},"monitoring-latency",{"type":56,"value":1285}," - Monitor P99 latency",{"type":50,"tag":81,"props":1287,"children":1288},{},[1289,1295],{"type":50,"tag":487,"props":1290,"children":1292},{"href":1291},"rules\u002Fmonitoring-throttling.md",[1293],{"type":56,"value":1294},"monitoring-throttling",{"type":56,"value":1296}," - Alert on throttling",{"type":50,"tag":81,"props":1298,"children":1299},{},[1300,1306],{"type":50,"tag":487,"props":1301,"children":1303},{"href":1302},"rules\u002Fmonitoring-azure-monitor.md",[1304],{"type":56,"value":1305},"monitoring-azure-monitor",{"type":56,"value":1307}," - Integrate Azure Monitor",{"type":50,"tag":81,"props":1309,"children":1310},{},[1311,1317],{"type":50,"tag":487,"props":1312,"children":1314},{"href":1313},"rules\u002Fmonitoring-diagnostic-logs.md",[1315],{"type":56,"value":1316},"monitoring-diagnostic-logs",{"type":56,"value":1318}," - Enable diagnostic logging",{"type":50,"tag":474,"props":1320,"children":1322},{"id":1321},"_9-design-patterns-high",[1323],{"type":56,"value":1324},"9. Design Patterns (HIGH)",{"type":50,"tag":77,"props":1326,"children":1327},{},[1328,1339,1350],{"type":50,"tag":81,"props":1329,"children":1330},{},[1331,1337],{"type":50,"tag":487,"props":1332,"children":1334},{"href":1333},"rules\u002Fpattern-change-feed-materialized-views.md",[1335],{"type":56,"value":1336},"pattern-change-feed-materialized-views",{"type":56,"value":1338}," - Use Change Feed for cross-partition query optimization",{"type":50,"tag":81,"props":1340,"children":1341},{},[1342,1348],{"type":50,"tag":487,"props":1343,"children":1345},{"href":1344},"rules\u002Fpattern-efficient-ranking.md",[1346],{"type":56,"value":1347},"pattern-efficient-ranking",{"type":56,"value":1349}," - Use count-based or cached approaches for efficient ranking",{"type":50,"tag":81,"props":1351,"children":1352},{},[1353,1359],{"type":50,"tag":487,"props":1354,"children":1356},{"href":1355},"rules\u002Fpattern-service-layer-relationships.md",[1357],{"type":56,"value":1358},"pattern-service-layer-relationships",{"type":56,"value":1360}," - Use a service layer to hydrate document references",{"type":50,"tag":474,"props":1362,"children":1364},{"id":1363},"_10-developer-tooling-medium",[1365],{"type":56,"value":1366},"10. Developer Tooling (MEDIUM)",{"type":50,"tag":77,"props":1368,"children":1369},{},[1370,1381],{"type":50,"tag":81,"props":1371,"children":1372},{},[1373,1379],{"type":50,"tag":487,"props":1374,"children":1376},{"href":1375},"rules\u002Ftooling-vscode-extension.md",[1377],{"type":56,"value":1378},"tooling-vscode-extension",{"type":56,"value":1380}," - Use the VS Code extension for routine inspection and management",{"type":50,"tag":81,"props":1382,"children":1383},{},[1384,1390],{"type":50,"tag":487,"props":1385,"children":1387},{"href":1386},"rules\u002Ftooling-emulator-setup.md",[1388],{"type":56,"value":1389},"tooling-emulator-setup",{"type":56,"value":1391}," - Use the Emulator for local development and testing",{"type":50,"tag":474,"props":1393,"children":1395},{"id":1394},"_11-vector-search-high",[1396],{"type":56,"value":1397},"11. Vector Search (HIGH)",{"type":50,"tag":77,"props":1399,"children":1400},{},[1401,1412,1423,1434,1445,1456],{"type":50,"tag":81,"props":1402,"children":1403},{},[1404,1410],{"type":50,"tag":487,"props":1405,"children":1407},{"href":1406},"rules\u002Fvector-enable-feature.md",[1408],{"type":56,"value":1409},"vector-enable-feature",{"type":56,"value":1411}," - Enable vector search on the account before using vector features",{"type":50,"tag":81,"props":1413,"children":1414},{},[1415,1421],{"type":50,"tag":487,"props":1416,"children":1418},{"href":1417},"rules\u002Fvector-embedding-policy.md",[1419],{"type":56,"value":1420},"vector-embedding-policy",{"type":56,"value":1422}," - Define vector embedding policy for vector properties",{"type":50,"tag":81,"props":1424,"children":1425},{},[1426,1432],{"type":50,"tag":487,"props":1427,"children":1429},{"href":1428},"rules\u002Fvector-index-type.md",[1430],{"type":56,"value":1431},"vector-index-type",{"type":56,"value":1433}," - Configure vector indexes in the indexing policy",{"type":50,"tag":81,"props":1435,"children":1436},{},[1437,1443],{"type":50,"tag":487,"props":1438,"children":1440},{"href":1439},"rules\u002Fvector-normalize-embeddings.md",[1441],{"type":56,"value":1442},"vector-normalize-embeddings",{"type":56,"value":1444}," - Normalize embeddings for cosine similarity",{"type":50,"tag":81,"props":1446,"children":1447},{},[1448,1454],{"type":50,"tag":487,"props":1449,"children":1451},{"href":1450},"rules\u002Fvector-distance-query.md",[1452],{"type":56,"value":1453},"vector-distance-query",{"type":56,"value":1455}," - Use VectorDistance for similarity search",{"type":50,"tag":81,"props":1457,"children":1458},{},[1459,1465],{"type":50,"tag":487,"props":1460,"children":1462},{"href":1461},"rules\u002Fvector-repository-pattern.md",[1463],{"type":56,"value":1464},"vector-repository-pattern",{"type":56,"value":1466}," - Implement a repository pattern for vector search",{"type":50,"tag":65,"props":1468,"children":1470},{"id":1469},"how-to-use",[1471],{"type":56,"value":1472},"How to Use",{"type":50,"tag":59,"props":1474,"children":1475},{},[1476],{"type":56,"value":1477},"Use the linked rule files above for detailed explanations and code examples. The links give the agent direct paths to the relevant guidance instead of relying on folder scanning or inferred filenames.",{"type":50,"tag":59,"props":1479,"children":1480},{},[1481],{"type":56,"value":1482},"Each rule file contains:",{"type":50,"tag":77,"props":1484,"children":1485},{},[1486,1491,1496,1501],{"type":50,"tag":81,"props":1487,"children":1488},{},[1489],{"type":56,"value":1490},"Brief explanation of why it matters",{"type":50,"tag":81,"props":1492,"children":1493},{},[1494],{"type":56,"value":1495},"Incorrect code example with explanation",{"type":50,"tag":81,"props":1497,"children":1498},{},[1499],{"type":56,"value":1500},"Correct code example with explanation",{"type":50,"tag":81,"props":1502,"children":1503},{},[1504],{"type":56,"value":1505},"Additional context and references",{"type":50,"tag":65,"props":1507,"children":1509},{"id":1508},"full-compiled-document",[1510],{"type":56,"value":1511},"Full Compiled Document",{"type":50,"tag":59,"props":1513,"children":1514},{},[1515,1517],{"type":56,"value":1516},"For the complete guide with all rules expanded: ",{"type":50,"tag":487,"props":1518,"children":1520},{"href":1519},"AGENTS.md",[1521],{"type":56,"value":1519},{"items":1523,"total":1532},[1524],{"slug":4,"name":4,"fn":5,"description":6,"org":1525,"tags":1526,"stars":28,"repoUrl":29,"updatedAt":30},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1527,1528,1529,1530,1531],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},1,{"items":1534,"total":1721},[1535,1557,1576,1597,1612,1629,1640,1653,1668,1683,1696,1709],{"slug":1536,"name":1536,"fn":1537,"description":1538,"org":1539,"tags":1540,"stars":1554,"repoUrl":1555,"updatedAt":1556},"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},[1541,1544,1547,1548,1551],{"name":1542,"slug":1543,"type":15},"Engineering","engineering",{"name":1545,"slug":1546,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1549,"slug":1550,"type":15},"Project Management","project-management",{"name":1552,"slug":1553,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1558,"name":1558,"fn":1559,"description":1560,"org":1561,"tags":1562,"stars":1573,"repoUrl":1574,"updatedAt":1575},"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},[1563,1566,1569,1570],{"name":1564,"slug":1565,"type":15},".NET","net",{"name":1567,"slug":1568,"type":15},"Agents","agents",{"name":17,"slug":18,"type":15},{"name":1571,"slug":1572,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1577,"name":1577,"fn":1578,"description":1579,"org":1580,"tags":1581,"stars":1573,"repoUrl":1574,"updatedAt":1596},"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},[1582,1585,1586,1589,1592,1593],{"name":1583,"slug":1584,"type":15},"Analytics","analytics",{"name":17,"slug":18,"type":15},{"name":1587,"slug":1588,"type":15},"Data Analysis","data-analysis",{"name":1590,"slug":1591,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":1594,"slug":1595,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1598,"name":1598,"fn":1599,"description":1600,"org":1601,"tags":1602,"stars":1573,"repoUrl":1574,"updatedAt":1611},"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},[1603,1606,1607,1608],{"name":1604,"slug":1605,"type":15},"AI Infrastructure","ai-infrastructure",{"name":17,"slug":18,"type":15},{"name":1590,"slug":1591,"type":15},{"name":1609,"slug":1610,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1613,"name":1613,"fn":1614,"description":1615,"org":1616,"tags":1617,"stars":1573,"repoUrl":1574,"updatedAt":1628},"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},[1618,1619,1622,1623,1624,1627],{"name":17,"slug":18,"type":15},{"name":1620,"slug":1621,"type":15},"Compliance","compliance",{"name":1571,"slug":1572,"type":15},{"name":9,"slug":8,"type":15},{"name":1625,"slug":1626,"type":15},"Python","python",{"name":1609,"slug":1610,"type":15},"2026-07-18T05:14:23.017504",{"slug":1630,"name":1630,"fn":1631,"description":1632,"org":1633,"tags":1634,"stars":1573,"repoUrl":1574,"updatedAt":1639},"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},[1635,1636,1637,1638],{"name":1583,"slug":1584,"type":15},{"name":17,"slug":18,"type":15},{"name":1571,"slug":1572,"type":15},{"name":1625,"slug":1626,"type":15},"2026-07-31T05:54:29.068751",{"slug":1641,"name":1641,"fn":1642,"description":1643,"org":1644,"tags":1645,"stars":1573,"repoUrl":1574,"updatedAt":1652},"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},[1646,1649,1650,1651],{"name":1647,"slug":1648,"type":15},"API Development","api-development",{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1625,"slug":1626,"type":15},"2026-07-18T05:14:16.988376",{"slug":1654,"name":1654,"fn":1655,"description":1656,"org":1657,"tags":1658,"stars":1573,"repoUrl":1574,"updatedAt":1667},"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},[1659,1660,1663,1666],{"name":17,"slug":18,"type":15},{"name":1661,"slug":1662,"type":15},"Computer Vision","computer-vision",{"name":1664,"slug":1665,"type":15},"Images","images",{"name":1625,"slug":1626,"type":15},"2026-07-18T05:14:18.007737",{"slug":1669,"name":1669,"fn":1670,"description":1671,"org":1672,"tags":1673,"stars":1573,"repoUrl":1574,"updatedAt":1682},"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},[1674,1675,1678,1681],{"name":17,"slug":18,"type":15},{"name":1676,"slug":1677,"type":15},"Configuration","configuration",{"name":1679,"slug":1680,"type":15},"Feature Flags","feature-flags",{"name":1590,"slug":1591,"type":15},"2026-07-03T16:32:01.278468",{"slug":1684,"name":1684,"fn":1685,"description":1686,"org":1687,"tags":1688,"stars":1573,"repoUrl":1574,"updatedAt":1695},"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},[1689,1690,1691,1692],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":23,"slug":24,"type":15},{"name":1693,"slug":1694,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1697,"name":1697,"fn":1685,"description":1698,"org":1699,"tags":1700,"stars":1573,"repoUrl":1574,"updatedAt":1708},"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},[1701,1702,1703,1704,1705],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":9,"slug":8,"type":15},{"name":23,"slug":24,"type":15},{"name":1706,"slug":1707,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1710,"name":1710,"fn":1711,"description":1712,"org":1713,"tags":1714,"stars":1573,"repoUrl":1574,"updatedAt":1720},"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},[1715,1716,1717,1718,1719],{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":1590,"slug":1591,"type":15},{"name":23,"slug":24,"type":15},"2026-05-13T06:14:17.582229",267]