name: resolve-refcache-conflicts description: Skill for resolving static/refcache.json merge or rebase conflicts in the current branch or a specified PR. argument-hint: '[optional-pr-number]'
static/refcache.json is an auto-generated file. Resolving conflicts requires
first taking the integration branch's side, finishing the merge/rebase, then
running npm run fix:refcache to restore any URLs unique to the active branch.
Prerequisites
If the current branch has a merge or rebase in progress, then skip the rest of this section and jump to Preparation.
The current branch must be clean (git status --short). If not clean, offer to
run git stash or git commit to clean it up, or stop.
If $ARGUMENTS is a PR number, then check out the PR branch with:
gh pr checkout $ARGUMENTS.
Preparation
At this point, we are ready to resolve the conflicts in the active branch:
Determine the integration reference (
$BASE_BRANCH) and fetch it:- If an
upstreamremote exists:git fetch upstream, useupstream/main. - Otherwise:
git fetch origin, useorigin/main.
- If an
If merge or rebase is in progress (
git status), skip this step. Otherwise, ask the user whether to rungit merge $BASE_BRANCHorgit rebase $BASE_BRANCH, then run it.If there are no conflicts: stop, we are done.
Conflicts other than
static/refcache.json: resolve them with the user.If no
static/refcache.jsonconflict remains: stop, we are done. Otherwise, proceed to Resolve.
Resolve
Check out the
$BASE_BRANCHversion ofstatic/refcache.json. Assumes the active branch is being rebased/merged from$BASE_BRANCH, not the other way around:Operation Command Rebase of active branch onto $BASE_BRANCHgit checkout --ours static/refcache.jsonMerge of $BASE_BRANCHinto active branchgit checkout --theirs static/refcache.jsonStage the resolved files, then continue:
- Rebase:
git add static/refcache.json && git rebase --continue - Merge:
git add static/refcache.json && git commit --no-edit - If other files were resolved in Preparation step 4,
git addthose too before continuing.
- Rebase:
Rebase only: for each subsequent rebase stop that conflicts on
static/refcache.json, repeat Resolve steps 1–2. If other paths are also conflicted on that stop, run Preparation step 4 first.Run
npm run fix:refcacheonce, after the entire rebase/merge completes. Note: this runs a full Hugo build and link check — requires network, installed npm dependencies, and populated submodules; can take several minutes.Commit the changes, if any:
git add static/refcache.json git diff --cached --quiet static/refcache.json || \ git commit -m "Refresh refcache after resolving conflicts"Push:
- Merge:
git push - Rebase:
git push --force-with-lease
- Merge: