Ready-to-use monorepo template with Spec-Driven Development pipeline and an npm workspaces scaffold (Svelte 5 + Vite frontend, NestJS + Node backend).
| Layer | Technology |
|---|---|
| Frontend | Svelte 5, Vite, Tailwind CSS v4, shadcn-svelte |
| Backend | NestJS, Node runtime |
| Testing | Vitest (unit), Playwright (E2E) |
| Package | npm workspaces |
| Workflow | SDD (Spec-Driven Development) |
# 1. Clone the template
git clone <repo-url> my-project
cd my-project
# 2. Install dependencies
npm install
# 3. Start development
npm run dev
The frontend runs on http://localhost:5173 and the backend on http://localhost:3000.
SDD is a workflow where every feature goes through structured stages before implementation:
Prompt -> PRD -> Tech Spec -> Tasks -> Implementation -> Review -> QA
Each stage produces a documented artifact in the tasks/ folder, ensuring traceability and quality. Each stage includes safeguards: if prior artifacts don't exist, the agent warns you and asks whether to continue.
Use the skills (via Claude Code or Cursor) to generate each artifact:
| Stage | Skill | Output |
|---|---|---|
| PRD | create-prd |
tasks/prd-[feature]/prd.md |
| Tech Spec | create-techspec |
tasks/prd-[feature]/techspec.md |
| Tasks | create-tasks |
tasks/prd-[feature]/tasks.md + N_task.md |
| Implementation | run-task |
Implemented code + tests |
| Review | run-review |
Code review report |
| QA | run-qa |
QA report |
| Bugfix | run-bugfix |
Fixes + regression tests |
To run all tasks for a feature automatically via Claude CLI:
./run-tasks.sh tasks/prd-feature-name
Available options:
./run-tasks.sh tasks/prd-feature --no-skip-completed # Re-run completed tasks
./run-tasks.sh tasks/prd-feature --max-turns 80 # Increase turn limit
./run-tasks.sh tasks/prd-feature --no-stop-on-error # Continue on failures
# Development
npm run dev # Start backend + frontend simultaneously
npm run dev:backend # Backend only
npm run dev:frontend # Frontend only
# Build & Checks
npm run build # Build all workspaces
npm run typecheck # Typecheck all workspaces
npm run lint # ESLint (frontend)
# Testing
npm run test # Unit tests (vitest)
npm run test:watch # Tests in watch mode
npm run test:coverage # Tests with coverage
npm run test:e2e # E2E tests (Playwright)
npm run test:e2e:ui # E2E tests with Playwright UI
/
├── package.json # npm workspaces: ["backend", "frontend"]
├── tsconfig.base.json # Shared TS config
├── vitest.config.ts # Root vitest (projects: frontend, backend)
├── playwright.config.ts # E2E config
├── run-tasks.sh # SDD task runner (Claude CLI)
├── e2e/ # E2E tests
├── frontend/
│ ├── src/
│ │ ├── main.ts # Entry point
│ │ ├── App.svelte # Root component
│ │ ├── index.css # Tailwind v4 + shadcn theme
│ │ ├── components/ui/ # shadcn-svelte components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom stores / hooks
│ │ ├── services/ # API clients
│ │ ├── types/ # Shared types
│ │ ├── lib/ # Utilities
│ │ └── __tests__/ # Unit tests
│ ├── components.json # shadcn-svelte config
│ ├── svelte.config.js # Svelte config
│ └── vite.config.ts # Vite + Svelte + Tailwind
└── backend/
├── src/
│ ├── main.ts # NestJS bootstrap
│ ├── app.module.ts # Root module
│ ├── health/ # Health feature module
│ ├── services/ # Business logic
│ ├── data/ # Data access layer
│ └── __tests__/ # Unit tests
├── nest-cli.json # NestJS CLI config
└── vitest.config.ts # Vitest config
| Skill | Purpose |
|---|---|
create-prd |
Generate a PRD from a feature prompt |
create-techspec |
Generate a Tech Spec from a PRD |
create-tasks |
Break PRD + Tech Spec into implementable tasks |
run-task |
Implement an individual task |
run-review |
Code review against PRD and TechSpec |
run-qa |
QA with E2E, accessibility, and requirements checklist |
run-bugfix |
Fix bugs with root-cause analysis |
task-review |
Review a completed task (used by task-reviewer agent) |
skills-best-practices |
Guide for creating new skills (agentskills.io) |
Free to use :)