stop-hook-brainstorming-infinite-loop-pattern

When a brainstorming session is mid-flow (step 4 of 9, awaiting user section approval) and the user goes idle, the stop hook fires repeatedly on every idle timeout — each time blocking the stop and returning the agent to a waiting state. This creates an infinite loop: hook blocks → agent sends holding message → user doesn’t respond → hook fires again. The stop hook’s ‘structural incompleteness’ logic overrides the ‘pure planning session = APPROVE’ criterion, causing the cycle to repeat indefinitely until the user returns.