Files
Codewalkers/CLAUDE.md
Lukas May 34578d39c6 refactor: Restructure monorepo to apps/server/ and apps/web/ layout
Move src/ → apps/server/ and packages/web/ → apps/web/ to adopt
standard monorepo conventions (apps/ for runnable apps, packages/
for reusable libraries). Update all config files, shared package
imports, test fixtures, and documentation to reflect new paths.

Key fixes:
- Update workspace config to ["apps/*", "packages/*"]
- Update tsconfig.json rootDir/include for apps/server/
- Add apps/web/** to vitest exclude list
- Update drizzle.config.ts schema path
- Fix ensure-schema.ts migration path detection (3 levels up in dev,
  2 levels up in dist)
- Fix tests/integration/cli-server.test.ts import paths
- Update packages/shared imports to apps/server/ paths
- Update all docs/ files with new paths
2026-03-03 11:22:53 +01:00

65 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Codewalk District
Multi-agent workspace for orchestrating multiple AI coding agents working in parallel on a shared codebase.
**Architecture**: [docs/architecture.md](docs/architecture.md) — system diagram, module map, entity relationships, tech stack.
## Quick Reference
| Module | Docs | Path |
|--------|------|------|
| Agent (lifecycle, providers, accounts) | [docs/agent.md](docs/agent.md) | `apps/server/agent/` |
| Database (schema, repositories) | [docs/database.md](docs/database.md) | `apps/server/db/` |
| Server & API (tRPC procedures) | [docs/server-api.md](docs/server-api.md) | `apps/server/server/`, `apps/server/trpc/`, `apps/server/coordination/` |
| Frontend (React UI) | [docs/frontend.md](docs/frontend.md) | `apps/web/` |
| CLI & Config | [docs/cli-config.md](docs/cli-config.md) | `apps/server/cli/`, `apps/server/config/` |
| Dispatch & Events | [docs/dispatch-events.md](docs/dispatch-events.md) | `apps/server/dispatch/`, `apps/server/events/` |
| Git, Process, Logging | [docs/git-process-logging.md](docs/git-process-logging.md) | `apps/server/git/`, `apps/server/process/`, `apps/server/logger/`, `apps/server/logging/` |
| Preview (Docker deployments) | [docs/preview.md](docs/preview.md) | `apps/server/preview/` |
| Testing | [docs/testing.md](docs/testing.md) | `apps/server/test/` |
| Database Migrations | [docs/database-migrations.md](docs/database-migrations.md) | `drizzle/` |
| Logging Guide | [docs/logging.md](docs/logging.md) | `apps/server/logger/` |
Pre-implementation design docs are archived in `docs/archive/`.
## Key Rules
- **Database**: Never use raw SQL for schema initialization. Use `drizzle-kit generate` and the migration system. See [docs/database-migrations.md](docs/database-migrations.md).
- **Logging**: Use `createModuleLogger()` from `apps/server/logger/index.ts`. Keep `console.log` for CLI user-facing output only.
- **Hexagonal architecture**: Repository ports in `apps/server/db/repositories/*.ts`, Drizzle adapters in `apps/server/db/repositories/drizzle/*.ts`. All re-exported from `apps/server/db/index.ts`.
- **tRPC context**: Optional repos accessed via `require*Repository()` helpers in `apps/server/trpc/routers/_helpers.ts`.
## UI Patterns
- **Shift+click to skip confirmation**: Destructive actions (delete task, etc.) show a `window.confirm()` dialog on click. Holding Shift bypasses the dialog and executes immediately. Apply this pattern to all new destructive buttons.
## Build
```sh
npm run build && npm link
```
Run after any change to server-side code (`apps/server/**`).
## Testing
```sh
npm test # Unit + E2E tests (no API cost)
CW_CASSETTE_RECORD=1 npm test -- <test-file> # Record new cassettes locally
REAL_CLAUDE_TESTS=1 npm test -- apps/server/test/integration/real-providers/ --test-timeout=300000 # Real provider tests (~$0.50)
# Record full-flow cassettes (one-time, costs ~$25 in API credits):
CW_CASSETTE_RECORD=1 npm test -- apps/server/test/integration/full-flow/full-flow-cassette.test.ts --test-timeout=3600000
# Commit the generated apps/server/test/cassettes/<hash>.json files afterward.
# Subsequent runs replay from cassettes at no cost: npm test
```
See [docs/testing.md](docs/testing.md) for details, including the **cassette system** for pipeline integration tests that run without API costs.
## Documentation Maintenance
**After every code change, update the relevant docs/ file.** Documentation must stay in sync with implementation. When adding a new module, table, tRPC procedure, component, or CLI command, update the corresponding doc. When refactoring, update affected docs and remove stale information.
# Committing
After completing & verifying changes always commit the changes.