Browser compatibility review
Skill Raishin/vanguard-frontier-agentic/skills/frontend/browser-compatibility-review
Audit JS/CSS/HTML feature usage against the project's declared Browserslist/supported-browser matrix using Baseline and caniuse status data, flag unguarded non-Baseline usage, and verify feature-detection or polyfill fallback coverage, with per-feature caniuse/Baseline lookups loaded only for features actually in question.From its SKILL.md
npx -y skills add Raishin/vanguard-frontier-agentic --skill browser-compatibility-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.3 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Browser Compatibility Review
Purpose
"Works on my browser" is not a compatibility strategy. This skill checks used web-platform features against the org's actual declared supported-browser matrix (Browserslist config or an explicit browser-version list) using Baseline/caniuse status, and verifies that any feature outside "widely available" has a real feature-detection or polyfill fallback rather than a silent failure.
When to use
Use this skill when the user asks to:
- review a PR using a new JS API, CSS feature, or HTML element for cross-browser risk,
- audit the overall Baseline-status distribution of features used in a codebase,
- decide whether a feature needs a polyfill, feature-detection gate, or is safe to use unguarded,
- propose narrowing or widening the org's supported-browser matrix,
- triage a browser-specific bug report.
Context7 Documentation Protocol
Baseline status, caniuse support tables, and Browserslist/tooling behavior change on their own release cadences, independent of this skill's version — never assert a feature's Baseline tier, a browser's support version, or a config-syntax detail from memory.
- Call
ToolSearchwith query"context7"(or"select:mcp__Context7__resolve-library-id,mcp__Context7__query-docs") to load the Context7 tools if not already loaded in this session. - Call
mcp__Context7__resolve-library-idforweb-features(prefer/web-platform-dx/web-features) when grounding a Baseline-status claim (widely/newly/limited availability,baseline_low_date/baseline_high_datesemantics) — do not paraphrase Baseline's tiering from memory. - Call
mcp__Context7__query-docsfor the specific feature or mechanism in question — e.g. "compute Baseline status for a compat key", "getStatus for a web-features id" — before stating a feature's tier as fact. Do this per review, not once from a prior session's memory. - For the exact per-feature per-browser support matrix (which browser version added support), prefer live lookups against
https://caniuse.com/and MDN's browser-compatibility tables inofficial_docsover Context7 paraphrase — Context7'sweb-featurespackage computes Baseline tiers from that same underlying data but is not the source of truth for a single browser-version cell. - Browserslist's own config syntax and query semantics are not consistently resolvable in Context7 (verified: no dedicated
browserslistlibrary was found when this skill was authored) — treat any Browserslist query-syntax claim asdocumentation-based (Context7 unavailable for this library)and confirm it against the project's actual.browserslistrc/package.jsonbrowserslistkey and the officialbrowserslist/browserslistGitHub README rather than inventing query syntax. - If Context7 returns no relevant match for a claim, fall back to the
official_docsURLs and mark the claimdocumentation-based (Context7 unavailable)instead of presenting it as freshly verified. - Never invent a Baseline tier, a caniuse support percentage, or a Browserslist query keyword that no queried source confirms.
Lean operating rules
- Always check the feature against the project's actual declared Browserslist config or explicit browser-version list — never approve based on the reviewer's own current browser, and never assume a default matrix (e.g.
> 0.5%, last 2 versions, Firefox ESR, not dead) applies without reading the project's own config. - Distinguish Baseline "Newly available" (recently reached cross-engine support, but by definition still excludes older browsers within the ~2.5-year newly-to-widely window) from "Widely available" (safe to use unguarded for most matrices) from "Limited availability" (requires a fallback). Treat these as the three tiers computed from
baseline_low_date/baseline_high_date, not as marketing labels. - For any Limited-Availability feature, or a Newly-Available feature whose window excludes a browser/version actually in the project's matrix, verify a real
@supports/feature-detection/polyfill exists and correctly gates the risky code path — do not accept an assertion that a fallback "exists" without reading the code that implements it. - Weigh polyfill bundle-size cost against the actual percentage of affected users (from real analytics/RUM data if available) rather than blanket-recommending every polyfill; a polyfill added for a browser with near-zero real traffic is often a worse tradeoff than accepting the gap.
- Treat any hard failure (thrown exception, blank render, broken checkout) as strictly higher severity than cosmetic degradation (missing rounded corners, no animation), and prioritize findings accordingly.
- Recommend supported-browser-matrix changes only as data-backed proposals to product/analytics owners — this skill does not unilaterally decide the org's matrix, it surfaces the gap and the tradeoff.
- Never recommend disabling a security-relevant browser default (mixed-content blocking, SameSite cookie defaults, CSP enforcement, Permissions Policy) as a "compatibility workaround" — that is a security regression, not a fix, and must be flagged as such if proposed by the user.
- Load reference files only for the review question actually in scope (single-feature triage vs full-codebase Baseline sweep vs matrix-change proposal); do not preload the full feature catalog for a one-feature check.
References
Load these only when needed:
- Baseline status model — use when determining or explaining the exact Baseline tier (widely/newly/limited) of a specific feature and what that tier does and does not guarantee for the project's matrix.
- Fallback verification patterns — use when a finding requires checking whether an actual feature-detection gate or polyfill exists and correctly covers the risky code path, across JS, CSS, and HTML.
- Browserslist matrix interpretation — use when reading, interpreting, or proposing a change to the project's
.browserslistrc/browserslistconfig, or reconciling it with build-tool (Autoprefixer/Babel/postcss-preset-env) targets.
Response minimum
Return, at minimum:
- the feature(s) in scope and their exact Baseline status (widely / newly / limited, with the underlying date window if newly available),
- the specific browsers in the org's declared matrix that lack support, if any, cited against the project's actual Browserslist/matrix config,
- current fallback status (none / feature-detected / polyfilled) with the actual code shown, not an assertion,
- severity distinction between hard failure and cosmetic degradation,
- polyfill cost-vs-affected-user tradeoff note if a polyfill is recommended,
- evidence label for every claim (
live evidencefrom project config/code,documentation-based, orinference), and an explicit note when Context7 was unavailable for a cited claim.
What ships with it: 4 files
16.9 KB alongside SKILL.md
references/
- metadata.json1023 B