Help us improve
Share bugs, ideas, or general feedback.
From chelsea-piers-itops
Inventory Azure resources across CP subscriptions and resource groups — list VMs, storage accounts, app services, databases, and key vaults with their state, size, tags, and monthly cost estimate. Use when: doing a quarterly cloud review, checking what's running before a cost review, identifying untagged or orphaned resources, or verifying a deployment went through. Activates on "Azure resources", "cloud inventory", "resource audit", "Azure VMs", "what's running in Azure", "Azure review", "resource group", "cloud review".
npx claudepluginhub afoxnyc3/chelsea-piers-itops --plugin chelsea-piers-itopsHow this skill is triggered — by the user, by Claude, or both
Slash command
/chelsea-piers-itops:azure-resource-audit <subscription name | resource group name | resource type | 'all'><subscription name | resource group name | resource type | 'all'>The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> If you see unfamiliar placeholders, see [CONNECTORS.md](../../CONNECTORS.md).
Provides Playwright E2E testing patterns including Page Object Model, test organization, configuration, CI/CD integration, and flaky test strategies.
Share bugs, ideas, or general feedback.
If you see unfamiliar placeholders, see CONNECTORS.md.
Produce a structured inventory of Azure resources for audit, cost review, and cleanup.
/azure-resource-audit $ARGUMENTS
Examples:
/azure-resource-audit all — full inventory across all subscriptions/azure-resource-audit rg-cp-production — single resource group/azure-resource-audit VMs — all VMs across subscriptions/azure-resource-audit untagged — resources missing required tags| Type | What to Check |
|---|---|
| Virtual Machines | Running vs stopped, size, disk type, backup enabled |
| Storage Accounts | Access tier, soft-delete, redundancy, public blob access |
| App Services | Tier, always-on, custom domains, scaling config |
| SQL Databases | Tier, geo-redundancy, long-term backup retention |
| Key Vaults | Access policies, purge protection, last access |
| Public IPs | Allocated but unassociated = waste |
| Managed Disks | Unattached disks = cost with no value |
| Load Balancers | Backend pool empty = orphaned |
| Tag | Values | Required on |
|---|---|---|
| Environment | production, staging, dev | All resources |
| Owner | user@chelseapiers.com | All resources |
| CostCenter | [department code] | All compute + storage |
| Project | [project name] | All resources |
## Azure Resource Audit
**Scope:** [all / resource group / type]
**Subscriptions:** [list]
**Total resources:** [N]
**Audited:** [timestamp]
---
### Summary by Type
| Type | Count | Running | Stopped | Flagged |
|------|-------|---------|---------|---------|
| Virtual Machines | [N] | [N] | [N] | [N] |
| Storage Accounts | [N] | — | — | [N] |
| App Services | [N] | [N] | [N] | [N] |
| Managed Disks | [N] | — | — | [N] |
---
### Flagged Resources
| Resource | Type | Issue | Est. Monthly Cost |
|----------|------|-------|-------------------|
| [name] | VM | Stopped but allocated — consuming disk cost | $[X]/mo |
| [name] | Disk | Unattached managed disk | $[X]/mo |
| [name] | Public IP | Unassociated — idle cost | $[X]/mo |
| [name] | Various | Missing tags: Environment, Owner | — |
### Recommended Cleanup Actions
- **Deallocate or delete:** [N resources] — estimated savings: $[X]/mo
- **Tag:** [N resources] missing required tags
- **Review:** [N resources] with unusual configuration
---
### Full Inventory
#### Virtual Machines
| Name | RG | Location | Size | State | OS | Tags | Est. $/mo |
|------|----|----------|------|-------|----|------|-----------|
| [name] | [rg] | eastus | Standard_D2s_v3 | Running ✅ | Windows Server 2022 | ✅ | $[X] |
#### Storage Accounts
| Name | RG | Tier | Redundancy | Public Access | Soft Delete | Tags |
|------|----|------|-----------|--------------|------------|------|
#### [other resource types as applicable]
If ~~cloud (Azure) is connected:
GET /subscriptions/{subId}/resourcesGET /subscriptions/{subId}/providers/Microsoft.Compute/virtualMachinesmanagedBy == nullIf not connected:
az resource list --subscription [sub] --output table
az vm list --subscription [sub] --query "[].{Name:name, State:powerState}" --output table
az disk list --subscription [sub] --query "[?managedBy==null].{Name:name, Size:diskSizeGB}" --output table