# Session handoff
Update this at the end of every session. Keep it to what the next session
can't infer from `progress.md` + `feature_list.json`.
## State at last handoff
- Harness scaffolded (AGENTS.md, feature_list.json, init.sh, progress.md).
- Active challenge: **git-python**. No challenge code written yet.
- `workspace/git-python/` not created yet — first feature (`init`) will create it.
## What the next session should do first
1. Read `progress.md`, then `feature_list.json`.
2. Run `./init.sh` (expect exit 2 until `workspace/git-python/` + tests exist).
3. Start feature `init`: create workspace, write `tests/test_init.py`, implement.
## Gotchas / notes
- Verify against **real git** where possible (`git hash-object`, `git write-tree`)
to catch subtle byte-level bugs the tutorial prose won't.
- Git objects are zlib-compressed and SHA-1'd over `"<type> <len>\0<body>"` — a
common early bug is hashing the raw body without the header.
- `./init.sh` runs the WHOLE suite on purpose: don't let a new feature regress an old one.
## Open questions for the user
- Confirm git-python is the desired first challenge, or swap (Redis/Go, Shell/Python
were the other candidates). Swap procedure is in AGENTS.md.