agentleFS
hsigstadhsigstad/research-kit/skills/anecdotes/SKILL.md

anecdotes

Skill0 starsChanged 4 months agoMITView on GitHub

Collect anecdotal news evidence about a project's topic from Brazilian news outlets (or broader for non-Brazil projects) using the newsbr package. Discovers articles, fetches full text, appends to references/news/stories.csv, and writes a search audit log.

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

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

    When invoked, gather news/anecdotal evidence relevant to the current project's research topic and store it under references/news/ using the …

    line 9
  2. Distinctive:

    Wait for confirmation unless the user said "go ahead" up front.

    line 27
  3. Very specific:

    Always pass --context so the audit log captures who/why.

    line 41
  4. Distinctive:

    If the project isn't Brazil-focused (rare in this workspace — check CLAUDE.md), the baseline outlet list still works for any English query …

    line 86
  5. Distinctive:

    Show queries before running: Don't burn many requests on bad queries.

    line 129
  6. Very specific:

    Use --dry-run first: when running a new query against a slow outlet (globo's sitemap scan can take minutes).

    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

/anecdotes — Collect news evidence for a project

When invoked, gather news/anecdotal evidence relevant to the current project's research topic and store it under references/news/ using the canonical newsbr layout.

What you do

  1. Read project context to figure out what to search for:
    • <project>/CLAUDE.md (current focus, key terms)
    • <project>/docs/summary.md (research question)
    • <project>/paper/main.tex introduction, if present
    • <project>/README.md
  2. Decide if the project is Brazil-focused. Most projects in this workspace are. If non-Brazil, expand outlet selection accordingly (see "Non-Brazil mode" below).
  3. Propose 3–8 search queries covering different angles of the topic. Show them to the user before running. Briefly explain why each query. Wait for confirmation unless the user said "go ahead" up front.
  4. Run newsbr collect for each approved query, against the relevant outlets:

    python3 -m newsbr collect \
      --project <project_root> \
      --query "<query>" \
      --outlets migalhas,folha,estadao,jota \
      --max-pages 1 \
      --context "/anecdotes for <project>"

    Always pass --context so the audit log captures who/why.

  5. Report back what was added: number of new articles per outlet, total added, and the path to search_log.md. If you saw notable articles, mention 2–3 by title.
  6. Update docs/notes/anecdotes.md (create if missing) with a brief one-line entry per session listing the queries run and how many articles were collected. This is a human-curated complement to the machine-readable search_log.md. Do not duplicate the article list.

Outlet selection guide

OutletStrengthNotes
migalhasLegal news, free, native searchDefault for legal/judicial topics
folhaNational news, paywalledRequires Chrome login; native search
estadaoNational news, JS paywall (text in HTML)RSS-only search — only finds articles in the live feed, not archives. Low yield.
jotaLegal/policy journalism, paywalled (PRO)Sitemap scan (monthly XMLs at sitemap.jota.info). Free articles extracted via __NEXT_DATA__ JSON; PRO articles need Chrome cookies (rookiepy). High signal for legal/tax/judicial topics. Use --max-pages N to scan N years back.
globoNational news, paywalledSitemap scan, requires Chrome login
conjurLegal news, freefetch-only (Cloudflare blocks search). Use newsbr fetch --file references/news/curated_*.txt for hand-collected URLs
piauiLong-form investigativeSitemap scan, requires Playwright + Chrome login

For most legal/judicial projects start with migalhas,folha,jota — fast and high signal. Add globo for political/economic topics. JOTA is especially strong for tax, judicial reform, and STJ/STF coverage. Estadão's RSS-only search has returned 0 hits on all queries to date — consider dropping it from the default list until a proper search is added.

Storage layout

newsbr writes everything under <project>/references/news/:

stories.csv          date,outlet,title,url,theme,summary,paywalled
texts/NNN.txt        full article body, 1-indexed zero-padded
search_log.md        audit trail (newsbr appends to this)
curated_*.txt        hand-curated URL lists for fetch-only outlets

Themes are left blank by newsbr — fill them in later by hand or via project-specific classification.

Non-Brazil mode

If the project isn't Brazil-focused (rare in this workspace — check CLAUDE.md), the baseline outlet list still works for any English query that has Portuguese coverage, but you should also:

  1. Tell the user newsbr is Brazil-biased and ask for fallback outlets.
  2. Skip Brazilian-only outlets (migalhas, conjur, piaui).
  3. Suggest the user use Web Search for non-Brazil sources, then pass discovered URLs to newsbr fetch --file urls.txt.

Adding new outlets

Outlet modules live in packages/newsbr/newsbr/outlets/. To add one, create <name>.py exposing NAME, DOMAIN, STATUS, SEARCH, search(), and fetch(). Then add the short name to OUTLET_NAMES in outlets/__init__.py.

Common commands

# Discover and fetch in one shot
python3 -m newsbr collect --project <root> --query "..."

# Preview without fetching
python3 -m newsbr collect --project <root> --query "..." --dry-run

# Restrict to specific outlets
python3 -m newsbr collect --project <root> --query "..." --outlets migalhas,folha

# Fetch URLs directly (e.g. from a curated list)
python3 -m newsbr fetch --project <root> --file curated.txt
python3 -m newsbr fetch --project <root> --url https://...

# Re-fetch missing texts/NNN.txt files for existing CSV rows
python3 -m newsbr refetch-texts --project <root>

# Show all outlets and their status
python3 -m newsbr outlets

Important rules

  • Never delete or rewrite existing rows in stories.csv. Always append.
  • Always pass --context so the audit trail is interpretable later.
  • Show queries before running. Don't burn many requests on bad queries.
  • Use --dry-run first when running a new query against a slow outlet (globo's sitemap scan can take minutes).
  • The search log is the audit trail. It's how reviewers will see how evidence was gathered. Treat it as part of the paper's methodology.

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.