azure-spa-clean-architecture-bootstrap
Own Azure platform, identity, secretless config, IaC, and GitHub release and deployment automation for React Router + Prisma v7 web apps that already follow…
Skill by anaregdesign
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/anaregdesign-azure-spa-clean-architecture-bootstrap
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: frontend, backend, devops, cloud
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/azure-spa-clean-architecture-bootstrap
What's inside
- Skill name
azure-spa-clean-architecture-bootstrap- Description
- Own Azure platform, identity, secretless config, IaC, and GitHub release and deployment automation for React Router + Prisma v7 web apps that already follow enforce-react-spa-architecture. Use when the work is primarily Azure runtime-mode selection, Microsoft Entra ID integration or Azure CLI app registration when end-user authentication is required, Azure Container Apps, local SQLite development with Azure SQL Database for hosted persistence, Azure App Configuration, Key Vault, Managed Identity, local DefaultAzureCredential setup, GitHub Actions OIDC, GHCR image release, or production deployment verification. Do not use this skill for spec, planning, or branch-and-PR workflow or for base app-code architecture rules.
- License
- MIT
- Instructions
- 256 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (18)
- SKILL.md
- openai.yaml · agents/
- release-container-image.yml · assets/templates/.github/workflows/
- Dockerfile · assets/templates/
- health.ts · assets/templates/app/routes/
- azure.yaml · assets/templates/
- main.bicep · assets/templates/infra/
- postprovision.sh · assets/templates/scripts/azure/
- azure-identity-and-sql.md · references/
- azure-platform-bootstrap.md · references/
- azure-sql-identity-and-permissions.md · references/
- azure-workload-identity-and-secretless-config.md · references/
- entra-app-registration-cli.md · references/
- entra-user-auth-and-runtime-contracts.md · references/
- github-release-delivery.md · references/
- github-repository-operations.md · references/
- operational-checklist.md · references/
- template-assets.md · references/
SKILL.md (first lines)
# Azure Spa Clean Architecture Bootstrap ## Overview Use this skill to layer Azure hosting, identity, and GitHub delivery decisions onto the base React Router clean architecture owned by `enforce-react-spa-architecture`. Preserve SPA-style navigation, but switch to a server runtime whenever OAuth callbacks, Prisma, server-only secrets, or Azure SQL access make a static-only SPA the wrong abstraction. This skill owns Azure platform, `Microsoft Entra ID`, secretless config, IaC, and release workflow guidance. Keep code structure, UI guardrails, and general verification rules in the companion skill, and repeat them here only when they are critical to protect Azure-specific boundaries. This skill does not own `/doc/spec`, `/doc/plan.md`, commit-log workflow, branch naming workflow, or PR management; use a repository workflow skill for those concerns and keep this skill focused on platform deltas. Treat requests for "Microsoft auth" as `Microsoft Entra ID` only when the app actually needs user authentication. If the app does not need auth, skip the app registration and auth guidance. Prefer a secretless configuration model: do not introduce `.env` or `.env.example` for Azure-hosted apps. Put non-secret runtime configuration in Azure App Configuration, put secrets in Key Vault, use local `DefaultAzureCredential` during development, and use `ManagedIdentityCredential` for deployed app-to-Azure and Azure SQL authentication. Keeping the same database engine across environments is usually safer. When this skill adopts SQLite for developer speed, treat it as local-development-only storage and require Azure SQL Database for every Azure-hosted environment that persists relational data. Surface Azure prerequisites early. If the project will definitely require specific RBAC assignments, tenant or subscription access, SQL admin setup, App Configuration or Key Vault access, or an unavoidable Service Principal for deploy or migration paths, request those at the beginning of development instead of discovering them mid-implementation. When the app requires user authentication, prefer a real local sign-in path with a dev or test `Microsoft Entra ID` registration and test identities rather than a hidden development auth bypass. ## Companion Skill Requirement - Install `enforce-react-spa-architecture` together with this skill. Do not use this skill as a standalone replacement for the base architecture skill. - If the companion skill is missing, install it before continuing from [https://github.com/anaregdesign/skills/tree/main/skills/development/enforce-react-spa-architecture](https://github.com/anaregdesign/skills/tree/main/skills/development/enforce-react-spa-architecture). - Prefer `$skill-installer` for the install step when another Codex instance needs to fetch the published skill from GitHub. - Continue only after the sibling references under `../enforce-react-spa-architecture/references/` are locally available. ## Quick Start 1. Choose the runtime mode first: - Keep pure SPA mode only when the app has no server-only secrets, no social login callback, no Prisma-backed mutations, and no protected server endpoints. - Use React Router framework runtime when the app needs auth callbacks, cookies, Prisma, Azure SQL, or server-owned secrets. - If the app persists relational data, use SQLite for local development and Azure SQL Database for every Azure-hosted environment. 2. Surface prerequisites before deep implementation: - list the Azure tenant, subscription, resource group scope, and RBAC assignments that are definitely required - identify any required SQL admin or migration identity setup - identify whether GitHub Actions OIDC setup or another unavoidable Service Principal is required - request these prerequisites at project start instead of waiting for release hardening 3. Confirm the companion skill is installed: - required skill: `enforce-react-spa-architecture` - published URL: `https://github.com/anaregdesign/skills/tree/main/skills/development/enforce-react-spa-architecture` - if missing, install it with `$skill-installer` before reading the sibling references 4. Read the base architecture references from the sibling skill: - full architecture overview index for multi-boundary changes: [`../enforce-react-spa-architecture/references/layout-and-dependency-rules.md`](../enforce-react-spa-architecture/references/layout-and-dependency-rules.md) - project bootstrap: [`../enforce-react-spa-architecture/references/project-bootstrap.md`](../enforce-react-spa-architecture/references/project-bootstrap.md) - layout and module placement: [`../enforce-react-spa-architecture/references/layout-and-module-placement.md`](../enforce-react-spa-architecture/references/layout-and-module-placement.md) - client layer responsibilities: [`../enforce-react-spa-architecture/references/client-layer-responsibilities.md`](../enforce-react-spa-architecture/references/client-layer-responsibilities.md) - server and domain layer responsibilities: [`../enforce-react-spa-architecture/references/server-and-domain-layer-responsibilities.md`](../enforce-react-spa-architecture/references/server-and-domain-layer-responsibilities.md) - boundary and contract rules: [`../enforce-react-spa-architecture/references/boundary-and-contract-rules.md`](../enforce-react-spa-architecture/references/boundary-and-contract-rules.md) - domain modeling and type rules: [`../enforce-react-spa-architecture/references/domain-modeling-and-type-rules.md`](../enforce-react-spa-architecture/references/domain-modeling-and-type-rules.md) - dependency injection and side-effect rules: [`../enforce-react-spa-architecture/references/dependency-injection-lifetime-and-side-effects.md`](../enforce-react-spa-architecture/references/dependency-injection-lifetime-and-side-effects.md) - FlatRoute REST API rules: [`../enforce-react-spa-architecture/references/flat-route-rest-api-guidelines.md`](../enforce-react-spa-architecture/references/flat-route-rest-api-guidelines.md) - Prisma boundary rules: [`../enforce-react-spa-architecture/references/prisma-boundary-rules.md`](../enforce-react-spa-architecture/references/prisma-boundary-rules.md) - view-state and handler composition: [`../enforce-react-spa-architecture/references/view-state-and-handler-patterns.md`](../enforce-react-spa-architecture/references/view-state-and-handler-patterns.md) - chart and data visualization guidance: [`../enforce-react-spa-architecture/references/chart-and-data-visualization-guidance.md`](../enforce-react-spa-architecture/references/chart-and-data-visualization-guidance.md) - responsive and mobile UI guidance: [`../enforce-react-spa-architecture/references/responsive-and-mobile-ui-guidance.md`](../enforce-react-spa-architecture/references/responsive-and-mobile-ui-guidance.md) - Playwright UI verification workflow: [`../enforce-react-spa-architecture/references/playwright-ui-verification.md`](../enforce-react-spa-architecture/references/playwright-ui-verification.md) - stateful flow compromise rules: [`../enforce-react-spa-architecture/references/stateful-flow-compromises.md`](../enforce-react-spa-architecture/references/stateful-flow-compromises.md) - hotspot refactor workflow: [`../enforce-react-spa-architecture/references/hotspot-refactor-workflow.md`](../enforce-react-spa-architecture/references/hotspot-refactor-workflow.md) - verification gates: [`../enforce-react-spa-architecture/references/verification-gates.md`](../enforce-react-spa-architecture/references/verification-gates.md) 5. Read the Azure and GitHub references in this skill: - Azure platform bootstrap: [`references/azure-platform-bootstrap.md`](references/azure-platform-bootstrap.md) - Azure identity overview index: [`references/azure-identity-and-sql.md`](references/azure-identity-and-sql.md) - user auth, runtime contract, and local sign-in path: [`references/entra-user-auth-and-runtime-contracts.md`](references/entra-user-auth-and-runtime-contracts.md) - Azure CLI and `az rest` app registration flow: [`references/entra-app-registration-cli.md`](references/entra-app-registration-cli.md) - workload identity and secretless config: [`references/azure-workload-identity-and-secretless-config.md`](references/azure-workload-identity-and-secretless-config.md) - Azure SQL identity and permissions: [`references/azure-sql-identity-and-permissions.md`](references/azure-sql-identity-and-permissions.md) - GitHub repository operations: [`references/github-repository-operations.md`](references/github-repository-operations.md) - GitHub release delivery: [`references/github-release-delivery.md`](references/github-release-delivery.md) - template adoption guide: [`references/template-assets.md`](references/template-assets.md) - operational checklist: [`references/operational-checklist.md`](references/operational-checklist.md) 6. Classify the change: - route or UI composition - Microsoft Entra ID auth or app registration when authentication is required - auth or session boundary - persistence or migration - Azure infrastructure - GitHub workflow or release automation - production verification ## Repository Additions - Put Azure IaC in `infra/`. - Put deployment and bootstrap helpers in `scripts/azure/`. - Put CI and release automation in `.github/workflows/`. - Keep Azure project wiring in `azure.yaml`. - Keep container packaging in `Dockerfile`. - Keep secretless config bootstrap and parsing in `app/lib/server/infrastructure/config/` or the narrowest equivalent server config module. - Keep configuration contract documentation in `README.md`. - Add a cheap health probe in `app/routes/health.ts`. ## Template Assets - Use the generic repo templates in `assets/templates/`. - Replace placeholder tokens such as `__APP_NAME__`, `__SERVICE_NAME__`, and `__PUBLIC_APP_URL__` only after the target app's naming rules are clear. - Keep the template vocabulary generic. Do not leak app-specific names, resource-group names, or domain nouns back into the shared asset files. - Start from these templates when bootstrapping: - `assets/templates/azure.yaml` - `assets/templates/Dockerfile` - `assets/templates/app/routes/health.ts` - `assets/templates/.github/workflows/release-container-image.yml` - `assets/templates/scripts/azure/postprovision.sh` - `assets/templates/infra/main.bicep` ## Non-Negotiable Rules - Install and keep `enforce-react-spa-architecture` available together with this skill. - Keep all dependency, placement, UI, and verification rules from `enforce-react-spa-architecture`. - Do not redefine the companion skill's general coding guardrails here. Use this skill for Azure, identity, infrastructure, and delivery deltas, and repeat code-level rules only when they protect those deltas. - Keep Prisma and Azure SDK imports inside server infrastructure or deployment code. - Treat "SPA" as a UX target, not as a requirement to remove the server runtime. - Prefer React Router framework runtime over bolting ad hoc APIs onto a static bundle when auth, persistence, or secret-backed integrations need a server. - Prefer Azure Container Apps for apps that need a server runtime. Use Static Web Apps only for truly static frontends. - Use SQLite only for local development. - When the app is hosted on Azure and persists relational data, use Azure SQL Database rather than SQLite. - Prefer Azure SQL Database serverless for Azure-hosted relational persistence unless workload characteristics force another SKU. - Front-load known Azure prerequisites. Ask for required tenant access, subscription access, RBAC assignments, SQL admin setup, and any unavoidable Service Principal before substantial implementation begins. - When authentication is required, prefer `Microsoft Entra ID` over portal-only or ad hoc "Microsoft auth" descriptions, and keep the chosen `signInAudience` explicit. - Do not use `.env` or `.env.example` for Azure runtime configuration. Use Azure App Configuration for non-secret settings and Key Vault for secrets. - Use local `DefaultAzureCredential` during development after `az login` or `azd auth login`. - Use `ManagedIdentityCredential` for deployed app-to-Azure and Azure SQL authentication. Do not rely on a broad `DefaultAzureCredential` chain in production. - Use `DefaultAzureCredential` or Managed Identity only where runtime SDK support is real. Do not assume Prisma CLI or schema migration flows inherit that auth automatically. - Treat SQLite-to-Azure-SQL provider differences as real delivery risk. Validate migrations, query behavior, and generated SQL against Azure SQL Database before release. - Separate runtime identity from migration or admin identity. - When the app requires user authentication, prefer a separate dev or test app registration from the production registration, and use a separate test tenant when production-tenant policies or risk make safe testing hard. - Keep localhost redirect URIs in the dev or test registration, or document clearly why they still exist in another registration. Remove unnecessary development redirect URIs from the production registration.
From anaregdesign/skills, MIT.
More from anaregdesign/skills
- 0.448score
spec-driven-workflow
anaregdesign
Own the spec-first planning workflow for feature or behavior work.
SkillDFreshness: D★ 2Claude Code +9 - 0.448score
enforce-react-spa-architecture
anaregdesign
Own code-level clean-architecture guardrails for Vite-powered React Router + Prisma v7 applications.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
python-current-time
anaregdesign
Return the current local time by running a bundled Python script.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
python-venv
anaregdesign
Always use this skill before any explicit or implicit Python execution in a workspace (for example python/python3 commands, shebang scripts, test/build tools…
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
nisa-growth-tech
anaregdesign
NISA成長投資枠で買付可能な個別株(ETF除く)を対象に、産業ごとの非連続成長に着目し、投資テーマごとに複数の強豪銘柄を選定して分散しつつ、最大許容ドローダウンとリスク予算(テーマ/銘柄)を事前定義して、ベンチマーク超のボラティリティとリターンを狙う運用改善提案を行う。
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
jp-business-email-reply
anaregdesign
Draft Japanese business email replies by extracting stakeholders, classifying intent, coordinating schedules via Work IQ MCP server, and answering Microsoft…
SkillDFreshness: D★ 2Claude Code +9 - 0.422score
theme-template-ppt
anaregdesign
Create PowerPoint decks from assets/template.pptx by first structuring each slide's core claim, then inspecting/ranking template slide-master layouts…
SkillDFreshness: D★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Mar 12, 2026 (7 months ago)
- Last release
- Mar 11, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/anaregdesign/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from anaregdesign
- 0.448score
spec-driven-workflow
anaregdesign
Own the spec-first planning workflow for feature or behavior work.
SkillDFreshness: D★ 2Claude Code +9 - 0.448score
enforce-react-spa-architecture
anaregdesign
Own code-level clean-architecture guardrails for Vite-powered React Router + Prisma v7 applications.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
python-current-time
anaregdesign
Return the current local time by running a bundled Python script.
SkillDFreshness: D★ 2Claude Code +9 - 0.443score
python-venv
anaregdesign
Always use this skill before any explicit or implicit Python execution in a workspace (for example python/python3 commands, shebang scripts, test/build tools…
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
nisa-growth-tech
anaregdesign
NISA成長投資枠で買付可能な個別株(ETF除く)を対象に、産業ごとの非連続成長に着目し、投資テーマごとに複数の強豪銘柄を選定して分散しつつ、最大許容ドローダウンとリスク予算(テーマ/銘柄)を事前定義して、ベンチマーク超のボラティリティとリターンを狙う運用改善提案を行う。
SkillDFreshness: D★ 2Claude Code +9 - 0.440score
jp-business-email-reply
anaregdesign
Draft Japanese business email replies by extracting stakeholders, classifying intent, coordinating schedules via Work IQ MCP server, and answering Microsoft…
SkillDFreshness: D★ 2Claude Code +9
Cite this page
azure-spa-clean-architecture-bootstrap skill. Agent Mart. https://agentmart.dev/skills/anaregdesign-azure-spa-clean-architecture-bootstrap (last updated 2026-10-24)