You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Pass equity" measures whether a developer gets an equally good AI-assisted experience regardless of which Azure compute service they choose. Today, the experience is uneven — Azure Functions gets deep investment across most lifecycle phases while Container Apps and App Service have significant gaps.
⚠️ Starting Assessment & Proposal — This is an initial assessment based on automated skill auditing and prior research (session 8fc96f69, March 25 2026). Each PR proposal below is a starting point. We will leverage collaboration from each service/domain expert to modify or contribute what they believe is essential. The grades and gap analysis reflect current skill file coverage, not platform capability.
Overall Grades (A–F scale)
Lifecycle Phase
App Service
Container Apps
Azure Functions
Equity Gap
Develop (scaffold, code gen)
C
C
A
🔴 High
Deploy (IaC, provisioning)
A
A
A
🟢 Equitable
Operate (config, scaling, day-2)
B+
C
B
🟡 Medium
Diagnose (troubleshoot, logs)
B
B+
B
🟡 Medium
Migrate (cross-cloud)
F
F
A
🔴 Critical
Observe (monitoring, APM)
A-
B
B
🟡 Medium
Secure (RBAC, compliance)
A
A
A
🟢 Equitable
Overall
B-
C+
A-
Pass Equity Score: 62% — 11 cells below A across 5 lifecycle phases
Gap Specifications — One Sub-Issue Per Equity Gap
Each gap below is tracked as a linked sub-issue with detailed specifications. Actual Pull Requests implementing the fix will reference the sub-issue they close.
Each sub-issue describes: the current gap, what "A grade" looks like (learned from the highest-scoring service), the specific deliverables, and key scenarios informed by Azure Learn docs and MCP tool capabilities.
Current state: 4 reference files (README, bicep, scaling, deployment-slots). No code generation, no app templates, no multi-language scaffolding.
What "A" looks like for App Service:
App Service's key scenarios differ from Functions — they're long-running web apps and APIs, not event-driven functions. Templates should reflect this.
Deliverables:
services/app-service/templates/selection.md — Decision tree: Web API vs full-stack web app vs background worker (WebJobs)
Learning from: Functions (A) — composition algorithm with base + recipes
Current state: 5 reference files (README, bicep, scaling, health-probes, environment). No code generation, no container templates.
What "A" looks like for Container Apps:
Container Apps is a general-purpose serverless container platform that hosts any app stack and SDK at high scale. Key scenarios include high-scale serverless web apps, microservices with Dapr, background workers, and jobs. Event-driven processing (triggers, bindings) is best handled by Functions on Container Apps — bringing the Functions programming model into the Container Apps environment.
Deliverables:
services/container-apps/templates/selection.md — Decision tree: High-scale serverless web app vs microservices vs background worker vs job vs Functions-on-Container-Apps (event-driven)
Learning from: App Service (B+) — deployment slots docs cover the slot lifecycle well
Current state:azure-upgrade skill covers Consumption→Flex. Missing: slot management guidance for Premium/Dedicated, scaling best practices across hosting plans, cold start mitigation playbook.
Deliverables:
services/functions/hosting-plans.md — Comparison matrix: Consumption vs Flex Consumption vs Premium vs Dedicated vs Container Apps, with decision criteria
services/functions/cold-start.md — Cold start mitigation strategies per plan (pre-warmed instances, always-ready, Flex minimum instances)
services/functions/slots.md — Deployment slot usage for Premium/Dedicated plans, slot-sticky settings, swap best practices
Extend azure-upgrade to cover Premium→Flex, Dedicated→Flex paths
Add 1 integration test for Functions slot/swap scenario
Key scenarios:
Choosing the right hosting plan for workload characteristics
Eliminating cold starts for latency-sensitive workloads
Learning from: Container Apps (B+) — dedicated container-apps/README.md with specific troubleshooting flows for image pulls, cold starts, health probes
Current state: No dedicated App Service diagnostic reference. Falls back to general AppLens flow. Despite having the richest MCP tooling (7 commands), there's no guidance on when/how to use each.
Deliverables:
references/app-service/README.md in azure-diagnostics — Dedicated troubleshooting guide covering:
High CPU/memory diagnosis (with specific AppLens detectors)
Deployment failure analysis (Kudu logs, deployment history API)
Learning from: Container Apps (B+) — has both reference docs AND integration tests for diagnostics
Current state: Has dedicated functions/README.md reference with ARG queries for monitoring discovery. Missing: integration tests, trigger-specific troubleshooting, binding error diagnosis.
Learning from: App Service (A-) — has auto-instrumentation reference; Functions — has ARG query for monitoring discovery
Current state: Manual SDK instrumentation only. No auto-instrumentation. No monitoring discovery queries. No Container Apps-specific observability playbook.
Deliverables:
references/container-apps/observability.md in appinsights-instrumentation — Container Apps-specific guide:
Environment-level Log Analytics workspace setup
System logs vs application logs distinction
Container Apps metrics (replica count, HTTP requests, CPU/memory per replica)
Distributed tracing across microservices with Dapr
Scaling event correlation with performance metrics
Summary Table — All Gap Sub-Issues
Each row links to a sub-issue with full specifications. Implementation PRs will be opened against the pass-equity branch and will reference these issues.
Summary — Pass Equity Scorecard
"Pass equity" measures whether a developer gets an equally good AI-assisted experience regardless of which Azure compute service they choose. Today, the experience is uneven — Azure Functions gets deep investment across most lifecycle phases while Container Apps and App Service have significant gaps.
Overall Grades (A–F scale)
Pass Equity Score: 62% — 11 cells below A across 5 lifecycle phases
Gap Specifications — One Sub-Issue Per Equity Gap
Each gap below is tracked as a linked sub-issue with detailed specifications. Actual Pull Requests implementing the fix will reference the sub-issue they close.
Each sub-issue describes: the current gap, what "A grade" looks like (learned from the highest-scoring service), the specific deliverables, and key scenarios informed by Azure Learn docs and MCP tool capabilities.
Gap-1: App Service Develop (C → A)
Learning from: Functions (A) — 200+ template files, composition algorithm, 6 runtimes, 9 recipe integrations
Current state: 4 reference files (README, bicep, scaling, deployment-slots). No code generation, no app templates, no multi-language scaffolding.
What "A" looks like for App Service:
App Service's key scenarios differ from Functions — they're long-running web apps and APIs, not event-driven functions. Templates should reflect this.
Deliverables:
services/app-service/templates/selection.md— Decision tree: Web API vs full-stack web app vs background worker (WebJobs)services/app-service/templates/composition.md— Composition algorithm (base + database + auth + caching recipes)web-api.md(REST API),web-app.md(MVC/Razor/React SPA),worker.md(WebJobs/background)recipes/sql/— SQL Database integration with EF Core / SQLAlchemy / Prisma / JPArecipes/cosmos/— Cosmos DB integrationrecipes/redis/— Azure Cache for Redisrecipes/auth/— Entra ID / Easy Auth integrationrecipes/storage/— Blob Storage file handlingsource/dotnet.md,source/python.md,source/javascript.md,source/java.mdeval/summary.mdper recipeazure-preparerouting to load App Service templates for web app requestsKey scenarios (from Azure Learn):
Gap-2: Container Apps Develop (C → A)
Learning from: Functions (A) — composition algorithm with base + recipes
Current state: 5 reference files (README, bicep, scaling, health-probes, environment). No code generation, no container templates.
What "A" looks like for Container Apps:
Container Apps is a general-purpose serverless container platform that hosts any app stack and SDK at high scale. Key scenarios include high-scale serverless web apps, microservices with Dapr, background workers, and jobs. Event-driven processing (triggers, bindings) is best handled by Functions on Container Apps — bringing the Functions programming model into the Container Apps environment.
Deliverables:
services/container-apps/templates/selection.md— Decision tree: High-scale serverless web app vs microservices vs background worker vs job vs Functions-on-Container-Apps (event-driven)services/container-apps/templates/composition.md— Composition algorithm (base + sidecar + integration recipes)web-app.md— High-scale serverless web apps (any stack: Node.js, Python, .NET, Java, Go, Rust)api.md— REST/gRPC API services with ingress, auth, and scalingmicroservice.md— Multi-service architecture with service discoveryworker.md— Background processing / long-running tasksjob.md— Container Apps Jobs (scheduled, event-triggered, manual)functions-on-aca.md— Functions hosted on Container Apps (event-driven processing with triggers/bindings in container environment)recipes/dapr/— Dapr service invocation, state management, pub/subrecipes/cosmos/— Cosmos DB integrationrecipes/servicebus/— Service Bus integration with KEDA scalingrecipes/eventhubs/— Event Hub consumer with KEDA scalingrecipes/redis/— Redis state store / cacherecipes/acr/— ACR build + push + deploy workflowrecipes/postgres/— PostgreSQL Flexible Server integrationeval/summary.mdper recipeazure-preparerouting to load Container Apps templates for container/microservice/serverless web app requestsKey scenarios (from Azure Learn + domain input):
Gap-3: Container Apps Operate (C → A)
Learning from: App Service (B+) — deployment slots docs, scaling docs; Functions —
azure-upgradeskill with Consumption→Flex automationCurrent state: Scaling reference exists but no revision management guidance, no upgrade paths documented, no day-2 operations playbook.
Deliverables:
services/container-apps/revisions.md— Revision management, traffic splitting, rollback patternsservices/container-apps/day2-operations.md— Restart, exec into container, log streaming, environment variable updatesservices/container-apps/networking.md— VNet integration, internal/external ingress, custom domains, TLSservices/container-apps/upgrade-paths.md— Single revision → multiple revision mode, environment SKU changes, Consumption → Dedicatedazure-upgradeskill to support Container Apps scenarios (or document as out-of-scope with rationale)Key scenarios:
Gap-4: Functions Operate (B → A)
Learning from: App Service (B+) — deployment slots docs cover the slot lifecycle well
Current state:
azure-upgradeskill covers Consumption→Flex. Missing: slot management guidance for Premium/Dedicated, scaling best practices across hosting plans, cold start mitigation playbook.Deliverables:
services/functions/hosting-plans.md— Comparison matrix: Consumption vs Flex Consumption vs Premium vs Dedicated vs Container Apps, with decision criteriaservices/functions/cold-start.md— Cold start mitigation strategies per plan (pre-warmed instances, always-ready, Flex minimum instances)services/functions/slots.md— Deployment slot usage for Premium/Dedicated plans, slot-sticky settings, swap best practicesazure-upgradeto cover Premium→Flex, Dedicated→Flex pathsKey scenarios:
Gap-5: App Service Operate (B+ → A)
Learning from: Functions —
azure-upgradeskill with automated plan migrationCurrent state: Good deployment-slots and scaling references exist. Missing: automated upgrade path tooling, SKU right-sizing guidance, custom domain/TLS playbook.
Deliverables:
services/app-service/sku-selection.md— SKU comparison matrix (Free→Basic→Standard→Premium→Isolated) with decision criteria and right-sizing guidanceservices/app-service/custom-domains.md— Custom domain + TLS certificate configuration via Bicep/Terraformservices/app-service/networking.md— VNet integration, Private Endpoints, Access Restrictions, hybrid connectionsazure-upgradeskill with App Service SKU upgrade paths (Free→Standard, Standard→Premium, etc.)Key scenarios:
Gap-6: App Service Diagnose (B → A)
Learning from: Container Apps (B+) — dedicated
container-apps/README.mdwith specific troubleshooting flows for image pulls, cold starts, health probesCurrent state: No dedicated App Service diagnostic reference. Falls back to general AppLens flow. Despite having the richest MCP tooling (7 commands), there's no guidance on when/how to use each.
Deliverables:
references/app-service/README.mdinazure-diagnostics— Dedicated troubleshooting guide covering:Key scenarios:
Gap-7: Functions Diagnose (B → A)
Learning from: Container Apps (B+) — has both reference docs AND integration tests for diagnostics
Current state: Has dedicated
functions/README.mdreference with ARG queries for monitoring discovery. Missing: integration tests, trigger-specific troubleshooting, binding error diagnosis.Deliverables:
references/functions/README.mdwith:Key scenarios:
Gap-8: App Service Migrate — AWS Elastic Beanstalk → App Service (F → A)
Learning from: Functions Migrate (A) — 4-phase workflow (assess → migrate code → generate IaC → hand off), mandatory assessment report, 6 runtime guides, 12 service mappings
Current state: Zero coverage. No reference docs, no triggers, no tests.
Deliverables:
references/services/app-service/beanstalk-to-app-service.md— Full migration guide:.ebextensions/→ Bicep/App Settings conversionreferences/services/app-service/heroku-to-app-service.md— Heroku migration guide:references/services/app-service/app-engine-to-app-service.md— GAE migration guideruntimes/for Python, Node.js, Java, .NET (App Service specifics)azure-cloud-migrateSKILL.md for Beanstalk/Heroku/GAE keywordsKey service mappings:
.ebextensions/Gap-9: Container Apps Migrate — AWS ECS/Fargate + Cloud Run → Container Apps (F → A)
Learning from: Functions Migrate (A) — same 4-phase pattern, adapted for containers
Current state: Zero coverage. GCP mentioned in triggers only, no scenario guidance.
Deliverables:
references/services/container-apps/ecs-to-container-apps.md— Full migration guide:references/services/container-apps/cloud-run-to-container-apps.md— GCP migration guide:azure-cloud-migratefor ECS/Fargate/Cloud Run keywordsKey service mappings:
Gap-10: Container Apps Observe (B → A)
Learning from: App Service (A-) — has auto-instrumentation reference; Functions — has ARG query for monitoring discovery
Current state: Manual SDK instrumentation only. No auto-instrumentation. No monitoring discovery queries. No Container Apps-specific observability playbook.
Deliverables:
references/container-apps/observability.mdinappinsights-instrumentation— Container Apps-specific guide:references/container-apps/dapr-observability.md— Dapr telemetry collection, tracing configurationKey scenarios:
Gap-11: Functions Observe (B → A)
Learning from: App Service (A-) — auto-instrumentation option
Current state: Manual SDK instrumentation, ARG queries for monitoring discovery exist. Missing: Functions-specific observability best practices, invocation-level tracing, Durable Functions monitoring.
Deliverables:
references/functions/observability.mdinappinsights-instrumentation— Functions-specific guide:Key scenarios:
Summary Table — All Gap Sub-Issues