0-acs-full-scan

$npx mdskill add microsoft/acs-resource-explorer/0-acs-full-scan

Use this skill to run a complete end-to-end ACS deprecation impact assessment in one guided workflow.

SKILL.md

.github/skills/0-acs-full-scanView on GitHub ↗
---
name: 0-acs-full-scan
description: Full ACS deprecation impact assessment orchestrator. Runs the complete workflow — auth check, subscription selection, ACS resource scan, channel detection (fast or full), impact analysis, and report generation. ACS-specific, no PowerShell script required.
---

## When to use this skill
Use this skill to run a complete end-to-end ACS deprecation impact assessment in one guided workflow.

Examples:
  - "Run an ACS deprecation scan"
  - "Do a full ACS impact assessment"
  - "Check my subscriptions for retiring ACS services"
  - "Generate an ACS deprecation impact report"
  - "Scan my subscription for ACS deprecations"
  - "Run an ACS impact assessment and summarize what is potentially affected"

## What This Skill Does
Orchestrates all ACS-specific skills in sequence to deliver a complete impact assessment:

```
azure/1-azure-auth-check           → Verify Azure authentication
azure/2-azure-subscription-select  → Choose subscription(s) to scan
acs/1-acs-resource-scan            → Discover all ACS resources
acs/2-acs-channel-detect           → Fast: Email + Phone Numbers (optional)
acs/3-acs-metrics-collect          → Full: All configured channels via Azure Monitor
acs/4-acs-impact-analyze           → Map channels to migration guides
acs/5-acs-report-generate          → Export CSV, Markdown, and/or JSON
```

## Preconditions
- Azure CLI installed (`az` command available) — https://learn.microsoft.com/en-us/cli/azure/?view=azure-cli-latest
- Reader access (minimum) to target Azure subscription(s)
- Monitoring Reader access for metrics collection

## Workflow

### Step 1: Azure Authentication
   - Run **azure/1-azure-auth-check**
   - Verify existing session or prompt for login
   - Display connected account and tenant
   - **Exit if authentication fails**

### Step 2: Subscription Selection
   - Run **azure/2-azure-subscription-select**
   - Default: Use current default subscription (recommended)
   - Options: All subscriptions, or enter a specific subscription ID
   - **Exit if no valid subscription selected**

### Step 3: ACS Resource Discovery
   - Run **1-acs-resource-scan**
   - Scans for `Microsoft.Communication/CommunicationServices` resources
   - Displays count per subscription
   - **If no ACS resources found:**
     - Display: "✅ Good news! No ACS resources found. No migration action required."
     - **Exit workflow**

### Step 4: Choose Detection Mode
   - Ask user:
     ```
     Detection Mode:
     1. Fast scan — Email + Phone Numbers only (~30 seconds per subscription)
        (Use if you only need to check Email and Phone Numbers)

     2. Full scan — All configured channels via Azure Monitor metrics (~3-5 min per subscription)
        (Recommended — detects Email, SMS, Chat, Call Automation, Job Router, Advance Messaging, Rooms, and Phone Numbers)

     Choose [1/2] (default: 2):
     ```

   **If Mode 1 (Fast):**
   - Run **2-acs-channel-detect**
   - Note: SMS, Chat, Call Automation, Job Router, Advance Messaging, and Rooms cannot be detected in fast mode

   **If Mode 2 (Full):**
   - Run **3-acs-metrics-collect**
   - Ask for lookback period (default: 90 days, max: 93 days)
   - Collects usage data for all configured channels

### Step 5: Channel Analysis
   - Run **4-acs-impact-analyze**
   - Map each detected channel to its migration guide
   - Link to Retirement Guide or Breaking Change Guide per channel

### Step 6: Report Generation
   - Run **5-acs-report-generate**
   - Default: Generate all formats (CSV + Markdown + JSON)
   - Output to `./exports/` directory

## Quick Summary Display
After all steps complete:
```
╔══════════════════════════════════════════════════╗
║        ACS Impact Assessment Complete            ║
╠══════════════════════════════════════════════════╣
║ Subscriptions Scanned: [N]                       ║
║ ACS Resources Found:   [N]                       ║
║ Detection Mode: [Fast / Full ([N]-day lookback)] ║
╠══════════════════════════════════════════════════╣
║ Retiring Services Detected:                      ║
║   Email:         [N] resources ([Usage])         ║
║   SMS:           [N] resources ([Usage])         ║
║   Chat:          [N] resources ([Usage])         ║
║   Call Auto:     [N] resources ([Usage])         ║
║   Job Router:    [N] resources ([Usage])         ║
║   Adv Msg:       [N] resources ([Usage])         ║
║   Rooms:         [N] resources ([Usage])         ║
║   Phone Numbers: [N] resources ([Usage])         ║
╠══════════════════════════════════════════════════╣
║ Reports saved to: ./exports/                     ║
╚══════════════════════════════════════════════════╝

💡 Next Steps:
1. Review migration guides for each detected channel
2. Visit https://aka.ms/acs-retirement
```

