chatter-scout
Sweep the web for new chatter on a topic, skip what earlier runs already saw, verify what is left, and write one ranked, cited findings file to feed a blog…
Skill by leek
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/leek-chatter-scout
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/chatter-scout
Tools it pre-approves 2
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
WebSearchWebFetch
What's inside
- Skill name
chatter-scout- Description
- Sweep the web for new chatter on a topic, skip what earlier runs already saw, verify what is left, and write one ranked, cited findings file to feed a blog post or a digest email.
- License
- MIT
- Compatibility
- Needs jq on PATH
- Allowed tools
- WebSearch, WebFetch
- Instructions
- 57 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (5)
- BRIEFS.md
- PROFILE-FORMAT.md
- SKILL.md
- openai.yaml · agents/
- filter-seen.sh · scripts/
SKILL.md (first lines)
# Chatter Scout Run one scouting pass on a topic, then offer next steps. Output is one findings file; nothing is drafted, sent, or published unless the user picks that next step. Safe to re-run: the seen-ledger keeps every run from resurfacing what an earlier one reported. Cost is the design constraint. The lead (this skill) does no bulk searching or page reading; it writes briefs, runs the ledger script, ranks, and writes the file. Searching fans out to cheap sweepers; page reading goes only to candidates that survive the ledger. ## Files (in the target repo) - **Profile** `docs/chatter/<topic-slug>/profile.md`: the lens, sources, and watchlist. Format and bootstrap rules: [PROFILE-FORMAT.md](PROFILE-FORMAT.md). - **Ledger** `docs/chatter/<topic-slug>/seen.json`: JSON array of normalized URLs already judged. Only [scripts/filter-seen.sh](scripts/filter-seen.sh) reads or writes it; it never removes an entry. - **Findings** `.scratch/chatter/<topic-slug>/<YYYY-MM-DD>.md`: this run's output. A second run on the same day appends `-2`, `-3`. - **Legacy log** `docs/intel/chatter-log.md`: the layout before profiles. Step 1 imports it once; nothing writes to it. ## Steps 1. **Resolve the topic.** `$ARGUMENTS` is a profile slug or free text. Slugify free text and match it against `docs/chatter/*/profile.md`. No argument: use the only profile; if there are zero or several, list them and stop. No profile for the topic: bootstrap one per PROFILE-FORMAT.md. If `seen.json` does not exist and `docs/intel/chatter-log.md` does, import the old log first: pipe every URL in it (`grep -oE 'https?://[^ )>\]]+'`, as a JSON array) to `filter-seen.sh add`, and note the count and the log's newest date for the recap. Earlier runs reported those items, so a missing ledger never means nothing was reported before. *Done when* one profile is loaded and today's date is known from the environment. 2. **Load what is already covered.** If the profile has `covered:` globs, collect the title (and tags, if any) from each file's frontmatter, one line each. Do not read bodies. *Done when* you hold a covered-titles list (possibly empty). 3. **Sweep.** Dispatch one sweeper per profile source group (watchlist included), at most 5, **in parallel** (in Claude Code with this plugin installed, `subagent_type=leek-skills:chatter-sweeper`; in plain Claude Code, `general-purpose` with `model: haiku`; elsewhere, any sub-agent on the cheapest model the harness offers, or run the groups inline one after another). Each brief carries: today's date, `window_days`, the Lens, Buckets, and Ignore sections verbatim, that one group's sources, queries, and notes, and the **Sweeper** section of [BRIEFS.md](BRIEFS.md). Nothing else. *Done when* every sweeper has returned its JSON array. 4. **Drop what the ledger has seen.** Concatenate the arrays and pipe them through `bash <skill-dir>/scripts/filter-seen.sh filter docs/chatter/<slug>/seen.json`. Then drop, by title, anything a covered title already covers, or that an earlier findings file for this topic already reported under another URL (an index, mirror, or syndicated copy of the same item; read only those files' `##` headings and **Source** lines): a genuinely new development in a covered story (new ruling, new data, new state) stays. Move any item dated before the window (non-evergreen buckets) to an **Older than window** list: it skips verification, and the findings file names it so the user can pull it back in. If more than 15 survive, keep the 15 that best fit the Lens, taking day-dated items before undated ones: an undated item takes a slot only when no dated item fits. *Done when* at most 15 new candidates remain; if none remain, skip to step 6. 5. **Verify.** Split the survivors into batches of about 5 and dispatch one verifier per batch **in parallel** (in Claude Code, `subagent_type=leek-skills:chatter-verifier`; in plain Claude Code, `general-purpose` with `model: sonnet`; elsewhere, a sub-agent on a mid-tier model, or inline). Each brief carries: today's date, `window_days`, the Lens, Buckets, and Ignore sections, the batch, the profile's fetch notes, and the **Verifier** section of BRIEFS.md. A candidate the verifier marks `unreachable` stays `unreachable`, including a page whose text it could not read. The lead does not fetch it or extract that text. *Done when* every candidate has a verdict. 6. **Rank and write.** Keep verdict `keep` and `community`. Rank by fit to the Lens first, then freshness (for non-evergreen buckets), then how many concrete facts the item carries. Take the top `max_items`; the rest go under **Also seen**. Write the findings file in the format below. *Done when* the file exists. 7. **Update the ledger.** Pipe a JSON array of every URL with verdict `keep`, `community`, `off-topic`, `stale`, or `thin`, plus every **Older than window** URL, to `filter-seen.sh add`. Leave `unreachable` out so a later run retries it. *Done when* the script reports its `added` count. 8. **Recap** in 3–6 lines: groups swept, candidates found, new after the ledger, kept; the single strongest item; the findings path; and, if the profile was bootstrapped, that it needs review. 9. **Offer next steps.** End every run, a zero-keep run included, with 2–4 concrete options inside one question (`AskUserQuestion` where available: one single-select question, the options being the next steps; otherwise one numbered list in chat): for example draft a post or digest from item N, pull back an **Older than window** item, widen the window and re-run, or stop. Act only on the answer. *Done when* the user picked one. Never write to the profile after it exists, and never edit an earlier findings file. ## Findings format ```markdown # Chatter: <topic>, <YYYY-MM-DD> Swept <n> groups · <n> candidates · <n> new · <n> kept. Purpose: <blog | digest | both>. ## 1. <title> - **Bucket:** <bucket> · **Date:** <YYYY-MM-DD, or "undated"> · **New this week:** yes | no - **Source:** <publication> <URL> - **Summary:** 1–2 lines. - **Facts:** the specific numbers, dates, names, and citations the item hangs on. - **Why it matters:** 1–2 lines against the Lens. - **Angle:** for blog, the search query or headline it could win; for digest, the one line a reader acts on. - **Action:** watch | respond | build | share | write - **Confidence:** verified | community (unverified sentiment, not fact) ## Also seen - <title>, <URL>: one line. ## Older than window - <title>, <URL>, <date>: one line. Not verified; ask to pull one back in. ## Rejected <n> off-topic · <n> stale · <n> thin · <n> unreachable (retried next run) ``` With no kept items, write the header line, `No new relevant chatter.`, and the **Older than window** list if it has entries.
From leek/agent-skills, MIT.
More from leek/agent-skills
- 0.614score
code-smells-audit
leek
Audit a codebase, path, or branch diff for classic code smells against the 56-smell Luzkan catalog (PHP/Laravel and TS/React heuristics).
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
codebase-design
leek
Shared vocabulary for designing deep modules in any codebase.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
domain-modeling
leek
Build and sharpen a project's domain model: challenge terms against the glossary, resolve fuzzy language, stress-test concepts with concrete scenarios, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
browser-test
leek
Test a web app from a start URL and a plain-language prompt.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
autopilot
leek
Drive an existing wayfinder map, spec, or set of tickets to completion through fresh top-level Claude Code, Codex, or Grok sessions.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
closeout
leek
Check whether this session is safe to close: unsaved work, running jobs, open PRs, unanswered questions, and steps still to run.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
fix-posthog-issues
leek
Triage active PostHog error-tracking issues by root cause, fix the legit ones, and resolve or suppress the rest with evidence.
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
grilling
leek
Interview the user one decision at a time until reaching shared understanding, resolving each branch of the decision tree with recommended options and…
SkillAFreshness: A★ 4Claude Code +9 - 0.608score
fix-github-issues
leek
Verify, triage, fix, and close review-bot GitHub issues one finding at a time.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
dependency-audit
leek
Run a dependency audit for Composer or npm projects and propose a safe upgrade plan.
SkillAFreshness: A★ 4Claude Code - 0.603score
fix-nightwatch-issues
leek
Triage open Laravel Nightwatch production issues by root cause, fix the legit ones, and resolve them with evidence.
SkillAFreshness: A★ 4Claude Code +9 - 0.603score
architecture-satisfaction
leek
Run a bounded architectural refactor loop toward a stated design.
SkillAFreshness: A★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 20, 2026 (8 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/leek/agent-skills
- Website
- skills.sh/leek/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from leek
- 0.614score
domain-modeling
leek
Build and sharpen a project's domain model: challenge terms against the glossary, resolve fuzzy language, stress-test concepts with concrete scenarios, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
codebase-design
leek
Shared vocabulary for designing deep modules in any codebase.
SkillAFreshness: A★ 4Claude Code +9 - 0.614score
code-smells-audit
leek
Audit a codebase, path, or branch diff for classic code smells against the 56-smell Luzkan catalog (PHP/Laravel and TS/React heuristics).
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
browser-test
leek
Test a web app from a start URL and a plain-language prompt.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
closeout
leek
Check whether this session is safe to close: unsaved work, running jobs, open PRs, unanswered questions, and steps still to run.
SkillAFreshness: A★ 4Claude Code +9 - 0.611score
autopilot
leek
Drive an existing wayfinder map, spec, or set of tickets to completion through fresh top-level Claude Code, Codex, or Grok sessions.
SkillAFreshness: A★ 4Claude Code +9
Cite this page
chatter-scout skill. Agent Mart. https://agentmart.dev/skills/leek-chatter-scout (last updated 2026-10-24)