← ClaudeAtlas

review-when-watchlisted

launchd が毎朝 06:10(jev-research-pipeline の jrp run の後)に起動する job。jrp が vault の daily-research/ に書いた新しいノート 1 本ごとに、この harness の RFC(frontmatter の review-when:)と ADR(## Review-when 節)に書かれた見直し条件を TypeSafe Jev に 1 組ずつ聞き、条件を満たしたノートを Slack に送る。model からは呼ばない — この文書は運用手引き。
shimo4228/claude-harness · ★ 3 · AI & Automation · score 82
Install: claude install-skill shimo4228/claude-harness
# review-when-watch RFC と ADR の review-when は「この出来事が起きたら見直す」という条件で、多くは外の世界の出来事 (substrate が skill listing の注入方式を変えた、Zenodo が API を廃止した、など)を待っている。 誰かがニュースに気づかない限り発火しない。この job はその「気づく役」を、安い判定を総当たりで 回すことで引き受ける。判断の記録は [ADR-0080](../../docs/adr/0080-review-when-watch-production-first.md)。 stdlib のみ(Python 3.11+)。Jev の HTTP クライアントは `skills/jev-skill-router/scripts/jev_client.py` を ファイルパスで読み込んで使う(host の固定・redirect の拒否・キーの解決をそのまま使う)。 ## 配線 plist の正本は `scripts/launchd/com.shimomoto.review-when-watch.plist`(毎日 06:10、1 回)。jrp run は毎日 05:00 に始まり約 15 分で終わるので、その後に置いた。Mac が眠っていて両方が起床時にまとめて走り、この job が 先に終わった日は、その日のノートを翌朝拾う(直近 3 日を見るので落ちない)。登録は人間が行う: ```bash cp ~/.claude/scripts/launchd/com.shimomoto.review-when-watch.plist ~/Library/LaunchAgents/ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.shimomoto.review-when-watch.plist launchctl kickstart gui/$(id -u)/com.shimomoto.review-when-watch # 初回をすぐ回す ``` 初回の実行で Slack に「稼働を始めた」が 1 通届けば配線は通っている。外すときは `launchctl bootout gui/$(id -u)/com.shimomoto.review-when-watch`。 前提: | もの | 場所 | |---|---| | ノート | `<JRP_VAULT_DIR>/daily-research/*_jrp_*.md`。`JRP_VAULT_DIR` は環境変数か jrp の env ファイル(`~/.config/jrp/env`、`JRP_ENV_FILE` で変えられる)から取る。env ファイルは source せず、この 1 値だけを読む | | API キー | `TYPESAFE_API_KEY` → `~/.config/typesafe/api_key`(jev-skill-router と同じ解決。jrp の env ファイルのキーは使わない) | | Slack | `scripts/notify-slack.sh`(webhook は `~/.config/wiki-notify/slack-webhook`。届かなければ macOS 通知へ落ちる) | plist は Python を直接起動しない。`scripts/launchd-watch.sh`