research-digest
Skill2 starsChanged 24 days agoMITView on GitHub
Weekly full-read digest of the week's research reports (research firms, banks, central banks, regulators, multilaterals). Daily harvesters flatten a report to one line under a per-run cap; this lane gives the 4 to 6 most relevant reports a full read with numbers and their basis, a read on what it means for the operator's work, and trust caveats. A cheaper reader model extracts quotes, a script verifies them, the main model judges.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- gbadedata/mcp-research-agenttheir own version, first seen Jul 3, 2026
- trycomp-io/comp-skillstheir own version, first seen Jun 5, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- trycomp-io/comp-skills★ 2same name
- gbadedata/mcp-research-agent★ 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 repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- advisorSkill
- agent-dispatchSkill
- arenaSkill
- audit-pypi-model-packageSkill
- branching-workflowSkill
- code-reviewSkill
- criticSkill
- cron-child-oauth-auditSkill
- daily-forestSkill
- deep-researchSkill
- diagnose-cron-timeoutSkill
- dreamingSkill
- eod-summarySkill
- filingSkill
- forest-synthesisSkill
- goalsSkill
- graph-hygieneSkill
- ideaSkill
- inline-tagsSkill
- intel-analyzerSkill
- longformSkill
- loop-experimentSkill
- loop-librarySkill
- meta-memory-reviewSkill
- office-hoursSkill
- open-loopsSkill
- plan-ceo-reviewSkill
- plan-design-reviewSkill
- prdSkill
- progressive-disclosureSkill
- reality-feedback-createSkill
- reality-review-weeklySkill
- recallSkill
- reconcile-extractionSkill
- redactSkill
- repo-auditSkill
- review-gateSkill
- run-long-job-detachedSkill
- saveSkill
- scopeSkill
- self-auditSkill
- shadow-test-local-classifierSkill
- signal-scorerSkill
- skill-auditSkill
- skill-chainingSkill
- spawn-agent-in-tenantSkill
- spawn-tenantSkill
- split-log-rows-by-session-kindSkill
- subagent-delegationSkill
- telegram-dump-routerSkill
- telegram-reply-toolSkill
- verify-stackSkill
- wave-planSkill
- weekly-retroSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 37
If a report will be referenced again (a recurring quarterly series, a regulator framework, a multilateral report), also write or update a …
- Very specific: line 44
No em or en dashes. Anti-slop rules apply (skills-shared/anti-ai-slop/SKILL.md).
- Distinctive: line 45
Never present a global total as regional demand.
≈ “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.
Files
Research Digest: weekly full read of reports
Why this exists
Long research reports must not get lost in a fast signal flow. Daily harvesters (RSS, email, chat channels) catch these items but flatten each one to a single signal and cap items per run, so a 30-page report competes with breaking news and loses. This lane reads the week's best reports in full, once a week (for example Saturday morning).
Inputs
- Feeds: the last 7 days of items from feeds you have tagged as research in your feed reader (ignore its seen-database for this pass, so items already surfaced as one-liners still qualify). The feed harvester itself is not shipped in this repo.
- Email:
python3 scripts/pipeline/email_research_senders.py query --days 7prints a Gmail search query built from your sender allowlist (example list shipped next to it). Run it through your Gmail MCP search (about 60 results), then fetch metadata for subject and sender. Senders markedsponsoredare never picked as research. - Already digested: list
memory/Context/andoutputs/raw/research-digest/and skip anything already ingested.
Procedure
- Post a start heartbeat to the operator channel.
- Build the candidate list (feeds plus email). Drop product promos, event invites, job posts, sponsored content, and press items with no research content (a routine speech unrelated to your domain).
- Pick 4 to 6 by: (a) relevance to the operator's actual work and service line; (b) substance (a report with data beats an opinion newsletter); (c) source weight (central bank, regulator, multilateral or tier-1 research beats a blog). Prefer at least one source from outside your own industry's echo chamber (a bank, a regulator, a multilateral) when the week has one.
- Full read of each pick: a reader model extracts, a script verifies, the main model judges.
a. Archive first:
sandbox/archive/reports/<YYYY-MM-DD>-<slug>/. PDF via curl, thenpdftotext -layout file.pdf source.txt. A web page via the publisher's JSON or API, or a fetch, saved assource.txt. An email body saved assource.txt. If paywalled, say so and digest only the public part. b. Gate the reader model (security). If the reader is an external CLI, check its version first and use it only if that version is marked reviewed in your stand-down registry (scripts/security/check_standdown.py <cli-name>) AND that release is at least 7 days old. CLIs that auto-update can change under you between runs. Otherwise skip to step e and read inline. Log every reader outcome (reader_okorreader_fallback). c. Reader extraction. Give a cheaper, long-context model the archived file and this instruction: "Read the file<abs path>/source.txt (a research report). Return ONLY a JSON array of the 15 to 25 most important claims, each {"claim": short sentence, "number": the exact number string as written (or "" if none), "quote": an exact verbatim substring of the file, max 200 chars}. Include the report's stated method, sample, period and any caveat as claims too. No commentary." Run it with a timeout (about 150 s) and save the output asclaims.json. Run it without permission-bypass flags. d. Verify mechanically:python3 scripts/eval/verify_claims.py source.txt claims.json > verified.json. Use onlyverifiedclaims. A claim is verified only if its quote is a verbatim substring of the source AND its number sits inside that quote. Reader models can fabricate quotes, so rejected claims are DROPPED, never paraphrased back in. e. Fallback: if the reader times out, returns no JSON, or verify exits 1 (more than half rejected), the main model reads that report itself, and the run log saysreader_fallback. f. The main model judges. Using the verified claims plus a skim of the source's headings, summary and conclusion, write the section in step 5. The judgment (what it means, how much to trust it) is always the main model's, never the reader's. Read the charts that carry numbers yourself when the text does not state them. - Write one section per report in
outputs/raw/research-digest/<YYYY-MM-DD>.md:- title, publisher, date, URL, archive path
- Read straight for us (2 to 4 bullets, verdict first: good, bad or neutral for the operator's work, and why)
- Numbers with basis (every number carries its basis: disclosed-only, sample size, period, source dataset). A caveat that changes how a number reads travels WITH the number.
- How much to trust it (method gaps, sponsor or conflict of interest, small-base percentages, pending deals)
- Coverage of your region or niche (what it says, or "none")
- If a report will be referenced again (a recurring quarterly series, a regulator framework, a multilateral report), also write or update a
memory/Context/<slug>.mddossier, and cross-link any existing dossier it confirms or contradicts. - Index:
python3 scripts/memory/vector_brain.py index-append --paths <digest file>. Never a fullindexrebuild for this. - Chat summary to the operator, at most about 15 lines: one line per report (publisher, title, verdict), then the single most useful number with its basis, then the digest path. Attach the digest file.
- Log one line to
logs/session.jsonl(category=research-digest, picks, candidates_seen, feeds_failed).
Hard rules
- No em or en dashes. Anti-slop rules apply (
skills-shared/anti-ai-slop/SKILL.md). Never narrow a claim beyond what the source says. - Never present a global total as regional demand. Many reports have no data at all for a given region; say "none" instead of inferring.
- Stay inside the operator's service line. A regulatory report is read as "what it means for the work", never as legal advice.
- Empty week (no candidate clears step 2): send one short line saying so; do not pad.
- Budget: stop at about 60K tokens or 30 tool calls. A partial digest with 2 full reads beats a timeout.
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
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.

