【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/af」「この作業完了」「クローズして」「一旦ここまで」「今日はここで止める」「いったん置いておく」など終える・中断する意図で発動。このスキルを経由せずにupdate_activityでcompleted・pending・snoozed・shelvedにしない。
中文简介正在准备中。当前显示原文说明。
人間の判断待ちaskの受け箱をMonitorで監視し、判断構造が同じopen askが溜まっていればメタaskを起票する。「ask storeを監視して」「asksを見張って」「open askの滞留をチェックして」などで発動。
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
calmのask store(add_ask/get_asks/answer_ask/triage_ask/withdraw_askが読み書きする、人間の判断待ちaskのインボックス)をMonitorツールでイベント駆動監視するスキル。asksテーブルのstatus='open'件数・last_seen_at・id集合をポーリングし、前回値から変化を検知するたびに全open askを読み直す。表面的な主題は違っても判断構造(問いの型)が同一の同型群がないかをLLM自身が判定し、見つけたら、既に同じ型のメタaskが起票済みでない限り、「この型は今後、人間に聞かずに一般化ルールとして自己裁定してよいか」を問うメタask(kind="meta")を起票する。
ask storeには「同じ判断構造の問いが繰り返されたら、機械が閾値で自動検知するのではなくLLM自身が気づいてメタaskを起票し、その型を今後は自己裁定してよいか人間に問う」という二段構えの設計が既にある。だが実際には、同型askが8件溜まったまま3週間気づかれない事象が起きた。原因は「LLMが気づく機会」が新規ask投稿時の類似ask提示にしか無く、既存の滞留askをLLMが定期的に読み返す機会が無かったこと。ask-watchはこの「読み返しの機会」を、Monitorツールによるイベント駆動監視という形で補う。
status='open'の件数・最終last_seen_at・id集合のいずれかが前回値から変化したときだけイベントを発火する。変化がなければ何も起きないprocessed_ask_idsのような既読管理は持たない以下の状況で使用する:
/ask-watch の明示呼び出し以下では使用しない:
get_asksを直接呼ぶだけで済む、またはユーザーが今すぐ内容を見たいだけ)calm:man skillの担当)ask-answer skillの担当)・トリアージ作業(triage_askを直接呼べば済む)~/.cc-memory/ask-watch-state.json があれば読み込み、続きとして扱うprev)。ここでの役割は起票したメタaskの履歴等、人間が読むための参考ログに限定される{
"started_at": "2026-08-16T09:00:00Z",
"poll_interval_sec": 10,
"trigger_count": 0,
"filed_meta_asks": [
{"ask_id": 123, "type_summary": "ow解体で前提消滅したactivityの処遇", "filed_at": "2026-08-16T09:00:00Z"}
],
"_notes": "free-text notes for human"
}
filed_meta_asksはローカルの参考ログであり、重複起票防止の判定はこのファイルではなくStep 3の4番目の項目(DB照会)を正とする。state fileとDBがズレても実害が出ない設計にするためMonitorツールを以下のパラメータで呼ぶ:
description: 監視対象がわかる説明(例: "ask store open askの変化監視")timeout_ms: 1800000(Monitorの上限値。これより大きい値を渡しても30分に切り詰められるため、常に上限を明示する)command: uv run --no-sync --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_SKILL_DIR}/scripts/poll.py"(30分ごとに張り直すたびの暗黙の依存同期を避ける。プラグインキャッシュ経由であれば起動時のhookが先に同期済みのため、venvが未同期になることはない)Monitorはtimeout_msの上限である30分で必ず失効し、そのタイミングで失効通知が届く。監視を続ける場合はこのStep 2をそのまま繰り返してMonitorを張り直す(re-arm)。失効通知は「open askに変化があった」ことを意味しないため、Step 3の処理には進まず張り直すだけでよい。
scripts/poll.pyはopen askの「件数・最新last_seen_at・id集合」のいずれかが変化した瞬間だけ1行出力する。GROUP_CONCAT(id)まで比較に含めているのは、件数が同じでもid構成が入れ替わる変化(1件closeして1件openになった等)を取りこぼさないため。出力される値はあくまでトリガーの参考情報であり、実際に読むべきask本文はStep 3でget_asksから取得する(DBを直接sqliteで読むのはポーリングの軽量化のためで、questionやcontextの中身までDB越しに読み取ることはしない)。
Monitorの通知には2種類ある。ask store changed: ...という1行を伴う変化検知の通知を受け取ったときは、以下を実行する。cronループと異なり同一セッション内のイベントとして届くため、prompt文字列を読み直す必要はなく、以下の手順をそのまま適用する。Monitorが30分で自動失効したときの失効通知は変化検知ではないため、以下の手順には進まず、Step 2の要領でMonitorを張り直すだけでよい。
get_asks(status="open", include_stats=true, limit=100)。total_countがlimitを超える場合はoffsetを進めて全件回収するquestion・context・tagsを読み、「主題は違うが判断構造(問いの型)が同一」の集まりがないかLLM自身が判断する。目安として同型2件以上が集まっている状態を対象にするが、これは判断のガイドラインであり、機構が自動的に判定する固定閾値ではない。対象はopen ask同士の同型なので、裁定が既に一貫しているかどうかは問わない(まだ誰も回答していないケースが主)get_asks(kind="meta", status=None, limit=100)で既存の全メタask(open/answered/promoted/dismissed問わず)を確認する
add_askを呼ぶ(詳細な組み立て方はStep 4参照)trigger_countを+1、起票した場合はfiled_meta_asksに追記add_ask呼び出しの各引数の組み立て方:
id・question・出現状況(occurrence_countがあれば)を列挙し、なぜ同型と判断したかの根拠を書く。既に答え済み(answered/promoted)の近い型が過去にあれば、その裁定内容も参考情報として添えるblocks(activity id)の和集合。1件のaskから起票する場合はそのaskのblocksをそのまま使う(既存のask-distill skillと同じ扱い)。複数askにまたがる場合は全askのblocksを合わせるdomain:タグを全て含める(主題が異なればdomain:タグも複数になりうる、複数個の付与自体は問題ない)。加えて"meta-ask"を素タグとして必ず付与するユーザーから「監視止めて」「もういい」「ask-watch停止」等の依頼があればTaskStopを実行し、Monitorタスクを停止する。Monitorはどのみち30分で自動失効するため、停止依頼が来る前に失効している場合は張り直さずそのまま終了してよい。session終了でも監視は終了する。
各検知後の短報フォーマット:
**ask-watch報**: <同型群N件検知/検知なし>、<メタaskM件起票/起票なし>
- (件があれば箇条書きで詳細: 型の要約、対象askのid、既知/新規の別)
何もなければ1行(同型群なし、起票なし。)で十分。
ask-compose skillを経由しない: 本スキル自身がメタask専用の組み立て方(Step 4参照)を持つためstatus="open"の全件を読み直す設計にしているstatusがopenから変わるため、WHERE status='open'のポーリングでは元々検知対象に入らないfiled_meta_asksはあくまで人間向けの参考ログで、実際の重複判定は毎回get_asks(kind="meta")への問い合わせで行う。state fileが欠損・不整合になってもDB照会だけで正しく動くtimeout_msの上限は1800000ms(30分)で、これより大きい値を渡しても30分に切り詰められる。継続監視には失効の都度Step 2の要領での張り直し(re-arm)が要る。加えてMonitorはセッション内蔵ツールのため、セッションが終了すると監視も終了する。長期運用は別途/scheduleでのクラウド化を検討(今回のスコープ外)ask-distill skill: add_askのレスポンスに含まれるsimilar_asksを見て、新規ask投稿のその場で同型の反復に気づいたときにメタaskを起票する。ask-watchは同じメタask起票の仕組みを、定期的な読み返しというもう一つの気づきの経路として補う。両者は排他ではなく、どちらの経路で気づいてもメタask起票のロジック(Step 4の組み立て方)は共通calm:man skill: ask storeの使い方そのものの説明还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/af」「この作業完了」「クローズして」「一旦ここまで」「今日はここで止める」「いったん置いておく」など終える・中断する意図で発動。このスキルを経由せずにupdate_activityでcompleted・pending・snoozed・shelvedにしない。
中文简介正在准备中。当前显示原文说明。
【必須】新しいアクティビティを作成してcheck-inする。「/as」「新しい作業始める」「アクティビティ作って」「これやる」など新規作業の開始で発動。このスキルを経由せずにadd_activityを呼ばない(orchの起票はorch skillに従う)。
中文简介正在准备中。当前显示原文说明。
【必須】open askを1件ずつ人間に提示し、回答をanswer_askで記録する。「askに答える」「open ask消化して」「溜まってるask片付けたい」などで発動。このスキルを経由せずにanswer_askを呼ばない。
中文简介正在准备中。当前显示原文说明。
【必須】add_askでaskを起票する前に、question/contextをテンプレートで組み立てる。離席中・セッション跨ぎでしか答えられない判断が出たときや、「これ聞いといて」「判断委譲しといて」「後で確認して」などで発動。このスキルを経由せずにaskの文面を書かない(メタaskを除く)。
中文简介正在准备中。当前显示原文说明。
add_askの応答のsimilar_asksを見て、同型の問いが繰り返され裁定が一貫していると気づいたとき、判例をまとめてメタask(kind="meta")を起票する。
中文简介正在准备中。当前显示原文说明。
過去の判断を疑う場面で、一次資料と経緯ログから全体像を組み直し、文脈不足を分析して知識を正しい場所に置き直す長いプロセス。過去のdecisionとの食い違い、同じtagで3度目の方針変更、同じバグの2回目、「前に決めなかったっけ?」「また同じ話してる」「グルグル回ってない?」などで発動。
中文简介正在准备中。当前显示原文说明。