pub fn finalize_spec(
spec: &mut Spec,
spec_repo: &FileSpecRepository,
config: &Config,
all_specs: &[Spec],
options: FinalizeOptions,
) -> Result<()>Expand description
Finalize a spec after successful completion.
This is the canonical finalization logic with full validation:
- Checks for uncommitted changes in worktree
- Validates driver/member relationships
- Detects commits (if not provided)
- Checks agent co-authorship for approval requirements
- Updates status, commits, completed_at, and model
- Verifies persistence
This function is idempotent and can be called multiple times safely.