topic-brief
Skill0 starsChanged 2 months agoMITView on GitHub
Verify a chosen topic against primary sources and turn a pile of links and notes into a one-page brief that later skills can build on. Use for "look into this link", "write this topic up", "research this properly", "check whether this is still open", "what do we actually know about this", or when handed an event, program, product, or announcement URL and asked to sort it out. Produces the input that blog-post and carousel-post consume. Finding a topic in the first place is topic-scout; drafting the actual post is blog-post or carousel-post.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- genli-ai/market-research-skillstheir own version, first seen Jun 9, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- genli-ai/market-research-skills★ 63same 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.
- blog-postSkill
- carousel-postSkill
- topic-scoutSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
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
- Distinctive: line 39
No link? Leave A3 empty and anchor on A1, A2, A4.
- Distinctive: line 61
If the fetch returns a title and no body — common on client-rendered pages — do not give up.
- Distinctive: line 66
If there is no primary source at all, or the link is dead, go to purpose A below.
- Distinctive: line 72
Search fills the gaps left after reading the primary page.
- Distinctive: line 75
Purpose A -- find the primary page: When there is no link, the link is dead, or what you were given isn't official.
- Distinctive: line 97
If web search returns nothing useful — regional pages are often poorly indexed — open a search engine in a browser tool, read the results, …
- Very specific: line 117
When to search less: if the primary page fills every field with no [unconfirmed] left, skip A and B, run purpose C once, and stop.
- Very specific: line 122
Follow references/brief-template.md exactly.
- Very specific: line 127
Re-verifying an existing brief: update the checked-on date, add one line per changed item under Changes, then overwrite.
- Distinctive: line 132
The search stays inside the anchor: If something else interesting turns up, it does not go in this brief.
≈ “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
Topic Brief
Takes the links and notes for one chosen topic, verifies them, and produces a one-page brief. Everything downstream reads this file instead of re-reading the raw links, so the facts get checked once rather than three times, differently.
This skill does not write posts. If the user wants a post after the brief, hand the brief
path to blog-post or carousel-post.
What goes wrong here, and the rule that stops it
The single most common failure is drift. You start with a thin row — a name and one link — start searching to "learn more", and come back with a different topic: a competitor's similar offer, or the same organization's previous round with different terms. The brief then describes something that does not exist.
Everything in step 1 exists to stop that.
Procedure
1. Set the anchor -- before any searching
Pull these five values out of the source row, link, or notes the user gave you, and write them down. The anchor does not change for the rest of this skill.
| Anchor | Where it comes from | Example |
| A1 organization | Topic name, link domain | Acme Bank (acme.example) |
| A2 core benefit | Topic name, description | 50 currency units for new signups |
| A3 edition | Event code, notice number, year-month in the URL | e202608_newsignup / August 2026 |
| A4 expiry | Description field | Through August 2026 |
| A5 who qualifies | Description field, if present | New customers only |
- No link? Leave A3 empty and anchor on A1, A2, A4.
- If the row is too thin to anchor — a name, and nothing else — do not search. Ask the user one question about what this topic is. Guessing from a name alone returns a different topic, and that is the most frequent accident in this skill.
2. Sort the links
- Primary — the organization's or authority's own domain: official page, public notice, regulation, product disclosure. The only acceptable source for a number or a condition.
- Secondary — blogs, forums, news, video. Records how you found it. Never a source for a figure, even a correct-looking one. Mark anything that looks sponsored or affiliate-driven as such.
3. Read the primary page
Open it and confirm, at minimum:
- What the benefit is and how much / in what form (cash, credit, points, voucher, access)
- Who qualifies (new customers only? age, status, residency limits?)
- Dates (opens, closes, early-close clause) and when the benefit actually arrives
- What you have to do (sign up only, or additional steps?)
If the fetch returns a title and no body — common on client-rendered pages — do not give up. Reopen with a browser tool and read the rendered text.
Anything you cannot confirm stays literally [unconfirmed]. Do not fill it from a blog.
If there is no primary source at all, or the link is dead, go to purpose A below. If you still can't find one, put "no primary source -- every figure unverified" at the top of the brief and tell the user.
4. Search -- only for these three purposes
Search fills the gaps left after reading the primary page. There is no fourth purpose. Aimless "let me learn more" searching is what swaps the topic out.
- Purpose A -- find the primary page. When there is no link, the link is dead, or what you were given isn't official. You are looking for one page on A1's own domain. Found it? Go back to step 3 and read it.
- Purpose B -- fill the
[unconfirmed]fields. Payout timing, withdrawal or expiry conditions, fine-grained eligibility, whether benefits stack. Look in the organization's own FAQ, terms, and press releases — conditions missing from the main page are usually there. - Purpose C -- check for changes and early closure. Did the dates, amounts, or terms change? Did it close early? A topic with a deadline always gets one purpose-C pass, no exceptions. Writing a post about something that already ended is the worst outcome this pipeline can produce.
Query rules
- Every query contains A1 and A2. (
acme bank new signup bonus payout conditions) - Queries without A1 (
bank signup bonuses,best student grants) are banned. They return a different topic than the one you were asked about. - For A and B, restrict to A1's domain first. Drop the restriction only if that returns nothing.
- For C, put A3 and A4 in the query (
acme bank signup bonus august 2026 ended early). - One or two queries per purpose is enough. Rephrasing the same query repeatedly is not new information.
- If web search returns nothing useful — regional pages are often poorly indexed — open a search engine in a browser tool, read the results, then open the candidate URL directly. The drift test below still applies.
Drift test -- fail any one of these and the result is discarded
- Organization is not A1 → discard. Competitors running a similar offer are the most common contaminant.
- Edition or dates don't match A3/A4 → discard. The same organization's previous or next round, with different terms, is the second most common. Mixing July's terms into an August topic gets every number wrong.
- Benefit doesn't match A2 → discard. Unless it comes from A1's own domain — then
it is a purpose-C change: record it under
Changesand in the risk notes. The primary source wins over the description you were given, which may be an old note. - Can't tell? Discard, and leave
[unconfirmed]. A blank is better than a plausible guess; downstream skills know how to handle[unconfirmed].
Source tier does not change because you found it by searching. Official domain means primary; blog, forum, news, or video means secondary, however high it ranked.
When to search less: if the primary page fills every field with no [unconfirmed]
left, skip A and B, run purpose C once, and stop.
5. Write the brief
Follow references/brief-template.md exactly. Keep the section order — downstream skills
read specific sections by name.
6. Rules that outlast the run
- Re-verifying an existing brief: update the checked-on date, add one line per changed
item under
Changes, then overwrite. Never edit quietly. Someone has to be able to trace why a number in a published post no longer matches. - Figures go in the table only with a primary source in the source column. Where secondary and primary disagree, primary wins and the gap is noted as a risk.
- The search stays inside the anchor. If something else interesting turns up, it does not go in this brief. One queue row equals one brief equals one topic. Mention it in your report in one line; if the user wants it, it becomes its own row.
- Where the description you were handed conflicts with the primary page, primary wins.
Record it under
Changesand ask before editing the original row — don't silently rewrite someone else's note. - Topics with a deadline get a countdown in
Handoff. Timing decides production order.
7. Report
In chat, report only: brief path / status / list of fields left [unconfirmed] / one line
on the search (which purposes ran and what they filled, or why none ran). Add a line if
the given description conflicted with the primary source, and a line if you saw a separate
topic worth its own row.
Do not paste the brief into chat. The file is the record.
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.

