live azure environment

Real subscription.
Measured attempts.
Actual bytes.

Every number on this page came from running actual az commands against a live Azure subscription. Attempt counts are command counts. Token estimates use measured output bytes ÷ 4 plus prompt overhead. No extrapolation.

Executed against subscription 49521d08 (Personal Portfolio) · resource-group rg-apps-prod · 2026-04-06

2 static web apps awacs-ai → awacs.ai front9back9 → builder.awacs.ai type: Microsoft.Web/staticSites

How the numbers are calculated

Attempts

One attempt = one az CLI call. We ran each path in sequence and counted. Failed calls (empty result, wrong type) count as attempts — they still consume context.

Response tokens

Measured with wc -c on each command's stdout. Token estimate = bytes ÷ 4 (standard approximation for CLI output).

Prompt overhead

Each retry adds ~300 tokens: the original question + prior failed output + "try again" context. This is estimated, not measured — and labeled accordingly.

We do not have instrumented token counts from a live Claude API session. Response tokens are measured. Prompt overhead is estimated.

1

"List my deployed apps and their live URLs"

The most common starting question. Resource type is the trap — App Service and Static Web Apps use different CLI commands.

PROMPT List all my deployed web apps in Azure and show me their live URLs and what GitHub repo they're connected to.
No KB · Wrong Commands
Tries App Service first
4attempts
10.4swall time
~1,564est. tokens
az webapp list0 bytes · wrong type
az appservice plan list0 bytes · wrong type
az staticwebapp list1,272 bytes · missing --rg
az staticwebapp show ×2184 bytes ea · correct
AIOS · No KB Hit
Discovers resource type first
2attempts
4.7swall time
~725est. tokens
az resource list --rg rg-apps-prod317 bytes · finds type
az staticwebapp show ×2184 bytes ea · correct
2 calls saved vs naked
still needs discovery call
AIOS + KB Hit
Discovery phase skipped
1attempts
2.9swall time
~346est. tokens
KB lookup → rg-apps-prodin-context · 0 API calls
KB lookup → awacs-ai, front9back9in-context · 0 API calls
az staticwebapp show ×2184 bytes ea · correct
317 bytes avoided
No KB · Wrong Commands
4 attempts · 10,412ms total · ~1,564 tokens
4attempts
0bytes · attempt 1
0bytes · attempt 2
ATTEMPT 1 · 0 bytes · 2,894ms
az webapp list --resource-group rg-apps-prod --output table
(no output)
Empty result. No App Service resources in rg-apps-prod.
Static Web Apps are a different resource type.
ATTEMPT 2 · 0 bytes · 1,992ms
az appservice plan list --resource-group rg-apps-prod --output table
(no output)
Still empty. App Service Plans also absent.
ATTEMPT 3 · 1,272 bytes · 2,970ms
az staticwebapp list --output table
Name         Location  Branch  RepositoryUrl ...
-----------  --------  ------  -------------
front9back9  East US 2 master  github.com/...
awacs-ai     East US 2 master  github.com/...
1,272 bytes. Missing --resource-group so lists
all subscriptions. Command now correct but
query not focused. Still need show for URLs.
ATTEMPT 4 · 184 bytes · 2,556ms
az staticwebapp show --name awacs-ai --resource-group rg-apps-prod
{
  "name": "awacs-ai",
  "customDomains": ["awacs.ai","www.awacs.ai"],
  "repositoryUrl": "github.com/Dwink213/awacs-ai-website",
  "branch": "master",
  "sku": { "name": "Free" }
}
→ 184 bytes
✗ 4 attempts · 3 retries burned · 2 zero-result calls
AIOS · No KB Hit
2 attempts · 4,668ms total · ~725 tokens
2attempts
317bytes · attempt 1
184bytes · attempt 2

AIOS knows to check the resource type before guessing the CLI command. It runs a discovery call first — "what types of resources exist in this resource group?"

