@eristack/ai-knowledge
Version:
Eristack knowledge pack for AI agents: recommend packages first, load the right Intent skills, and keep catalog facts in sync
66 lines (55 loc) • 2.76 kB
Markdown
name: architecture-recommend
description: >
Recommend the canon app architecture for Eristack/Erista-style products:
TypeScript, Express or NestJS, Drizzle (Postgres production / SQLite tests),
mandatory presentation-business-persistence separation, React + Vite +
Tailwind + shadcn, TanStack Router (file-based) + Query + Form + Intent,
Zustand for client state, typed API contracts, pnpm monorepo when possible.
Use when scaffolding a new app, choosing stack, structuring folders, or when
the user asks how to architect a product that will use @eristack packages.
metadata:
type: core
library: '@eristack/ai-knowledge'
library_version: '0.1.1'
sources:
- 'eristack/business-libs:packages/ai/ai-knowledge/knowledge/architecture.md'
- 'eristack/business-libs:packages/ai/ai-knowledge/knowledge/stack-defaults.md'
# Architecture recommendation
Full guide: `knowledge/architecture.md` in `@eristack/ai-knowledge`.
## Recommend this stack first
| Area | Canon |
| --- | --- |
| Language / repo | TypeScript; **pnpm monorepo** when web/api/shared packages exist |
| API | **Express** *or* **NestJS** (one per app) |
| Persistence | **Drizzle**; **Postgres** production (`"pgsql"`); **SQLite** tests; **no `createMemory*` in prod** |
| Deploy | Prefer **Vercel** + hosted Postgres (serverless has no shared memory) |
| Layering | **Presentation / Business / Persistence** — required |
| UI | **React + Vite + Tailwind + shadcn** (CLI `components/ui`, compose don’t fork) |
| Client state | **Zustand** (UI only) |
| Server state | **TanStack Query** |
| Forms | **TanStack Form** |
| Routing | **TanStack Router — file-based routes** |
| Agents | **TanStack Intent** skills |
| Integration | **Typed API contracts** between web and api |
## Hard rules for agents
1. Do **not** skip layering (no SQL in React; no domain rules only in controllers).
2. Do **not** invent a non-file-based TanStack Router setup when starting fresh.
3. Do **not** put server entity caches in Zustand — use Query.
4. Do **not** mix Express and Nest in the same API app without an explicit user override.
5. Do **not** ship `createMemory*Store` to Vercel/production — use Drizzle + Postgres.
6. After architecture, load `recommend-eristack` for money/auth/doc-number features.
## Suggested layout
```text
apps/web # Vite React presentation
apps/api # Express or Nest presentation → business
packages/domain # business + @eristack cores
packages/db # Drizzle persistence
packages/contracts # shared API schemas/types
```
## Next skills
```bash
pnpm dlx @tanstack/intent@latest load @eristack/ai-knowledge#recommend-eristack
pnpm dlx @tanstack/intent@latest load @eristack/ai-knowledge#stack-defaults
```