Uh oh!
There was an error while loading. Please reload this page.
docs(skills): verify — prescribe the stable Chromium alias instead of the versioned path - #7375
Merged
Merged
Conversation
The headless-driving section prescribed the versioned literal `/opt/pw-browsers/chromium-NNNN/chrome-linux/chrome` and told the reader to re-probe when the version moved. Both sibling repos prescribe the stable alias instead and warn against exactly this spelling: the versioned path stops existing at the next image bump, and a dead path copied out of a doc then reads as "no browser here" while the browser is in fact installed. Verified on disk: the alias is a live symlink onto the versioned build, so the fix is the same binary by a name that survives. Both the prose and the launch snippet now name the alias, and the snippet no longer carries a placeholder the reader has to resolve by probing. No changeset: the repo's own presence gate reports this path is not published source of any released package, so none is owed. Governed surface, so the PR stays a draft for human merge. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1
os-zhuang
approved these changes
Sep 2, 2026
os-zhuang
marked this pull request as ready for review
September 2, 2026 14:22
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of objectstack-ai/objectstack#14317 — the objectui half of the internal-small skills flight (one finding). The objectstack half is objectstack-ai/objectstack#14598.
Per-finding record
.claude/skills/verify/SKILL.md:26-33/opt/pw-browsers/chromium-1194/chrome-linux/chrome, tells the reader to re-probe withfindwhen the version moves, and leaves the launch snippet holding a placeholder the reader must resolve/opt/pw-browsers/chromiumin both the prose and the snippet, and warns against copying the versioned spelling back out of a probeWhy the alias and not the probe. Both sibling repos already prescribe the alias and warn against exactly this spelling: the platform-checklist runner doc calls a dead versioned path copied out of a section "the absence-inference trap", and the dev-agent definition prescribes the alias for
executablePath. The versioned literal works today and stops working at the next image bump — and its failure mode is the expensive one, because a missing path reads as "no browser in this container" when the browser is in fact installed, which is the same wrong conclusion the runner doc records someone reaching from a blocked CDN download.Positive control, measured on this container:
/opt/pw-browsers/chromiumis a live symlink onto/opt/pw-browsers/chromium-1194/chrome-linux/chromeand is executable. The fix names the same binary by a name that survives.Line delta:
.claude/skills/verify/SKILL.md44 → 46. This repo prices no ceiling on it — its only skills gate scans the publishedskills/root, so this file is unpriced and unguarded (measured during the audit, reported for the corpus record, not acted on here).Gates
All at head
81e6308, which equals the pushed remote head. Exit codes captured by redirect before any pipe.node scripts/check-control-bytes.mjsOK (scanned 6066 tracked text file(s); skipped 85 binary)node scripts/check-doc-links.mjsLinks are valid across 17 scan roots.node scripts/check-shell-escape-residue.mjsOK (4/4 root(s) resolved … 205 file(s) and 1319 fenced block(s) examined)node scripts/check-skills-paths.mjsOK (92/93 stated path(s) resolve across 18 guide file(s); 1 baselined)node scripts/check-changeset-presence.mjs1 file(s) changed, 0 of them published source of a package the release covers … No source or published contract of a released package changed in this range, so no changeset is owed.node scripts/check-changeset-no-major.mjsNo changeset declares a major bump.node scripts/check-governed-queue-guard.mjs --self-test132 cases passnode scripts/check-governed-queue-guard.mjs --test .claude/skills/verify/SKILL.mdGOVERNED — 1 of 1 path(s) are on a governed surface … Park it as a DRAFT and leave the merge to the maintainerNo changeset, and it is the repo's own gate that says so rather than a judgment call: the path is not published source of any released package, so none is owed. ⛔ No label is requested from this seat.
Governed surface ⇒ this PR stays a draft for human merge; review requests are the dispatching seat's step.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LraLgQVGq8egUwfYZpbYt1
Generated by Claude Code