aa-conversion-funnel-a…
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill…
Cache original web pages locally with `web cache serve`, a caching reverse proxy for iterative migration work. Navigate pages through it (manually or with a browser) and every resource is saved to disk; restart it offline to replay the full site with no network, bot detection or
$ npx -y skills add adobe/skills --skill page-cache --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/page-cacheContext preview
The summary Claude sees to decide when to auto-load this skill.
Cache original web pages locally with `web cache serve`, a caching reverse proxy for iterative migration work. Navigate pages through it (manually or with a browser) and every resource is saved to disk; restart it offline to replay the full site with no network, bot detection or
name: page-cache license: Apache-2.0 compatibility: Requires Node 22+; uses the web CLI (plugins/web/cli). playwright-cli on PATH to warm the cache with a browser. description: >- Cache original web pages locally with `web cache serve`, a caching reverse proxy for iterative migration work. Navigate pages through it (manually or with a browser) and every resource is saved to disk; restart it offline to replay the full site with no network, bot detection or rate limits. Triggers on: page cache, cache page, cache site, cache website, offline cache, warm cache, cache proxy, page-cache, site mirror, cache for migration.
`web cache serve` runs a caching reverse proxy on `127.0.0.1`. Every GET response that flows through it is saved as a body file plus a `.json` sidecar (`{ headers, status }`); later requests are served from disk and the origin is not contacted.
Node 22+, and `playwright-cli` >= 0.1.20 on PATH to warm the cache with a browser. Locate the `web` CLI once:
# <skill-dir> is the directory containing this SKILL.md WEB=$(command -v web || echo "node <skill-dir>/../../cli/dist/web.mjs")
Fallback when published: `npx -y @adobe/web-cli`. Use an absolute `<skill-dir>`.
$WEB cache serve [--port <n>] [--cache <dir>] [--offline] [--timeout <ms>] [--also <origins>]
| Option | Default | Meaning | |--------|---------|---------| | `--port` | 3001 | `0` picks a free port; read it from the output | | `--cache` | `.page-cache` | cache directory | | `--offline` | off | serve from the cache only; a miss answers 504 | | `--timeout` | 30000 | upstream fetch deadline (ms) | | `--also` | none | other origins (an image CDN) whose assets are cached and served like the page's |
It prints `{ url, port, cache, offline, also }` once listening, then runs in the foreground until Ctrl-C, SIGTERM or `GET /__stop`. Run it in the background and keep the output:
$WEB cache serve --port 0 --cache .page-cache > .page-cache.json 2>.page-cache.log &
PID=$!
for _ in $(seq 50); do # wait for the startup document; stop early if the process died
PROXY=$(jq -er .url .page-cache.json 2>/dev/null) && break
kill -0 "$PID" 2>/dev/null || { cat .page-cache.log >&2; break; }
sleep 0.2
done1. **Serve online.** Command above; logs (`[fetch]`, `[hit]`, `[miss]`) go to stderr. 2. **Warm.** Open pages as `$PROXY/path?_origin=https://example.com`. The first request sets an origin cookie, so later navigations in the same browser need only the path; pass a new `?_origin=` to switch origins. With a browser (JS, lazy loading, a normal fingerprint):
$WEB page overlays "https://example.com" --save-recipe # once per site: records the banner rules S=$($WEB browser open "$PROXY/?_origin=https://example.com" | jq -r .session) # starts with them hidden
Scroll to the bottom and back to trigger lazy images, then `$WEB browser close --session "$S"`. 3. **Check.** `curl -s $PROXY/__status` → `{ hits, misses, errors, cached, dir, offline, also }`. 4. **Stop.** `curl -s $PROXY/__stop`. 5. **Replay.** Same command with `--offline` (same `--cache`, same `--also`). Run the other skills against `$PROXY/?_origin=…`: `page tree`, `page reduce`, `page collect`.
`<cache>/<host>_<hash8>/<path>`, with the headers and status in `<path>{meta}.json`. `/x/` is `x/{index}.html`; `/x` without an extension is `x/{bare}.html` (so a stored `/x` → `/x/` redirect never answers `/x/`). A query is percent-encoded and inserted before the extension after `{q}` (MD5-hashed past 200 characters). A URL path cannot contain braces, so these made-up names never collide with a real URL, and no path can leave the cache directory. The hash is of the full origin, so scheme and port never collide.
same-origin URLs in HTML and CSS are made relative; `srcset` and CSS `url()` included.
replay), unless named with `--also`: every absolute URL on that origin, in HTML, CSS or JavaScript text, is rewritten to a proxy path carrying `_origin`, at cache time and at serve time, and so are the `url()` references of a CDN stylesheet (relative ones resolved against the stylesheet) and the `Location` of a CDN redirect. Pages cached before naming it are served rewritten too; one more online pass fills the assets.
what is stored is always the full resource; a client's Range request gets the full body.
offline too. To retry one, delete its file and its `{meta}.json`, then serve online again.
Binds 127.0.0.1. Only origins introduced by a direct `?_origin=` request are proxied online; cookie-only requests for others are refused (403), so page JS cannot use the proxy to probe internal hosts. `/__stop` rejects cross-origin callers. Responses carry `access-control-allow-origin: *`, so another site open in the same browser can read cached pages; keep the proxy for local work.
Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill…
Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this…
Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when…
Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to…
Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric…
Comprehensive dimension analysis and reporting for CJA. Use this skill whenever the user wants to analyze one or more dimensions…