source: Klonkt/CLAUDE.md@ 4cc4bcf

main
Last change on this file since 4cc4bcf was 4cc4bcf, checked in by Bart <bart@…>, 2 weeks ago

Retire the local beads database; the issues live in shaer-frontend

All 32 kept their prutfolio-src-* ids, so bd show prutfolio-src-7cz
still means the same issue from the other repository.

The reason this database drifted is worth recording next to the notice:
this repo has no core.hooksPath, so the hooks in .beads/hooks/ never ran.
The Dolt database is gitignored and the one tracked artefact,
.beads/issues.jsonl, is refreshed only by those hooks — it had fallen
four days and two issues behind before anyone looked.

core.hooksPath is deliberately left unset. Setting it now would make a
retired database export itself into git on every commit, which is the
opposite of retiring it.

Nothing enforces the retirement. A bd create here will still succeed
and still be lost, and the notice says so rather than implying a guard.

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