Open Horizons Azure readiness
Produce a current readiness verdict without modifying Azure, local credentials, kubeconfig, or Terraform state.
When to invoke
- Validate a subscription and region before an Open Horizons plan.
- Check providers, quota, SKUs, identities, networking prerequisites, or naming collisions.
- Assess AKS, ACR, Key Vault, PostgreSQL, Managed Redis, AI Search, or Microsoft Foundry readiness.
- Recheck a previously blocked Azure prerequisite.
Prerequisites and context
Require the target tenant/subscription, environment, region, requested components, expected
capacity, resource group when known, and data-residency constraints. Use Reader-equivalent access
and query only metadata required for the verdict.
Procedure
- Confirm tenant, subscription, environment, region, requested components, and expected capacity.
- Inspect the owning Terraform root or module to derive providers, resource types, SKU families,
identities, network dependencies, and naming requirements.
- Verify the active Azure context before resource queries.
- Query provider registration state, regional usage and quota, SKU availability, deployment slots,
identities, private-network prerequisites, naming collisions, and existing resource metadata.
- Avoid secret values and do not acquire AKS credentials; Azure resource metadata is sufficient.
- Classify every requested component and return blockers to the correct owner.
Criteria
| Verdict |
Meaning |
| PASS |
Current evidence satisfies the requested prerequisite |
| FAIL |
Current evidence proves the prerequisite is not satisfied |
| BLOCKED |
Required evidence cannot be obtained safely or permissions are insufficient |
| NOT REQUESTED |
Component is outside the supplied scope |
Output template
## Azure readiness result
**Status:** PASS | FAIL | BLOCKED
**Context:** <tenant / subscription / environment / region / timestamp>
### Components
| Component | Required state | Evidence | Verdict | Owner |
| --- | --- | --- | --- | --- |
### Blockers
- <provider, quota, SKU, identity, network, collision, permission, or none>
### Follow-up
- <open-horizons-terraform | open-horizons-security-reviewer | deployment operator | none>
Limits
- Do not register providers, request quota, create resources, change policy, set subscriptions,
retrieve secrets, run
az aks get-credentials, mutate kubeconfig, or run Terraform.
- Do not hardcode a preferred region, AKS version, SKU, or quota as current availability.
- Do not reuse stale evidence without a timestamp and unchanged target context.
Related primitives
| Name |
Type |
Use it when |
open-horizons-azure-readiness |
agent |
A read-only readiness owner should execute this procedure. |
azure-cli |
skill |
A narrow read-only Azure command and output shape are needed. |
open-horizons-terraform |
agent |
Readiness findings require Terraform changes. |
open-horizons-security-reviewer |
agent |
Identity or exposure requires independent review. |
Quality gate
1---2name: open-horizons-azure-readiness3description: Assesses read-only Azure readiness for one Open Horizons deployment scope using current subscription, provider, quota, SKU, identity, network, and resource evidence. Use when needed before Terraform planning or deployment when Azure prerequisites may block the requested components.4---56<!-- Generated from harness/github-copilot/plugins/open-horizons-platform/skills/open-horizons-azure-readiness/SKILL.md by harness/claude-code/scripts/convert_from_copilot.py. Edit the source, not this file. -->78# Open Horizons Azure readiness910Produce a current readiness verdict without modifying Azure, local credentials, kubeconfig, or Terraform state.1112## When to invoke1314- Validate a subscription and region before an Open Horizons plan.15- Check providers, quota, SKUs, identities, networking prerequisites, or naming collisions.16- Assess AKS, ACR, Key Vault, PostgreSQL, Managed Redis, AI Search, or Microsoft Foundry readiness.17- Recheck a previously blocked Azure prerequisite.1819## Prerequisites and context2021Require the target tenant/subscription, environment, region, requested components, expected22capacity, resource group when known, and data-residency constraints. Use Reader-equivalent access23and query only metadata required for the verdict.2425## Procedure26271. Confirm tenant, subscription, environment, region, requested components, and expected capacity.282. Inspect the owning Terraform root or module to derive providers, resource types, SKU families,29 identities, network dependencies, and naming requirements.303. Verify the active Azure context before resource queries.314. Query provider registration state, regional usage and quota, SKU availability, deployment slots,32 identities, private-network prerequisites, naming collisions, and existing resource metadata.335. Avoid secret values and do not acquire AKS credentials; Azure resource metadata is sufficient.346. Classify every requested component and return blockers to the correct owner.3536## Criteria3738| Verdict | Meaning |39| --- | --- |40| PASS | Current evidence satisfies the requested prerequisite |41| FAIL | Current evidence proves the prerequisite is not satisfied |42| BLOCKED | Required evidence cannot be obtained safely or permissions are insufficient |43| NOT REQUESTED | Component is outside the supplied scope |4445## Output template4647```markdown48## Azure readiness result4950**Status:** PASS | FAIL | BLOCKED51**Context:** <tenant / subscription / environment / region / timestamp>5253### Components54| Component | Required state | Evidence | Verdict | Owner |55| --- | --- | --- | --- | --- |5657### Blockers58- <provider, quota, SKU, identity, network, collision, permission, or none>5960### Follow-up61- <open-horizons-terraform | open-horizons-security-reviewer | deployment operator | none>62```6364## Limits6566- Do not register providers, request quota, create resources, change policy, set subscriptions,67 retrieve secrets, run `az aks get-credentials`, mutate kubeconfig, or run Terraform.68- Do not hardcode a preferred region, AKS version, SKU, or quota as current availability.69- Do not reuse stale evidence without a timestamp and unchanged target context.7071## Related primitives7273| Name | Type | Use it when |74| --- | --- | --- |75| `open-horizons-azure-readiness` | `agent` | A read-only readiness owner should execute this procedure. |76| `azure-cli` | `skill` | A narrow read-only Azure command and output shape are needed. |77| `open-horizons-terraform` | `agent` | Readiness findings require Terraform changes. |78| `open-horizons-security-reviewer` | `agent` | Identity or exposure requires independent review. |7980## Quality gate8182- [ ] Target context and timestamp are explicit.83- [ ] Requirements are derived from the requested repository scope.84- [ ] Every component has current evidence and a verdict.85- [ ] No cloud or local access state changed.86- [ ] Every blocker names an owner and safe next step.