Перевод: оболочка страницы на русском; тело навыка (SKILL.md) пока на английском — это исходные инструкции агента.
Site Page Analyze
Extract page SEO and DOM signals into a report.
Метаданные навыка
| Источник | Встроенный (установлен по умолчанию) |
| Путь | skills/web-development/site-page-analyze |
| Версия | 1.0.0 |
| Автор | VibeOS |
| Лицензия | MIT |
| Платформы | linux, macos, windows |
| Теги | browser, seo, accessibility, dom, audit, web |
| Связанные навыки | browser-e2e, browser-network-assert, dogfood, site-map-crawl, cinematic-web |
Справка: полный SKILL.md
Ниже полное определение навыка, которое VibeOS загружает при активации. Это инструкции, которые видит агент.
Site Page Analyze
Recipe for inspecting a live page (or offline HTML/DOM dump) and producing a
structured SEO/DOM report. No new core tools — navigate with the browser
toolset, extract via script or browser_console, then merge into
page-report.json + page-report.md.
When to Use
- Audit title, meta, headings, canonical, and link mix on a URL
- Capture landmarks / image alt gaps before a content or a11y pass
- Offline review of saved HTML or a prior DOM dump JSON
- Alongside
browser-e2e/dogfoodwhen a page-level inventory is needed - For multi-page architecture maps, use
site-map-crawlfirst, then analyze a shortlist of URLs here
Prerequisites
- Browser toolset available for live mode (
browser_navigate,browser_snapshot,browser_console; optionalbrowser_vision) - Or offline: HTML file and/or DOM dump JSON for the Python extract script
- Write access for report outputs in the working directory
How to Run
Live (preferred):
browser_navigate→ target URL; wait for settle on heavy SPAs.browser_snapshot— confirm the page rendered (title/H1 visible).- Extract DOM signals — either:
- Save page HTML (or paste the console dump) and run
scripts/extract_page_structure.py --html …/--json …, or browser_consolewithexpression= contents ofreferences/dom-extract-snippet.js(IIFE returns a plain object), then pipe JSON into the same script via--stdin.
- Save page HTML (or paste the console dump) and run
- Optional:
browser_visionfor above-the-fold sanity; note console errors. - Optional content body:
web_extracton the same URL if you need article text beyond structure signals. - Merge extract + notes into
page-report.json, then filltemplates/page-report.md→page-report.md.
Offline:
- Feed a local HTML file and/or DOM dump JSON into the Python extract script (same schema as the JS snippet).
- Skip browser tools; still write
page-report.json+page-report.md.
If paths are unknown: search_files for site-page-analyze/.
Quick Reference
| Artifact | Role |
|---|---|
references/dom-extract-snippet.js | Console-safe DOM extract object |
scripts/ extract (Python) | Live HTML or offline HTML/JSON → JSON |
templates/page-report.md | Human report placeholders |
page-report.json | Machine-readable merge result |
page-report.md | Filled human summary |
| Field group | Source |
|---|---|
| url, title, meta, canonical, lang | extract |
| headings / h1, links, images, landmarks | extract |
| console_errors, notes, analyzed_at | agent merge |
Procedure
- Choose live vs offline; record
analyzed_at(ISO UTC). - Live: navigate → snapshot → extract (script or
browser_consolesnippet). - Offline: pass HTML file and/or DOM dump JSON into the Python extract script; do not invent fields the dump lacks.
- Cap-aware: trust extract truncations (text ≤200 chars, arrays ≤200 items).
- Count internal vs external links from extract (
internal= same origin). - Merge into
page-report.json(extract +console_errors+notes). - Render
templates/page-report.mdplaceholders →page-report.md. - Report paths and any blockers (auth wall, empty DOM, extract failure).
Pitfalls
- Zero new core tools — do not ask for a dedicated page-audit tool.
- Prefer
browser_navigate/ snapshot / console /web_extract; do not shellgrep/catpage HTML as the primary path. - Auth walls and CAPTCHAs: stop and ask; do not brute-force.
- SPAs: snapshot too early → empty headings; wait, then re-extract.
- Offline mode only knows what is in the HTML/JSON dump — no live console.
Verification
page-report.jsonexists and includesurl,title, headings, link counts.page-report.mdhas filled{{…}}placeholders (no raw braces left for known fields).- Live run: snapshot showed content before extract; optional vision matches H1.
- Offline run: extract exits 0 on the provided HTML/JSON without browser calls.
Live smoke
Hermetic check (no external network): serve a local fixture with
python3 -m http.server PORT --bind 127.0.0.1 from
skills/web-development/site-map-crawl/fixtures/site, then:
vibeos web analyze http://127.0.0.1:PORT/index.html --out page-report.json
Automated: scripts/run_tests.sh tests/skills/test_web_live_smoke.py -q.