Regarding:

``` # Development Workflow

*Always use `bun`, not `npm`.*

# 1. Make changes

# 2. Typecheck (fast)

bun run typecheck

# 3. Run tests

bun run test -- -t "test name" # Single suite bun run test:file -- "glob" # Specific files

# 4. Lint before committing

bun run lint:file -- "file1.ts" bun run lint

# 5. Before creating PR

bun run lint:claude && bun run test ```

I have these things in pre-commit, this way the targets are always ran and the agent is forced to fix them (I ask claude to commit changes). The agents are erratic and very often skip these steps. Anything that can be deterministic I keep as scripts.

Regarding commits; both codex and claude are terrible at writing them. I have in my user CLAUDE.md:

``` Pattern: `type(scope): message` where type is `fix`, `feat`, `chore`, `docs`, `refactor`, or `style`; scope marks what is affected; message is a short lowercased description.

Keep subject and body lines under 72 characters. Always write a body explaining what, how, and why in continuous human-readable text. For fixes include the error message being fixed. No first-person speech. Re-read the actual git diff before writing — the message must describe what changed, not what was planned.

Use following command to create commit:

```bash git commit -F - <<'EOF' type(scope): subject line

Body paragraph explaining what, how, and why. EOF ```

```

Without it would write the body as a single long sentence; when asked to fix lines it would just insert \n (newlines), which were not respected and were instead just rendered as characters.

Another thing I find helpful is VOCABULARY.md. Very often the agent would assume (connect?) a different thing than what I had in mind, with VOCABULARY I make sure when I say "thing" claude and I have both the same "understading" (connection?) what "thing" is.

I mean at this point, you should just write a few deterministic orchestration scripts to automate away the boring parts and write the code yourself. Why are we wasting our time on making the wonder shit-machine work?

I don't know, after working for 13 (?) years as a software (and backend) engineer I kind of think writing the actual code is the boring part of our job. 90% of it (random number) is mostly a template code (depending on the language you use).

Isn't it simpler to use claude's vocabulary? I don't see a good use case for this.

There is so many concepts that I just sometimes forget, that's the purpose of the file, so I don't have to guess and can explain clearly what I mean (I am not a native speaker).

Example: https://github.com/rkuska/carn/blob/main/VOCABULARY.md

To understand a solution you must first understand the problem. If your whole company calls its customers "clients" but claude finds that confusing, I think it's probably easier to tell claude that then get everyone in the company to change how they talk.