Challenge 2 — Solution Task: A course finishes its final chapter, but course_bucket_list.md is left with the course still marked as "in progress" rather than removed, with a plan to "clean it up at the end of the week." Explain specifically which part of P7 this violates, and why "later" isn't an acceptable substitute for "the same turn." This violates P7's own core requirement directly: the tracking files must be updated in the SAME TURN a course's final chapter is generated, not deferred to a later cleanup pass. "I'll clean it up at the end of the week" is exactly the kind of deferral P7 exists to rule out. Why "later" isn't an acceptable substitute: the entire value of a tracking file depends on it being trustworthy the moment someone reads it, not trustworthy only after a promised cleanup eventually happens. Between now and "the end of the week," course_bucket_list.md would be actively wrong - claiming a finished course is still in progress - and anyone reading it during that window (a future session picking up where this one left off, a different task cross-referencing what's outstanding) would be misled by a stale record with no way to know it was already out of date. This is precisely the same failure mode as the PHP tracking-file example from earlier in this chapter: a gap between what the tracking files say and what's actually true, sitting unnoticed until someone happens to check. "Later" as a plan doesn't prevent that gap from existing - it just guarantees the gap will exist for a real, un-tracked amount of time before anyone even attempts to close it, and "the end of the week" plans are exactly the kind of promise that's easy to forget entirely once other work takes over. Notes: - P7's own wording deliberately doesn't leave room for "soon" or "later today" as acceptable - it specifies the same turn precisely because any gap at all, however short it's intended to be, is a window where the tracking file is actively lying about the real state of the project. - The fix in this scenario is simple in principle even if it wasn't followed in practice: remove the course's entry from course_bucket_list.md and add its real chapter list to completed_courses.md in the exact same response that generated the final chapter - no separate step, no later task.