Eight things you can do the week you install her. Every transcript below is the real shape of the product, with names genericized.
You told it yesterday. You are telling it again today. Never a third time:
$ grandma acme
you> quick reminder since you keep getting this wrong: backend is Go on GCP,
frontend is Next.js, db is Postgres. migrations only through atlas.
grandma> ✓ noted (state-change) -> acme/facts.md: Go/GCP backend, Next.js front,
Postgres, migrations via atlas only
Every future grandma acme session starts already knowing this. The fact costs you
one sentence, once.
Corrections are the highest-value thing an agent can learn, and the first thing a stateless one forgets:
you> stop. we never use yarn here. pnpm. this is the second time.
grandma> ✓ noted (correction) -> acme/facts.md: pnpm only, yarn is banned
Corrections route to memory that loads on every session in that sweater. Project-level lessons go into that project's own CLAUDE.md, so "never do X again" actually means never.
You do work for two companies. Their stacks, their vocabulary, their secrets policies must never mix:
$ grandma client-a # loads global + client-a. Nothing about client-b exists here.
$ grandma client-b # and vice versa
This is not a convention, it is an enforced invariant: grandma test verifies that
every sweater's bundle contains only global plus that sweater, and the check gates every
commit to the engine. Sweater isolation is the reason grandma exists.
$ grandma acme new-billing-service
⟳ acme does not know 'new-billing-service' yet — let's set it up...
Grandma interviews you (or reads the folder you point her at), writes the project's CLAUDE.md, registers it in the sweater's catalog, and stops. From then on:
$ grandma acme billing # fuzzy match works
drops you into the project folder with global memory, sweater memory, and the project playbook all loaded.
Around hour three, Claude Code compacts the conversation and quietly loses its standing instructions. You notice as it starts suggesting yarn again. With grandma, compaction triggers a hook that re-injects your entire memory bundle on the spot:
[conversation compacted]
grandma> (memory re-injected: global + acme, 4 files)
Hour six behaves like minute one. You do nothing.
Exit a session with Ctrl+D. Grandma looks over the session on the spot and shows you what she noted, instead of leaving it for next time:
$ grandma acme
...your work...
# (you press Ctrl+D)
🧶 grandma is looking over the session…
🧶 grandma noted something from this acme session:
• 2 memory file(s) updated live (uncommitted)
• a drafted proposal to review
review now? [Y/n] y
── live memory diff (git -C ~/.grandma diff) ──
...the diff...
── drafted proposal ──
...apply it with: grandma review --apply <file>
Answer n and it waits for you (grandma review acme later, or git -C ~/.grandma diff).
Sessions you didn't launch with grandma get the same distill quietly in the background,
surfaced at your next launch. Either way, nothing enters memory permanently without passing
through your git diff.
$ grandma watch start "what am I doing that makes sessions long and expensive?" --weeks 2
Grandma measures every session in the window (duration, turns, tokens by type,
compactions, tool calls), reads the substantial ones, and when the window ends you get
a notification and a report: the numbers, the patterns, ranked changes to make. Run
grandma watch finish <slug> any time to get the report early.
The first real report on grandma's own development found that seven marathon sessions consumed 67 percent of all output tokens, and independently rediscovered two bugs the author had already fixed by hand. It reads receipts, not vibes.
$ grandma
grandma — which sweater?
1) acme
2) side-project
n) + describe a new sweater
> n
Describe the new sweater
> my resume is at ~/docs/cv.pdf and I am hunting for staff engineering roles
Sweater 'job-search' created. Run grandma job-search to start.
Job hunt, house move, tax season, wedding planning. Anything you context-switch into repeatedly deserves a sweater. The resume stays where it is. Grandma stores the pointer, never the file.
Start every piece of work with grandma <sweater> instead of claude, and correct her
freely when she is wrong. Everything else is automatic.