profileShare

rasmusjy / voicetask

Read-only snapshot

No repository description.

main default branch 105 files Expires Sep 13, 2026, 9:06 AM

Commit

Move the coding conventions into CONTRIBUTING.md

The conventions, commands and layout rules are ordinary project documentation
and belong under an ordinary name. Editor and tooling configuration is local
and is now ignored rather than tracked.
commit 873a24a

3 changed files with +30 and −1

Jump to a changed file
  1. .gitignore +4 −0
  2. CONTRIBUTING.md +25 −0
  3. 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`.