Use This Skill
Put this line near the top of any prompt when you need to pull latest changes and sync submodules:
@sync-modules
Goal
Keep the control-center and its submodules up to date with the latest upstream changes, while preserving clean git state and avoiding destructive operations.
Standard Flow
1) Sync control-center master
git fetch origin --prune
git pull --ff-only origin master
git submodule update --init --recursive
2) Check submodule status
git submodule status
git -C vendor/openwork status
git -C vendor/openwork-landing status
3) Update OpenWork submodule pointer (optional)
# Update the pinned checkout to the latest main.
git -C vendor/openwork fetch origin --prune
git -C vendor/openwork switch main
git -C vendor/openwork pull --ff-only
# Record the new gitlink on control-center master.
git add vendor/openwork
git commit -m "chore: bump openwork submodule"
git push origin master
4) Update OpenWork Landing submodule pointer (optional)
# Update the pinned checkout to the latest main.
git -C vendor/openwork-landing fetch origin --prune
git -C vendor/openwork-landing switch main
git -C vendor/openwork-landing pull --ff-only
# Record the new gitlink on control-center master.
git add vendor/openwork-landing
git commit -m "chore: bump openwork-landing submodule"
git push origin master
Notes
- Never use destructive git commands (
reset --hard, forced checkout) unless explicitly requested. - Keep submodule pointers in control-center
masteraligned with merged submodule changes. - If a submodule is detached, switching to its main branch is expected for syncing.
