Loading...
Loading...
CleanSlice architecture for NestJS + Nuxt full-stack apps. Use for vertical slice features, gateway pattern, Provider.vue, Pinia stores, DTOs, or any CleanSlice project work.
npx skill4agent add cleanslice/skills cleanslice| Need | Answer |
|---|---|
| Slice folder name | SINGULAR: |
| Route/page files | PLURAL: |
| DTO file name | camelCase: |
| Data access layer | Gateway (NOT Repository) |
| State management | Pinia |
| Component entry | |
| DI tokens | Abstract class with |
| Backend order | schema → types → gateway → service → mapper → dtos → controller → module |
| Frontend order | nuxt.config → stores → components → pages |
| Implementation order | API first, then App |
references/workflow.mdbackend.mdfrontend.mdgateway.mdtypescript.mderrors.mdreferences/workflow.mdreferences/backend.mdreferences/frontend.mdreferences/gateway.mdreferences/typescript.mdreferences/errors.md| Phase | What You Do | End With |
|---|---|---|
| Phase 1 | High-level plan: slices, pages, endpoints (NO file paths) | "Do you approve?" → STOP |
| Phase 2 | Detailed plan: file paths, schemas, components, DTOs | "Do you approve?" → STOP |
| Phase 3 | Implementation: API first, then App | — |
| Phase 4 | Review: validate against patterns, plan next iteration | "STOP or continue?" → STOP |
api/ → NestJS + Prisma
app/ → Nuxt 3 + Vue 3 + Pinia
styling → Tailwind + shadcn-vue
db → PostgreSQL (SQLite for dev)API slice App slice
api/src/slices/{slice}/ app/slices/{slice}/
├── {slice}.module.ts ├── nuxt.config.ts
├── {slice}.controller.ts ├── pages/
├── domain/ │ ├── {slices}.vue ← plural
│ ├── {slice}.types.ts │ └── {slices}/[id].vue
│ ├── {slice}.service.ts ← optional, for business logic
│ └── {slice}.gateway.ts ├── components/
├── data/ │ └── {slice}/
│ ├── {slice}.gateway.ts │ ├── Provider.vue ← REQUIRED
│ └── {slice}.mapper.ts │ └── Layout.vue
└── dtos/ ├── stores/
├── {slice}.dto.ts │ └── {slice}.ts
└── create{Slice}.dto.ts └── composables/| Wrong | Correct |
|---|---|
| |
| |
| |
| |
| |
| |
| |
| |
| React / Next.js / Vite | Nuxt |
| Express | NestJS |
| TypeORM | Prisma |
| Vanilla CSS | Tailwind + shadcn-vue |
| File paths in Phase 1 | Save for Phase 2 |
<type>: <description>| Type | Description |
|---|---|
| New feature |
| Bug fix |
| Documentation only |
| Code change, no feature/fix |
| Adding/updating tests |
| Maintenance tasks |
!feat!: change response format