Azure Lean Stack v2.2.0
Two field learnings fed back into the pack — both proven in real production projects.
🖥️ Local development tier — local (main) → test → prod
New skill developing-azure-apps-locally: run the whole app offline on localhost — real local SQL + blob storage, no Azure cost — as the main-branch "try" tier.
- Docker stack: SQL Server 2022 + Azurite (
docker-compose.yml) - One-command bootstrap (
up.sh): compose up → migrate → seed → CORS - Idempotent local
migrate.sh(reuses yourinfra/sql/migrations/*.sql) - Mock-mode for unset service keys;
local.settings.json.examplepreconfigured dev:testmode to run the frontend against the live test backend- Apple-Silicon Rosetta guidance
Architecture Decision #0 is now explicitly local → test → prod: main is the offline try tier, then promote by pushing to test / production.
Proven by bc-videohub-lite (docs/LOCAL-DEV.md, scripts/local-dev/*).
💸 Scale-to-zero cost protection
A real overrun: a health endpoint that queried the DB on every call, plus a 5-minute scheduler polling it, kept a SQL Serverless database awake 24/7 — billing compute around the clock instead of pausing.
- Cost Guardrail #11 — "Don't let polling defeat scale-to-zero" with a serverless-vs-flat-Basic decision rule and an advisory-triggers table so Claude warns you before building a DB-querying health endpoint, uptime check, keep-alive, DB-reading scheduler, or
minReplicas: 1. - New detection script
audit-cost-antipatterns.sh— greps app source for DB-querying health/status endpoints and frequent schedulers; exits non-zero to gate CI. - Shallow health-check pattern — DB-free
/api/health, DB check gated behind?deep=1. - Gotcha #40 (Cost) + a scheduler cost warning in the Logic Apps skill.
The fix is anchored to bc-videohub-lite, which switched serverless → flat Basic tier (~$5/mo, ~10× cheaper at steady low usage, no cold-start). Cause anchored to trg-directory-website.
Also
- 16 skills total; 2 new eval scenarios.
plugin.json→ 2.2.0.
Install
claude plugin install alexpizarro/azure-lean-stack-skills@v2.2.0Full details in CHANGELOG.md.