WebRecon
Overview
This skill provides the methodology for conducting comprehensive website audits using 6 parallel Chrome instances. Each instance is controlled by a specialized agent that focuses on a specific aspect of the audit.
When to Use
- Competitive analysis of websites
- Design replication prep (extracting design tokens, components, assets)
- API/programmatic access discovery
- Tech stack reconnaissance
- Mobile responsiveness analysis
- SEO and security assessment
Prerequisites
Before running /webrecon:
- Launch Chrome instances: Run
~/.config/opencode/launch-chrome-instances.sh
- Verify Chrome is ready: Script will confirm all 6 ports responding
- Optional: Set
FIRECRAWL_API_KEY in environment for better page enumeration
Command Usage
# Quick recon (10 pages)
/webrecon quick example.com
# Deep recon (25 pages)
/webrecon deep example.com
# Design-focused (15 pages, skips SEO/security)
/webrecon design example.com
# With options
/webrecon deep example.com --exclude=api
/webrecon deep example.com --max-pages=50
/webrecon deep example.com --design-deep # Full component/asset extraction
/webrecon --resume # Resume interrupted run
Execution Flow
Phase 0: Setup
- Create output directory:
~/webrecon-output/<domain>/<timestamp>/
- Initialize state file for resumability
- Verify Chrome instances are running
- Load filter config from
~/.config/opencode/webrecon-filters.yaml
- Check for previous run (for diff computation)
Phase 1: Page Enumeration
Fallback chain:
- Try
sitemap.xml (free, instant)
- Try Firecrawl API if
FIRECRAWL_API_KEY set
- Fallback: Jina Reader (
https://r.jina.ai/<url>) + browser link crawl
Filtering:
- Exclude:
/blog/*, /docs/*, /legal/*, /changelog/*, /tag/*, pagination
- Keep everything else, cap by mode: quick=10, deep=25, design=15
Phase 2: Parallel Analysis
Dispatch 6 agents simultaneously:
| Chrome |
Agent |
Focus |
| chrome-1 |
audit-recon |
Tech stack, third-party scripts, pixels, GTM |
| chrome-2 |
audit-design |
CSS tokens, typography, colors, components |
| chrome-3 |
audit-api |
Endpoints, auth flow, WebSocket, rate limits |
| chrome-4 |
audit-mobile |
Viewports, touch targets, responsive layouts |
| chrome-5 |
audit-seo |
Meta tags, OpenGraph, Schema.org, headings |
| chrome-6 |
audit-security |
HTTP headers, cookies, CSP, exposed source maps |
Each agent:
- Processes assigned URLs one at a time
- Writes results to disk immediately (context hygiene)
- Updates
.state/progress.json
- Returns summary only
Phase 2.5: Design Deep (if --design-deep)
Sequential extended extraction on chrome-2:
- Component inventory with HTML/CSS snippets
- Asset harvesting (icons, fonts, logos)
- Motion capture (animations, transitions)
- Multi-format export (Style Dictionary, Figma Tokens, Tailwind config)
Phase 3: PWA Check
Quick check for Progressive Web App capabilities:
- Fetch
/manifest.json
- Detect service worker
- Test offline capability
Phase 4: Authenticated Audit (Optional)
If user wants to audit logged-in state:
- Open chrome-1 to login page
- Prompt: "Log in manually, then type 'done'"
- Capture session cookies
- Inject into other Chrome instances
- Re-run audit-recon and audit-api in auth mode
Phase 5: Diff Computation
If previous run exists:
- Load previous
structured/*.json files
- Compare: tech-stack, api-map, design-tokens
- Generate:
changelog/diffs/<timestamp>.json
- Append to:
changelog/history.jsonl
Phase 6: Compile Output
Generate final deliverables:
_manifest.json - Run metadata + change summary
report.md - Human-readable executive summary
structured/ - All JSON exports
screenshots/ - Key page screenshots
network/ - HAR archive + endpoints
assets/ - If --design-deep (components, icons, fonts)
exports/ - If --design-deep (Style Dictionary, Figma, Tailwind)
Output Structure
~/webrecon-output/
└── example.com/
├── changelog/
│ ├── history.jsonl # Append-only event log
│ └── diffs/
│ └── 2024-12-25_143022.json
│
├── 2024-12-25_143022/ # This run
│ ├── _manifest.json
│ ├── report.md
│ ├── structured/
│ │ ├── tech-stack.json
│ │ ├── design-tokens.json
│ │ ├── api-map.json
│ │ ├── seo-data.json
│ │ ├── security-report.json
│ │ └── ...
│ ├── screenshots/
│ ├── network/
│ ├── assets/ # If --design-deep
│ └── exports/ # If --design-deep
│
└── latest -> 2024-12-25_143022 # Symlink
Context Management
Problem: Long-running agents can bloat context with network data, screenshots, DOM trees.
Solution: Chunked processing + structured handoffs
- Orchestrator holds URL list only, not page content
- Sub-agents process ONE page at a time
- Write findings to disk IMMEDIATELY
- Clear page-specific context before next page
- Return summary only (not full data)
Resumability: If interrupted, /webrecon --resume reads .state/progress.json and continues from last completed page.
Chrome DevTools MCP Reference
Key tools available:
Navigation:
navigate_page - Go to URL
new_page / close_page - Tab management
list_pages / select_page - Multi-tab handling
Inspection:
take_screenshot - Capture page
take_snapshot - Get DOM/accessibility tree
evaluate_script - Run JavaScript
Network:
list_network_requests - Get all requests
get_network_request - Get request/response details
Performance:
performance_start_trace / performance_stop_trace - Record traces
performance_analyze_insight - Get performance insights
Best Practices
- Run Chrome launcher first: Always start Chrome instances before auditing
- Use appropriate mode:
quick for rapid checks, deep for thorough analysis
- Design-deep for replication: Use
--design-deep when you need to recreate the design
- Check diffs: Use
/webaudit diff to track changes over time
- Review filtered pages: Customize include/exclude if defaults miss important pages
1---2name: webrecon3description: WebRecon - reconnaissance tool using parallel Chrome instances for competitive analysis, design extraction, and API discovery4---5
6# WebRecon
7
8## Overview
9
10This skill provides the methodology for conducting comprehensive website audits using 6 parallel Chrome instances. Each instance is controlled by a specialized agent that focuses on a specific aspect of the audit.
11
12## When to Use
13
14- Competitive analysis of websites
15- Design replication prep (extracting design tokens, components, assets)
16- API/programmatic access discovery
17- Tech stack reconnaissance
18- Mobile responsiveness analysis
19- SEO and security assessment
20
21## Prerequisites
22
23Before running `/webrecon`:
24
251. **Launch Chrome instances**: Run `~/.config/opencode/launch-chrome-instances.sh`
262. **Verify Chrome is ready**: Script will confirm all 6 ports responding
273. **Optional**: Set `FIRECRAWL_API_KEY` in environment for better page enumeration
28
29## Command Usage
30
31```bash
32# Quick recon (10 pages)
33/webrecon quick example.com
34
35# Deep recon (25 pages)
36/webrecon deep example.com
37
38# Design-focused (15 pages, skips SEO/security)
39/webrecon design example.com
40
41# With options
42/webrecon deep example.com --exclude=api
43/webrecon deep example.com --max-pages=50
44/webrecon deep example.com --design-deep # Full component/asset extraction
45/webrecon --resume # Resume interrupted run
46```
47
48## Execution Flow
49
50### Phase 0: Setup
511. Create output directory: `~/webrecon-output/<domain>/<timestamp>/`
522. Initialize state file for resumability
533. Verify Chrome instances are running
544. Load filter config from `~/.config/opencode/webrecon-filters.yaml`
555. Check for previous run (for diff computation)
56
57### Phase 1: Page Enumeration
58
59**Fallback chain:**
601. Try `sitemap.xml` (free, instant)
612. Try Firecrawl API if `FIRECRAWL_API_KEY` set
623. Fallback: Jina Reader (`https://r.jina.ai/<url>`) + browser link crawl
63
64**Filtering:**
65- Exclude: `/blog/*`, `/docs/*`, `/legal/*`, `/changelog/*`, `/tag/*`, pagination
66- Keep everything else, cap by mode: quick=10, deep=25, design=15
67
68### Phase 2: Parallel Analysis
69
70Dispatch 6 agents simultaneously:
71
72| Chrome | Agent | Focus |
73|--------|-------|-------|
74| chrome-1 | audit-recon | Tech stack, third-party scripts, pixels, GTM |
75| chrome-2 | audit-design | CSS tokens, typography, colors, components |
76| chrome-3 | audit-api | Endpoints, auth flow, WebSocket, rate limits |
77| chrome-4 | audit-mobile | Viewports, touch targets, responsive layouts |
78| chrome-5 | audit-seo | Meta tags, OpenGraph, Schema.org, headings |
79| chrome-6 | audit-security | HTTP headers, cookies, CSP, exposed source maps |
80
81Each agent:
82- Processes assigned URLs one at a time
83- Writes results to disk immediately (context hygiene)
84- Updates `.state/progress.json`
85- Returns summary only
86
87### Phase 2.5: Design Deep (if --design-deep)
88
89Sequential extended extraction on chrome-2:
901. Component inventory with HTML/CSS snippets
912. Asset harvesting (icons, fonts, logos)
923. Motion capture (animations, transitions)
934. Multi-format export (Style Dictionary, Figma Tokens, Tailwind config)
94
95### Phase 3: PWA Check
96
97Quick check for Progressive Web App capabilities:
98- Fetch `/manifest.json`
99- Detect service worker
100- Test offline capability
101
102### Phase 4: Authenticated Audit (Optional)
103
104If user wants to audit logged-in state:
1051. Open chrome-1 to login page
1062. Prompt: "Log in manually, then type 'done'"
1073. Capture session cookies
1084. Inject into other Chrome instances
1095. Re-run audit-recon and audit-api in auth mode
110
111### Phase 5: Diff Computation
112
113If previous run exists:
1141. Load previous `structured/*.json` files
1152. Compare: tech-stack, api-map, design-tokens
1163. Generate: `changelog/diffs/<timestamp>.json`
1174. Append to: `changelog/history.jsonl`
118
119### Phase 6: Compile Output
120
121Generate final deliverables:
122- `_manifest.json` - Run metadata + change summary
123- `report.md` - Human-readable executive summary
124- `structured/` - All JSON exports
125- `screenshots/` - Key page screenshots
126- `network/` - HAR archive + endpoints
127- `assets/` - If --design-deep (components, icons, fonts)
128- `exports/` - If --design-deep (Style Dictionary, Figma, Tailwind)
129
130## Output Structure
131
132```
133~/webrecon-output/
134└── example.com/
135 ├── changelog/
136 │ ├── history.jsonl # Append-only event log
137 │ └── diffs/
138 │ └── 2024-12-25_143022.json
139 │
140 ├── 2024-12-25_143022/ # This run
141 │ ├── _manifest.json
142 │ ├── report.md
143 │ ├── structured/
144 │ │ ├── tech-stack.json
145 │ │ ├── design-tokens.json
146 │ │ ├── api-map.json
147 │ │ ├── seo-data.json
148 │ │ ├── security-report.json
149 │ │ └── ...
150 │ ├── screenshots/
151 │ ├── network/
152 │ ├── assets/ # If --design-deep
153 │ └── exports/ # If --design-deep
154 │
155 └── latest -> 2024-12-25_143022 # Symlink
156```
157
158## Context Management
159
160**Problem**: Long-running agents can bloat context with network data, screenshots, DOM trees.
161
162**Solution**: Chunked processing + structured handoffs
163
164- Orchestrator holds URL list only, not page content
165- Sub-agents process ONE page at a time
166- Write findings to disk IMMEDIATELY
167- Clear page-specific context before next page
168- Return summary only (not full data)
169
170**Resumability**: If interrupted, `/webrecon --resume` reads `.state/progress.json` and continues from last completed page.
171
172## Chrome DevTools MCP Reference
173
174Key tools available:
175
176**Navigation:**
177- `navigate_page` - Go to URL
178- `new_page` / `close_page` - Tab management
179- `list_pages` / `select_page` - Multi-tab handling
180
181**Inspection:**
182- `take_screenshot` - Capture page
183- `take_snapshot` - Get DOM/accessibility tree
184- `evaluate_script` - Run JavaScript
185
186**Network:**
187- `list_network_requests` - Get all requests
188- `get_network_request` - Get request/response details
189
190**Performance:**
191- `performance_start_trace` / `performance_stop_trace` - Record traces
192- `performance_analyze_insight` - Get performance insights
193
194## Best Practices
195
1961. **Run Chrome launcher first**: Always start Chrome instances before auditing
1972. **Use appropriate mode**: `quick` for rapid checks, `deep` for thorough analysis
1983. **Design-deep for replication**: Use `--design-deep` when you need to recreate the design
1994. **Check diffs**: Use `/webaudit diff` to track changes over time
2005. **Review filtered pages**: Customize include/exclude if defaults miss important pages