Claude Code Memory — John (General)

General preferences and environment facts that apply across all projects. Read this at the start of any session, regardless of project. Project-specific memory lives under memory/{project}.

Organization Principle

Two levels of memory:• memory/john — general: user preferences, environment, cross-project facts. Read always.• memory/{project} — project-specific: architecture, bugs, testing, infrastructure. Read when working on that project.MEMORY.md in each project should point to both.

When adding a new memory, ask: does this apply only to this project, or everywhere? If everywhere — it belongs here, not in the project note.

Shell & Terminal Preferences

• No colour in shell output, prompts, or tool output — plain text only, always.• No emoji unless explicitly requested.• PS1 set via ~/.bashrcs/ps1: \D{%a %d %b} \u@\h:\w\$ (date always visible in prompt).• Shell config is modular: ~/.bashrcs/* files sourced if executable. See john/system-config for full details.

Communication Style

• Concise and direct — lead with the answer, skip preamble.• No filler phrases, no restating what was just said.• Short sentences. Markdown links for file/code references.

Paid services: John wants to be told when a paid service call actually happens, including what it did and an estimated cost when available. Do not announce that a call was not made. He does not require a permission question merely because it costs money; a small cost is acceptable.

Claude Code CLI

John has Claude Pro subscription — use option 1 (Claude account) when authenticating the claude CLI.

Environment

• Linux (Ubuntu), user: john (not root), hostname: pomelo.• Python is the main language; npm prefix: ~/.npm.• Notes system HTTP API on localhost:8021. CLI: ~/bin/notes. Start if down: cd ~/py/gdata-server && GDBM_PATH=.agent_notes.gdbm uvicorn gdata_server:app --port=8021

Python package installation: John explicitly said on 2026-09-18 never to use .venv. Install into ~/.local with python -m pip install --user --break-system-packages (or the pipin alias). Do not create a virtual environment as a default or fallback. Update this preference only when John changes it.

Shell Aliases

Commands are often aliases, not on $PATH. Before concluding a command is unavailable, grep ~/.bashrcs/ and ~/.bashrc. Shell config is modular — files in ~/.bashrcs/* are sourced if executable but not inherited by Claude Code's shell.• ask/home/john/git/ask/ask_with_files_structured.pypipinpip install --user --break-system-packages (defined in ~/.bashrcs/pip-alias)

Working Habits

• Scratch diff/patch files named d, dd, d2, d3... are John's own. He makes a diff, applies it with patch, and leaves the file in place so he can revert with patch -R if needed. Do not flag them as stray, do not delete them, and never git add them. Use git status to find genuine accidental changes instead.

Temp/scratch files: do not use /tmp. Use $HOME/tmp (~/tmp) for downloads and scratch work instead.

The /z WebDAV mount: never use it in scripts or automation. /z is a davfs2 mount of https://webdav.critchley.biz/. davfs2 caches writes locally and uploads them later — so a write can return success, and the file can even read back correctly through the same mount (served from cache), while nothing has reached the server. The data lands on flush/unmount, not on close, and is lost entirely if the mount or host goes away first. Read-only, interactive use is fine. For anything that must actually arrive, use curl/webdav4/requests with ~/.netrc against the URL directly, and verify with a HEAD afterwards. See README/lessons (2026-09-16 incident: rsync to /z reported success for 106 files; 105 were still sitting in davfs cache).

Wording: John prefers “lessons” over the corporate “learnings” (flagged 2026-09-02, e.g. a ‘capture-the-lessons’ command). Use ‘lessons’ in notes, headings and prose.

Cooking Preferences

• Uses a fan oven.• When the oven is already on, prefers to cook compatible vegetables alongside the main dish rather than use a separate hob pan where practical.

version 4  ·  created 2026-03-06  ·  updated 2026-09-18