feat(triggers): add silent-merge and branch-sync trigger words - #234
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
CybotTM
left a comment
There was a problem hiding this comment.
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>
ef777c2 to
0e30338
Compare
|



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
/retrosession on 2026-08-26.Finding: B15 (skill trigger-coverage gap) — the assistant merged a 90-commit-diverged
masterinto anintegrationbranch and never invoked this skill.Learning-Id: retro-20260826-git-workflow-merge-trigger
app/composer.json'sconfig.platform.php, two site-config YAML files'baseVariantsentries). The assistant spent ~40+ ad hoc tool calls manually reconstructing base/ours/theirs diffs per file to catch this.references/advanced-git.mdalready 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 --diff3against base/ours/theirs/result), and ships two evals for it (detect_upstream_work_dropped_by_merge,clean_merge_can_drop_entries— whose prompt even namescomposer.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."detect_upstream_work_dropped_by_mergeandclean_merge_can_drop_entriesalready cover the content; this PR only widens the trigger surface, verified viaskill-repo'svalidate-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.mdfrontmatterdescription: 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'svalidate-skill.shrun against the repo root: 0 errors, same warning count as before the change