CtrlK
BlogDocsLog inGet started
Tessl Logo

catalan-adobe/page-prep

Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls). Uses a cached database of 300+ known CMPs (Consent-O-Matic + EasyList) combined with heuristic DOM scanning. Produces portable JS recipes for any browser tool (Playwright, CDP, cmux-browser). ALWAYS use this skill before taking screenshots, scraping content, or automating interaction on any webpage that might have overlays blocking the view or preventing interaction. Triggers on: page prep, clean page, remove overlays, dismiss cookie banner, page blocked, overlay cleanup, consent banner, prepare page, unblock page, clear popups, cookie popup.

80

Quality

100%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files
Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

The skill explicitly fetches public, user-maintained rule sets from raw.githubusercontent.com (see fetchConsentOMatic() and fetchEasyList() in scripts/overlay-db.js) and embeds those untrusted Consent‑O‑Matic / EasyList patterns into the injected detection/dismiss bundle that the agent runs and uses to decide clicks/removals, so external content directly influences agent actions.

Where we found it

raw.githubusercontent.com

domain · 2 sites

The plugin fetches Consent-O-Matic rules and EasyList cookie filters from raw.githubusercontent.com at runtime during the refresh command, and embeds these untrusted patterns into the injectable bundle that controls agent click/removal decisions.

scripts/overlay-db.js

159

https://raw.githubusercontent.[REDACTED].json

scripts/overlay-db.js

160

https://raw.githubusercontent.[REDACTED].txt

Report incorrect finding
Low

W012: Unverifiable external dependency detected (runtime URL that controls agent).

What this means

The skill fetches instructions or code from an external URL at runtime, and the fetched content directly controls the agent’s prompts or executes code. This dynamic dependency allows the external source to modify the agent’s behavior without any changes to the skill itself.

Why it was flagged

The skill's runtime script overlay-db.js fetches pattern data from https://raw.githubusercontent.com/cavi-au/Consent-O-Matic/master/Rules.json and https://raw.githubusercontent.com/easylist/easylist/master/easylist_cookie/easylist_cookie_general_hide.txt (during the `refresh` command), and those fetched patterns are embedded into the bundled injectable JS that the agent executes to detect/dismiss overlays—so remote content fetched at runtime directly controls agent behavior and is required for operation.

Where we found it

https://raw.githubusercontent.[REDACTED].json

dependency · 3 sites

The plugin fetches Consent-O-Matic rules from this URL at runtime during the refresh command, parses the JSON, normalizes it, and embeds the resulting CMP detection/dismiss patterns into the injectable bundle that the agent executes.

scripts/overlay-db.js

159

const CONSENT_O_MATIC_RULES = 'https://raw.githubusercontent.[REDACTED].json';

scripts/overlay-db.js

162

async function fetchConsentOMatic() {

scripts/overlay-db.js

191

const rawRules = await fetchConsentOMatic();

https://raw.githubusercontent.[REDACTED].txt

dependency · 3 sites

The plugin fetches EasyList cookie hide rules from this URL at runtime during the refresh command, parses the ABP filter format, and embeds the resulting generic CSS selectors into the injectable bundle that the agent executes.

scripts/overlay-db.js

160

const EASYLIST_COOKIE_HIDE = 'https://raw.githubusercontent.[REDACTED].txt';

scripts/overlay-db.js

168

async function fetchEasyList() {

scripts/overlay-db.js

197

const rawText = await fetchEasyList();

Audited
Security analysis
Snyk