# BANK — project memory contract *Drop this at the root of any project. Any AI session reads it FIRST. It defines how this project remembers itself.* --- ## 0. On entering this project (always, before anything else) 1. Read the notes file named in section 1. 2. Scan the filesystem per section 2 until you can describe the project's layout from memory. 3. Only then start the actual task. You now know this project to a T. ## 1. Identity (FILL) - Project: - What it is: - Status: - Notes file: - Notes format: <"code" or "at-home" — see section 4> ## Queue (open items — one per line, never a comma-run inside Status) Open / queued / deferred work lives here. Identity's Status line says what IS; this section says what's PENDING — fusing them makes both unreadable. One item per line, tagged with the machine it runs on where known. - ## 2. Filesystem map (FILL — or point to where it lives) Either a short map here, or: "see the map in the notes file." / Machines / locations involved: ## 3. The BANK command When I say BANK, do exactly four things, in order: 1. Sync memory — reconcile your understanding of the project as it stands now. Retire stale entries, protect foundational ones, keep it lean. 2. Write notes — append a dated entry to the notes file (section 1) in this project's format (section 4). 3. Emit — produce whatever propagates the update, per the executor (section 5). 4. Close-out — always propose a retitle; recommend closing only on evidence. - Title, always. Form: X_. Chat titles auto-generate from the OPENING message, so they name the intent, not the outcome — the retitle is the only chance to make a session findable by what it actually produced. Use nouns a future search would type, never process words ("X_topic cap leak fix", not "Documenting recent work"). - Closure, conditionally. Recommend closing only when open items are zero or all written into the notes file. If anything is live, say so and do NOT suggest closing — BANK also runs mid-session, and a ritual that always nudges toward closing will eventually close something in motion. - X_ is a retrieval signal: it tells a future session the conclusions were SETTLED rather than mid-flight. An optional companion: retitle O_ at session open for live work; close-out flips O_ to X_. Escalation check (part of every BANK): if this session changed or revealed a BASE-level fact — infrastructure, paths, machine roles, cross-project conventions — say so explicitly and flag CLAUDE-BASE for an update. Base facts buried in project notes are how mirrors rot. ## 4. Note format (pick one, delete the other) Code projects — commit-style, dated: ## YYYY-MM-DD — Shipped: The change: Follow-ups (open): At-home / non-code projects — decision + state, dated: ## YYYY-MM-DD — Decision/Did: Current state: Next: ## 5. Executor (FILL — declares how step 3 propagates) - Code project: emit a paste-ready terminal prompt that appends the entry to the notes file, then commits + pushes with explicit named paths (never "git add ."). State which machine and repo it runs on. - Non-code project: just rewrite the notes file directly. No terminal, no git. This project's executor: ## 6. Project rules (FILL — hard constraints a fresh AI must not violate) - -