ATTEMPT 1 · 317 bytes · 2,065ms
az resource list --resource-group rg-apps-prod --output table
Name         ResourceGroup  Location  Type
-----------  -------------  --------  -------------------------
front9back9  rg-apps-prod   eastus2   Microsoft.Web/staticSites
awacs-ai     rg-apps-prod   eastus2   Microsoft.Web/staticSites
→ 317 bytes · type confirmed → use az staticwebapp
ATTEMPT 2 · 184 bytes · 2,603ms
az staticwebapp show --name awacs-ai --resource-group rg-apps-prod
{
  "customDomains": ["awacs.ai","www.awacs.ai"],
  "repositoryUrl": "github.com/Dwink213/awacs-ai-website",
  "sku": { "name": "Free" }
}
→ 184 bytes

What AIOS cold still can't skip: the 317-byte discovery call. It must ask "what's in this resource group?" before it knows whether to use az webapp, az staticwebapp, az functionapp, or something else.

↑ 2 attempts · saves 2 retries vs naked · still burns discovery call
AIOS + KB Hit
1 attempt · ~2,932ms avg · ~346 tokens
1attempts
184bytes · attempt 1
317bytes avoided
What the KB already knows (from prior session)
resource-group: rg-apps-prod
resources: awacs-ai, front9back9
resource-type: Microsoft.Web/staticSites
cli-command: az staticwebapp (not az webapp)
custom-domains: awacs.ai, builder.awacs.ai
repos: awacs-ai-website, BicepDeployment_VM
executed: 2026-04-06 · sub 49521d08
KB LOOKUP · 0 API calls
KB: "azure static web apps rg-apps-prod"
MATCH — resource type: Microsoft.Web/staticSites
        resource group: rg-apps-prod
        names: awacs-ai, front9back9
0 bytes from Azure · in-context · no API call needed
ATTEMPT 1 · 184 bytes · 2,598ms
az staticwebapp show --name awacs-ai --resource-group rg-apps-prod
{
  "customDomains": ["awacs.ai","www.awacs.ai"],
  "repositoryUrl": "github.com/Dwink213/awacs-ai-website",
  "branch": "master",
  "sku": { "name": "Free" }
}
→ 184 bytes

What the KB eliminates: the 317-byte discovery call. That call exists only to answer "what type of resource is this?" The KB already answered that question in a prior session. It doesn't need to be asked again.

✓ 1 attempt · 0 retries · 317 bytes avoided · discovery phase eliminated
The measured gap — scenario 1

Between "No KB" and "AIOS cold": 2 saved attempts, 5.7 seconds faster. AIOS doesn't guess at the resource type — it asks Azure directly via a discovery call. Cost: 317 bytes and 2,065ms. That's still one call the KB eliminates entirely.

Between "AIOS cold" and "AIOS+KB": 1 saved attempt, 1.8 seconds faster — the 317-byte discovery call. The KB already knows that rg-apps-prod contains two Microsoft.Web/staticSites resources named awacs-ai and front9back9. That knowledge came from the prior session and costs nothing to reuse. This is the compounding effect: every session after the first, that discovery call never happens.

The full gap — naked to KB: 3 attempts saved · 7.5 seconds saved · ~1,218 tokens saved per question. Across 50 similar questions in a session: 375 seconds and ~61,000 tokens. At standard API rates, that's real money.

Metric Naive AIOS Cold AIOS + KB
Attempts per question421
Wall time (1 question)10,412ms4,668ms~2,932ms
Response bytes1,456501184
Est. total tokens~1,564~725~346
Saved vs naive5,744ms / 839t7,480ms / 1,218t
2

"Is production current? Any stuck deployments?"

Multi-source chain. Azure environment list + GitHub CI/CD status. The stuck preview environment was found by running the command — not by reading docs.

