Files
last30days-skill/variants/open/references/watchlist.md
Matt Van Horn 9ff00ce38b feat(open): create open variant SKILL.md and reference files
Router SKILL.md dispatches to mode-specific references:
- research.md: one-shot research with --store for persistence
- watchlist.md: add/remove/list/run topics
- briefing.md: daily/weekly briefing generation
- history.md: query/search accumulated findings
- context.md: agent memory template

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 23:46:35 -08:00

2.8 KiB

Watchlist Management

Manage topics you want to track continuously. Findings accumulate in the SQLite database for briefings and history queries.

Commands

Command Action
watch add "topic" Add a topic (daily schedule)
watch add "topic" --weekly Add with weekly schedule
watch "topic" Shorthand for watch add
watch remove "topic" Remove a topic
watch list Show all topics with status
watch config delivery [channel] Set delivery channel
watch config budget AMOUNT Set daily cost budget
watch run-all Run research for all topics now
watch run-one "topic" Run research for one topic now

Adding a Topic

python3 "${SKILL_ROOT}/scripts/watchlist.py" add "TOPIC_NAME" [--weekly] [--queries "q1,q2"]

The script auto-bootstraps the SQLite database on first add.

Default schedule: Daily at 8am (0 8 * * *). Weekly: Mondays at 8am (0 8 * * 1).

After adding, confirm to the user:

Added "TOPIC_NAME" to watchlist.
Schedule: daily at 8am (or weekly on Mondays)

To run research now: /last30days watch run-one "TOPIC_NAME"
To set up automated runs: add a cron/launchd job for `python3 ${SKILL_ROOT}/scripts/watchlist.py run-all`

Removing a Topic

python3 "${SKILL_ROOT}/scripts/watchlist.py" remove "TOPIC_NAME"

Show confirmation or "not found" message.

Listing Topics

python3 "${SKILL_ROOT}/scripts/watchlist.py" list

Display as a formatted table:

Topic         | Schedule     | Last Run     | Findings | Status
--------------+--------------+--------------+----------+--------
AI video      | daily 8am    | 2h ago       | 47       | ok
NVIDIA news   | weekly Mon   | 3d ago       | 23       | ok

Budget: $0.42 / $5.00 today

Running Research

# All enabled topics (with budget guard)
python3 "${SKILL_ROOT}/scripts/watchlist.py" run-all

# Single topic
python3 "${SKILL_ROOT}/scripts/watchlist.py" run-one "TOPIC_NAME"

Show results: new findings count, updated findings, duration, and any errors.

Configuration

# Set delivery channel (for future notification support)
python3 "${SKILL_ROOT}/scripts/watchlist.py" config delivery telegram

# Set daily budget limit
python3 "${SKILL_ROOT}/scripts/watchlist.py" config budget 10.00

Scheduling

The watchlist doesn't auto-schedule. To automate, set up a system job:

macOS (launchd):

# Run daily at 8am
crontab -e
# Add: 0 8 * * * python3 /path/to/scripts/watchlist.py run-all

Linux (cron):

crontab -e
# Add: 0 8 * * * python3 /path/to/scripts/watchlist.py run-all

Error Handling

  • Duplicate topic: update the existing schedule
  • Topic not found on remove: show "not found" message
  • Budget exceeded: skip remaining topics, show which were skipped
  • Research failure: record error, continue to next topic