An agent that does not know a module is about to be replaced, or that something must not be done any more, can write code that will have to be undone.
Agents receive Planning at three moments. When they open the project, the brief includes the target state, every active item, up to three planned items and how many are blocked; planning_preflight returns the items whose affected modules or paths overlap the agent's plan; and every write through SyncNow lists the target state and the open planning items whose affected paths include the files being changed, holding the write once the first time such an item appears.
If Planning changes while an agent is working, its next check can warn it with PLANNING_CONTEXT_STALE so it revalidates its plan. A clear title and description make these checks more useful, and agents can link an item to the modules and paths it concerns with project_program; what do_not and forbids tell agents is explained in What do do_not and forbids mean on a planning item?.