139 lines
2.8 KiB
Markdown
139 lines
2.8 KiB
Markdown
# Scaffold Specifications
|
|
|
|
Technical specifications for each Grey Haven scaffold type.
|
|
|
|
---
|
|
|
|
## Cloudflare Worker API Specification
|
|
|
|
**Purpose**: Production REST/GraphQL API on Cloudflare edge network
|
|
|
|
**Minimum Files** (18):
|
|
- wrangler.toml, package.json, tsconfig.json
|
|
- src/index.ts (entry), routes/ (3 files), middleware/ (4 files)
|
|
- services/ (2 files), types/ (1 file), utils/ (1 file)
|
|
- tests/ (3 files), .github/workflows/, README.md
|
|
|
|
**Dependencies**:
|
|
```json
|
|
{
|
|
"dependencies": {
|
|
"hono": "^4.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@cloudflare/workers-types": "^4.20240117.0",
|
|
"typescript": "^5.3.3",
|
|
"vitest": "^1.2.0",
|
|
"wrangler": "^3.25.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Features**:
|
|
- Hono framework
|
|
- D1 database binding
|
|
- JWT authentication middleware
|
|
- CORS configuration
|
|
- Request logging
|
|
- Error handling
|
|
- Health check endpoint
|
|
- Vitest tests
|
|
|
|
---
|
|
|
|
## React Component Specification
|
|
|
|
**Purpose**: Reusable UI component with tests and stories
|
|
|
|
**Minimum Files** (6):
|
|
- Component.tsx, Component.test.tsx, Component.stories.tsx
|
|
- Component.module.css, index.ts, README.md
|
|
|
|
**Dependencies**:
|
|
```json
|
|
{
|
|
"devDependencies": {
|
|
"@testing-library/react": "^14.1.0",
|
|
"@testing-library/user-event": "^14.5.0",
|
|
"@storybook/react-vite": "^7.6.0",
|
|
"vitest": "^1.2.0"
|
|
}
|
|
}
|
|
```
|
|
|
|
**Features**:
|
|
- TypeScript prop types
|
|
- CSS modules styling
|
|
- Vitest + Testing Library tests
|
|
- Storybook stories
|
|
- Accessible markup
|
|
- JSDoc documentation
|
|
|
|
---
|
|
|
|
## Python API Specification
|
|
|
|
**Purpose**: Production-ready FastAPI with async PostgreSQL
|
|
|
|
**Minimum Files** (22):
|
|
- pyproject.toml, alembic.ini, .env.example
|
|
- app/main.py, config.py, dependencies.py
|
|
- app/api/ (3 files), models/ (2 files), schemas/ (2 files)
|
|
- app/services/ (2 files), db/ (3 files)
|
|
- tests/ (4 files), alembic/versions/, README.md
|
|
|
|
**Dependencies**:
|
|
```toml
|
|
[project]
|
|
dependencies = [
|
|
"fastapi[standard]>=0.109.0",
|
|
"pydantic>=2.5.0",
|
|
"sqlalchemy[asyncio]>=2.0.25",
|
|
"alembic>=1.13.0",
|
|
"asyncpg>=0.29.0",
|
|
]
|
|
```
|
|
|
|
**Features**:
|
|
- FastAPI with async
|
|
- Pydantic v2 validation
|
|
- SQLAlchemy 2.0 async
|
|
- Alembic migrations
|
|
- pytest with asyncio
|
|
- uv package manager
|
|
- Ruff linting
|
|
- mypy type checking
|
|
|
|
---
|
|
|
|
## Full-Stack Specification
|
|
|
|
**Purpose**: Complete monorepo with frontend and backend
|
|
|
|
**Minimum Files** (35):
|
|
- package.json (root), pnpm-workspace.yaml
|
|
- frontend/ (15 files), backend/ (12 files)
|
|
- packages/types/ (4 files), docs/ (4 files)
|
|
|
|
**Structure**:
|
|
```
|
|
my-app/
|
|
├── frontend/ # React + Vite + TanStack
|
|
├── backend/ # Cloudflare Worker + D1
|
|
├── packages/ # Shared TypeScript types
|
|
└── docs/ # Architecture docs
|
|
```
|
|
|
|
**Features**:
|
|
- pnpm workspaces
|
|
- Shared types package
|
|
- TanStack Router + Query
|
|
- Cloudflare deployment
|
|
- CI/CD pipeline
|
|
- Monorepo scripts
|
|
|
|
---
|
|
|
|
**Total Specs**: 4 scaffold types
|
|
**Coverage**: Frontend, backend, component, full-stack
|