chore(ci): rename benchmark/ branch prefix to chore/#1044
Conversation
The benchmark workflow was creating PR branches under a benchmark/
prefix that is not in the guard-git.sh allow-list, blocking local
sessions from pushing fixes to those PRs without working around the
hook. Rename all auto-generated branches to use the standard chore/
prefix (chore/bench-v${VERSION}-..., chore/embedding-bench-...) and
drop benchmark/ from the commitlint allow-list since no workflow
creates such branches anymore.
|
Claude finished @carlos-alm's task —— View job PR Review CompleteTodo List
Root Cause AnalysisProblem Being Solved: Local Why This Approach: Rather than expanding the allow-list to include Risk Assessment: ✅ Low risk - This fixes a legitimate workflow issue without weakening security controls. Backlog Compliance
Critical ConcernsNone. This is a clean, well-motivated change that fixes real workflow friction. Technical ReviewChanges Analysis✅ Precise and consistent:
✅ Preserves clarity: Maintains ✅ No security issues: Pure string substitutions with no command injection risks or validation bypasses. Test Plan ValidationThe provided test plan covers the essential verification steps:
Final Recommendation
Minor deduction: While technically excellent, this is maintenance work that doesn't advance core functionality, hence 4/5 rather than 5/5. |
Greptile SummaryThis PR aligns the auto-generated benchmark PR branch names with the Confidence Score: 5/5Safe to merge — minimal, mechanical rename with no logic changes. Both changed files have straightforward, correct updates. The new branch names (chore/bench-, chore/embedding-bench-) satisfy the ^(feat|fix|…|chore|…)/ pattern in both commitlint.yml and guard-git.sh. No other code paths are affected. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Publish workflow succeeds] --> B[benchmark.yml triggered]
B --> C{Job type}
C -->|record-benchmarks| D["BRANCH = chore/bench-v{VERSION}-{timestamp}"]
C -->|embedding-benchmark| E{VERSION = dev?}
E -->|yes| F["BRANCH = chore/embedding-bench-dev-{timestamp}"]
E -->|no| G["BRANCH = chore/embedding-bench-v{VERSION}-{timestamp}"]
D --> H[git push + gh pr create]
F --> H
G --> H
H --> I[commitlint.yml validates branch]
I --> J{"BRANCH matches ^(feat|fix|docs|refactor|test|chore|ci|perf|build|release|dependabot|revert)/"}
J -->|✅ chore/ matches| K[Branch valid — PR proceeds]
J -->|❌ benchmark/ would have failed| L[guard-git.sh also blocks push]
Reviews (2): Last reviewed commit: "Merge branch 'main' into chore/rename-be..." | Re-trigger Greptile |
Summary
The benchmark workflow currently creates auto-generated PR branches under a
benchmark/prefix that is not in the localguard-git.shallow-list. When a developer needs to push a fix to one of those PRs from a Claude Code session, the hook denies the push and the only workaround is bypassing the hook.This PR renames all auto-generated branches to use the standard
chore/prefix and dropsbenchmark/from the commitlint allow-list since no workflow creates such branches anymore.Changes
.github/workflows/benchmark.yml— threeBRANCH=...lines updated:benchmark/v\${VERSION}-…→chore/bench-v\${VERSION}-…(combined record-benchmarks job)benchmark/embedding-dev-…→chore/embedding-bench-dev-…benchmark/embedding-v\${VERSION}-…→chore/embedding-bench-v\${VERSION}-….github/workflows/commitlint.yml— dropbenchmarkfrom the branch-name regex and the human-readable error message.The discriminator (
bench,embedding-bench) is preserved so generated branches remain self-describing under the new prefix.Context
Surfaced during /sweep on PR #1032: the benchmark workflow created
benchmark/incremental-v3.9.6-…and the local guard hook blocked the push. Aligning the workflow with the guard's allow-list is cleaner than expanding the allow-list.Test plan
workflow_dispatchor post-publish) opens a PR with achore/...branch.