TL;DR Built a .NET A2A demo to validate the triage pattern before deploying the Python system. If the shape only works in one stack, it is not a portable pattern. Teams is the ingest channel for this deployment, not a hard requirement. The bot posts to a channel-agnostic /ingress endpoint; any other ingest can do the same. Teams timeout budgets forced a full async reply architecture. Adaptive card size limits forced progressive disclosure: compact badge up front, everything else behind toggles. RSC permissions only activate on manifest install, not Entra consent alone. Getting that order wrong costs you a 403 and a bug you cannot reproduce. Containerization was table stakes. The real work was auth, telemetry, storage, and making every platform permission explicit. Part 2 covered the runtime failures and the hardening work that followed. This post is about the next step: productionization. Once the system was capable of producing credible triage results repeatedly, the question changed again.…