Day 0: The session that vanished
The project started with a disappearance. Chris had a Claude Code Remote Control session open on the Windows/WSL laptop, driven from a phone. Then it was gone.
What actually happened
The forensics took three commands:
$ uptime
16:57:09 up 0 min
$ last -x | head -3
reboot system boot 6.18.33.2-micros Sun Nov 8 16:56 still running
shutdown system down 6.6.114.1-micros Sun Nov 8 16:46 - 16:56
The WSL VM had shut down at 16:46 and rebooted onto a new kernel (6.6 → 6.18). That's the signature of a WSL/Windows update. Every Linux process died with it, including the claude process that Remote Control was attached to. The conversation transcript was safe on disk (claude --resume can bring it back), but the live session was gone.
Rescuing the prompt
The message Chris was about to send was still sitting in the phone's input box, so he screenshotted it before it was lost too:

I want to play around with robotics. Virtually... Once I tried to make an autonomous lawnmower. Let's do that again. But. We're doing it agentic from the start. Docker containers. Bash scripts. Repeatable processes. Infrastructure as code... Making sure it's fault tolerant to subscription limits with Claude.
The lesson that shaped everything
If a reboot can delete a conversation, the conversation can't be where the project lives. So from minute one:
PROMPT.mdholds the original ask, transcribed from those screenshots.PLAN.mdholds the roadmap as session-sized checkboxes.PROGRESS.mdholds the handoff note, always ending in "Next step".CLAUDE.mdholds instructions for any future Claude session: read PROGRESS.md first.- A commit at every milestone. The worst case is losing one milestone.
Lesson learned
Treat AI sessions like spot instances: they can vanish at any moment. Put the state in git.