{
 "id": "14.2",
 "title": "How we work with Claude",
 "department": "People and ways of working",
 "department_slug": "people-and-ways-of-working",
 "direction": null,
 "branded": false,
 "status": "draft",
 "owner": "Param",
 "last_verified": "Mon Oct 26",
 "holds": "Sessions, worktrees, memory, the rules every session follows",
 "urls": {
  "html": "https://handbook.joinsquareup.com/people-and-ways-of-working/how-we-work-with-claude",
  "markdown": "https://handbook.joinsquareup.com/people-and-ways-of-working/how-we-work-with-claude.md",
  "json": "https://handbook.joinsquareup.com/people-and-ways-of-working/how-we-work-with-claude.json"
 },
 "other_directions": [],
 "tldr": {
  "headline": "Param directs, Claude sessions build, shared rules keep them in line",
  "points": [
   {
    "icon": "book",
    "text": "Each session starts from memory notes, the brew guide, the handbook and skills."
   },
   {
    "icon": "flag",
    "text": "Every fix works for every brand, with a test, a heal and no one-off patches."
   },
   {
    "icon": "link",
    "text": "Many sessions share one repo: stage only your lines, deploy from a clean worktree."
   },
   {
    "icon": "check",
    "text": "After every phase, a QV round with fresh reviewers before the next phase."
   },
   {
    "icon": "spark",
    "text": "What a session learns goes into a memory note, then the handbook."
   }
  ],
  "stat": {
   "value": "3",
   "label": "more QV rounds before closing"
  },
  "decide": "Do Sai and Arvind run their own Claude sessions on brew, each in a worktree?",
  "mood": "solid"
 },
 "sources": [
  "brew origin/main a559de6: CLAUDE.md (top, 'Every brand, every platform', 'Release rhythm'), deploy.sh:7-16",
  "handbook/AGENTS.md 'How to use it, as a Claude session', 'Rules that never bend'",
  "/Users/param/Documents/ChatGPT/.claude/settings.json Stop hook; .claude/skills/handbook-update/SKILL.md",
  "memory MEMORY.md, feed-for-all-brands, fix-as-product, brew-qv-process, brew-parallel-sessions-deploy, always-deploy-to-test, no-spend-while-building, prod-clean-only, brew-one-version (index line), never-disconnect-arata-meta, brew-external-data-skill (index line), brew-prod-backend, brew-handbook",
  "handbook content/engineering/parallel-sessions.md"
 ],
 "open_questions": [
  "**Do Sai and Arvind run Claude sessions on brew?** No source says. Proposal: yes, each in their own worktree on a branch, merging through Param until they have done one QV round with him.",
  "**Which memory notes move into the handbook?** Proposal: rules and runbooks move into handbook pages over the next two weeks; memory notes then keep a one-line pointer."
 ],
 "parts": {
  "Answer": "Most of Brew is built by Claude sessions that Param directs, several at once, and this page sets out how a session starts, what it must read, the rules every session follows, how sessions share one repo safely and how what they learn is kept.",
  "Today": "### Where a session gets its context\n\n| Context | What it holds | Source |\n|---|---|---|\n| Memory folder `~/.claude/projects/-Users-param-Documents-ChatGPT/memory/` | One note per project, rule or lesson, dated; `MEMORY.md` is the index loaded into every session | [src: memory MEMORY.md] |\n| `brew/CLAUDE.md` | Scope, dummies, the outside-data rule, every brand and platform, release rhythm | [src: brew/CLAUDE.md] |\n| `handbook/AGENTS.md` | Start here for any planning or document work | [src: handbook/AGENTS.md] |\n| Skills | `brew-external-data` before any outside-data change; `handbook-update` after any change the handbook describes | [src: memory brew-external-data-skill] [src: .claude/skills/handbook-update/SKILL.md] |\n| Plans | Approved plans saved under `~/.claude/plans/` and named in the memory note | [src: memory brew-prod-backend] [src: memory brew-handbook] |\n\n### Rules every session follows\n\n| Rule | Said by | Source |\n|---|---|---|\n| Every fix works for every brand, card, widget and view; heal saved data; never break the feed | Param, 14 and 23 Oct | [src: memory feed-for-all-brands] [src: brew/CLAUDE.md] |\n| Every audit bug is fixed in code with a test or guard and a heal, never a one-off data patch | Param, 24 Oct | [src: memory fix-as-product] |\n| After every phase, an exhaustive QV round with fresh reviewers before the next; 3 more full rounds before closing | Param, 25 Oct | [src: memory brew-qv-process] |\n| One version, then Redo it; never three options | Param | [src: memory brew-one-version] |\n| Deploy to staging after every tested change without asking; still ask before spending money or touching real ads or stores | Param, 12 Oct | [src: memory always-deploy-to-test] |\n| No paid generations while only building; ask before a paid probe | Param, 27 Sep | [src: memory no-spend-while-building] |\n| Nothing dummy or test reaches production | Param, 25 Oct | [src: memory prod-clean-only] |\n| Never disconnect, reconnect or re-select Arata's Meta or Shopify | Param, 22 Oct | [src: memory never-disconnect-arata-meta] |\n| Truth first; read code at origin/main; read only in v1 | handbook rules | [src: handbook/AGENTS.md] |\n\n### Sharing one repo\n\n- Several sessions edit `brew/` at the same time. Each stages only its own lines, pushes to origin/main, and deploys from a clean detached worktree of origin/main. [src: memory brew-parallel-sessions-deploy]\n- `deploy.sh` refuses a dirty tree and retries a failed suite once, because two suites side by side can trip each other. [src: brew/deploy.sh:7-16]\n- Never stash, reset or edit another session's uncommitted work. [src: memory brew-parallel-sessions-deploy]\n- Long runs, a production plan for example, work on a branch in their own worktree, such as `brew/.wt-prod`. [src: memory brew-prod-backend]\n\nFull runbook: [Parallel sessions](/engineering/parallel-sessions).\n\n### Keeping what a session learns\n\n- A session writes or updates a memory note when it learns a rule, a lesson or a decision, with the date and why. [src: memory MEMORY.md]\n- A Stop hook asks a session that changed brew, brand-directions or memory to run `handbook-update` before it ends. [src: .claude/settings.json] [src: memory brew-handbook]\n- Reviews in QV rounds use fresh, independent reviewers, not anchored on the building session's view. [src: memory brew-qv-process]",
  "Tomorrow": "| Item | Version | Tag |\n|---|---|---|\n| Memory notes, CLAUDE.md, AGENTS.md and skills as the shared context | v1 | Stays |\n| The handbook as the planning home; memory notes keep working truth and point here | v1 | Changes |\n| Sai and Arvind running their own Claude sessions on the same rules | v1 | New, see Open |\n| Old memory notes folded into handbook pages and archived | v2 | Changes |",
  "How we do it": "1. Start: read `MEMORY.md`, then the notes and handbook pages your task touches. For brew, read `brew/CLAUDE.md`, `SCOPE.md` and `DUMMY.md`.\n2. Before planning, check the decisions log and the Open part of the pages you touch. Never re-decide a decided thing.\n3. For phased work: write the plan, get Param's yes, and run a QV round after each phase.\n4. Commit only your lines; push; deploy from a worktree:\n\n```bash\ngit -C /Users/param/Documents/ChatGPT/brew worktree add --detach \"$TMPDIR/brew-deploy\" origin/main\n```\n\n5. Before finishing: update or add a memory note, then run `handbook-update`.\n6. When unsure, ask Param or leave a question with a proposal in the page's Open part. Do not guess.",
  "Numbers": "| Metric | Definition | Where measured |\n|---|---|---|\n| Sessions that ended without `handbook-update` after a relevant change | Stop hook prompts ignored | Proposed: Stop hook log |\n| Deploys that dropped another session's work | Incidents of this kind | [Incidents](/ops-and-infrastructure/incidents), Proposed |",
  "Open": "1. **Do Sai and Arvind run Claude sessions on brew?** No source says. Proposal: yes, each in their own worktree on a branch, merging through Param until they have done one QV round with him.\n2. **Which memory notes move into the handbook?** Proposal: rules and runbooks move into handbook pages over the next two weeks; memory notes then keep a one-line pointer."
 }
}