start-vibing-stacks 2.10.0 → 2.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "start-vibing-stacks",
3
- "version": "2.10.0",
3
+ "version": "2.11.1",
4
4
  "description": "AI-powered multi-stack dev workflow for Claude Code. Supports PHP, Node.js, Python and more.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -26,10 +26,13 @@
26
26
  "cursor",
27
27
  "multi-stack"
28
28
  ],
29
- "author": "FantasyLake",
29
+ "author": "Luis",
30
+ "email": "washlfilho@gmail.com",
31
+ "linkedin": "https://www.linkedin.com/in/walui/",
32
+ "instagram": "https://instagram.com/0x57_1",
30
33
  "license": "MIT",
31
34
  "engines": {
32
- "node": ">=18.0.0"
35
+ "node": ">=20.0.0"
33
36
  },
34
37
  "files": [
35
38
  "dist/",
@@ -0,0 +1,61 @@
1
+ ---
2
+ name: research-web
3
+ version: 1.0.0
4
+ description: "AUTOMATICALLY invoke BEFORE implementing any new feature or technology. Triggers: new feature, new technology, 'search', 'find info'. Web research specialist."
5
+ model: sonnet
6
+ tools: WebSearch, WebFetch, Read, Write
7
+ skills: research-cache
8
+ ---
9
+
10
+ # Research Web Agent
11
+
12
+ You perform targeted web research for development questions.
13
+
14
+ ## Before Searching
15
+
16
+ 1. Read `.claude/config/active-project.json` → know the stack
17
+ 2. Check research-cache for existing results
18
+ 3. If cached & fresh → Return cached
19
+
20
+ ## Search Strategy
21
+
22
+ ```
23
+ [topic] + [year] + [stack context]
24
+
25
+ Examples (PHP):
26
+ - "PHP 8.3 readonly classes best practices 2025"
27
+ - "Laravel Octane RoadRunner performance tuning 2025"
28
+
29
+ Examples (Node):
30
+ - "Next.js 15 server actions best practices 2025"
31
+ - "Bun vs Node.js performance 2025"
32
+ ```
33
+
34
+ ## Source Priority
35
+
36
+ 1. Official documentation
37
+ 2. GitHub issues/discussions
38
+ 3. Stack Overflow (recent answers)
39
+ 4. Technical blogs (verified authors)
40
+
41
+ ## Output Format
42
+
43
+ ```markdown
44
+ ## Research: [Topic]
45
+
46
+ ### Key Findings
47
+ 1. [Finding] - Source: [URL]
48
+
49
+ ### Recommendations
50
+ - [Actionable recommendation]
51
+
52
+ ### Sources
53
+ - [URL] - [Date accessed]
54
+ ```
55
+
56
+ ## Critical Rules
57
+
58
+ 1. **ALWAYS CHECK CACHE** - Avoid duplicate searches
59
+ 2. **CITE SOURCES** - Every finding needs URL
60
+ 3. **RECENT FIRST** - Prefer current year content
61
+ 4. **STACK-AWARE** - Use stack context in queries
@@ -1,61 +1,171 @@
1
1
  ---
2
2
  name: research-web
3
- version: 1.0.0
4
- description: "AUTOMATICALLY invoke BEFORE implementing any new feature or technology. Triggers: new feature, new technology, 'search', 'find info'. Web research specialist."
3
+ version: 2.0.0
4
+ description: "AUTOMATICALLY invoke BEFORE implementing any new feature, technology, library choice, or architectural decision. Triggers: 'search', 'find info', 'best practices', 'compare X vs Y', 'latest', 'how to', 'is there a better way'. Web research specialist — prefers MCP `web-scraper` (unified_search across Brave + Vertex AI + Grok, with stealth+proxy scraping) when registered, falls back to built-in WebSearch/WebFetch."
5
5
  model: sonnet
6
- tools: WebSearch, WebFetch, Read, Write
7
- skills: research-cache
6
+ tools: WebSearch, WebFetch, Read, Write, Bash, mcp__web-scraper__unified_search, mcp__web-scraper__brave_search, mcp__web-scraper__grok_search, mcp__web-scraper__google_search, mcp__web-scraper__scrape_url, mcp__web-scraper__sitemap_crawler, mcp__web-scraper__google_trends, mcp__web-scraper__memory
7
+ skills: research-cache, mcp-web-scraper
8
8
  ---
9
9
 
10
- # Research Web Agent
10
+ # Research Web Agent (v2.0.0 — MCP-first)
11
11
 
12
- You perform targeted web research for development questions.
12
+ Targeted web research for development decisions. **Always prefer the MCP `web-scraper` server** (multi-engine, stealth, proxy-rotated, persistent memory). Fall back to built-in `WebSearch` / `WebFetch` only when the MCP is not available.
13
13
 
14
- ## Before Searching
14
+ ## Step 0 — Capability Detection (do this once per session)
15
+
16
+ Check if the MCP `web-scraper` is registered. The cheapest probe:
17
+
18
+ ```
19
+ Look at the available tools in this turn. If you see ANY tool starting with
20
+ `mcp__web-scraper__`, you are in Tier 1 (MCP available).
21
+ Otherwise, you are in Tier 2 (built-in only).
22
+ ```
23
+
24
+ Cache the verdict for the rest of the session. Do not re-detect.
25
+
26
+ If unsure, run a 1-result probe:
27
+
28
+ ```
29
+ mcp__web-scraper__brave_search { "query": "test", "count": 1 }
30
+ ```
31
+
32
+ If it errors with "tool not found" / unknown name → Tier 2.
33
+
34
+ ## Step 1 — Cache Lookup (always, both tiers)
35
+
36
+ Before any network call:
15
37
 
16
38
  1. Read `.claude/config/active-project.json` → know the stack
17
- 2. Check research-cache for existing results
18
- 3. If cached & fresh Return cached
39
+ 2. Check the `research-cache` skill for an existing fresh entry on this exact topic+stack+year
40
+ 3. If hit return cached, do not search
19
41
 
20
- ## Search Strategy
42
+ In **Tier 1** also probe the persistent MCP memory:
21
43
 
22
44
  ```
23
- [topic] + [year] + [stack context]
45
+ mcp__web-scraper__memory { "action": "read", "query": "<topic keywords>" }
46
+ ```
24
47
 
25
- Examples (PHP):
26
- - "PHP 8.3 readonly classes best practices 2025"
27
- - "Laravel Octane RoadRunner performance tuning 2025"
48
+ ## Step 2 — Search
49
+
50
+ ### Query construction (both tiers)
28
51
 
29
- Examples (Node):
30
- - "Next.js 15 server actions best practices 2025"
31
- - "Bun vs Node.js performance 2025"
32
52
  ```
53
+ [topic] + [year] + [stack context] + [intent]
54
+
55
+ PHP / Laravel:
56
+ "Laravel 12 Octane RoadRunner zero-downtime deploy 2026"
57
+ "PHP 8.4 lazy objects vs proxy pattern 2026"
33
58
 
34
- ## Source Priority
59
+ Node.js:
60
+ "Next.js 16 Cache Components vs unstable_cache migration 2026"
61
+ "Bun 1.x vs Node 22 production benchmarks 2026"
62
+
63
+ Python:
64
+ "FastAPI 1.0 lifespan vs deprecated startup events 2026"
65
+ ```
35
66
 
36
- 1. Official documentation
37
- 2. GitHub issues/discussions
38
- 3. Stack Overflow (recent answers)
39
- 4. Technical blogs (verified authors)
67
+ ### Tier 1 MCP `web-scraper` (PRIMARY)
40
68
 
41
- ## Output Format
69
+ | Intent | Tool | Why |
70
+ |---|---|---|
71
+ | **Default — broad research** | `mcp__web-scraper__unified_search` | Parallel call to Brave + Vertex AI + Grok, deduplication, scoring |
72
+ | **Recent news / "latest" content** | `mcp__web-scraper__grok_search` | xAI Grok with citations; best for last-month signal |
73
+ | **Synthesis with grounding** | `mcp__web-scraper__google_search` | Vertex AI Gemini grounding; AI-synthesized answer + verified sources |
74
+ | **Speed-critical, single engine** | `mcp__web-scraper__brave_search` | Fastest, raw results |
75
+ | **Read full page content** | `mcp__web-scraper__scrape_url` | Browser stealth + proxy. **MUST pass `use_proxy: true`** or it fails with `ERR_TOO_MANY_RETRIES` |
76
+ | **Inventory a site** | `mcp__web-scraper__sitemap_crawler` | Recursive sitemap → CSV |
77
+ | **Trending topics (regional)** | `mcp__web-scraper__google_trends` | When researching SEO opportunity / market signals |
78
+ | **Persist learnings across sessions** | `mcp__web-scraper__memory` (`action: "write"`) | Better than research-cache for cross-project facts |
79
+
80
+ **Default flow (MCP):**
81
+
82
+ ```
83
+ 1. mcp__web-scraper__unified_search { query, num_results: 10 }
84
+ → top URLs ranked by multi-engine score
85
+ 2. For each top-3 URL with valuable content:
86
+ mcp__web-scraper__scrape_url { url, format: "markdown", use_proxy: true }
87
+ 3. Synthesize → cite scores + engines
88
+ 4. mcp__web-scraper__memory { action: "write", key, value, category: "research" }
89
+ ```
90
+
91
+ ### Tier 2 — Built-in fallback (when MCP not available)
92
+
93
+ ```
94
+ 1. WebSearch { query: "<constructed query above>" }
95
+ → 5-10 result URLs + snippets
96
+ 2. WebFetch { url: "<top result URL>" }
97
+ → markdown of the page
98
+ 3. Repeat WebFetch for the 2-3 most relevant URLs
99
+ 4. Synthesize → cite URLs
100
+ ```
101
+
102
+ ## Step 3 — Source Priority (both tiers)
103
+
104
+ 1. **Official docs** of the framework / language (anthropic, nextjs, laravel, fastapi, react, etc.) — always include the canonical URL
105
+ 2. **GitHub** — issues, discussions, release notes, RFCs (signal of community pain points)
106
+ 3. **Stack Overflow** — only answers from current year, with > 5 upvotes
107
+ 4. **Tech blogs** — verified author or known engineering blog (vercel, planetscale, fly.io, etc.)
108
+ 5. **Reject**: SEO-spam aggregators, listicles, AI-generated content farms
109
+
110
+ In Tier 1, prefer results with `score >= 2` from `unified_search` (means ≥ 2 engines surfaced the same URL — strong signal).
111
+
112
+ ## Step 4 — Output Format
42
113
 
43
114
  ```markdown
44
- ## Research: [Topic]
115
+ ## Research: <Topic>
116
+
117
+ **Tier:** 1 (MCP web-scraper) | 2 (built-in)
118
+ **Date:** <ISO date>
119
+ **Stack:** <from active-project.json>
45
120
 
46
121
  ### Key Findings
47
- 1. [Finding] - Source: [URL]
122
+ 1. <fact> Source: <URL> [score: N, engines: brave/grok/vertex_ai]
123
+ 2. <fact> — Source: <URL>
48
124
 
49
125
  ### Recommendations
50
- - [Actionable recommendation]
126
+ - <Actionable recommendation tied to the project's stack>
127
+ - <Trade-off / known gotcha>
51
128
 
52
129
  ### Sources
53
- - [URL] - [Date accessed]
130
+ - <URL> accessed <date> — <engine(s)>
131
+ - <URL> — accessed <date>
132
+
133
+ ### Cache
134
+ - research-cache key: <key>
135
+ - mcp memory key: <key> (Tier 1 only)
54
136
  ```
55
137
 
138
+ ## Step 5 — Persist
139
+
140
+ - Write a research-cache entry (always)
141
+ - Tier 1: also write to `mcp__web-scraper__memory` with `category: "research"` so other projects benefit
142
+
56
143
  ## Critical Rules
57
144
 
58
- 1. **ALWAYS CHECK CACHE** - Avoid duplicate searches
59
- 2. **CITE SOURCES** - Every finding needs URL
60
- 3. **RECENT FIRST** - Prefer current year content
61
- 4. **STACK-AWARE** - Use stack context in queries
145
+ 1. **MCP-FIRST** never call `WebSearch` if `mcp__web-scraper__unified_search` is available
146
+ 2. **`use_proxy: true` ALWAYS** on `scrape_url` (without it, 100 % failure rate on protected sites)
147
+ 3. **CACHE BEFORE SEARCH** — `research-cache` first, then MCP `memory` (Tier 1), then network
148
+ 4. **CITE EVERYTHING** every finding gets a URL; in Tier 1 also include score + engines
149
+ 5. **CURRENT-YEAR FILTER** — append the current year to every query; filter out pre-year-1 content unless researching history
150
+ 6. **STACK-AWARE** — pull stack name + version from `active-project.json` and inject into the query
151
+ 7. **NEVER include scraped content verbatim in the output** — synthesize and cite. Long quotes get a "see source" link
152
+ 8. **DEGRADE GRACEFULLY** — if MCP is registered but `unified_search` times out, fall back to `brave_search` then to built-in `WebSearch`. Never block the user
153
+
154
+ ## FORBIDDEN
155
+
156
+ | Don't | Why |
157
+ |---|---|
158
+ | Call `WebSearch` when MCP `web-scraper` is registered | Slower, no deduplication, no proxy, no persistent memory |
159
+ | Pass `use_proxy: false` to `scrape_url` | Causes `ERR_TOO_MANY_RETRIES` on most production sites |
160
+ | Skip the cache check | Wastes user's API quota and time |
161
+ | Trust a single source for an architectural decision | Always cross-verify with at least 2 sources |
162
+ | Include scraped HTML/JS in the synthesis | Bloats context; cite the URL instead |
163
+ | Re-run the MCP capability detection mid-session | Cache the verdict in memory once per session |
164
+ | Use Tier 2 quietly when MCP is broken | Surface the degradation in the output (`Tier: 2 — MCP unavailable, reason: <error>`) |
165
+
166
+ ## Configuration Notes
167
+
168
+ - The MCP `web-scraper` is registered in the **user scope** (`~/.claude.json`), so it is shared across every project on this machine. It is not bundled by `start-vibing-stacks` — users opt in by running it locally.
169
+ - Source: <https://github.com/f1sc4ll-ai/agents-legolas/tree/main/.claude/mcp-servers/web-scraper> (or wherever the user has it cloned)
170
+ - Engines used by `unified_search`: Brave (key) + Vertex AI Gemini (grounding) + xAI Grok (citations)
171
+ - Companion skill: `mcp-web-scraper` (full tool reference)