From gsd-beads
Reconcile external work-management tools back into bd (pull-on-demand, last-writer-wins)
How this command is triggered — by the user, by Claude, or both
Slash command
/gsd-beads:sync-pullThe summary Claude sees in its command listing — used to decide when to auto-load this command
Pull edits made in the external tools (GitHub/Jira/Asana/Azure Boards) back into bd, the hub. Do the following: 1. Confirm `.gsd-beads/sync.json` exists with an enabled backend. If not, tell the user to run `/gsd-beads:sync-config` and stop. 2. Run the reconcile: (Add `--since <iso8601>` to force a wider window; by default it uses the per-backend watermark in `.gsd-beads/state.json`.) 3. Reconciliation is **last-writer-wins by `updated_at`**: - external newer than bd → applied to bd via `bd update` - bd newer → left for the next push - both changed since last pull →...
Pull edits made in the external tools (GitHub/Jira/Asana/Azure Boards) back into bd, the hub. Do the following:
Confirm .gsd-beads/sync.json exists with an enabled backend. If not, tell
the user to run /gsd-beads:sync-config and stop.
Run the reconcile:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/gbsync.sh" pull
(Add --since <iso8601> to force a wider window; by default it uses the
per-backend watermark in .gsd-beads/state.json.)
Reconciliation is last-writer-wins by updated_at:
bd update.gsd-beads/conflicts.json with the chosen resolutionAfter it runs, read .gsd-beads/conflicts.json. If there are new entries,
summarize them for the user (bd_id, backend, which side won) and ask whether
any auto-resolution should be overridden by hand.
Report the per-backend applied / conflicts / skipped counts from the
dispatcher output.
npx claudepluginhub bigjiggity/claude-plugins --plugin gsd-beads/sync-pullPulls remote changes from cloud storage to local Claude Code sessions. Previews with dry-run, confirms with backup warning, executes pull, reports files downloaded and conflicts.