dotclaudemd 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +108 -0
- package/dist/browse-7V4CRGTH.js +96 -0
- package/dist/browse-7V4CRGTH.js.map +1 -0
- package/dist/chunk-2D66CC54.js +17 -0
- package/dist/chunk-2D66CC54.js.map +1 -0
- package/dist/chunk-3ERFQLAD.js +145 -0
- package/dist/chunk-3ERFQLAD.js.map +1 -0
- package/dist/chunk-3R6PUA3E.js +79 -0
- package/dist/chunk-3R6PUA3E.js.map +1 -0
- package/dist/chunk-3WTPUEHL.js +42 -0
- package/dist/chunk-3WTPUEHL.js.map +1 -0
- package/dist/chunk-YHVOBZLV.js +28 -0
- package/dist/chunk-YHVOBZLV.js.map +1 -0
- package/dist/cli.js +40 -0
- package/dist/cli.js.map +1 -0
- package/dist/doctor-4B7J2EH3.js +318 -0
- package/dist/doctor-4B7J2EH3.js.map +1 -0
- package/dist/init-GLWLFVHN.js +287 -0
- package/dist/init-GLWLFVHN.js.map +1 -0
- package/dist/lint-W7ZIDPL7.js +281 -0
- package/dist/lint-W7ZIDPL7.js.map +1 -0
- package/package.json +50 -0
- package/templates/_global/default.md +52 -0
- package/templates/go/go-api.md +55 -0
- package/templates/javascript/express-mongodb.md +56 -0
- package/templates/javascript/mern-stack.md +58 -0
- package/templates/javascript/nextjs-prisma-tailwind.md +58 -0
- package/templates/javascript/nextjs-typescript.md +57 -0
- package/templates/javascript/node-cli-tool.md +55 -0
- package/templates/javascript/react-vite.md +55 -0
- package/templates/python/django-rest.md +55 -0
- package/templates/python/fastapi-sqlalchemy.md +54 -0
- package/templates/python/flask-basic.md +51 -0
- package/templates/rust/cargo-workspace.md +50 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nextjs-prisma-tailwind
|
|
3
|
+
displayName: Next.js + Prisma + Tailwind
|
|
4
|
+
description: Full-stack Next.js with Prisma ORM and Tailwind CSS
|
|
5
|
+
category: javascript
|
|
6
|
+
tags: [javascript, typescript, nextjs, prisma, tailwind, fullstack]
|
|
7
|
+
variables:
|
|
8
|
+
- name: db_provider
|
|
9
|
+
prompt: "Database provider?"
|
|
10
|
+
options: [PostgreSQL, MySQL, SQLite]
|
|
11
|
+
default: PostgreSQL
|
|
12
|
+
- name: auth_provider
|
|
13
|
+
prompt: "Auth provider?"
|
|
14
|
+
options: [NextAuth.js, Clerk, Auth0]
|
|
15
|
+
default: NextAuth.js
|
|
16
|
+
detects:
|
|
17
|
+
files: [package.json, prisma/schema.prisma]
|
|
18
|
+
dependencies: [next, "@prisma/client"]
|
|
19
|
+
priority: 15
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
Next.js full-stack application with Prisma ORM ({{db_provider}}) and Tailwind CSS.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `npm run dev` — Start dev server
|
|
29
|
+
- `npm run build` — Production build
|
|
30
|
+
- `npx prisma generate` — Regenerate Prisma Client after schema changes
|
|
31
|
+
- `npx prisma db push` — Push schema changes to database
|
|
32
|
+
- `npx prisma migrate dev` — Create and apply migration
|
|
33
|
+
- `npx prisma studio` — Open database browser
|
|
34
|
+
- `npm test` — Run tests
|
|
35
|
+
|
|
36
|
+
## Architecture
|
|
37
|
+
|
|
38
|
+
- `src/app/` — App Router pages, layouts, API routes
|
|
39
|
+
- `src/components/` — React components
|
|
40
|
+
- `src/lib/` — Shared utilities, Prisma client singleton
|
|
41
|
+
- `prisma/schema.prisma` — Database schema
|
|
42
|
+
- `prisma/migrations/` — Migration history
|
|
43
|
+
|
|
44
|
+
## Database (Prisma)
|
|
45
|
+
|
|
46
|
+
- Schema lives in `prisma/schema.prisma`
|
|
47
|
+
- Always run `npx prisma generate` after editing the schema
|
|
48
|
+
- Use a singleton Prisma Client (see `src/lib/prisma.ts`)
|
|
49
|
+
- Use `select` or `include` to avoid over-fetching; prefer `select` for performance
|
|
50
|
+
- Use transactions for multi-step writes
|
|
51
|
+
|
|
52
|
+
## Auth
|
|
53
|
+
|
|
54
|
+
Authentication via {{auth_provider}}. Protect API routes and server actions by checking the session.
|
|
55
|
+
|
|
56
|
+
## Styling
|
|
57
|
+
|
|
58
|
+
Tailwind CSS with `cn()` helper for conditional classes. Use `@apply` sparingly — prefer utility classes in JSX.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nextjs-typescript
|
|
3
|
+
displayName: Next.js + TypeScript
|
|
4
|
+
description: Next.js App Router with TypeScript
|
|
5
|
+
category: javascript
|
|
6
|
+
tags: [javascript, typescript, nextjs, react, ssr]
|
|
7
|
+
variables:
|
|
8
|
+
- name: src_dir
|
|
9
|
+
prompt: "Source directory?"
|
|
10
|
+
options: [src, app]
|
|
11
|
+
default: src
|
|
12
|
+
- name: styling
|
|
13
|
+
prompt: "Styling solution?"
|
|
14
|
+
options: [Tailwind CSS, CSS Modules, styled-components]
|
|
15
|
+
default: Tailwind CSS
|
|
16
|
+
detects:
|
|
17
|
+
files: [package.json, next.config.mjs, next.config.js, next.config.ts]
|
|
18
|
+
dependencies: [next, react]
|
|
19
|
+
priority: 20
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
Next.js application with TypeScript and App Router.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `npm run dev` — Start dev server on localhost:3000
|
|
29
|
+
- `npm run build` — Production build
|
|
30
|
+
- `npm run start` — Start production server
|
|
31
|
+
- `npm test` — Run tests
|
|
32
|
+
- `npm run lint` — Run ESLint + Next.js lint rules
|
|
33
|
+
|
|
34
|
+
## Architecture
|
|
35
|
+
|
|
36
|
+
- `{{src_dir}}/app/` — App Router pages and layouts
|
|
37
|
+
- `{{src_dir}}/app/api/` — API route handlers
|
|
38
|
+
- `{{src_dir}}/components/` — Reusable React components
|
|
39
|
+
- `{{src_dir}}/lib/` — Shared utilities and helpers
|
|
40
|
+
- `public/` — Static assets
|
|
41
|
+
|
|
42
|
+
## Conventions
|
|
43
|
+
|
|
44
|
+
- Use Server Components by default; add `'use client'` only when needed (state, effects, browser APIs)
|
|
45
|
+
- Colocate loading.tsx, error.tsx, and not-found.tsx in route segments
|
|
46
|
+
- Use `{{styling}}` for styling
|
|
47
|
+
- Fetch data in Server Components using `fetch` with Next.js caching
|
|
48
|
+
- Use Server Actions for mutations instead of API routes when possible
|
|
49
|
+
- Type all props, API responses, and function signatures
|
|
50
|
+
- Prefer named exports from components
|
|
51
|
+
|
|
52
|
+
## Data Fetching
|
|
53
|
+
|
|
54
|
+
- Server Components: fetch directly in the component
|
|
55
|
+
- Client Components: use SWR or React Query
|
|
56
|
+
- Mutations: prefer Server Actions (`'use server'`)
|
|
57
|
+
- Always handle loading and error states
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: node-cli-tool
|
|
3
|
+
displayName: Node.js CLI Tool
|
|
4
|
+
description: Node.js command-line tool with TypeScript
|
|
5
|
+
category: javascript
|
|
6
|
+
tags: [javascript, typescript, node, cli, tool]
|
|
7
|
+
variables:
|
|
8
|
+
- name: cli_framework
|
|
9
|
+
prompt: "CLI framework?"
|
|
10
|
+
options: [Commander, yargs, Clipanion]
|
|
11
|
+
default: Commander
|
|
12
|
+
- name: package_manager
|
|
13
|
+
prompt: "Package manager?"
|
|
14
|
+
options: [npm, pnpm, yarn]
|
|
15
|
+
default: npm
|
|
16
|
+
detects:
|
|
17
|
+
files: [package.json, tsup.config.ts]
|
|
18
|
+
devDependencies: [tsup]
|
|
19
|
+
priority: 5
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
Node.js CLI tool built with TypeScript and {{cli_framework}}.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `{{package_manager}} run build` — Build with tsup
|
|
29
|
+
- `{{package_manager}} run dev` — Watch mode
|
|
30
|
+
- `{{package_manager}} test` — Run tests
|
|
31
|
+
- `node dist/cli.mjs --help` — Test built CLI
|
|
32
|
+
|
|
33
|
+
## Architecture
|
|
34
|
+
|
|
35
|
+
- `src/cli.ts` — Entry point, command registration
|
|
36
|
+
- `src/commands/` — Individual command implementations
|
|
37
|
+
- `src/core/` — Business logic (framework-agnostic)
|
|
38
|
+
- `src/utils/` — Shared helpers
|
|
39
|
+
- `src/types.ts` — TypeScript interfaces
|
|
40
|
+
|
|
41
|
+
## Conventions
|
|
42
|
+
|
|
43
|
+
- Keep commands thin: parse args, call core logic, format output
|
|
44
|
+
- Core logic should be pure functions with dependency injection for testability
|
|
45
|
+
- Use `process.exitCode` instead of `process.exit()` to allow cleanup
|
|
46
|
+
- Output to stdout for data, stderr for status/errors
|
|
47
|
+
- Support `--json` flag for machine-readable output where applicable
|
|
48
|
+
- Test core logic with unit tests; test commands with integration tests
|
|
49
|
+
|
|
50
|
+
## Publishing
|
|
51
|
+
|
|
52
|
+
- Package uses `"type": "module"` (ESM)
|
|
53
|
+
- `bin` field in package.json points to `dist/cli.mjs`
|
|
54
|
+
- Shebang (`#!/usr/bin/env node`) is added by tsup banner
|
|
55
|
+
- Verify with `npm pack --dry-run` before publishing
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-vite
|
|
3
|
+
displayName: React + Vite
|
|
4
|
+
description: React SPA with Vite build tool
|
|
5
|
+
category: javascript
|
|
6
|
+
tags: [javascript, typescript, react, vite, spa]
|
|
7
|
+
variables:
|
|
8
|
+
- name: state_management
|
|
9
|
+
prompt: "State management?"
|
|
10
|
+
options: [Zustand, Redux Toolkit, Jotai, React Context]
|
|
11
|
+
default: Zustand
|
|
12
|
+
- name: styling
|
|
13
|
+
prompt: "Styling solution?"
|
|
14
|
+
options: [Tailwind CSS, CSS Modules, styled-components]
|
|
15
|
+
default: Tailwind CSS
|
|
16
|
+
detects:
|
|
17
|
+
files: [package.json, vite.config.ts, vite.config.js]
|
|
18
|
+
dependencies: [react, vite]
|
|
19
|
+
devDependencies: [vite]
|
|
20
|
+
priority: 12
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Project
|
|
24
|
+
|
|
25
|
+
React single-page application built with Vite.
|
|
26
|
+
|
|
27
|
+
## Commands
|
|
28
|
+
|
|
29
|
+
- `npm run dev` — Start Vite dev server
|
|
30
|
+
- `npm run build` — Production build to `dist/`
|
|
31
|
+
- `npm run preview` — Preview production build locally
|
|
32
|
+
- `npm test` — Run tests
|
|
33
|
+
- `npm run lint` — Run ESLint
|
|
34
|
+
|
|
35
|
+
## Architecture
|
|
36
|
+
|
|
37
|
+
- `src/components/` — Reusable UI components
|
|
38
|
+
- `src/pages/` — Route-level page components
|
|
39
|
+
- `src/hooks/` — Custom React hooks
|
|
40
|
+
- `src/stores/` — {{state_management}} stores
|
|
41
|
+
- `src/services/` — API client and external service wrappers
|
|
42
|
+
- `src/types/` — TypeScript type definitions
|
|
43
|
+
|
|
44
|
+
## Conventions
|
|
45
|
+
|
|
46
|
+
- Functional components with hooks only; no class components
|
|
47
|
+
- Use {{styling}} for styling
|
|
48
|
+
- Manage global state with {{state_management}}; prefer local state when possible
|
|
49
|
+
- Colocate component, styles, and tests in the same directory
|
|
50
|
+
- Use barrel exports (`index.ts`) for public APIs of directories
|
|
51
|
+
- Type all props and API responses
|
|
52
|
+
|
|
53
|
+
## Testing
|
|
54
|
+
|
|
55
|
+
Tests live next to source files (`Component.test.tsx`). Use React Testing Library for component tests. Test behavior, not implementation.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: django-rest
|
|
3
|
+
displayName: Django REST Framework
|
|
4
|
+
description: Django application with REST Framework
|
|
5
|
+
category: python
|
|
6
|
+
tags: [python, django, drf, api, backend]
|
|
7
|
+
variables:
|
|
8
|
+
- name: db_type
|
|
9
|
+
prompt: "Database?"
|
|
10
|
+
options: [PostgreSQL, SQLite]
|
|
11
|
+
default: PostgreSQL
|
|
12
|
+
- name: auth_method
|
|
13
|
+
prompt: "Authentication?"
|
|
14
|
+
options: [Token, JWT, Session]
|
|
15
|
+
default: Token
|
|
16
|
+
detects:
|
|
17
|
+
files: [requirements.txt, pyproject.toml, manage.py]
|
|
18
|
+
dependencies: [django, djangorestframework]
|
|
19
|
+
priority: 10
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
Django application with Django REST Framework and {{db_type}}.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `python manage.py runserver` — Start dev server
|
|
29
|
+
- `python manage.py test` — Run tests
|
|
30
|
+
- `python manage.py makemigrations` — Create migrations
|
|
31
|
+
- `python manage.py migrate` — Apply migrations
|
|
32
|
+
- `python manage.py shell_plus` — Enhanced Django shell
|
|
33
|
+
|
|
34
|
+
## Architecture
|
|
35
|
+
|
|
36
|
+
- `config/` — Project settings, root URL conf, WSGI/ASGI
|
|
37
|
+
- `apps/` — Django applications (one per domain)
|
|
38
|
+
- `apps/<name>/models.py` — Database models
|
|
39
|
+
- `apps/<name>/serializers.py` — DRF serializers
|
|
40
|
+
- `apps/<name>/views.py` — DRF viewsets and views
|
|
41
|
+
- `apps/<name>/urls.py` — URL patterns
|
|
42
|
+
- `apps/<name>/tests/` — Test modules
|
|
43
|
+
|
|
44
|
+
## Conventions
|
|
45
|
+
|
|
46
|
+
- One Django app per domain concern
|
|
47
|
+
- Use ModelViewSet for standard CRUD; APIView for custom logic
|
|
48
|
+
- Serializers handle all validation; keep views thin
|
|
49
|
+
- {{auth_method}} authentication for API endpoints
|
|
50
|
+
- Use `select_related()` and `prefetch_related()` to avoid N+1 queries
|
|
51
|
+
- Write model methods for business logic; keep views as orchestrators
|
|
52
|
+
|
|
53
|
+
## Testing
|
|
54
|
+
|
|
55
|
+
Use Django's TestCase with DRF's APIClient. Use `setUpTestData` for shared test fixtures. Test serializer validation separately from views.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fastapi-sqlalchemy
|
|
3
|
+
displayName: FastAPI + SQLAlchemy
|
|
4
|
+
description: FastAPI application with SQLAlchemy ORM
|
|
5
|
+
category: python
|
|
6
|
+
tags: [python, fastapi, sqlalchemy, api, backend]
|
|
7
|
+
variables:
|
|
8
|
+
- name: db_type
|
|
9
|
+
prompt: "Database?"
|
|
10
|
+
options: [PostgreSQL, MySQL, SQLite]
|
|
11
|
+
default: PostgreSQL
|
|
12
|
+
- name: package_manager
|
|
13
|
+
prompt: "Package manager?"
|
|
14
|
+
options: [pip, poetry, uv]
|
|
15
|
+
default: pip
|
|
16
|
+
detects:
|
|
17
|
+
files: [requirements.txt, pyproject.toml]
|
|
18
|
+
dependencies: [fastapi, sqlalchemy]
|
|
19
|
+
priority: 10
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
FastAPI application with SQLAlchemy ORM and {{db_type}}.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `uvicorn app.main:app --reload` — Start dev server
|
|
29
|
+
- `pytest` — Run tests
|
|
30
|
+
- `alembic upgrade head` — Apply database migrations
|
|
31
|
+
- `alembic revision --autogenerate -m "description"` — Create new migration
|
|
32
|
+
|
|
33
|
+
## Architecture
|
|
34
|
+
|
|
35
|
+
- `app/main.py` — FastAPI application factory
|
|
36
|
+
- `app/routers/` — API route modules
|
|
37
|
+
- `app/models/` — SQLAlchemy models
|
|
38
|
+
- `app/schemas/` — Pydantic request/response schemas
|
|
39
|
+
- `app/services/` — Business logic layer
|
|
40
|
+
- `app/core/` — Config, security, dependencies
|
|
41
|
+
- `alembic/` — Database migrations
|
|
42
|
+
|
|
43
|
+
## Conventions
|
|
44
|
+
|
|
45
|
+
- Use Pydantic v2 models for all request/response validation
|
|
46
|
+
- Dependency injection via FastAPI `Depends()` for DB sessions and auth
|
|
47
|
+
- Async endpoints where possible (`async def`)
|
|
48
|
+
- Use SQLAlchemy 2.0 style queries (select statements, not legacy Query API)
|
|
49
|
+
- Return proper HTTP status codes (201 for creation, 204 for deletion)
|
|
50
|
+
- All models need `created_at` and `updated_at` timestamps
|
|
51
|
+
|
|
52
|
+
## Testing
|
|
53
|
+
|
|
54
|
+
Use pytest with httpx AsyncClient for API tests. Use factory fixtures for test data. Test against a real test database, not mocks.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flask-basic
|
|
3
|
+
displayName: Flask Basic
|
|
4
|
+
description: Flask web application
|
|
5
|
+
category: python
|
|
6
|
+
tags: [python, flask, web, backend]
|
|
7
|
+
variables:
|
|
8
|
+
- name: db_type
|
|
9
|
+
prompt: "Database?"
|
|
10
|
+
options: [SQLite, PostgreSQL, None]
|
|
11
|
+
default: SQLite
|
|
12
|
+
- name: template_engine
|
|
13
|
+
prompt: "Template engine?"
|
|
14
|
+
options: [Jinja2, None (API only)]
|
|
15
|
+
default: Jinja2
|
|
16
|
+
detects:
|
|
17
|
+
files: [requirements.txt, pyproject.toml]
|
|
18
|
+
dependencies: [flask]
|
|
19
|
+
priority: 5
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Project
|
|
23
|
+
|
|
24
|
+
Flask web application.
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
- `flask run --debug` — Start dev server with hot reload
|
|
29
|
+
- `pytest` — Run tests
|
|
30
|
+
- `flask db upgrade` — Apply migrations (if using Flask-Migrate)
|
|
31
|
+
|
|
32
|
+
## Architecture
|
|
33
|
+
|
|
34
|
+
- `app/__init__.py` — Application factory (`create_app`)
|
|
35
|
+
- `app/routes/` — Blueprint route modules
|
|
36
|
+
- `app/models/` — Database models
|
|
37
|
+
- `app/templates/` — Jinja2 templates
|
|
38
|
+
- `app/static/` — Static assets
|
|
39
|
+
- `tests/` — Test suite
|
|
40
|
+
|
|
41
|
+
## Conventions
|
|
42
|
+
|
|
43
|
+
- Use the application factory pattern (`create_app()`)
|
|
44
|
+
- Organize routes with Blueprints
|
|
45
|
+
- Use Flask-SQLAlchemy for database operations with {{db_type}}
|
|
46
|
+
- Configure via environment variables and `config.py`
|
|
47
|
+
- Use `flask.g` for per-request state; use sessions for user state
|
|
48
|
+
|
|
49
|
+
## Testing
|
|
50
|
+
|
|
51
|
+
Use pytest with the Flask test client. Create an app fixture with test config. Test routes return expected status codes and data.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cargo-workspace
|
|
3
|
+
displayName: Rust Cargo Workspace
|
|
4
|
+
description: Rust project with Cargo workspace
|
|
5
|
+
category: rust
|
|
6
|
+
tags: [rust, cargo, systems]
|
|
7
|
+
variables:
|
|
8
|
+
- name: project_type
|
|
9
|
+
prompt: "Project type?"
|
|
10
|
+
options: [Binary, Library, Both]
|
|
11
|
+
default: Binary
|
|
12
|
+
detects:
|
|
13
|
+
files: [Cargo.toml]
|
|
14
|
+
priority: 5
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Project
|
|
18
|
+
|
|
19
|
+
Rust project managed with Cargo.
|
|
20
|
+
|
|
21
|
+
## Commands
|
|
22
|
+
|
|
23
|
+
- `cargo build` — Build the project
|
|
24
|
+
- `cargo run` — Build and run (binary crate)
|
|
25
|
+
- `cargo test` — Run all tests
|
|
26
|
+
- `cargo clippy` — Run linter
|
|
27
|
+
- `cargo fmt` — Format code
|
|
28
|
+
- `cargo doc --open` — Generate and view docs
|
|
29
|
+
|
|
30
|
+
## Architecture
|
|
31
|
+
|
|
32
|
+
- `src/main.rs` — Binary entry point
|
|
33
|
+
- `src/lib.rs` — Library root
|
|
34
|
+
- `src/` — Source modules
|
|
35
|
+
- `tests/` — Integration tests
|
|
36
|
+
- `benches/` — Benchmarks
|
|
37
|
+
|
|
38
|
+
## Conventions
|
|
39
|
+
|
|
40
|
+
- Use `Result<T, E>` for fallible operations; use `thiserror` for custom error types
|
|
41
|
+
- Prefer `&str` over `String` in function parameters
|
|
42
|
+
- Use `clippy::pedantic` lint level for strictness
|
|
43
|
+
- Derive `Debug` on all public types
|
|
44
|
+
- Use `#[cfg(test)]` modules for unit tests within source files
|
|
45
|
+
- Integration tests go in `tests/` directory
|
|
46
|
+
- Document all public APIs with `///` doc comments
|
|
47
|
+
|
|
48
|
+
## Error Handling
|
|
49
|
+
|
|
50
|
+
Use `anyhow` for application code and `thiserror` for library code. Propagate errors with `?`; avoid `.unwrap()` in production code.
|