Commit
Move the coding conventions into CONTRIBUTING.md
commit
873a24a
3 changed files with +30 and −1
Jump to a changed file
- .gitignore +4 −0
- CONTRIBUTING.md +25 −0
- README.md +1 −1
modified .gitignore +4 −0
| @@ -9,3 +9,7 @@data/sessions | ||
| 9 | 9 | .idea |
| 10 | 10 | .DS_Store |
| 11 | 11 | *.log |
| 12 | + | |
| 13 | +# Local tooling configuration, not part of the project. | |
| 14 | +.claude/ | |
| 15 | + |
added CONTRIBUTING.md +25 −0
| @@ -0,0 +1,25 @@ | ||
| 1 | +# VoiceTask | |
| 2 | + | |
| 3 | +Voice-first Socratic spec interviewer. You talk about what you want to build, an AI interviewer asks one targeted question at a time, and the tool emits a coding-agent-ready spec pack where every requirement traces back to what you actually said. | |
| 4 | + | |
| 5 | +All product and implementation decisions live in `spec/`. Read `spec/SPEC.md`, `spec/PLAN.md`, and `spec/TASKS.md` before writing any code. Do not invent requirements that are not in the spec. | |
| 6 | + | |
| 7 | +## Commands | |
| 8 | + | |
| 9 | +``` | |
| 10 | +npm install # install dependencies | |
| 11 | +npm run dev # start server + client in dev mode | |
| 12 | +npm run typecheck # tsc --noEmit for server, client, shared | |
| 13 | +npm test # vitest run (all tests use mock providers, no network) | |
| 14 | +npm run build # production build of client + server | |
| 15 | +``` | |
| 16 | + | |
| 17 | +## Conventions | |
| 18 | + | |
| 19 | +- TypeScript strict mode everywhere. No `any` unless interfacing with an untyped external API, and then wrap it immediately in a typed boundary. | |
| 20 | +- Layout: `server/` (Fastify), `client/` (Vite + React), `shared/` (types used by both). Shared types are the single source of truth for API payloads. | |
| 21 | +- Tests live next to the code they test (`foo.ts` and `foo.test.ts`). | |
| 22 | +- All external providers (STT, LLM) go through the interfaces in `server/providers/`. Application code never imports `@anthropic-ai/sdk` or calls `fetch` to a provider directly. | |
| 23 | +- Tests and CI run with `MOCK_PROVIDERS=1`. Never write a test that needs a real API key or network access. | |
| 24 | +- API keys come from environment variables only. Never write a key to disk, to logs, or to a session file. | |
| 25 | +- Comments: only where the code cannot explain itself. No decorative comments, no docstrings on trivial functions. |
modified README.md +1 −1
| @@ -83,4 +83,4 @@npm run build # build the production client and server | ||
| 83 | 83 | npm run check # run typecheck, tests, and build |
| 84 | 84 | ``` |
| 85 | 85 | |
| 86 | -Product requirements and implementation decisions live in `spec/`. Coding-session rules are in `AGENTS.md` and `CLAUDE.md`. The blocker format is in `BLOCKED.md`. | |
| 86 | +Product requirements and implementation decisions live in `spec/`. Conventions and commands are in `CONTRIBUTING.md`. The blocker format is in `BLOCKED.md`. |