# Memory — 2026-03-22 ## Johan's Working Style (05:32 AM — explicit correction) **No symlinks. No rsync pipelines. No "clever" file plumbing.** When something needs to be in two places, copy it explicitly. Simple, obvious, traceable. "That's not how I roll" — figure it out, don't ask, don't add infrastructure for file movement. ## Clavitor Project Setup (03:55–04:21 AM) ### Project Structure (decided) Single workspace on forge: `/home/johan/dev/clavitor/` ``` clavitor/ ├── docs/ # SHARED docs for both OSS and commercial ├── oss/ # PUBLIC — goes to GitHub │ ├── server/ │ ├── cli/ │ ├── extension/ │ └── mobile/ # Flutter (iOS + Android) └── commercial/ # PRIVATE — never on GitHub ├── website/ ├── admin/ ├── billing/ └── infrastructure/ ``` ### Repo strategy - **Monorepo** under `github.com/clavitor/clavitor` - OSS half goes to GitHub. Commercial stays on forge/Zurich only. - `scripts/sync-to-github.sh` will push `oss/` to GitHub - vault1984 source stays intact at `/home/johan/dev/vault1984/` as backup ### Migration status (as of 04:21 AM) - Structure created at `/home/johan/dev/clavitor/` - vault1984 files COPIED (not moved) to clavitor/oss/ and clavitor/commercial/ - Makefile updated: binary output names changed vault1984 → clavitor - Go module names / import paths: LEFT UNCHANGED (internal plumbing, no need to rename) - Claude Code subagent running (pid 1363913, session gentle-shell) to: - Finish user-facing renames (README, web UI titles, CLI help text) - Attempt compile - Report results ### Key decisions - Do NOT rename Go import paths or module names — internal plumbing, code compiles fine as-is - Only rename user-facing strings: binary names, README,