daily-brieflisted
Install: claude install-skill ericluo04/claude-academic-workflow
# /daily-brief — score, rank, send the morning push
> **Status.** The author has migrated orchestration to an hourly Claude Code cloud routine — see [orchestration/README.md](../../orchestration/README.md) (Pattern A). This skill documents the local / GitHub-Actions-era pattern (Pattern B), which remains fully usable for setups without cloud routines.
## Personalization
This skill resolves placeholders against `~/.claude/state/personal_config.json`. See `_config/README.md` and `_config/personal_config.example.json` for setup. If the config is missing or a needed field is unset, the skill must surface an error to the user and refuse to proceed rather than guess.
Required config fields:
- `personal_config.notion.tasks_data_source_id` — the data-source ID of the Tasks DB.
- `personal_config.paths.claude_state_dir` — local directory holding ephemeral state files (e.g. `~/.claude/state`).
- Telegram credentials are read from a separate gitignored file at `<claude_state_dir>/telegram.json` with fields `{bot_token, chat_id}`. Bot tokens never go in `personal_config.json`.
## Purpose
This is the outbound half of the task orchestration system. Once per weekday morning (and on demand), it converts the unified Notion Tasks DB into a 3–7 item ranked list and pings Telegram. The brief is the daily contract: if it's not on the brief, it doesn't need to happen today.
The capture half (`/capture`) reads replies and writes back. This skill is also the writer of `today_brief.json`, whic