morning-briefing
A pure aggregator skill that reads data produced by other skills, filters and formats it, and writes a composed markdown briefing to data/briefing.md.
Usage
Initialize config (first run only):
bash scripts/init_config.shRun the briefing:
bash scripts/morning_briefing.shThe script outputs the path to the generated markdown file.
Read the file and present its contents verbatim to the user. Do not summarize, reformat, paraphrase, add commentary, or editorialize. Output the entire markdown file exactly as written — the markdown IS the briefing. Do not wrap it in a code block. Do not omit sections. Do not change heading levels or link formatting.
Data Sources
Weather is built-in (direct curl to wttr.in). Other sections are driven by external skills that write JSON data files:
- steam-games-updates — game news from Steam
- upcoming-metal-concerts — concert listings from concerts-metal.com
Each source has a jq template in assets/templates/<source-id>.jq that formats the raw JSON into markdown.
Customization
Edit ~/.openclaw/config/morning-briefing.json to:
- Toggle weather — set
weather.enabledtofalse - Change location — set
weather.location - Enable/disable a source — set
sources.<id>.enabled - Filter game updates — add
"games": ["CS2"]to steam-games-updates preferences - Filter concerts by city — edit
citiesarray in upcoming-metal-concerts preferences - Change concert window — edit
days_aheadin upcoming-metal-concerts preferences
Adding a New Source
- Add an entry to
sourcesin the config withdata_pathandpreferences - Create
assets/templates/<source-id>.jqthat accepts the source's JSON schema - The template receives
$preferences(argjson) and$today/$cutoff(arg) variables