Daily Brief
The composition example: several independent sources collapsed into one thing worth reading. The hard part is not gathering — it is cutting.
Configure
The user picks the sections. A good default:
| Section | Source |
|---|---|
| Headlines | search_web on the user's 2–3 tracked topics |
| Tracked pages | fetch_page on specific URLs they follow |
| Their own items | recall of open commitments and reminders |
Procedure
- Gather each section independently. Run the searches and fetches for every configured section before writing anything.
- Tolerate partial failure. If one source is unreachable, produce the brief without it and add a one-line "couldn't reach X" note. A brief that fails entirely because one feed was down is useless.
- Cut hard. Three items per section, maximum. If nothing in a section is worth reading, drop the section and say "nothing new" — do not pad.
- Write it in this shape:
- One line up top — the single thing that matters most today.
- Per section — up to three bullets, each one sentence, each with its link.
- Your items — open commitments from memory, with dates.
- Gaps — sources that failed, in one line.
- Keep it under 250 words. A brief that takes ten minutes to read is not a brief.
Honest limits
- It is not delivered to you — you ask for it. The flagship version of this
idea (arrives at 7am as a voice note on Telegram) needs two things GAIA does
not have yet:
gaia schedule addwired to run a skill directly (the flag exists but is rejected — see #1019), and Telegram voice-note support. Text-to-speech already exists as thetext_to_speechagent tool. See the guide for what would unblock it. - Headlines come from
search_web(DuckDuckGo), not a curated news API, so coverage is uneven. Say where a claim came from. - The "your items" section needs memory enabled; drop it silently if not.
Fork this
Swap the sections for your morning: a status page you fetch, a repo's releases page, and your own task list. The gather-tolerate-cut-write skeleton is the reusable part.


