Workspace formatting conflict recovery
Supported pack installation can reformat workspace.yaml, and a later governed rebase can pause on that formatting. Use the existing continuation from your claimed worktree:
You can also invoke it from the canonical main checkout with --base-dir and the WU id. No additional recovery flag or manual YAML editing is required. Resolve and stage ordinary content conflicts first using their supported workflow. An unexpected unresolved path or an unauthorized staged path refuses before workspace or index writes; reviewed extra staged paths still require explicit --allow-staged authorization.
The command validates the active claim, worktree/branch binding, pinned pause, HEAD, rebase refs, conflict paths and index. For workspace.yaml, it independently reconstructs the three-way file merge from the complete Git index base and both side documents using Git’s file-merge primitive, without writing the workspace, index or object store. The existing YAML library validates those sources and parses complete documents from both reconstructed merge alternatives and both working conflict alternatives. All four merged alternatives must have strictly equal semantics, including every unrelated or custom configuration section. Nonconflicting pin and configuration updates outside the formatting hunks remain intact even when the complete side documents differ. Edited common working content must also match the independently reconstructed merge, preventing spoofed configuration from passing the proof.
Malformed/nested markers, duplicate or nonstring keys, multiple YAML documents, unknown tags, unresolved/excessive aliases, nonmapping roots, absent index stages, executable mode changes and symlinks refuse without normalizing, replacing or staging the workspace or updating the pause. Integer comparison preserves precision. The command checks authority and the live workspace/index again before writing.
When the proof passes, the YAML library renders the shared value and the command stages only workspace.yaml. Presentation and comments may change, but configuration values stay intact. If staging fails, the original conflict bytes are restored. The normal governed continuation then handles rebase completion, audit and baseline refresh.
For substantive or ambiguous configuration differences, inspect the preserved pause or abort it:
Use the owning commands (config:set, config:unset, lane:edit, pack:install) for intended configuration changes after aborting, or escalate a conflict that needs coordination. Hand editing managed YAML, choosing a conflict side, bypassing hooks, modifying a merge driver or changing a baseline is not part of this recovery.
The public command surface is unchanged; command help updates are n/a.