## Output
- CSV report (Excel-compatible, configured columns)
- Markdown report (human-readable with migration guide links)
- JSON report (machine-readable)
- Console summary with channel detection breakdown

## Knowledge Base

Reference data used by this workflow lives in `docs/knowledge/`. Update these files when Microsoft publishes new retirement dates or migration guidance:

| File | Used By |
|------|---------|
| [acs-retirement-dates.md](../../../../docs/knowledge/acs-retirement-dates.md) | Channel status types and effective dates |
| [acs-metric-names.md](../../../../docs/knowledge/acs-metric-names.md) | Metrics collection |
| [acs-migration-paths.md](../../../../docs/knowledge/acs-migration-paths.md) | Migration paths and guide links |
| [acs-channel-status.md](../../../../docs/knowledge/acs-channel-status.md) | Full Breaking Change vs Retirement detail |

## ACS Channel Guides
- 📧 Email — Retirement Guide: https://aka.ms/acs-retirement#acs-email
- 📱 SMS — Retirement Guide: https://aka.ms/acs-retirement#acs-sms
- 💬 Chat — Retirement Guide: https://aka.ms/acs-retirement#acs-chat
- 📞 Call Automation — Breaking Change Guide: https://aka.ms/acs-retirement#acs-voicevideo-calling-sdk
- 🧭 Job Router — Guide: https://aka.ms/acs-retirement
- 📨 Advance Messaging — Guide: https://aka.ms/acs-retirement
- 🏠 Rooms — Guide: https://aka.ms/acs-retirement
- ☎️ Phone Numbers — Retirement Guide: https://aka.ms/acs-retirement#acs-number-management-direct-offer
- All channels — Full Guide: https://aka.ms/acs-retirement

## Related Skills (Individual Steps)
Run these individually if you need to re-run a specific step:
- **azure/1-azure-auth-check** — Re-authenticate
- **azure/2-azure-subscription-select** — Change subscription scope
- **1-acs-resource-scan** — Re-run resource discovery
- **2-acs-channel-detect** — Fast channel check
- **3-acs-metrics-collect** — Collect usage metrics
- **4-acs-impact-analyze** — Re-map channels to guides
- **5-acs-report-generate** — Re-export in different format

More from microsoft/acs-resource-explorer

SkillDescription
1-acs-resource-scanScan Azure subscriptions for Azure Communication Services (ACS) resources (Microsoft.Communication/CommunicationServices). ACS-specific version of azure/3-azure-resource-scan with resource type pre-filled.
1-azure-auth-checkVerify Azure authentication status and display connection information (tenant, account, subscription context). Works with any Azure product or service.
2-acs-channel-detectFast, resource-based detection of ACS channels (Email, Phone Numbers). Detects Email via EmailServices/Domains child resources and Phone Numbers via purchased phone Numbers under each ACS resource. Note: SMS, Chat, Call Automation, Job Router, Advance Messaging, and Rooms require metrics — use 3-acs-metrics-collect for complete detection.
2-azure-subscription-selectInteractive subscription selection workflow. Choose specific subscription(s) or scan all accessible subscriptions. Works with any Azure product or service.
3-acs-metrics-collectComprehensive ACS usage detection via Azure Monitor metrics. All configured ACS channels are pre-mapped (Email, SMS, Chat, Call Automation, Job Router, Advance Messaging, Rooms). Configurable lookback period of 1-93 days.
3-azure-resource-scanScan Azure subscriptions for specific resource types. Interactive prompts allow scanning any Azure product (ACS, Storage, Compute, Databases, etc). Returns resource inventory across selected subscriptions.
4-acs-impact-analyzeMap detected ACS channel usage to the appropriate Retirement Guide or Breaking Change Guide. Links each impacted resource to Microsoft migration resources per channel.
4-azure-channel-detectFast, resource-based feature detection for Azure resources. Detects features/channels by examining related child resources (domains, endpoints, configurations). Works with any Azure product where features are exposed as sub-resources.
5-acs-report-generateGenerate ACS deprecation impact reports in CSV, Markdown, or JSON format. Pre-configured with ACS channel columns, migration guide links, and ACS-specific report sections.
5-azure-metrics-collectComprehensive feature/usage detection via Azure Monitor metrics. Collects usage data over configurable lookback period (1-93 days). Works with any Azure product that emits metrics to Azure Monitor.