agentleFS
chanuk0chanuk0/agent-skills-public/skills/topic-scout/SKILL.md

topic-scout

Skill0 starsChanged 2 months agoMITView on GitHub

Find new topics worth covering and log them to a tracker, deduplicated and scored. Rotates through the beats in references/beats.md, walks the primary sources listed there, drops anything already covered or already expired, and records only the top few. Use for "find me something to post about today", "what should I cover this week", "any new topics", "fill the idea backlog", "update the topic tracker", and for a scheduled daily run. Researching and verifying an already-chosen topic is topic-brief instead — this skill is the step before that, deciding what to work on at all.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. ttalkkaklab/social-flow★ 1same name
    2. enstw/thesisbug2★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository3 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 4 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Do not swap a beat because another one "looks more interesting today" — once the rotation breaks, you are back to one beat forever within a …

    line 52
  2. Distinctive:

    If walking the sources isn't enough, search — but put the beat name plus the current month in the query.

    line 74
  3. Distinctive:

    Always run F3 through the script:

    line 93
  4. Very specific:

    Use only the rubric in references/scoring.md: beat base score plus adjustments.

    line 104
  5. Very specific:

    Write only the top 3–5 to the idea tracker.

    line 110
  6. Very specific:

    Follow the row format in references/tracker.md exactly.

    line 111
  7. Distinctive:

    Leave only this in chat. Don't paste candidate write-ups — the tracker is the record.

    line 115
  8. Distinctive:

    Create or edit rows in the production queue (read-only from here)

    line 126
  9. Very specific:

    Write hooks, scripts, or outlines here (that's blog-post / carousel-post)

    line 129
  10. Very specific:

    Write a full brief (that's topic-brief — scouting stops at a one-line summary)

    line 130

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Topic Scout

Finds what to cover and writes it to your idea tracker. Built to run once a day.

Where it sits in the pipeline:

[this skill]  scout  →  idea tracker
        ↓ a human picks one and promotes it
     production queue
        ↓ topic-brief    (verify → one-page brief)
        ↓ blog-post / carousel-post

This skill never writes to the production queue. It reads the queue only to check for duplicates. A human promoting an idea is the gate; if the model skips that gate, unverified topics end up in the production queue.

The five ways this fails (all five are defended below)

  1. Suggests something already covered → don't skip the three-layer duplicate check.
  2. Suggests something already over → a candidate whose deadline you couldn't confirm does not get recorded.
  3. Mines the same beat every day → follow the rotation from axis.py. Don't pick by feel.
  4. Invents something plausible with no source → no primary-source URL, no record.
  5. Ranks by intuition → score only with the rubric in references/scoring.md.

Reference routing

WhenDocument
Which sources to open for each beatreferences/beats.md
How to score, and what disqualifies a candidatereferences/scoring.md
Tracker fields and how to write a rowreferences/tracker.md
Today's beats and their sourcespython scripts/axis.py --today
Duplicate checkpython scripts/dedup.py

Procedure — once per run

1. Pick the beats

python scripts/axis.py --today

Prints the beats to mine today and the source rows for each. Mine only those beats. Do not swap a beat because another one "looks more interesting today" — once the rotation breaks, you are back to one beat forever within a few days. If the user names a beat, override with --beat "<name>" and leave the rotation state alone.

2. Load existing state (for the duplicate check)

Pull the names of every row from both lists — your production queue and your idea tracker. references/tracker.md has the field names.

  • Production queue — every row, whatever its status. A row sitting at "candidate" is still a topic you already have.
  • Idea tracker — every row. Re-suggesting yesterday's suggestion is the most common way this skill wastes a run.

3. Collect — walk the primary sources

Open the sources for each of today's beats from the top down. In each one you are looking for exactly one thing: something live right now that gives your audience real money, time, or access.

  • Fetch the page. If the body doesn't come back because the page renders client-side, reopen it with a browser tool rather than giving up.
  • If walking the sources isn't enough, search — but put the beat name plus the current month in the query. Do not run queries that leave the beat.
  • Do not scrape sites behind a login. It breaks their terms and the data is unreliable.

Gather 3–5 candidates per beat, 10–15 total. Don't filter yet.

4. Filter — most candidates die here

Apply in order. Log the reason for each rejection; don't record rejected candidates.

#Rejected whenWhy
F1No primary-source URLNothing can be verified
F2Already closed, expired, or fully subscribedThe worst possible accident
F3Already in the queue or tracker (dedup.py)Duplicate
F4Audience doesn't match yoursNot your readers
F5Benefit can't be expressed as an amount or a time savedNo number for the hook
F6Geographically narrower than your audienceReach doesn't justify it

Always run F3 through the script:

python scripts/dedup.py --existing existing.json "candidate one" "candidate two"

Drop anything marked duplicate. Keep anything marked similar, noting what it is similar to — the next round of a recurring thing is a new topic, not a duplicate.

5. Score

Use only the rubric in references/scoring.md: beat base score plus adjustments. Never raise a score because a deadline is close. Urgency belongs in the deadline field, where it breaks ties; it is not a ranking input. scoring.md explains why.

6. Record

Write only the top 3–5 to the idea tracker. Write all ten and nobody reads any of them. Follow the row format in references/tracker.md exactly.

Reporting

Leave only this in chat. Don't paste candidate write-ups — the tracker is the record.

[scout YYYY-MM-DD] beats: <three>
recorded N: <name>(score) / <name>(score) / <name>(score)
rejected M: F1 a · F2 b · F3 c ...
blocked sources: <what you couldn't open and why. omit if none>

Never

  • Create or edit rows in the production queue (read-only from here)
  • Fill in an amount, date, or eligibility rule that isn't in the primary source
  • Scrape pages behind a login wall
  • Write hooks, scripts, or outlines here (that's blog-post / carousel-post)
  • Write a full brief (that's topic-brief — scouting stops at a one-line summary)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.