| name | setup |
| description | Use when user starts a new project, says "new project", "start", "set up", or "scaffold" |
Setup Skill
Scaffold a complete React/Vite/TypeScript/Tailwind/IndexedDB/AKS project from scratch. Execute inline — no subagents.
Output Contract
Create exactly these files:
Source
src/main.tsx — React 18 root with ReactDOM.createRoot and <StrictMode>
src/App.tsx — Root component, Tailwind-styled, minimal content
src/db/schema.ts — IndexedDB schema skeleton: typed interface + openDB helper with onupgradeneeded
src/components/.gitkeep
src/hooks/.gitkeep
Config
vite.config.ts — Vite with @vitejs/plugin-react
tsconfig.json — strict: true, noImplicitAny: true, strictNullChecks: true, jsx: "react-jsx"
tailwind.config.ts — content: ["./index.html", "./src/**/*.{ts,tsx}"]
postcss.config.js — tailwindcss + autoprefixer
vitest.config.ts — environment: "jsdom", setupFiles: ["./src/test/setup.ts"]
src/test/setup.ts — imports @testing-library/jest-dom
index.html — Vite entry point with <div id="root">
package.json — all required dependencies
Deployment
Dockerfile — multi-stage: node:20-alpine build, nginx:alpine serve
manifests/k8s/base/kustomization.yaml
manifests/k8s/base/deployment.yaml — K8s Deployment manifest
manifests/k8s/base/service.yaml — K8s Service manifest
manifests/k8s/overlays/mt/kustomization.yaml
manifests/k8s/overlays/uat/kustomization.yaml
manifests/k8s/overlays/prod/kustomization.yaml
.github/workflows/build-and-publish.yml — builds Docker image, pushes to ACR using ACR_REGISTRY, ACR_USERNAME, ACR_PASSWORD secrets
.github/workflows/deploy.yml — applies Kustomize overlay to AKS using KUBE_CONFIG secret
Rules
- All TypeScript files use strict mode
- No test files required — scaffold is exempt from the testing requirement
- After completion, tell the user in plain English: "Your project is set up and ready to go. To start building, just describe what you want. To deploy, say 'deploy'."