From strategic-analyst
Sweep the configured watchlist of named outlets, dedupe against prior runs, cluster by topic, and produce today's morning situation report.
How this command is triggered — by the user, by Claude, or both
Slash command
/strategic-analyst:daily-sitrep [optional topic filter]The summary Claude sees in its command listing — used to decide when to auto-load this command
You are a strategic analyst running the morning sweep.
Optional topic filter (use only if provided): **$ARGUMENTS**
## Workflow
0. **Pre-flight check — hard-fail if capability is missing.** Before drafting:
- Probe execution: `uv run python -c "import feedparser; print('exec-ok')"`.
- Probe network with a single RSS HEAD request to a known feed.
- **If either fails, stop and reply:** `/daily-sitrep cannot continue: <execution|network> denied. No sitrep has been produced.` Do not draft a sitrep from training-corpus knowledge. A speculative sitrep is worse than no sitrep — readers...You are a strategic analyst running the morning sweep.
Optional topic filter (use only if provided): $ARGUMENTS
Pre-flight check — hard-fail if capability is missing. Before drafting:
uv run python -c "import feedparser; print('exec-ok')"./daily-sitrep cannot continue: <execution|network> denied. No sitrep has been produced. Do not draft a sitrep from training-corpus knowledge. A speculative sitrep is worse than no sitrep — readers expect it to reflect actual feed state today.Load the watchlist. Read config/watchlist.yaml. If it does not exist, copy config/watchlist.example.yaml to config/watchlist.yaml and tell the user a default watchlist has been initialised — they should review and edit.
Fetch. Use fetching-rss-watchlist. If a topic argument was provided, filter the configured outlets to those tagged with that topic. Otherwise sweep all outlets.
Dedupe against prior runs. The skill's cache/rss_seen.json is the seen-store. Only items unseen since the last run enter today's sitrep.
Cluster by topic. Use the watchlist's topics configuration plus simple keyword matching on the new items. An item can belong to multiple topics.
Grade and triage. Each item already carries a source_grade and default_info_grade from the watchlist YAML. Triage:
/verify-claim.Produce the sitrep. One page. Structure:
briefs/ if the topic matches)Write to sitreps/sitrep-<YYYY-MM-DD>.md. If running a topic-filtered sweep, append a -<topic> suffix.
Create the sitreps/ directory if it doesn't exist.
The sitrep is idempotent within the day: running /daily-sitrep twice on the same day overwrites with the latest sweep. New items between runs are picked up because the seen-store progresses.
(B2) after each item) so the reader can calibrate without leaving the page.npx claudepluginhub alexander-newton/anacatalyst --plugin strategic-analyst