Skip to content

feat(triggers): add silent-merge and branch-sync trigger words - #234

Merged
CybotTM merged 1 commit into
mainfrom
feat/retro-merge-trigger-coverage
Aug 26, 2026
Merged

feat(triggers): add silent-merge and branch-sync trigger words#234
CybotTM merged 1 commit into
mainfrom
feat/retro-merge-trigger-coverage

Conversation

@aseemann

Copy link
Copy Markdown
Member

Summary

Sharpens the skill description so it triggers on a raw branch-to-branch sync (e.g. merging master into an integration branch) — not only PR-shaped merges.

Came from

/retro session on 2026-08-26.
Finding: B15 (skill trigger-coverage gap) — the assistant merged a 90-commit-diverged master into an integration branch and never invoked this skill.
Learning-Id: retro-20260826-git-workflow-merge-trigger

  • Symptom: Git auto-merged several files "cleanly" (no conflict markers) while silently dropping content both sides had added independently (app/composer.json's config.platform.php, two site-config YAML files' baseVariants entries). The assistant spent ~40+ ad hoc tool calls manually reconstructing base/ours/theirs diffs per file to catch this.
  • Cause: This skill's references/advanced-git.md already documents this exact failure mode ("A merge resolved in favour of the branch silently reverts upstream work") with a ready detection script (git merge-file -p --diff3 against base/ours/theirs/result), and ships two evals for it (detect_upstream_work_dropped_by_merge, clean_merge_can_drop_entries — whose prompt even names composer.json). The description never surfaced it because it reads as PR-centric ("merging PRs", "handling merge conflicts"), not "verify a completed merge" or "sync a long-diverged branch."
  • Required behavior: The skill should trigger for "did my merge drop anything", "sync integration from master", and similar branch-sync/merge-verification phrasing, not only PR review language.
  • Verification: Existing evals detect_upstream_work_dropped_by_merge and clean_merge_can_drop_entries already cover the content; this PR only widens the trigger surface, verified via skill-repo's validate-skill.sh (0 errors; description-length warning already pre-existing before this change, 657→752 chars).

Change

One-line edit to skills/git-workflow/SKILL.md frontmatter description: added "verifying a merge didn't silently drop changes, syncing a long-diverged branch (e.g. master into integration)" between the existing "handling merge conflicts" and "rebasing a long-lived branch" clauses.

Test plan

  • skill-repo's validate-skill.sh run against the repo root: 0 errors, same warning count as before the change
  • Confirmed no existing eval needed changes (content already covered)

@github-actions github-actions Bot added documentation Improvements or additions to documentation skill labels Aug 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@CybotTM CybotTM left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Reviewed the description delta against the retro finding it encodes: the two inserted clauses name exactly the phrasings the B15 gap missed (merge-verification and branch-sync language), the covering evals already exist (detect_upstream_work_dropped_by_merge, clean_merge_can_drop_entries), and the 752-char description stays within the skill spec's limit — the validator's length warning predates this change. Copilot review is out of monthly quota, so this stands as the review. One mechanical note before merging: the branch is behind main and the classic protection requires up-to-date branches — rebase locally with signing (gh pr update-branch rewrites the head unsigned and trips the signature rule, see #226).

A /retro session on 2026-08-26 found the assistant never invoked this
skill while merging a 90-commit-diverged master into an integration
branch, despite the skill already documenting the exact failure mode
it hit ("A merge resolved in favour of the branch silently reverts
upstream work") and shipping two evals for it
(detect_upstream_work_dropped_by_merge, clean_merge_can_drop_entries).
The description read as PR-centric ("merging PRs", "handling merge
conflicts") and did not surface for a raw branch-to-branch sync done
outside a PR flow.

Learning-Id: retro-20260826-git-workflow-merge-trigger
Signed-off-by: Axel Seemann <axel.seemann@netresearch.de>
@CybotTM
CybotTM force-pushed the feat/retro-merge-trigger-coverage branch from ef777c2 to 0e30338 Compare August 26, 2026 10:04

@CybotTM CybotTM left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Re-approving head 0e30338: identical content to my reviewed ef777c2 — a signed rebase onto current main (author unchanged), no diff delta. Copilot review remains out of monthly quota.

@sonarqubecloud

Copy link
Copy Markdown

@CybotTM
CybotTM merged commit d935937 into main Aug 26, 2026
23 checks passed
@CybotTM
CybotTM deleted the feat/retro-merge-trigger-coverage branch August 26, 2026 10:05
@CybotTM CybotTM mentioned this pull request Aug 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation skill

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants