view-transitions
github.com/patternsdev/skills
Scanned Thu, 28 May 2026 17:45:37 GMT
Scan ID crawl-as075ed4r432b24pz1lhhfuk · 3ms
B
SCORE 75 / 100
Verdict: Safe to install

4 medium findings.

This skill ships without a capability manifest plus 3 other issues listed below.

0 critical0 high4 medium8 rules passed

Why grade B?

score · 75 / 100

The current grade reflects 4 medium findings (3+ MEDs → B).

0 CRIT0 HIGH4 MED0 LOW
To reach a higher grade
  • A
    Reach Atarget score 95

    Resolve 2 of 4 MED (cap is 2).

Thresholds are documented at /docs/grading. Source-of-truth is the grade() function in @skillox/scanner.

Findings · ordered by severity

med
No capability manifest declared
The skill ships without a `manifest.yaml` or `capabilities` block in its frontmatter. Without a manifest, the runtime cannot enforce what this skill is permitted to do.
rule: no-manifest
med
Link text shows "next.js" but points at beta.nextjs.org
The visible link text contains the domain `next.js`, but the URL actually targets `beta.nextjs.org`. This is a phishing/smuggling pattern — the reader sees one host, the agent fetches another. Either update the text or the URL so they match.
rule: anchor-href-mismatchline: 172CWE-601
170```
171
172**Note:** The [Next.js App Router](https://beta.nextjs.org/docs/app-directory-roadmap) is in beta at the time of writing and best-practices around it and the pages directory may be subject to change.text→next.js · href→beta.nextjs.org
173
174To use this in a Next.js app, first we'll disable React strict mode in development. Strict mode runs its checks by rendering the component twice. This interferes with the `ViewTransition` rendering flow in development so we'll disable it globally and re-enable it for child components with the `StrictMode` component.
med
Link text shows "next.js" but points at frolicking-dusk-29be0a.netlify.app
The visible link text contains the domain `next.js`, but the URL actually targets `frolicking-dusk-29be0a.netlify.app`. This is a phishing/smuggling pattern — the reader sees one host, the agent fetches another. Either update the text or the URL so they match.
rule: anchor-href-mismatchline: 204CWE-601
202```
203
204View the [Next.js demonstration](https://frolicking-dusk-29be0a.netlify.app/), the [live Next.js demo](https://photography-view-transitions-nextjs.vercel.app/) and its [source](https://github.com/domchristie/photography-view-transitions-nextjs).text→next.js · href→frolicking-dusk-29be0a.netlify.app
205
206**Note**: the React documentation advises against using `shouldComponentUpdate` and `forceUpdate`, stating they should only be used for performance optimizations, and that `shouldComponentUpdate` is not guaranteed to be called. As page animations are an enhancement, and this component will work even if `shouldComponentUpdate` is not called, this caveat is acceptable.
med
Link text shows "next.js" but points at photography-view-transitions-nextjs.vercel.app
The visible link text contains the domain `next.js`, but the URL actually targets `photography-view-transitions-nextjs.vercel.app`. This is a phishing/smuggling pattern — the reader sees one host, the agent fetches another. Either update the text or the URL so they match.
rule: anchor-href-mismatchline: 204CWE-601
202```
203
204View the [Next.js demonstration](https://frolicking-dusk-29be0a.netlify.app/), the [live Next.js demo](https://photography-view-transitions-nextjs.vercel.app/) and its [source](https://github.com/domchristie/photography-view-transitions-nextjs).text→next.js · href→photography-view-transitions-nextjs.vercel.app
205
206**Note**: the React documentation advises against using `shouldComponentUpdate` and `forceUpdate`, stating they should only be used for performance optimizations, and that `shouldComponentUpdate` is not guaranteed to be called. As page animations are an enhancement, and this component will work even if `shouldComponentUpdate` is not called, this caveat is acceptable.
Scan another →Share
skillox.io/r/crawl-as075ed4r432b24pz1lhhfuk