feat(apply): keep a record of deferred scope instead of losing it in chat
Author: clay-goodCreated Sep 17, 2026Updated Sep 17, 2026
Labelsdesign-review
Problem
When /opsx:apply hits work the change didn't plan for, it already pauses and asks (see "Pause if" in src/core/templates/workflows/apply-change.ts). But the answer only lives in the chat. If the user says "not now," that decision is gone when the session ends, and openspec archive has nothing to show.
Proposal
- When the user defers something, apply adds a one-line entry to a
## Deferredsection at the end oftasks.md:## Deferred - Retry on 429 responses: out of scope, follow-up change - Entries are plain bullets with no checkbox, so
src/utils/task-progress.tsdoesn't count them as tasks. They don't affect progress and don't block archive. openspec archivelists any deferred items before it finishes, so each one becomes a new change or gets dropped on purpose.
Why it fits
It doesn't add an artifact, command or schema field. It records a decision apply already asks the user to make, and it makes an archived change an honest record of what was and wasn't built.
Source: Fission-AI/OpenSpec