Finds open conference CFPs relevant to the user across Java/AI/developer conferences, with persistent sent/dismissed/remind state and source-aware Sessionize verification. NanoClaw per-chat overlay tile.
70
87%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
The check-cfps run is heavy — full-cohort Sessionize verification across every stored open/approved entry, plus web-search gap discovery — so this wrapper runs it in its own bounded container on a capped cadence rather than inline with other maintenance.
CFP deadlines move on a multi-day horizon, so refreshing cfp-state.json periodically rather than daily keeps it current without paying the verification cost every day. The precheck enforces this with a filesystem cursor at /workspace/group/state/nightly-cfp-sync-cursor.json. The cap value and the wake/skip predicate are the script's contract — see scripts/precheck-nightly-cfp-sync.py (CADENCE constant + the cursor-read gate).
check-cfps Step 7 reads /workspace/group/travel-schedule.json for its travel-conflict check. When the nanoclaw-flight-assist overlay is co-loaded, its travel-sync wrapper refreshes that file on an earlier cron slot, so this wrapper usually sees fresh data. The coupling is loose: check-cfps degrades gracefully when the schedule is stale or a conference's exact dates are unknown, and the wrappers gate independently — no hard ordering dependency exists.