Create a design spec and implementation plan first. If necessary, split that in phases. Then create a ledger that always holds the current status, and instruct the model to update that after it completes a task in the plan, and to append any issues it encounters during the implementation.
Then you can let it run, and when it stops, point a fresh session to the ledger to pick up the work from where the previous one left off.
You can get more fancy by using something like GitHub issues for coordination too and have multiple sessions create issues and epics and others to work on that in isolated worktrees, but the spec-plan-ledger approach usually works great for small to medium large projects.
Create a design spec and implementation plan first. If necessary, split that in phases. Then create a ledger that always holds the current status, and instruct the model to update that after it completes a task in the plan, and to append any issues it encounters during the implementation.
Then you can let it run, and when it stops, point a fresh session to the ledger to pick up the work from where the previous one left off.
You can get more fancy by using something like GitHub issues for coordination too and have multiple sessions create issues and epics and others to work on that in isolated worktrees, but the spec-plan-ledger approach usually works great for small to medium large projects.