Skip to content

sync-skill: stack a directed sync on an open sync PR; recognize tag-tip workflow swaps - #125

Merged
zpyoung merged 1 commit into
mainfrom
sync-lessons/v1.4.230
Oct 19, 2026
Merged

zpyoung merged 1 commit into
mainfrom
sync-lessons/v1.4.230

Conversation

@zpyoung

@zpyoung zpyoung commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner
Files Added Deleted Net
Test 0 0 0 0
Prod 2 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​36 0 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​36

ELI5

The v1.4.230 sync hit two situations the sync skill didn't cover. This writes down what worked so the next run doesn't have to work it out again.

What Changed

  • SKILL.md Step 2. The rule that stops a run while an older sync PR is open now also says what to do when a person tells the run to go ahead anyway: build the newer tag's merge on top of the older PR's branch and open a new PR. The unattended stop itself is unchanged.
  • references/sync-lessons.md. A new entry for tags whose last commit swaps in upstream main's workflow files. It covers how to spot one (the commit just below release: <tag> touches only .github/workflows/) and the fix: take that commit's parent for those workflows.

Why

Both are reproducible and cost this run real time.

  • Stacking on the open PR. Open sync PR sync: absorb upstream v1.4.227 #120 (v1.4.227) blocked the v1.4.230 sync at Step 2. The owner said to "rebase off of PR 120". The run reset to sync: absorb upstream v1.4.227 #120's head d3dfc479b8, merged v1.4.230 with -X ours, and opened sync: absorb upstream v1.4.230 #122. Merging sync: absorb upstream v1.4.230 #122 (merge commit 0316f51c75) landed both tags. GitHub then marked sync: absorb upstream v1.4.227 #120 merged, because its head became an ancestor of main. git merge-base --is-ancestor v1.4.230 origin/main passes, and the merge commit has two parents.
  • Workflow swap. It has now happened on two tags in a row: a220036892 under v1.4.227 and 597425845e under v1.4.230. On PR sync: absorb upstream v1.4.230 #122 it turned 8 workflow-contract tests red on files byte-identical to the tag. It also added a dependency_isolation job to pr.yml that failed verify on every PR with "missing or invalid selection". Taking 597425845e^ for the upstream-owned workflows cleared the 8 tests (sync commit d22754e8ef). Dropping the job cleared verify (e08c6bf691).

Alternatives I rejected: taking main's scripts to match main's workflows (pulls in unreleased trunk), and editing the red tests (they're upstream-owned and correct for their own release).

Linked Issue

N/A (fork-internal skill notes)

Visual Proof

N/A (documentation only, no UI change)

Testing

Docs-only change under .claude/skills/sync-upstream/. The claims can be checked with git show --stat 597425845e, git show --stat a220036892, git log --oneline -3 v1.4.230, and gh pr view 120 --repo zpyoung/orca --json state.

This PR is left open for review. The sync run doesn't merge it.

Copilot AI balanced review requested due to automatic review settings October 19, 2026 19:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@zpyoung
zpyoung merged commit 2151e81 into main Oct 19, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants