From f6e18e0835e40145acddd32a6cecad9b4fbbf35d Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Thu, 9 Jul 2026 03:02:40 -0400 Subject: [PATCH] fix(agents): read-only reviewer contract + model re-tiering (#2442) + soften data-scraper prose (#2428) (#2480) * fix(agents): retier reviewer frontmatter (#2442) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> * docs(skills): soften data scraper prose (#2428) Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- agents/chief-of-staff.md | 2 +- agents/comment-analyzer.md | 2 +- agents/conversation-analyzer.md | 2 +- agents/database-reviewer.md | 2 +- agents/docs-lookup.md | 2 +- agents/gan-evaluator.md | 2 +- agents/gan-generator.md | 2 +- agents/gan-planner.md | 2 +- agents/opensource-forker.md | 2 +- agents/opensource-packager.md | 2 +- agents/security-reviewer.md | 2 +- skills/data-scraper-agent/SKILL.md | 18 +++++++++--------- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/agents/chief-of-staff.md b/agents/chief-of-staff.md index c66718e42..49b844982 100644 --- a/agents/chief-of-staff.md +++ b/agents/chief-of-staff.md @@ -2,7 +2,7 @@ name: chief-of-staff description: Personal communication chief of staff that triages email, Slack, LINE, and Messenger. Classifies messages into 4 tiers (skip/info_only/meeting_info/action_required), generates draft replies, and enforces post-send follow-through via hooks. Use when managing multi-channel communication workflows. tools: ["Read", "Grep", "Glob", "Bash", "Edit", "Write"] -model: opus +model: sonnet --- ## Prompt Defense Baseline diff --git a/agents/comment-analyzer.md b/agents/comment-analyzer.md index 619a24926..4c43138ec 100644 --- a/agents/comment-analyzer.md +++ b/agents/comment-analyzer.md @@ -1,7 +1,7 @@ --- name: comment-analyzer description: Analyze code comments for accuracy, completeness, maintainability, and comment rot risk. -model: sonnet +model: haiku tools: [Read, Grep, Glob] --- diff --git a/agents/conversation-analyzer.md b/agents/conversation-analyzer.md index 5692b0084..47a8db7c8 100644 --- a/agents/conversation-analyzer.md +++ b/agents/conversation-analyzer.md @@ -1,7 +1,7 @@ --- name: conversation-analyzer description: Use this agent when analyzing conversation transcripts to find behaviors worth preventing with hooks. Triggered by /hookify without arguments. -model: sonnet +model: haiku tools: [Read, Grep] --- diff --git a/agents/database-reviewer.md b/agents/database-reviewer.md index 19947f898..cd7e6b004 100644 --- a/agents/database-reviewer.md +++ b/agents/database-reviewer.md @@ -1,7 +1,7 @@ --- name: database-reviewer description: PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices. -tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"] +tools: ["Read", "Grep", "Glob", "Bash"] model: sonnet --- diff --git a/agents/docs-lookup.md b/agents/docs-lookup.md index 348d67c22..79533e36f 100644 --- a/agents/docs-lookup.md +++ b/agents/docs-lookup.md @@ -2,7 +2,7 @@ name: docs-lookup description: When the user asks how to use a library, framework, or API or needs up-to-date code examples, use Context7 MCP to fetch current documentation and return answers with examples. Invoke for docs/API/setup questions. tools: ["Read", "Grep", "mcp__context7__resolve-library-id", "mcp__context7__query-docs"] -model: sonnet +model: haiku --- ## Prompt Defense Baseline diff --git a/agents/gan-evaluator.md b/agents/gan-evaluator.md index 87fa9c6bd..0ecced4f9 100644 --- a/agents/gan-evaluator.md +++ b/agents/gan-evaluator.md @@ -2,7 +2,7 @@ name: gan-evaluator description: "GAN Harness — Evaluator agent. Tests the live running application via Playwright, scores against rubric, and provides actionable feedback to the Generator." tools: ["Read", "Write", "Bash", "Grep", "Glob"] -model: opus +model: sonnet color: red --- diff --git a/agents/gan-generator.md b/agents/gan-generator.md index 57790cf1f..51dc35f7c 100644 --- a/agents/gan-generator.md +++ b/agents/gan-generator.md @@ -2,7 +2,7 @@ name: gan-generator description: "GAN Harness — Generator agent. Implements features according to the spec, reads evaluator feedback, and iterates until quality threshold is met." tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"] -model: opus +model: sonnet color: green --- diff --git a/agents/gan-planner.md b/agents/gan-planner.md index a7eb1ed0b..be5da2173 100644 --- a/agents/gan-planner.md +++ b/agents/gan-planner.md @@ -2,7 +2,7 @@ name: gan-planner description: "GAN Harness — Planner agent. Expands a one-line prompt into a full product specification with features, sprints, evaluation criteria, and design direction." tools: ["Read", "Write", "Grep", "Glob"] -model: opus +model: sonnet color: purple --- diff --git a/agents/opensource-forker.md b/agents/opensource-forker.md index eb3e24acc..6dac93d9c 100644 --- a/agents/opensource-forker.md +++ b/agents/opensource-forker.md @@ -2,7 +2,7 @@ name: opensource-forker description: Fork any project for open-sourcing. Copies files, strips secrets and credentials (20+ patterns), replaces internal references with placeholders, generates .env.example, and cleans git history. First stage of the opensource-pipeline skill. tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"] -model: sonnet +model: haiku --- ## Prompt Defense Baseline diff --git a/agents/opensource-packager.md b/agents/opensource-packager.md index c009a96a3..106d547f8 100644 --- a/agents/opensource-packager.md +++ b/agents/opensource-packager.md @@ -2,7 +2,7 @@ name: opensource-packager description: Generate complete open-source packaging for a sanitized project. Produces CLAUDE.md, setup.sh, README.md, LICENSE, CONTRIBUTING.md, and GitHub issue templates. Makes any repo immediately usable with Claude Code. Third stage of the opensource-pipeline skill. tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"] -model: sonnet +model: haiku --- ## Prompt Defense Baseline diff --git a/agents/security-reviewer.md b/agents/security-reviewer.md index c444a6198..d1d476cfd 100644 --- a/agents/security-reviewer.md +++ b/agents/security-reviewer.md @@ -1,7 +1,7 @@ --- name: security-reviewer description: Security vulnerability detection and remediation specialist. Use PROACTIVELY after writing code that handles user input, authentication, API endpoints, or sensitive data. Flags secrets, SSRF, injection, unsafe crypto, and OWASP Top 10 vulnerabilities. -tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"] +tools: ["Read", "Grep", "Glob", "Bash"] model: sonnet --- diff --git a/skills/data-scraper-agent/SKILL.md b/skills/data-scraper-agent/SKILL.md index 43d9dc6cd..2ab0cac93 100644 --- a/skills/data-scraper-agent/SKILL.md +++ b/skills/data-scraper-agent/SKILL.md @@ -1,6 +1,6 @@ --- name: data-scraper-agent -description: Build a fully automated AI-powered data collection agent for any public source — job boards, prices, news, GitHub, sports, anything. Scrapes on a schedule, enriches data with a free LLM (Gemini Flash), stores results in Notion/Sheets/Supabase, and learns from user feedback. Runs 100% free on GitHub Actions. Use when the user wants to monitor, collect, or track any public data automatically. +description: Build a fully automated AI-powered data collection agent for any public source — job boards, prices, news, GitHub, sports, anything. Runs on a schedule, enriches data with a free LLM (Gemini Flash), stores results in Notion/Sheets/Supabase, and learns from user feedback. Runs 100% free on GitHub Actions. Use when the user wants to monitor, collect, or track any public data automatically. metadata: origin: community --- @@ -14,7 +14,7 @@ Runs on a schedule, enriches results with a free LLM, stores to a database, and ## When to Activate -- User wants to scrape or monitor any public website or API +- User wants to gather or monitor any public website or API - User says "build a bot that checks...", "monitor X for me", "collect data from..." - User wants to track jobs, prices, news, repos, sports scores, events, listings - User asks how to automate data collection without paying for hosting @@ -24,7 +24,7 @@ Runs on a schedule, enriches results with a free LLM, stores to a database, and ### The Three Layers -Every data scraper agent has three layers: +Every data collection agent has three layers: ``` COLLECT → ENRICH → STORE @@ -40,7 +40,7 @@ schedule summarises Sheets / | Layer | Tool | Why | |---|---|---| | **Scraping** | `requests` + `BeautifulSoup` | No cost, covers 80% of public sites | -| **JS-rendered sites** | `playwright` (free) | When HTML scraping fails | +| **JS-rendered sites** | `playwright` (free) | When HTML fetching fails | | **AI enrichment** | Gemini Flash via REST API | 500 req/day, 1M tokens/day — free | | **Storage** | Notion API | Free tier, great UI for review | | **Schedule** | GitHub Actions cron | Free for public repos | @@ -95,7 +95,7 @@ Common examples to prompt: --- -### Step 2: Design the Agent Architecture +### Step 2: Design the Collection Architecture Generate this directory structure for the user: @@ -133,14 +133,14 @@ my-agent/ --- -### Step 3: Build the Scraper Source +### Step 3: Build the Source Connector Template for any data source: ```python # scraper/sources/my_source.py """ -[Source Name] — scrapes [what] from [where]. +[Source Name] — gathers [what] from [where]. Method: [REST API / HTML scraping / RSS feed] """ import requests @@ -182,7 +182,7 @@ def _normalise(raw: dict) -> dict: } ``` -**HTML scraping pattern:** +**HTML fetch pattern:** ```python soup = BeautifulSoup(resp.text, "lxml") for card in soup.select("[class*='listing']"): @@ -760,6 +760,6 @@ Before marking the agent complete: ## Reference Implementation -A complete working agent built with this exact architecture would scrape 4+ sources, +A complete working agent built with this exact architecture would collect from 4+ sources, batch Gemini calls, learn from Applied/Rejected decisions stored in Notion, and run 100% free on GitHub Actions. Follow Steps 1–9 above to build your own.