From web-intel
Benchmark current repo against a live website — scrape, screenshot, compare features/UX/stack. Triggers: "benchmark" | "compare with" | "benchmark against" | "how do we compare".
How this skill is triggered — by the user, by Claude, or both
Slash command
/web-intel:benchmark <url> [--focus <area>]<url> [--focus <area>]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Let:
Let:
U := target URL
F := focus area (ui | features | stack | performance | ux | all), default all
AB := agent-browser (preferred — adds snapshot -i for interactive refs)
PW := uv run python scripts/screenshot.py (fallback — reuses web-intel's Playwright extra)
Scrape U → screenshot → analyze repo → compare → report.
/benchmark https://example.com → full benchmark
/benchmark https://example.com --focus ui → UI/design focus
¬U → → DP(B) Parse --focus <area> if provided.
PLUGIN_ROOT=$(find ~/projects -maxdepth 4 -path "*/web-intel/pyproject.toml" -print -quit 2>/dev/null | xargs dirname)
if [ -z "$PLUGIN_ROOT" ]; then
echo "ERROR: web-intel plugin not found. Install: claude plugin install web-intel"
exit 1
fi
First invocation in session only:
cd "$PLUGIN_ROOT" && uv run python scripts/doctor.py
cd "$PLUGIN_ROOT" && SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt uv run python scripts/scraper.py "$URL"
Parse JSON: data.text (features/copy/value props), data.title, data.description, content_type.
success: false → fall back to WebFetch.
Tempfile per ${CLAUDE_PLUGIN_ROOT}/../shared/references/tempfile-convention.md:
TMPDIR=$(mktemp -d -t "web-intel-benchmark-XXXXXX")
trap 'rm -rf "$TMPDIR"' EXIT
SHOT="$TMPDIR/screenshot.png"
∃ AB:
agent-browser open "$URL" && \
agent-browser wait --load networkidle && \
agent-browser screenshot --full "$SHOT" && \
agent-browser snapshot -i
¬∃ AB → PW fallback (web-intel already ships Playwright):
cd "$PLUGIN_ROOT" && uv run python scripts/screenshot.py "$URL" "$SHOT"
Neither available → skip UI/Design dimension, note in report (other dimensions still scored).
Use Glob + Grep to build capability inventory: pages/routes, API modules, UI components, auth flows, i18n, email templates.
Build comparison matrix based on F:
| Dimension | Weight | What to compare |
|---|---|---|
| Features | 25% | Feature parity — what they have vs what we have |
| UI/Design | 20% | Component richness, design system, visual polish |
| Stack | 15% | Tech stack modernity, DX, build tooling |
| Auth & Security | 15% | Auth methods, RBAC, security headers |
| Performance | 10% | SSR, caching, bundle optimization signals |
| UX Patterns | 15% | Loading states, error handling, a11y, i18n |
∀ dimension → assign: Ahead | Parity | Gap | Missing
Output structured markdown: Target Overview → Comparison Matrix → Overall Score (weighted %) → Gap Analysis → Priority-ordered Recommendations.
→ DP(A) Create issues for gaps | Deep-dive a dimension | Benchmark another URL | Done
$ARGUMENTS
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub roxabi/roxabi-intel --plugin web-intel