Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when starting a new task, creating a branch, switching branches, managing branches, creating and uploading CLs, handling stacked changes, or checking release and roll status in the DevTools Gerrit-based workflow. ALWAYS use this instead of running standard git checkout/switch commands for branch creation.
.claude/skills/chromedevtools-devtools-version-control/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 9% | 0% |
> !IMPORTANT] > DO NOT use standard Git commands like git checkout -b or git switch -c to create branches. > In Chrome DevTools, you MUST always use git new-branch <branch-name> (or git new-branch --upstream_current <branch-name> for stacked CLs). Standard commands fail to configure the correct upstream tracking branch required by depot_tools and Gerrit.
Chrome DevTools uses Gerrit for code review. The standard workflow is one branch per Change List (CL) and one commit per branch. Instead of multiple commits, you amend your single commit locally.
To start a new task, create a new branch from main:
bashgit new-branch <branch-name>
Note: This automatically sets the upstream to origin/main.
git add <files>.git commit -m "Your message".To update your CL after feedback or more work:
git add <files>.git commit --amend.If CL B depends on CL A:
bash git new-branch --upstream_current <branch-B>
If you need to change the base of a branch back to the root branch (e.g., move CL B to be based on origin/main instead of CL A):
bashgit reparent-branch --root
Or to make it depend on another branch C:
bashgit reparent-branch <branch-C>
main, first run git fetch so origin/main includes the landed commits (otherwise reparenting will trigger merge conflicts). Then check out the first unlanded branch in the chain and run git reparent-branch --root before archiving the landed branches (so depot_tools can still resolve the old upstream tracking branch). After reparenting (which automatically runs git rebase-update), archive the landed branches (git cl archive -f) and run gclient sync -Df.To update all your branches with the latest changes from main and their respective upstreams, and synchronize dependencies:
bashgit rebase-update && gclient sync -Df
git rebase-update for stacks: Never write manual git checkout && git rebase loops across stacked branches. git rebase-update automatically rebases the entire dependency graph in order.git rebase-update, archive landed/closed branches (git cl archive -f) or mark dormant (git config branch.<branch>.dormant true) any obsolete branches so they do not trigger unnecessary rebase conflicts.gclient sync -Df after a git rebase-update. CIPD dependency updates do not show up in git status, so skipping gclient sync -Df risks leaving your checkout out of sync.When a CL is ready, upload it with:
bashgit cl upload -f -d --commit-description="<description>"
-f (--force) so that git cl upload runs non-interactively without opening a text editor or prompting.To upload an updated CL:
bashgit cl upload -f -d -t "<one sentence patch set description>"
git cl upload from the leaf (latest) branch in the chain for subsequent updates. Uploading from the leaf branch automatically runs presubmit checks and uploads new patchsets for all parent CLs in the stack simultaneously. Never upload intermediate CLs one by one when updating a stack.To check whether a DevTools commit (devtools/devtools-frontend) has rolled into chromium/src (Roll status) and what version or channel it is deployed to (Release status), look it up via the Chromium Dash API:
https://chromiumdash.appspot.com/fetch_commit?commit=<sha>
| Action | Command | | :--- | :--- | | Create new CL from main | git new-branch <name> | | Create stacked CL | git new-branch --upstream_current <name> | | Update current CL | git commit --amend | | Initial CL upload | git cl upload -f -d --commit-description="<description>" | | Subsequent CL upload (or update stack from leaf) | git cl upload -f -d -t "<message>" | | Reparent branch to root (origin/main) | git reparent-branch --root | | Change branch parent | git reparent-branch <new-parent> | | Archive landed/closed branches | git cl archive -f | | Rebase all branches in stack | git rebase-update | | Sync dependencies after rebase | gclient sync -Df | | Check release & roll status | Query https://chromiumdash.appspot.com/fetch_commit?commit=<sha> |
commit --amend.git checkout -b: Does not set up tracking information correctly for depot_tools. Use git new-branch.git rebase loops. Always use git rebase-update or git reparent-branch to let depot_tools handle tracking updates.git cl upload on each branch in a chain—uploading from the leaf branch uploads new patchsets for all parent CLs automatically (note: initial uploads must still be done per branch).git fetch and git reparent-branch --root on the child branch before archiving a landed parent branch with git cl archive -f.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 44,053 | 7,616 | -83% | 1 | 1 | 0% | 2,601 | 2,850 | +10% | 0 | 0 | — |
case-02 | fail→pass | 15,412 | 6,349 | -59% | 1 | 1 | 0% | 1,968 | 2,553 | +30% | 0 | 0 | — |
case-03 | fail→pass | 10,020 | 3,804 | -62% | 1 | 1 | 0% | 1,347 | 2,096 | +56% | 0 | 0 | — |
case-04 | pass→pass | 12,692 | 5,918 | -53% | 1 | 1 | 0% | 1,712 | 2,279 | +33% | 0 | 0 | — |
case-05 | fail→pass | 11,423 | 4,070 | -64% | 1 | 1 | 0% | 1,732 | 2,240 | +29% | 0 | 0 | — |
case-06 | fail→pass | 22,446 | 5,634 | -75% | 1 | 1 | 0% | 2,308 | 2,506 | +9% | 0 | 0 | — |
case-07 | fail→pass | 12,885 | 5,161 | -60% | 1 | 1 | 0% | 2,097 | 2,366 | +13% | 0 | 0 | — |
case-08 | fail→fail | 25,057 | 4,775 | -81% | 1 | 1 | 0% | 1,672 | 2,248 | +34% | 0 | 0 | — |
case-09 | fail→pass | 12,305 | 6,512 | -47% | 1 | 1 | 0% | 1,510 | 2,312 | +53% | 0 | 0 | — |
case-10 | fail→pass | 21,840 | 3,520 | -84% | 1 | 1 | 0% | 1,774 | 2,119 | +19% | 0 | 0 | — |
case-11 | fail→pass | 17,280 | 4,094 | -76% | 1 | 1 | 0% | 2,833 | 2,160 | -24% | 0 | 0 | — |
case-12 | pass→pass | 11,986 | 5,229 | -56% | 1 | 1 | 0% | 1,751 | 2,391 | +37% | 0 | 0 | — |
case-13 | fail→pass | 6,537 | 5,250 | -20% | 1 | 1 | 0% | 898 | 2,204 | +145% | 0 | 0 | — |
case-14 | pass→pass | 13,157 | 5,335 | -59% | 1 | 1 | 0% | 1,921 | 2,374 | +24% | 0 | 0 | — |
case-15 | pass→pass | 14,372 | 7,915 | -45% | 1 | 1 | 0% | 2,157 | 2,758 | +28% | 0 | 0 | — |
case-16 | fail→fail | 6,152 | 3,274 | -47% | 1 | 1 | 0% | 742 | 1,874 | +153% | 0 | 0 | — |
case-17 | pass→pass | 12,602 | 8,308 | -34% | 1 | 1 | 0% | 1,945 | 2,758 | +42% | 0 | 0 | — |
case-18 | pass→pass | 12,102 | 5,084 | -58% | 1 | 1 | 0% | 1,941 | 2,236 | +15% | 0 | 0 | — |
case-19 | fail→pass | 12,329 | 4,276 | -65% | 1 | 1 | 0% | 1,652 | 2,089 | +26% | 0 | 0 | — |
case-20 | pass→pass | 11,011 | 8,174 | -26% | 1 | 1 | 0% | 1,618 | 2,792 | +73% | 0 | 0 | — |
case-21 | fail→pass | 25,691 | 6,227 | -76% | 1 | 1 | 0% | 978 | 2,473 | +153% | 0 | 0 | — |
case-22 | pass→pass | 11,011 | 5,885 | -47% | 1 | 1 | 0% | 1,550 | 2,429 | +57% | 0 | 0 | — |
case-23 | pass→pass | 20,412 | 12,774 | -37% | 1 | 1 | 0% | 2,279 | 3,772 | +66% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 22 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +52 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/11/2026 | +23% |
Other measured skills in the registry, with their headline benchmark lift.