skills/fc-local/SKILL.md
Local web scraping & search tool. ⚠️ MUST use when: (1) Scrape/crawl web pages to Markdown, (2) Web search, (3) Batch scrape multiple URLs, (4) Generate LLMs.txt. 🔴 Trigger when user mentions URL scraping, site crawling, web search, or content extraction. 🔄 If anti-crawling blocks fc-local, auto-switch to CDP fallback (scrape-cdp.sh).
npx skillsauth add sampx/agent-tools fc-localInstall 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.
CLI wrapper for web scraping and crawling.
| Command | Description |
|---------|-------------|
| fc-cli | CLI for scrape/crawl operations |
| my-fc | Service manager (start/stop/status/health/logs) |
| chrome_remote | Chrome CDP manager (for anti-crawling fallback) |
my-fc status # Check container health
my-fc health # Full check (API + scrape test)
my-fc start # Start Docker services
my-fc logs api 100 # View API logs
chrome_remote -b # Start Chrome with remote debugging
chrome_remote status # Check CDP status
chrome_remote stop # Stop Chrome CDP
Verify dependencies:
which fc-cli my-fc chrome_remote agent-browser jq
| Need | Command | Options |
|------|---------|---------|
| Single page | scrape <url> | --format, --clean🤖, --prompt🤖 |
| Entire site | crawl <url> | --limit, --wait, --clean🤖 |
| Multiple URLs | batch <file> | --wait |
| Link discovery | map <url> | --limit, --filter |
| Web search | search <query> | --limit |
| LLMs.txt | llmstxt <path> | --full |
| Job status | *-status <id> | --wait |
🤖 = AI feature, high cost. Use only when user explicitly requests.
fc-cli scrape <url> [-o .wopal-space/INBOX/docs/scraped/<name>.md] [--format markdown|html|links] [--clean] [--prompt <text>]
-o: Output file path (default: .wopal-space/INBOX/docs/scraped/<name>.md)--format: Output format (default: markdown)--clean🤖: AI removes nav, ads, sidebars--prompt🤖: Custom AI processing (implies --clean)fc-cli crawl <url> --limit <n> --wait [-o .wopal-space/INBOX/docs/scraped/<site>] [--clean] [--prompt <text>]
--limit: Max pages to crawl--wait: Wait for completion-o: Output directory (default: .wopal-space/INBOX/docs/scraped/<site>)--clean🤖: AI content cleaning--prompt🤖: Custom AI processingOutput: Directory structure with .md files per page.
# Input: one URL per line or JSON array
fc-cli batch urls.txt --wait [-o results.json]
fc-cli map <url> [--limit <n>] [--filter <pattern>]
--filter: Wildcard pattern (*api*, */docs/v1/*)# From URL
fc-cli llmstxt https://example.com
# From local directory
fc-cli llmstxt ./crawl-output [--full]
Most commands return job ID immediately. Use --wait for sync execution:
# Async
fc-cli crawl https://example.com
# Returns: job_abc123
# Check status
fc-cli crawl-status job_abc123
# Or sync mode
fc-cli crawl https://example.com --wait
Status commands: crawl-status, batch-status
| Option | Description |
|--------|-------------|
| --api-url <url> | Override API URL |
| -o, --output <file> | Save to file/directory |
| -v, --verbose | Detailed logging |
🔴 NEVER use AI options (--clean, --prompt) unless user EXPLICITLY requests them.
| User says | Interpretation | Your action |
|-----------|----------------|-------------|
| "抓取这个页面" | Plain scrape | fc-cli scrape <url> |
| "结构化获取" | Markdown output (already structured) | fc-cli scrape <url> |
| "爬取整个网站" | Plain crawl | fc-cli crawl <url> |
| "用 AI 清理内容" | Explicit AI request | fc-cli scrape <url> --clean ✅ |
Key principle: scrape already returns structured Markdown. "结构化" ≠ AI extraction.
AI options consume credits and are slower. Default to plain scrape/crawl.
.wopal-space/INBOX/docs/scraped/ using -o option--limit firstWhen fc-local fails due to anti-crawling (page keeps navigating, 403/500, captcha, empty content), use agent-browser with user's Chrome CDP.
Anti-crawling indicators:
page is navigating and changing the content# From skill directory:
./scripts/scrape-cdp.sh "<url>" [-o .wopal-space/INBOX/docs/scraped/<name>.md]
The script automatically:
chrome_remote if not running# 1. Start Chrome CDP
chrome_remote -b
# 2. Navigate and extract
agent-browser --cdp 9222 open "<url>"
agent-browser --cdp 9222 wait --load networkidle
agent-browser --cdp 9222 get text body > .wopal-space/INBOX/docs/scraped/<name>.md
# 3. Cleanup
chrome_remote stop
Why this works: chrome_remote uses user's real Chrome profile with cookies/login state, bypassing anti-bot detection.
When commands fail or return unexpected results:
# Quick diagnostics
my-fc status # Container health
my-fc health # Full API test
my-fc logs api 100 # Recent API logs
my-fc logs playwright-service 50 # Playwright errors
Common issues:
my-fc restart--timeout or check site speed👉 Full guide: references/TROUBLESHOOTING.md
references/API_REFERENCE.mdreferences/EXAMPLES.mdreferences/TROUBLESHOOTING.mdtools
Configure ellamaka, a fork of OpenCode with wopal-space mode. MUST use for any task about ellamaka config, agent frontmatter, permission rules, model/provider selection, formatter settings, config loading order, or why config changes are ignored. Trigger on requests about ellamaka or opencode config files, agent permission overrides, restricting subagents, custom/plugin tool permissions (e.g. wopal_task_*), disabling tools, configuring providers or models, formatter setup, config precedence or layering, or debugging settings that do not take effect. Use this skill even when the user says "opencode" if the actual runtime, config path, or behavior is ellamaka. Prefer this skill whenever the answer depends on the difference between ellamaka and upstream opencode, including wopal-space config loading, plugin tool permissions, or agent frontmatter precedence.
development
Plan quality verification for dev-flow. Goal-backward analysis ensures plans WILL achieve their stated goal before execution burns context. ⚠️ MUST use when: (1) Reviewing Plan quality before approve (2) Wopal completes Plan writing and needs quality gate (3) User asks to "check plan", "verify plan", "review plan" (4) Plan enters planning status and needs pre-execution validation 🔴 Trigger automatically when Plan is ready for review, even if user doesn't explicitly say "review". Agent: rook (read-only verification subagent) Mode: verification, not execution
development
Review implementation results for goal achievement and code quality. Supports both Plan-backed review and planless diff review. ⚠️ MUST use when: (1) Wopal delegates rook to review fae implementation output, (2) Prompt contains "review_type: implementation", (3) Prompt contains changed code file list or Plan path + implementation scope, (4) Any code review request from Wopal. 🔴 Trigger even when user does not explicitly mention "review" if the task involves verifying implementation results. This skill is rook-exclusive (only rook agent can load it).
tools
Foundation rules for how Wopal collaborates with sub-agents such as fae and rook. ⚠️ MUST load before ANY delegation — covers delegation tool APIs, task lifecycle, notifications, status handling, and recovery. 🔴 Trigger: "delegate", "let fae implement", "fae task", "rook review", "check task status", "cancel task", "abort task", "agent collaboration", "委派", "让 fae 执行", "fae 任务", "rook 审查", "检查状态", or any intent to hand work to a sub-agent. 🔴 Never delegate without loading this skill first. Skipping it is serious negligence. Note: this skill does not include workflow-specific prompt templates such as dev-flow templates. Those belong to the corresponding workflow skills.