source: Klonkt/CLAUDE.md

main
Last change on this file was 9041d35, checked in by Robin <roboburr@…>, 5 days ago

CLAUDE.md: de klonkt-beads zijn samengevouwen, en het pad klopte niet

Twee dingen rechtgezet in het blok over de gepensioneerde bak. Het pad
wees naar ~/Sources/shaer-frontend; de checkout staat in ~/work.

En de telling: de verhuizing van 23-8 nam de 32 uit de verouderde JSONL
mee, terwijl de databank ernaast er 34 had -- precies de drift waar dit
blok zelf voor waarschuwt. uj9 en ap6 stonden dus nog achter en zijn op
26-8 alsnog overgezet. Andersom bestaan 086 en da7 alleen in die JSONL,
wat verklaart waarom beide kanten op 32 uitkwamen en het klopte leek.

Lezen mag nu ook niet meer: die databank spreekt de waarheid in twee
richtingen tegen.

  • Property mode set to 100644
File size: 5.1 KB
Line 
1# Project Instructions for AI Agents
2
3This file provides instructions and context for AI coding agents working on this project.
4
5> **The beads database in this repository is retired. Do not write to it, and
6> do not read it either: it is no longer the truth about anything.**
7>
8> Klonkt's issues live in `~/work/shaer-frontend/.beads` (Dolt database
9> `shaer`). All 34 of them are there, keeping their original `prutfolio-src-*`
10> ids, so `bd show prutfolio-src-7cz` works from that repository and means the
11> issue it always did.
12>
13> Create, update and close Klonkt issues from `~/work/shaer-frontend`. The `bd`
14> commands below apply there, not here.
15>
16> Why: this repository has no `core.hooksPath`, so the beads hooks in
17> `.beads/hooks/` never ran. The Dolt database is gitignored and the one tracked
18> artefact, `.beads/issues.jsonl`, is only refreshed by those hooks — it had
19> drifted four days and two issues behind before anyone noticed. shaer-frontend
20> has the hooks wired, so its export stays current.
21>
22> **That drift bit once more.** The move of 2026-08-23 carried the 32 issues in
23> the stale JSONL, not the 34 in the database beside it, so `prutfolio-src-uj9`
24> (open) and `prutfolio-src-ap6` (closed) stayed behind where nobody would look
25> for them. Folded in on 2026-08-26; the count above is the whole set. The
26> mirror image is also true and explains the arithmetic: `prutfolio-src-086` and
27> `prutfolio-src-da7` live only in that JSONL and never existed in this
28> database.
29>
30> The local database is left in place as a historical artefact only. Nothing
31> enforces any of this: a `bd create` run here will succeed and be lost.
32
33<!-- BEGIN BEADS INTEGRATION v:1 profile:minimal hash:7510c1e2 -->
34## Beads Issue Tracker
35
36This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands.
37
38### Quick Reference
39
40```bash
41bd ready # Find available work
42bd show <id> # View issue details
43bd update <id> --claim # Claim work
44bd close <id> # Complete work
45```
46
47### Rules
48
49- Use `bd` for ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists
50- Run `bd prime` for detailed command reference and session close protocol
51- Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files
52
53**Architecture in one line:** issues live in a local Dolt DB; sync uses `refs/dolt/data` on your git remote; `.beads/issues.jsonl` is a passive export. See https://github.com/gastownhall/beads/blob/main/docs/SYNC_CONCEPTS.md for details and anti-patterns.
54
55## Session Completion
56
57**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
58
59**MANDATORY WORKFLOW:**
60
611. **File issues for remaining work** - Create issues for anything that needs follow-up
622. **Run quality gates** (if code changed) - Tests, linters, builds
633. **Update issue status** - Close finished work, update in-progress items
644. **PUSH TO REMOTE** - This is MANDATORY:
65 ```bash
66 git pull --rebase
67 git push
68 git status # MUST show "up to date with origin"
69 ```
705. **Clean up** - Clear stashes, prune remote branches
716. **Verify** - All changes committed AND pushed
727. **Hand off** - Provide context for next session
73
74**CRITICAL RULES:**
75- Work is NOT complete until `git push` succeeds
76- NEVER stop before pushing - that leaves work stranded locally
77- NEVER say "ready to push when you are" - YOU must push
78- If push fails, resolve and retry until it succeeds
79<!-- END BEADS INTEGRATION -->
80
81
82
83## Build & Test
84
85```bash
86npm start # production: node src/server.js
87npm run dev # watch mode
88npm test # unit tests (built-in node:test runner, no extra deps)
89```
90
91Tests live in `test/*.test.js` and run against an in-memory SQLite
92(`DATABASE_PATH=':memory:'`), so they never touch real data. Cover new
93permission logic with tests — `PermissionsService.canAdminSite` was once
94silently broken; see `test/site-permissions.test.js`.
95
96## Architecture Overview
97
98_Add a brief overview of your project architecture_
99
100## Conventions & Patterns
101
102- **Bump `MOD_V` whenever you change anything in `src/assets/js/mod/`.** It sits
103 at the top of the module loader in `src/views/shell.ejs` and is the
104 cache-buster for every page module. `/assets` is served `max-age=1y` outside
105 development, so without a bump a browser that visited before keeps running the
106 old module for a year — meaning a fix reaches everyone *except* the people who
107 already have the bug. Same discipline as `audio-player.js?v=N` a few hundred
108 lines up. One number for the whole directory: bumping too often costs one
109 download, bumping too rarely costs a bugfix that never arrives.
110
111- **Comments and commit messages in Dutch, identifiers in English.** The modules
112 in `assets/js/mod` read `setIcon`, `uploadOne`, `applyAccent`; the comments
113 around them are Dutch prose. Both halves matter — a Dutch identifier in an
114 English file is the same wrong note as an English comment in a Dutch one. This
115 extends to anything long-lived and outward-facing: URL paths and CSS class
116 names are English (`/read`, `.read-end`), never a Dutch verb form.
Note: See TracBrowser for help on using the repository browser.