writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
|\n| **12. Review** | Display full config summary, confirm before proceeding | User approves or cancels |\n| **13. Deploy & Monitor** | `az cognitiveservices account deployment create`, poll status | Timeout after 5 min; show endpoint + portal link |\n\n\n---\n\n## Error Handling\n\n### Common Issues and Resolutions\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| **Model not found** | Invalid model name | List available models with `az cognitiveservices account list-models` |\n| **Version not available** | Version not supported for SKU | Select different version or SKU |\n| **Insufficient quota** | Capacity > available quota | Skill auto-searches all regions; fails only if no region has quota |\n| **SKU not supported** | SKU not available in region | Cross-region fallback searches other regions automatically |\n| **Capacity out of range** | Invalid capacity value | **PREVENTED**: Skill validates min/max/step at input (Phase 7) |\n| **Deployment name exists** | Name conflict | Auto-incremented name generation |\n| **Authentication failed** | Not logged in | Run `az login` |\n| **Permission denied** | Insufficient permissions | Assign Cognitive Services Contributor role |\n| **Capacity query fails** | API/permissions/network error | **DEPLOYMENT BLOCKED**: Will not proceed without valid quota data |\n\n### Troubleshooting Commands\n\n```bash\n# Check deployment status\naz cognitiveservices account deployment show --name \u003caccount> --resource-group \u003crg> --deployment-name \u003cname>\n\n# List all deployments\naz cognitiveservices account deployment list --name \u003caccount> --resource-group \u003crg> -o table\n\n# Check quota usage\naz cognitiveservices usage list --name \u003caccount> --resource-group \u003crg>\n\n# Delete failed deployment\naz cognitiveservices account deployment delete --name \u003caccount> --resource-group \u003crg> --deployment-name \u003cname>\n```\n\n---\n\n## Selection Guides & Advanced Topics\n\n> For SKU comparison tables, PTU sizing formulas, and advanced option details, load [references/customize-guides.md](references/customize-guides.md).\n\n**SKU selection:** GlobalStandard (production/HA) → Standard (dev/test) → ProvisionedManaged (high-volume/guaranteed throughput) → DataZoneStandard (data residency).\n\n**Capacity:** TPM-based SKUs range from 1K (dev) to 100K+ (large production). PTU-based use formula: `(Input TPM × 0.001) + (Output TPM × 0.002) + (Requests/min × 0.1)`.\n\n**Advanced options:** Dynamic quota (GlobalStandard only), priority processing (PTU only, extra cost), spillover (overflow to backup deployment).\n\n---\n\n## Related Skills\n\n- **preset** - Quick deployment to best region with automatic configuration\n- **microsoft-foundry** - Parent skill for all Microsoft Foundry operations\n- **[quota](../../../quota/quota.md)** — For quota viewing, increase requests, and troubleshooting quota errors, defer to this skill instead of duplicating guidance\n- **rbac** - Manage permissions and access control\n\n---\n\n## Notes\n\n- Set `PROJECT_RESOURCE_ID` environment variable to skip prompt\n- Not all SKUs available in all regions; capacity varies by subscription/region/model\n- Custom RAI policies can be configured in Azure Portal\n- Automatic version upgrades occur during maintenance windows\n- Use Azure Monitor and Application Insights for production deployments","licenseDocuments":[]}}
customizeInteractive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose vers…
Independent GitHub snapshot · Automated classification · Original documentation governs
Interactive guided workflow for deploying Azure OpenAI models with full customization control over version, SKU, capacity, content filtering, and advanced options.
| Property | Description |
|---|---|
| Flow | Interactive step-by-step guided deployment |
| Customization | Version, SKU, Capacity, RAI Policy, Advanced Options |
| SKU Support | GlobalStandard, Standard, ProvisionedManaged, DataZoneStandard |
| Best For | Precise control over deployment configuration |
| Authentication | Azure CLI (az login) |
| Tools | Azure CLI, MCP tools (optional) |
Use this skill when you need precise control over deployment configuration:
Alternative: Use preset for quick deployment to the best available region with automatic configuration.
| Feature | customize | preset |
|---|---|---|
| Focus | Full customization control | Optimal region selection |
| Version Selection | User chooses from available | Uses latest automatically |
| SKU Selection | User chooses (GlobalStandard/Standard/PTU) | GlobalStandard only |
| Capacity | User specifies exact value | Auto-calculated (50% of available) |
| RAI Policy | User selects from options | Default policy only |
| Region | Current region first, falls back to all regions if no capacity | Checks capacity across all regions upfront |
| Use Case | Precise deployment requirements | Quick deployment to best region |
/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project})az login)PROJECT_RESOURCE_ID environment variable1. Verify Authentication
2. Get Project Resource ID
3. Verify Project Exists
4. Get Model Name (if not provided)
5. List Model Versions → User Selects
6. List SKUs for Version → User Selects
7. Get Capacity Range → User Configures
7b. If no capacity: Cross-Region Fallback → Query all regions → User selects region/project
8. List RAI Policies → User Selects
9. Configure Advanced Options (if applicable)
10. Configure Version Upgrade Policy
11. Generate Deployment Name
12. Review Configuration
13. Execute Deployment & Monitor
If user accepts all defaults (latest version, GlobalStandard SKU, recommended capacity, default RAI policy, standard upgrade policy), deployment completes in ~5 interactions.
⚠️ MUST READ: Before executing any phase, load references/customize-workflow.md for the full scripts and implementation details. The summaries below describe what each phase does — the reference file contains the how (CLI commands, quota patterns, capacity formulas, cross-region fallback logic).
| Phase | Action | Key Details |
|---|---|---|
| 1. Verify Auth | Check az account show; prompt az login if needed | Verify correct subscription is active |
| 2. Get Project ID | Read PROJECT_RESOURCE_ID env var or prompt user | ARM resource ID format required |
| 3. Verify Project | Parse resource ID, call az cognitiveservices account show | Extracts subscription, RG, account, project, region |
| 4. Get Model | List models via az cognitiveservices account list-models | User selects from available or enters custom name |
| 5. Select Version | Query versions for chosen model | Recommend latest; user picks from list |
| 6. Select SKU | Query model catalog + subscription quota, show only deployable SKUs | ⚠️ Never hardcode SKU lists — always query live data |
| 7. Configure Capacity | Query capacity API, validate min/max/step, user enters value | Cross-region fallback if no capacity in current region |
| 8. Select RAI Policy | Present content filter options | Default: Microsoft.DefaultV2 |
| 9. Advanced Options | Dynamic quota (GlobalStandard), priority processing (PTU), spillover | SKU-dependent availability |
| 10. Upgrade Policy | Choose: OnceNewDefaultVersionAvailable / OnceCurrentVersionExpired / NoAutoUpgrade | Default: auto-upgrade on new default |
| 11. Deployment Name | Auto-generate unique name, allow custom override | Validates format: ^[\w.-]{2,64}$ |
| 12. Review | Display full config summary, confirm before proceeding | User approves or cancels |
| 13. Deploy & Monitor | az cognitiveservices account deployment create, poll status | Timeout after 5 min; show endpoint + portal link |
| Error | Cause | Resolution |
|---|---|---|
| Model not found | Invalid model name | List available models with az cognitiveservices account list-models |
| Version not available | Version not supported for SKU | Select different version or SKU |
| Insufficient quota | Capacity > available quota | Skill auto-searches all regions; fails only if no region has quota |
| SKU not supported | SKU not available in region | Cross-region fallback searches other regions automatically |
| Capacity out of range | Invalid capacity value | PREVENTED: Skill validates min/max/step at input (Phase 7) |
| Deployment name exists | Name conflict | Auto-incremented name generation |
| Authentication failed | Not logged in | Run az login |
| Permission denied | Insufficient permissions | Assign Cognitive Services Contributor role |
| Capacity query fails | API/permissions/network error | DEPLOYMENT BLOCKED: Will not proceed without valid quota data |
# Check deployment status
az cognitiveservices account deployment show --name <account> --resource-group <rg> --deployment-name <name>
# List all deployments
az cognitiveservices account deployment list --name <account> --resource-group <rg> -o table
# Check quota usage
az cognitiveservices usage list --name <account> --resource-group <rg>
# Delete failed deployment
az cognitiveservices account deployment delete --name <account> --resource-group <rg> --deployment-name <name>
For SKU comparison tables, PTU sizing formulas, and advanced option details, load references/customize-guides.md.
SKU selection: GlobalStandard (production/HA) → Standard (dev/test) → ProvisionedManaged (high-volume/guaranteed throughput) → DataZoneStandard (data residency).
Capacity: TPM-based SKUs range from 1K (dev) to 100K+ (large production). PTU-based use formula: (Input TPM × 0.001) + (Output TPM × 0.002) + (Requests/min × 0.1).
Advanced options: Dynamic quota (GlobalStandard only), priority processing (PTU only, extra cost), spillover (overflow to backup deployment).
PROJECT_RESOURCE_ID environment variable to skip prompt