Handle a scope change discovered during implementation. OpenSpec is updated first, then Beads.
-
Pause the current Beads issue
Do not close it. Update with notes:
bd update <current-issue-id> --notes="Paused: discovered spec gap — <brief description>. Updating OpenSpec before continuing."
-
Update OpenSpec artifacts
Use the built-in openspec-continue-change skill to add or revise artifacts:
Invoke: openspec-continue-change with the change-id
Or if the gap is a delta spec update to an existing capability spec file:
Invoke: openspec-sync-specs for the affected capability
These skills handle the artifact update workflow. Do not reproduce their steps inline.
If the scope change is large or affects agreed design decisions, surface it to the user and get explicit approval before invoking.
-
Validate
openspec validate <change-id>
Do not proceed if validation fails.
-
Create Beads issues for the new work
bd create \
--title="<scope change title>" \
--description="Scope update from openspec/changes/<change-id>. <Original task context>. Acceptance: <updated criteria from spec artifact>." \
--type=task \
--priority=2
Then tag with the standard context labels (MANDATORY). Every Beads issue must carry branch:<name>, worktree:<name>, repo:<name>, plus openspec:<change-id>:
source ~/.claude/ruflo/lib/tags.sh
PREFIX=$(ruflo_key_prefix)
BRANCH_LABEL=$(echo "$PREFIX" | awk -F'|' '{print $1}')
WORKTREE_LABEL=$(echo "$PREFIX" | awk -F'|' '{print $2}')
REPO_LABEL=$(echo "$PREFIX" | awk -F'|' '{print $3}')
bd tag <new-issue-id> "$BRANCH_LABEL"
bd tag <new-issue-id> "$WORKTREE_LABEL"
bd tag <new-issue-id> "$REPO_LABEL"
bd tag <new-issue-id> "openspec:<change-id>"
-
Link dependencies
If the scope change blocks currently in-flight issues:
bd dep add <blocked-issue-id> <new-scope-issue-id>
If the paused issue now depends on this scope issue:
bd dep add <current-issue-id> <new-scope-issue-id>
-
Resume or hand off
bd ready
Report the new work created, the updated dependency graph, and which issue is now the next ready item.