[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-integration-testing-discipline":3,"mdc-zd93c7-key":33,"related-repo-microsoft-integration-testing-discipline":434,"related-org-microsoft-integration-testing-discipline":478},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"integration-testing-discipline","follow E2E testing discipline","4 principles for E2E testing discipline — observe first, fix in batches, expect long durations, check container state directly. NO FIXES DURING OBSERVATION RUNS.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19],{"name":13,"slug":14,"type":15},"E2E Testing","e2e-testing","tag",{"name":17,"slug":18,"type":15},"QA","qa",{"name":20,"slug":21,"type":15},"Testing","testing",3,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-superpowers","2026-04-06T18:38:12.870937",null,8,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"Superpowers bundle for the Amplifier project","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Famplifier-bundle-superpowers\u002Ftree\u002FHEAD\u002Fskills\u002Fintegration-testing-discipline","---\nname: integration-testing-discipline\ndescription: \"4 principles for E2E testing discipline — observe first, fix in batches, expect long durations, check container state directly. NO FIXES DURING OBSERVATION RUNS.\"\n---\n\n# Integration Testing Discipline\n\n## The Core Principle\n\n```\nOBSERVE FIRST. FIX IN BATCHES. NEVER FIX DURING ACTIVE E2E RUNS.\n```\n\nWhen running integration tests or E2E validation, your job is to CAPTURE ALL failures first, then fix them systematically. Making code changes during a running test invalidates that test run.\n\n## The Four Principles\n\n### Principle 1: Don't Fix During Observation Runs\n\n**DO:** Let the E2E run complete (or fail with a real error), capture ALL failure points, then fix everything as a coordinated batch.\n\n**DON'T:** See one failure, fix it immediately, and continue the same E2E run.\n\n**Why:** Code changes during E2E runs invalidate the running test. You lose the ability to trust that run's results.\n\n**Example:**\n```\n❌ WRONG:\n1. E2E run finds validation error\n2. Fix validation immediately  \n3. Continue same E2E run\n4. Find auth error\n5. Fix auth immediately\n6. Continue same E2E run\n→ Result: Can't trust this run's success\n\n✅ RIGHT:\n1. E2E run finds validation error — RECORD IT\n2. E2E run finds auth error — RECORD IT  \n3. E2E run completes — STOP OBSERVING\n4. Fix validation AND auth as a batch\n5. Start fresh E2E run to validate fixes\n→ Result: Clean validation of coordinated fixes\n```\n\n### Principle 2: Long-Running Processes Are Normal\n\n**DO:** Check for actual error signals: non-zero exit codes, error messages in logs, process death, hung processes.\n\n**DON'T:** Declare \"stuck\" or \"failed\" based on wall clock time alone.\n\n**Expected Durations:**\n- Container setup: 60-90 seconds\n- Simple spec (1 endpoint): ~13 minutes  \n- Medium spec (4 CRUD endpoints): ~25 minutes\n- Complex spec (8+ endpoints): ~40 minutes\n- Each convergence iteration: 5-8 minutes\n\n**Example:**\n```\n❌ WRONG:\n\"Process has been running 20 minutes with no output — it's stuck\"\n\n✅ RIGHT:\n\"Process has been running 20 minutes. Checking:\n- Exit code: still running (0)\n- Error logs: none\n- New files: tracker.json updated 30s ago\n- Container: process alive, making progress\n→ Status: WORKING, not stuck\"\n```\n\n### Principle 3: Check Container State Directly\n\n**DO:** Use `docker exec` to check the container's internal state directly when monitoring seems inconsistent.\n\n**DON'T:** Trust API status or monitor reports when they contradict expected behavior.\n\n**Why:** Monitor APIs may lag behind container reality. Always verify directly.\n\n**Example:**\n```\n❌ WRONG:\n\"API shows no progress for 10 minutes — declaring failure\"\n\n✅ RIGHT:\n\"API shows no progress. Checking container directly:\n$ docker exec container-name ls -la \u002Fworkspace\u002F\n$ docker exec container-name cat tracker.json  \n$ docker exec container-name ps aux\n→ Found: New files created 2 min ago, process active\n→ Status: API lag, not failure\"\n```\n\n### Principle 4: One Run, All Errors\n\n**DO:** Let each run discover its full set of failures, then address them in dependency order.\n\n**DON'T:** Fix errors one-by-one across multiple runs when you could batch them.\n\n**Why:** Many failures have dependency relationships. Fixing in random order creates thrashing.\n\n**Example:**\n```\n❌ WRONG:\nRun 1: Find validation error → fix → new run\nRun 2: Find auth error → fix → new run  \nRun 3: Find storage error → fix → new run\n→ Result: 3 full E2E cycles for related issues\n\n✅ RIGHT:\nRun 1: Find validation + auth + storage errors → RECORD ALL\nFix: Address validation first (dependency), then auth, then storage\nRun 2: Validate all fixes together\n→ Result: 1 observation run + 1 validation run\n```\n\n## When to Apply\n\nUse this discipline for ANY integration testing scenario:\n\n- E2E recipe validation\n- Multi-service integration tests\n- Container-based testing workflows  \n- Cross-repo change validation\n- Production deployment validation\n\nUse ESPECIALLY when under time pressure — the temptation to \"quick fix\" during observation runs is highest when deadlines loom, but disciplined observation is fastest.\n\n## Red Flags — Return to Observation Mode\n\nIf you catch yourself thinking:\n- \"Just fix this one thing and continue the run\"\n- \"Quick patch while the E2E is running\"  \n- \"I'll fix this now and the rest later\"\n- \"This failure is blocking — fix immediately\"\n- \"We're so close, just one more fix\"\n\nALL of these mean: STOP fixing. Return to pure observation mode.\n\n## Impact\n\n- Disciplined approach: 1 observation run + 1 validation run = ~50 minutes total\n- Fix-during-run approach: 6+ interrupted runs = 3+ hours total  \n- Success rate: 95% vs 60%\n- Stress level: Manageable vs high",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,46,53,66,72,78,85,96,106,116,124,133,139,148,157,165,195,202,211,217,234,243,252,259,268,274,283,292,301,308,317,323,328,356,361,367,372,400,405,411],{"type":39,"tag":40,"props":41,"children":42},"element","h1",{"id":4},[43],{"type":44,"value":45},"text","Integration Testing Discipline",{"type":39,"tag":47,"props":48,"children":50},"h2",{"id":49},"the-core-principle",[51],{"type":44,"value":52},"The Core Principle",{"type":39,"tag":54,"props":55,"children":59},"pre",{"className":56,"code":58,"language":44},[57],"language-text","OBSERVE FIRST. FIX IN BATCHES. NEVER FIX DURING ACTIVE E2E RUNS.\n",[60],{"type":39,"tag":61,"props":62,"children":64},"code",{"__ignoreMap":63},"",[65],{"type":44,"value":58},{"type":39,"tag":67,"props":68,"children":69},"p",{},[70],{"type":44,"value":71},"When running integration tests or E2E validation, your job is to CAPTURE ALL failures first, then fix them systematically. Making code changes during a running test invalidates that test run.",{"type":39,"tag":47,"props":73,"children":75},{"id":74},"the-four-principles",[76],{"type":44,"value":77},"The Four Principles",{"type":39,"tag":79,"props":80,"children":82},"h3",{"id":81},"principle-1-dont-fix-during-observation-runs",[83],{"type":44,"value":84},"Principle 1: Don't Fix During Observation Runs",{"type":39,"tag":67,"props":86,"children":87},{},[88,94],{"type":39,"tag":89,"props":90,"children":91},"strong",{},[92],{"type":44,"value":93},"DO:",{"type":44,"value":95}," Let the E2E run complete (or fail with a real error), capture ALL failure points, then fix everything as a coordinated batch.",{"type":39,"tag":67,"props":97,"children":98},{},[99,104],{"type":39,"tag":89,"props":100,"children":101},{},[102],{"type":44,"value":103},"DON'T:",{"type":44,"value":105}," See one failure, fix it immediately, and continue the same E2E run.",{"type":39,"tag":67,"props":107,"children":108},{},[109,114],{"type":39,"tag":89,"props":110,"children":111},{},[112],{"type":44,"value":113},"Why:",{"type":44,"value":115}," Code changes during E2E runs invalidate the running test. You lose the ability to trust that run's results.",{"type":39,"tag":67,"props":117,"children":118},{},[119],{"type":39,"tag":89,"props":120,"children":121},{},[122],{"type":44,"value":123},"Example:",{"type":39,"tag":54,"props":125,"children":128},{"className":126,"code":127,"language":44},[57],"❌ WRONG:\n1. E2E run finds validation error\n2. Fix validation immediately  \n3. Continue same E2E run\n4. Find auth error\n5. Fix auth immediately\n6. Continue same E2E run\n→ Result: Can't trust this run's success\n\n✅ RIGHT:\n1. E2E run finds validation error — RECORD IT\n2. E2E run finds auth error — RECORD IT  \n3. E2E run completes — STOP OBSERVING\n4. Fix validation AND auth as a batch\n5. Start fresh E2E run to validate fixes\n→ Result: Clean validation of coordinated fixes\n",[129],{"type":39,"tag":61,"props":130,"children":131},{"__ignoreMap":63},[132],{"type":44,"value":127},{"type":39,"tag":79,"props":134,"children":136},{"id":135},"principle-2-long-running-processes-are-normal",[137],{"type":44,"value":138},"Principle 2: Long-Running Processes Are Normal",{"type":39,"tag":67,"props":140,"children":141},{},[142,146],{"type":39,"tag":89,"props":143,"children":144},{},[145],{"type":44,"value":93},{"type":44,"value":147}," Check for actual error signals: non-zero exit codes, error messages in logs, process death, hung processes.",{"type":39,"tag":67,"props":149,"children":150},{},[151,155],{"type":39,"tag":89,"props":152,"children":153},{},[154],{"type":44,"value":103},{"type":44,"value":156}," Declare \"stuck\" or \"failed\" based on wall clock time alone.",{"type":39,"tag":67,"props":158,"children":159},{},[160],{"type":39,"tag":89,"props":161,"children":162},{},[163],{"type":44,"value":164},"Expected Durations:",{"type":39,"tag":166,"props":167,"children":168},"ul",{},[169,175,180,185,190],{"type":39,"tag":170,"props":171,"children":172},"li",{},[173],{"type":44,"value":174},"Container setup: 60-90 seconds",{"type":39,"tag":170,"props":176,"children":177},{},[178],{"type":44,"value":179},"Simple spec (1 endpoint): ~13 minutes",{"type":39,"tag":170,"props":181,"children":182},{},[183],{"type":44,"value":184},"Medium spec (4 CRUD endpoints): ~25 minutes",{"type":39,"tag":170,"props":186,"children":187},{},[188],{"type":44,"value":189},"Complex spec (8+ endpoints): ~40 minutes",{"type":39,"tag":170,"props":191,"children":192},{},[193],{"type":44,"value":194},"Each convergence iteration: 5-8 minutes",{"type":39,"tag":67,"props":196,"children":197},{},[198],{"type":39,"tag":89,"props":199,"children":200},{},[201],{"type":44,"value":123},{"type":39,"tag":54,"props":203,"children":206},{"className":204,"code":205,"language":44},[57],"❌ WRONG:\n\"Process has been running 20 minutes with no output — it's stuck\"\n\n✅ RIGHT:\n\"Process has been running 20 minutes. Checking:\n- Exit code: still running (0)\n- Error logs: none\n- New files: tracker.json updated 30s ago\n- Container: process alive, making progress\n→ Status: WORKING, not stuck\"\n",[207],{"type":39,"tag":61,"props":208,"children":209},{"__ignoreMap":63},[210],{"type":44,"value":205},{"type":39,"tag":79,"props":212,"children":214},{"id":213},"principle-3-check-container-state-directly",[215],{"type":44,"value":216},"Principle 3: Check Container State Directly",{"type":39,"tag":67,"props":218,"children":219},{},[220,224,226,232],{"type":39,"tag":89,"props":221,"children":222},{},[223],{"type":44,"value":93},{"type":44,"value":225}," Use ",{"type":39,"tag":61,"props":227,"children":229},{"className":228},[],[230],{"type":44,"value":231},"docker exec",{"type":44,"value":233}," to check the container's internal state directly when monitoring seems inconsistent.",{"type":39,"tag":67,"props":235,"children":236},{},[237,241],{"type":39,"tag":89,"props":238,"children":239},{},[240],{"type":44,"value":103},{"type":44,"value":242}," Trust API status or monitor reports when they contradict expected behavior.",{"type":39,"tag":67,"props":244,"children":245},{},[246,250],{"type":39,"tag":89,"props":247,"children":248},{},[249],{"type":44,"value":113},{"type":44,"value":251}," Monitor APIs may lag behind container reality. Always verify directly.",{"type":39,"tag":67,"props":253,"children":254},{},[255],{"type":39,"tag":89,"props":256,"children":257},{},[258],{"type":44,"value":123},{"type":39,"tag":54,"props":260,"children":263},{"className":261,"code":262,"language":44},[57],"❌ WRONG:\n\"API shows no progress for 10 minutes — declaring failure\"\n\n✅ RIGHT:\n\"API shows no progress. Checking container directly:\n$ docker exec container-name ls -la \u002Fworkspace\u002F\n$ docker exec container-name cat tracker.json  \n$ docker exec container-name ps aux\n→ Found: New files created 2 min ago, process active\n→ Status: API lag, not failure\"\n",[264],{"type":39,"tag":61,"props":265,"children":266},{"__ignoreMap":63},[267],{"type":44,"value":262},{"type":39,"tag":79,"props":269,"children":271},{"id":270},"principle-4-one-run-all-errors",[272],{"type":44,"value":273},"Principle 4: One Run, All Errors",{"type":39,"tag":67,"props":275,"children":276},{},[277,281],{"type":39,"tag":89,"props":278,"children":279},{},[280],{"type":44,"value":93},{"type":44,"value":282}," Let each run discover its full set of failures, then address them in dependency order.",{"type":39,"tag":67,"props":284,"children":285},{},[286,290],{"type":39,"tag":89,"props":287,"children":288},{},[289],{"type":44,"value":103},{"type":44,"value":291}," Fix errors one-by-one across multiple runs when you could batch them.",{"type":39,"tag":67,"props":293,"children":294},{},[295,299],{"type":39,"tag":89,"props":296,"children":297},{},[298],{"type":44,"value":113},{"type":44,"value":300}," Many failures have dependency relationships. Fixing in random order creates thrashing.",{"type":39,"tag":67,"props":302,"children":303},{},[304],{"type":39,"tag":89,"props":305,"children":306},{},[307],{"type":44,"value":123},{"type":39,"tag":54,"props":309,"children":312},{"className":310,"code":311,"language":44},[57],"❌ WRONG:\nRun 1: Find validation error → fix → new run\nRun 2: Find auth error → fix → new run  \nRun 3: Find storage error → fix → new run\n→ Result: 3 full E2E cycles for related issues\n\n✅ RIGHT:\nRun 1: Find validation + auth + storage errors → RECORD ALL\nFix: Address validation first (dependency), then auth, then storage\nRun 2: Validate all fixes together\n→ Result: 1 observation run + 1 validation run\n",[313],{"type":39,"tag":61,"props":314,"children":315},{"__ignoreMap":63},[316],{"type":44,"value":311},{"type":39,"tag":47,"props":318,"children":320},{"id":319},"when-to-apply",[321],{"type":44,"value":322},"When to Apply",{"type":39,"tag":67,"props":324,"children":325},{},[326],{"type":44,"value":327},"Use this discipline for ANY integration testing scenario:",{"type":39,"tag":166,"props":329,"children":330},{},[331,336,341,346,351],{"type":39,"tag":170,"props":332,"children":333},{},[334],{"type":44,"value":335},"E2E recipe validation",{"type":39,"tag":170,"props":337,"children":338},{},[339],{"type":44,"value":340},"Multi-service integration tests",{"type":39,"tag":170,"props":342,"children":343},{},[344],{"type":44,"value":345},"Container-based testing workflows",{"type":39,"tag":170,"props":347,"children":348},{},[349],{"type":44,"value":350},"Cross-repo change validation",{"type":39,"tag":170,"props":352,"children":353},{},[354],{"type":44,"value":355},"Production deployment validation",{"type":39,"tag":67,"props":357,"children":358},{},[359],{"type":44,"value":360},"Use ESPECIALLY when under time pressure — the temptation to \"quick fix\" during observation runs is highest when deadlines loom, but disciplined observation is fastest.",{"type":39,"tag":47,"props":362,"children":364},{"id":363},"red-flags-return-to-observation-mode",[365],{"type":44,"value":366},"Red Flags — Return to Observation Mode",{"type":39,"tag":67,"props":368,"children":369},{},[370],{"type":44,"value":371},"If you catch yourself thinking:",{"type":39,"tag":166,"props":373,"children":374},{},[375,380,385,390,395],{"type":39,"tag":170,"props":376,"children":377},{},[378],{"type":44,"value":379},"\"Just fix this one thing and continue the run\"",{"type":39,"tag":170,"props":381,"children":382},{},[383],{"type":44,"value":384},"\"Quick patch while the E2E is running\"",{"type":39,"tag":170,"props":386,"children":387},{},[388],{"type":44,"value":389},"\"I'll fix this now and the rest later\"",{"type":39,"tag":170,"props":391,"children":392},{},[393],{"type":44,"value":394},"\"This failure is blocking — fix immediately\"",{"type":39,"tag":170,"props":396,"children":397},{},[398],{"type":44,"value":399},"\"We're so close, just one more fix\"",{"type":39,"tag":67,"props":401,"children":402},{},[403],{"type":44,"value":404},"ALL of these mean: STOP fixing. Return to pure observation mode.",{"type":39,"tag":47,"props":406,"children":408},{"id":407},"impact",[409],{"type":44,"value":410},"Impact",{"type":39,"tag":166,"props":412,"children":413},{},[414,419,424,429],{"type":39,"tag":170,"props":415,"children":416},{},[417],{"type":44,"value":418},"Disciplined approach: 1 observation run + 1 validation run = ~50 minutes total",{"type":39,"tag":170,"props":420,"children":421},{},[422],{"type":44,"value":423},"Fix-during-run approach: 6+ interrupted runs = 3+ hours total",{"type":39,"tag":170,"props":425,"children":426},{},[427],{"type":44,"value":428},"Success rate: 95% vs 60%",{"type":39,"tag":170,"props":430,"children":431},{},[432],{"type":44,"value":433},"Stress level: Manageable vs high",{"items":435,"total":22},[436,442,464],{"slug":4,"name":4,"fn":5,"description":6,"org":437,"tags":438,"stars":22,"repoUrl":23,"updatedAt":24},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[439,440,441],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":20,"slug":21,"type":15},{"slug":443,"name":443,"fn":444,"description":445,"org":446,"tags":447,"stars":22,"repoUrl":23,"updatedAt":463},"sdd-walkthrough","orchestrate subagent-driven development sessions","Use when about to orchestrate a subagent-driven-development execute-plan session — provides 5 realistic task scenarios with Amplifier delegate() patterns, model_role selection, status handling (DONE, DONE_WITH_CONCERNS, NEEDS_CONTEXT), and fix loops for spec and quality issues",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[448,451,454,457,460],{"name":449,"slug":450,"type":15},"Agents","agents",{"name":452,"slug":453,"type":15},"Amplifier","amplifier",{"name":455,"slug":456,"type":15},"Engineering","engineering",{"name":458,"slug":459,"type":15},"Multi-Agent","multi-agent",{"name":461,"slug":462,"type":15},"Workflow Automation","workflow-automation","2026-04-07T19:00:24.572734",{"slug":465,"name":465,"fn":466,"description":467,"org":468,"tags":469,"stars":22,"repoUrl":23,"updatedAt":477},"superpowers-reference","look up Superpowers modes and patterns","Complete reference tables for Superpowers modes, agents, recipes, and anti-patterns",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[470,473,474],{"name":471,"slug":472,"type":15},"Agent Context","agent-context",{"name":449,"slug":450,"type":15},{"name":475,"slug":476,"type":15},"Reference","reference","2026-04-06T18:38:11.499321",{"items":479,"total":670},[480,500,519,540,555,572,583,596,611,626,645,658],{"slug":481,"name":481,"fn":482,"description":483,"org":484,"tags":485,"stars":497,"repoUrl":498,"updatedAt":499},"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},[486,487,490,491,494],{"name":455,"slug":456,"type":15},{"name":488,"slug":489,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":492,"slug":493,"type":15},"Project Management","project-management",{"name":495,"slug":496,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":501,"name":501,"fn":502,"description":503,"org":504,"tags":505,"stars":516,"repoUrl":517,"updatedAt":518},"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},[506,509,510,513],{"name":507,"slug":508,"type":15},".NET","net",{"name":449,"slug":450,"type":15},{"name":511,"slug":512,"type":15},"Azure","azure",{"name":514,"slug":515,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":520,"name":520,"fn":521,"description":522,"org":523,"tags":524,"stars":516,"repoUrl":517,"updatedAt":539},"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},[525,528,529,532,535,536],{"name":526,"slug":527,"type":15},"Analytics","analytics",{"name":511,"slug":512,"type":15},{"name":530,"slug":531,"type":15},"Data Analysis","data-analysis",{"name":533,"slug":534,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":537,"slug":538,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":541,"name":541,"fn":542,"description":543,"org":544,"tags":545,"stars":516,"repoUrl":517,"updatedAt":554},"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},[546,549,550,551],{"name":547,"slug":548,"type":15},"AI Infrastructure","ai-infrastructure",{"name":511,"slug":512,"type":15},{"name":533,"slug":534,"type":15},{"name":552,"slug":553,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":556,"name":556,"fn":557,"description":558,"org":559,"tags":560,"stars":516,"repoUrl":517,"updatedAt":571},"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},[561,562,565,566,567,570],{"name":511,"slug":512,"type":15},{"name":563,"slug":564,"type":15},"Compliance","compliance",{"name":514,"slug":515,"type":15},{"name":9,"slug":8,"type":15},{"name":568,"slug":569,"type":15},"Python","python",{"name":552,"slug":553,"type":15},"2026-07-18T05:14:23.017504",{"slug":573,"name":573,"fn":574,"description":575,"org":576,"tags":577,"stars":516,"repoUrl":517,"updatedAt":582},"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},[578,579,580,581],{"name":526,"slug":527,"type":15},{"name":511,"slug":512,"type":15},{"name":514,"slug":515,"type":15},{"name":568,"slug":569,"type":15},"2026-07-31T05:54:29.068751",{"slug":584,"name":584,"fn":585,"description":586,"org":587,"tags":588,"stars":516,"repoUrl":517,"updatedAt":595},"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},[589,592,593,594],{"name":590,"slug":591,"type":15},"API Development","api-development",{"name":511,"slug":512,"type":15},{"name":9,"slug":8,"type":15},{"name":568,"slug":569,"type":15},"2026-07-18T05:14:16.988376",{"slug":597,"name":597,"fn":598,"description":599,"org":600,"tags":601,"stars":516,"repoUrl":517,"updatedAt":610},"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},[602,603,606,609],{"name":511,"slug":512,"type":15},{"name":604,"slug":605,"type":15},"Computer Vision","computer-vision",{"name":607,"slug":608,"type":15},"Images","images",{"name":568,"slug":569,"type":15},"2026-07-18T05:14:18.007737",{"slug":612,"name":612,"fn":613,"description":614,"org":615,"tags":616,"stars":516,"repoUrl":517,"updatedAt":625},"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},[617,618,621,624],{"name":511,"slug":512,"type":15},{"name":619,"slug":620,"type":15},"Configuration","configuration",{"name":622,"slug":623,"type":15},"Feature Flags","feature-flags",{"name":533,"slug":534,"type":15},"2026-07-03T16:32:01.278468",{"slug":627,"name":627,"fn":628,"description":629,"org":630,"tags":631,"stars":516,"repoUrl":517,"updatedAt":644},"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},[632,635,638,641],{"name":633,"slug":634,"type":15},"Cosmos DB","cosmos-db",{"name":636,"slug":637,"type":15},"Database","database",{"name":639,"slug":640,"type":15},"NoSQL","nosql",{"name":642,"slug":643,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":646,"name":646,"fn":628,"description":647,"org":648,"tags":649,"stars":516,"repoUrl":517,"updatedAt":657},"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},[650,651,652,653,654],{"name":633,"slug":634,"type":15},{"name":636,"slug":637,"type":15},{"name":9,"slug":8,"type":15},{"name":639,"slug":640,"type":15},{"name":655,"slug":656,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":659,"name":659,"fn":660,"description":661,"org":662,"tags":663,"stars":516,"repoUrl":517,"updatedAt":669},"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},[664,665,666,667,668],{"name":511,"slug":512,"type":15},{"name":633,"slug":634,"type":15},{"name":636,"slug":637,"type":15},{"name":533,"slug":534,"type":15},{"name":639,"slug":640,"type":15},"2026-05-13T06:14:17.582229",267]