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>
This commit is contained in:
Affaan Mustafa
2026-07-09 03:02:40 -04:00
committed by GitHub
co-authored by Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 38a7ebbe32
commit f6e18e0835
12 changed files with 20 additions and 20 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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]
---
+1 -1
View File
@@ -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]
---
+1 -1
View File
@@ -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
---
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
---
+1 -1
View File
@@ -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
---
+1 -1
View File
@@ -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
---
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
---
+9 -9
View File
@@ -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 19 above to build your own.