PROMPT Check if awacs.ai is serving the latest code, and flag any deployment environments that look stuck or unhealthy.
No KB · Generic Answer
Sends you to the Portal
0commands run
0issues found
No command chain producedgeneric docs only
Stuck preview env (43 days)not found · not visible
Production deploy timenot retrieved
Recommendation"check the portal"
AIOS · No KB Hit
Runs the right chain, finds the issue
2commands run
4.7swall time
1issue found
az staticwebapp environment listfinds both envs
Stuck preview env detectedUploading · 43 days
Default env timestamp2026-04-06T01:44:15Z
Needs resource name from discovery1 prior call required
AIOS + KB Hit
Direct chain. Issue already known.
1commands run
2.6swall time
2issues surfaced
az staticwebapp environment listdirect (name from KB)
Stuck preview envKB flagged in prior session
Cleanup command readyin KB · no research needed
Resource name discovery0 API calls · from KB
No KB · Generic Answer
0 commands · stuck env invisible
0commands run
0issues found

To verify your deployment is current, check the Azure portal → your Static Web App → Deployments tab. You can also run:


az staticwebapp show --name <app-name> --resource-group <rg>


For GitHub Actions status, check the Actions tab in your repo for the latest workflow run.


Issues found: None — no commands run against the actual environment, nothing observed.

✗ Generic docs · portal redirect · stuck env not found
AIOS · No KB Hit
2 commands · issue found · needs discovery first
2commands
~680bytes output
[discovery] az resource list --resource-group rg-apps-prod
awacs-ai  rg-apps-prod  Microsoft.Web/staticSites
→ 317 bytes · needed to learn the resource name
az staticwebapp environment list --name awacs-ai --resource-group rg-apps-prod
Name     Branch  Status      LastUpdatedOn
-------  ------  ----------  ----------------------------
default  master  Ready       2026-04-06T01:44:15Z
preview  (none)  Uploading   2026-02-22T20:08:23Z
                 ↑ stuck 43 days · never completed
→ 363 bytes
↑ Found the issue · still needed discovery call first
AIOS + KB Hit
1 command · issue known · cleanup ready
1commands
363bytes output
What KB adds for this scenario
resource name: awacs-ai (no discovery call)
known issue: preview env stuck Uploading since 2026-02-22
cleanup cmd: az staticwebapp environment delete --name awacs-ai --resource-group rg-apps-prod --environment-name preview
az staticwebapp environment list --name awacs-ai --resource-group rg-apps-prod
Name     Branch  Status      LastUpdatedOn
-------  ------  ----------  ----------------------------
default  master  Ready       2026-04-06T01:44:15Z  ✓ current
preview  (none)  Uploading   2026-02-22T20:08:23Z  ✗ stuck
→ 363 bytes · direct (resource name from KB)

Production is current. Default environment updated 2026-04-06T01:44:15Z — after most recent master push.


Stuck preview environment: Created 2026-02-22, stuck in Uploading for 43 days with no source branch. Not affecting production but consuming resources.


Cleanup command (from KB — no research needed):
az staticwebapp environment delete --name awacs-ai --resource-group rg-apps-prod --environment-name preview

✓ 1 command · issue + cleanup command ready · 317 bytes avoided
Why the naked LLM misses the stuck environment entirely

The naked LLM cannot run commands — it describes what you could do. That means it can't see the preview environment stuck in Uploading. The issue only exists in the command output. No amount of documentation reading reveals it. This is the core argument for KB grounding: some facts only exist after you run the command.

Between AIOS cold and AIOS+KB: the difference is one discovery call (317 bytes). Not dramatic — but it compounds. If this question is asked 20 times in a session, AIOS cold burns 6,340 bytes and 20 discovery calls. AIOS+KB burns 0. The KB pays for itself in the second question.

What this page does not claim

✗ Prompt overhead is estimated

The ~300 token overhead per retry is a standard estimate, not measured. Actual prompt overhead depends on conversation history length, which grows with each retry. Real overhead is likely higher.

✗ No live LLM token count

We do not have a Claude API session with token-level instrumentation. Response bytes are measured (wc -c on stdout). Total tokens = response bytes ÷ 4 + estimated prompt overhead.

✗ Naked LLM path is representative

A well-prompted LLM might skip directly to az staticwebapp if system context includes "this is a Static Web Apps environment." The naive path shown assumes no system context — a cold session.

✗ One subscription, two resources

This environment is simple. Token savings scale with environment complexity. A subscription with 50 resource groups and 200 resources would show larger KB vs cold-start gaps.