docs: add Trellis planning and project specs
This commit is contained in:
66
.trellis/spec/shared/index.md
Normal file
66
.trellis/spec/shared/index.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# Shared Development Guidelines
|
||||
|
||||
> These guidelines apply to all Next.js full-stack applications using this architecture.
|
||||
|
||||
---
|
||||
|
||||
## Documentation Files
|
||||
|
||||
| File | Description | When to Read |
|
||||
| -------------------------------------- | ------------------------------------ | ----------------------- |
|
||||
| [code-quality.md](./code-quality.md) | Code quality mandatory rules | Always |
|
||||
| [typescript.md](./typescript.md) | TypeScript best practices | Type-related decisions |
|
||||
| [dependencies.md](./dependencies.md) | Dependency versions and constraints | Adding/updating deps |
|
||||
|
||||
---
|
||||
|
||||
## Quick Navigation
|
||||
|
||||
| Task | File |
|
||||
| --------------------------- | -------------------------------------- |
|
||||
| Code quality rules | [code-quality.md](./code-quality.md) |
|
||||
| Type annotations | [typescript.md](./typescript.md) |
|
||||
| Dependency management | [dependencies.md](./dependencies.md) |
|
||||
|
||||
---
|
||||
|
||||
## Core Rules (MANDATORY)
|
||||
|
||||
| Rule | File |
|
||||
| ----------------------------------------- | -------------------------------------- |
|
||||
| No non-null assertions (`!`) | [code-quality.md](./code-quality.md) |
|
||||
| No `any` type | [code-quality.md](./code-quality.md) |
|
||||
| No `@ts-expect-error` / `@ts-ignore` | [code-quality.md](./code-quality.md) |
|
||||
| No `console.log` (use structured logging) | [code-quality.md](./code-quality.md) |
|
||||
| Zod-first type definitions | [typescript.md](./typescript.md) |
|
||||
| Import types from backend, never redefine | [typescript.md](./typescript.md) |
|
||||
| Standard response format (`success` + `reason`) | [typescript.md](./typescript.md) |
|
||||
|
||||
---
|
||||
|
||||
## Before Every Commit
|
||||
|
||||
- [ ] `pnpm lint` - 0 errors
|
||||
- [ ] `pnpm type-check` - 0 errors
|
||||
- [ ] `pnpm build` - production build succeeds
|
||||
- [ ] No `any` types in new code
|
||||
- [ ] No non-null assertions (`!`)
|
||||
- [ ] No `@ts-expect-error` or `@ts-ignore` comments
|
||||
- [ ] No `console.log` statements (use `logger`)
|
||||
- [ ] Tests pass (if applicable)
|
||||
|
||||
---
|
||||
|
||||
## Code Review Checklist
|
||||
|
||||
- [ ] Types are explicit, not `any`
|
||||
- [ ] API inputs/outputs have Zod schemas
|
||||
- [ ] Error handling returns structured responses
|
||||
- [ ] No duplicate type definitions (import from source of truth)
|
||||
- [ ] Naming follows conventions (files: kebab-case, components: PascalCase)
|
||||
- [ ] Unused imports and dead code removed
|
||||
- [ ] No swallowed errors (silent `catch` blocks)
|
||||
|
||||
---
|
||||
|
||||
**Language**: All documentation must be written in **English**.
|
||||
Reference in New Issue
Block a user