2026-07-01·2 min read

SkinAtlas, part 3: memory that survives the session

field-notesskinatlasclaude-code

Every Claude Code session starts empty. For a project moving as fast as SkinAtlas, that’s the central engineering problem: by day ten, no session can know about the RGBA bug, the dedup incident, or the decision never to scrape that one website — unless memory is built as infrastructure.

The memory directory

SkinAtlas keeps a .claude/memory/ directory in the repo: one markdown file per durable fact, plus an index. Dated “shipped” notes act as changelogs. Decision files record standing policy with the reasoning attached. Feedback files record corrections I’ve made so they stick. A git pre-commit hook syncs the local session memory into the repo before every commit, so memory travels with the code to every machine and every future session, not stranded on the laptop that learned the lesson.

My favorite example is the RGBA compositing bug. Pillow’s convert("RGB") silently fills transparent pixels with black, which shipped black-background product images to production. The fix is one line. The reason it never happened again is that the lesson exists in three places: a memory file, the image-validation skill, and the main project instructions, with the correct snippet inline. The bug’s obituary is the guardrail.

Skills as standard operating procedure

The project has six first-party skills — ingest a product, run a mass extraction, research unknown ingredients, scrape, validate images, verify catalog ingredients. Each reads like an SOP written by someone who got burned: here’s the routing table by retailer domain, here’s the dedup guardrail, here’s what to do when the search comes back empty, here’s the measured error rate that justifies this much verification. New sessions don’t rediscover the workflow; they follow it, and when they hit something new, the skill gets a new paragraph.

Parallel sessions without collisions

Heavier work runs in git worktrees — parallel checkouts where separate agent sessions do image verification or batch ingestion without stepping on the main working copy or each other. At one point there were eight active. Combined with the progress-file pipeline from part 2, the project can have one session drafting a feature while two others grind through catalog batches, each resumable independently.

None of this is exotic. It’s a plain directory of markdown, a shell hook, and a branching feature git has had for years. The shift is treating the AI’s working knowledge as a first-class project artifact — reviewed, versioned, and debugged like everything else. Out of all five projects, this is the pattern I’d tell you to steal.