#1907·OpenSpec

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 ## Deferred section at the end of tasks.md:
    ## Deferred
    - Retry on 429 responses: out of scope, follow-up change
    
  • Entries are plain bullets with no checkbox, so src/utils/task-progress.ts doesn't count them as tasks. They don't affect progress and don't block archive.
  • openspec archive lists 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.