skills/web-to-docs/SKILL.md
Convert a website or page with related links into a local collection of Markdown files with an index. Follows project docs conventions (ua/en bilingual structure). Uses WebFetch — no external dependencies. Triggers on: "web to docs", "website to markdown", "save docs locally", "convert site", "download docs", "fetch docs", "scrape to markdown".
npx skillsauth add nmdimas/ai-community-platform web-to-docsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch a web page and its related links, convert each to Markdown, and save
them as a local collection with an automatically generated index.
Follows this project's documentation conventions — bilingual folder structure
with ua/ and en/ subdirectories.
docs/ directoryIMPORTANT: Before writing files, read skills/documentation/SKILL.md —
it is the single source of truth for folder structure, language rules,
INDEX.md format, and all documentation conventions. This skill MUST follow
those rules for Steps 6-7 (writing files and generating indexes).
WebFetch tool. No external CLI (no wget, curl, puppeteer).Ask the user or infer from context:
| Parameter | Default | Description |
|-----------|---------|-------------|
| url | (required) | The starting URL to fetch |
| output_dir | ./docs/fetched/<domain-slug>/ | Base directory (lang subfolders created automatically) |
| lang | auto-detect | Source language: en, ua, or both. Auto-detected from page content. |
| scope | path-prefix | path-prefix = links under the same URL path prefix; same-domain = any link on the same host |
| depth | 1 | 1 = only links on the starting page; 2 = also links found on those pages |
| max_pages | 30 | Maximum number of pages to fetch |
If the user just provides a URL, proceed with all defaults. Do NOT ask for parameters unless the user's intent is ambiguous.
WebFetch with the starting URL.
.md file).From the WebFetch response for the starting page:
[text](url) patterns and bare URLs).#section).?page=N).https://docs.example.com/v2/guide/intro → prefix https://docs.example.com/v2/guide/. Links like .../v2/guide/setup pass; .../blog/news does not..pdf, .zip, .png, .jpg, .gif, .svg, .css, .js, .xml, .json, .woff, .ttf).Present the discovered links as a numbered list:
Found 12 related pages under https://docs.example.com/v2/guide/:
1. /v2/guide/setup — "Getting Started"
2. /v2/guide/config — "Configuration"
3. /v2/guide/deployment — "Deployment"
...
Enter numbers to include (e.g., "1,3,5-8"), "all", or "none":
max_pages.For each selected URL (respecting max_pages):
WebFetch with the URL.
depth == 2, extract links from this page using the same rules as Step 3. Queue newly discovered links (do NOT recurse further).Parallelism: issue up to 5 WebFetch calls simultaneously where possible.
After all depth-2 discoveries (if applicable), present NEW links to the user for another confirmation round (same as Step 4), then fetch those.
For each fetched page, create a .md file inside the appropriate language subfolder:
<output_dir>/<lang>/ (e.g., docs/fetched/a2a-protocol-org/en/).references/filename-rules.md. Quick rules:
-, lowercase, replace special chars with -.-2, -3, etc..md.---
source: <original URL>
fetched: <YYYY-MM-DD>
lang: <en|ua>
---
<output_dir>/<lang>/<filename>.md using the Write tool.Create three index/README files following references/index-template.md:
<output_dir>/<lang>/README.md# <Site or Section Title>
> Fetched from [<starting URL>](<starting URL>) on YYYY-MM-DD.
> Generated by the `web-to-docs` skill.
## Pages
- [**<Page Title>**](./<filename>.md)
<First 1-2 sentences, ~150 chars max>
- [**<Page Title>**](./<filename>.md)
<First 1-2 sentences, ~150 chars max>
# heading from the Markdown, or link text, or filename.<output_dir>/README.md# <Site or Section Title>
> Source: [<starting URL>](<starting URL>)
> Fetched: YYYY-MM-DD | Generated by `web-to-docs`
## Languages
- [English](./en/README.md)
- [Українська](./ua/README.md) *(if bilingual)*
## Language Rule
- `ua/` — канонічна українська версія
- `en/` — English version
This root README links to language-specific READMEs and follows the project
convention used in docs/specs/, docs/agents/, docs/product/.
Print a summary:
Done! Saved X pages to <output_dir>/<lang>/:
README.md — Table of contents
getting-started.md — "Getting Started with FooBar"
configuration.md — "Configuration Reference"
...
Structure:
<output_dir>/
├── README.md — Root index with language links
└── en/
├── README.md — English section index
├── what-is-a2a.md
└── ...
Skipped (errors): Y pages
- https://example.com/broken (404)
| Scenario | Behavior |
|----------|----------|
| Redirect to different host | Inform user, ask whether to follow |
| Fetch fails on starting page | Report error, stop entirely |
| Fetch fails on subsequent page | Log warning, skip, continue |
| Max pages reached | Inform user, stop fetching, save what was fetched |
| No links discovered | Save only starting page + minimal index |
| All links filtered out by scope | Inform user, suggest same-domain scope |
| Output directory has existing .md files | Ask user: overwrite, merge, or new directory |
documentation
Translation agent for ua/en bilingual content. Handles UI labels, help text, error messages, docs, and agent/system prompts. Finds translatable elements, detects supported languages, translates by context, maintains term consistency. Triggers on: "translate", "translation", "i18n", "missing translations", "mirror docs", "sync languages".
development
Security review agent for PHP/Symfony codebase. Performs manual-style security review with OWASP ASVS 5.0 category mapping, severity ratings, and PHP/Symfony-specific checklist. Triggers on: "security review", "security audit", "vulnerability check", "OWASP review", "pentest review", "security scan".
development
Auto-bump pipeline monitor version when builder/monitor/pipeline-monitor.sh is modified. Triggers automatically as a post-edit convention — not user-invocable directly. When any change is made to pipeline-monitor.sh, increment the patch version in the "# Version:" header comment. Triggers on: "pipeline-monitor", "monitor version", "bump monitor".
testing
Harmonize agent admin UIs rendered in core admin iframe. Use when an agent admin page looks visually inconsistent with platform admin (different background, spacing, navbar, card styles, table contrast) or has iframe-only layout issues.