【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/af」「この作業完了」「クローズして」「一旦ここまで」「今日はここで止める」「いったん置いておく」など終える・中断する意図で発動。このスキルを経由せずにupdate_activityでcompleted・pending・snoozed・shelvedにしない。
中文简介正在准备中。当前显示原文说明。
CALMのDB件数の異常減少に対し、スナップショット確認・復旧方法の提示・承認後の復元・再検証まで進める。SessionStartの異常減少警告、記録の消失に気づいたとき、「データ消えてない?」などで発動。
中文简介正在准备中。当前显示原文说明。
实测评分 未实测
查看安装方法安装前可以查看交给 AI 代理的指令内容。
SessionStart hookが検知したDBデータ異常減少への自律復旧スキル。検知 → 確認 → 提示 → 承認 → 実行 → 再検証の順で進める。全自動実行はしない。実行前に必ずユーザー承認を取る。
以下のいずれかで発動する。
以下では発動しない。
発動したら、異常警告を放置したり、calm:manの手動手順だけを案内して終わらせたりしない。
hookの警告は _build_snapshot_section(hooks/session_start_hook.py)がSessionStartのadditionalContextとして注入する。警告本文には対象テーブルと減少件数(前回件数 → 現在件数 (-N件))が含まれる。このスキルはこの警告文を読み取るところから始まる。
復元本体(restore_snapshot)は以下を内蔵している。このスキルは重複実装しない:
prerestore スナップショット)--force なしで実行不可)verify_snapshot)--yes なしで実行不可)discussion_topics / decisions / discussion_logs / activities / materials)を把握するget_activities / get_decisions 等のCALMツール、または uv run --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.py" list で分かる直近の行数)。警告は前回スナップショット取得時点との差分であり、直近の正当な操作(大量retract・tag-cleanup等)による見かけ上の減少でないか確認するuv run --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.py" list で全kind横断の一覧を取得するkind / created_at / db_size_bytes / quick_check を確認する。quick_check が ok 以外のものは復元候補から除外する_build_snapshot_section は異常検知時(is_healthy=False)に新規periodicスナップショットの取得をスキップする実装のため、異常検知セッション中に直前の健全世代が壊れたスナップショットで上書きされることはないユーザーに以下をA/B/Cの選択肢として提示し、承認を取る。承認なしに実行しない。
[db-recovery] DBデータ異常減少を検知:
- 対象テーブル: (例: decisions: 1200 → 1050 (-150件))
- 確度: (明確な異常 / 説明可能 / 不明)
- 復元候補: (スナップショットのcreated_at / kind / パス、quick_check結果)
復旧方法を選んでください:
- A: 最新スナップショットから全体復元 — 復元後、復元時点以降に記録した内容は失われる
- B: 部分復元(特定テーブルのみ、または欠落範囲を特定して手動補完)— backup_serviceはテーブル単位・行単位の部分復元を自動化していないため、実質SQLレベルの手動作業になる。工数とリスクを明示した上で提案する
- C: 復旧せず先に進む(誤検知と判断、または復元コストが見合わない場合)
restore_snapshot は稼働中サーバーに対して --force なしでは実行できない)。--force / --yes を自発的に付けて安全装置を回避しないadd_logs で記録するuv run --no-sync --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_PLUGIN_ROOT}/scripts/restart_server.py" --stop でサーバーを停止する(接続中のブリッジプロセスは巻き添えにせずLISTEN中のプロセスだけを狙って止める)uv run --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.py" restore --latest(Step2で特定した候補が最新でない場合は該当パスを直接指定)を実行する
復元エラー: サーバーが稼働中のため復元を中断しました が返った場合、上記3.(サーバー停止)が漏れている。サーバー停止を再確認してからリトライする--yes を要求するメッセージ)が出た場合は、警告文をそのままユーザーに見せて --yes 付き再実行の可否を確認する。自己判断で --yes を付けない復元完了: ... -> ...、行数の変化テーブル、prerestore_path)をそのままユーザーに提示するrestart_server.pyやkill・起動コマンドは直接打たない。add_logs で追記する(実行結果)Bを選んだ場合は、対象範囲の特定と手動SQL操作の手順を個別に提示し、実行前に再度承認を取る。サーバー停止を伴う場合は、停止前にAの2.と同様に現状を add_logs で記録する。
Cを選んだ場合は、誤検知と判断した理由を add_logs に記録してスキップする。
get_activities / search 等、または uv run --directory "${CLAUDE_PLUGIN_ROOT}" python "${CLAUDE_PLUGIN_ROOT}/scripts/snapshot.py" list で最新スナップショットの行数と突き合わせ)| ケース | 期待挙動 |
|---|---|
| スナップショットが1件もない | 警告のみ提示し、復元不能である旨を伝える。「先に進む」以外の選択肢がないことを明示 |
復元に使えるスナップショットが全て quick_check 失敗(破損) | 破損している旨を明示し、直近の非破損世代 or 「復元不能」を報告する |
復元実行が失敗(RestoreBlockedError) | エラーメッセージをそのまま提示し、原因(サーバー稼働中 / 整合性検証失敗 / schema非互換)に応じた対処を提案。無断で --force / --yes を付けて再実行しない |
| 誤検知(直近の正当な大量retract等が原因と判明) | Cを選択してskipし、判断理由をlogに記録する |
| SessionStart警告以外でDB異常に気づいた場合(会話中に件数の少なさに気づく等) | 同じフローに入ってよい(TRIGGERの2つ目のケース)。Step1で「hook警告なし・自己認識起点」である旨を明記する |
| 復元後も異常が解消しない | Step5の通り別世代を試すか、解消不能として報告する |
prerestore 退避)は restore_snapshot が内部で行うため、このスキルが別途手動バックアップを取る必要はない--force / --yes フラグは安全装置を無効化するものであり、スキル側が自発的に付与しない还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
【必須】現在のアクティビティを完了にする、または完了にせず中断して寝かせる。「/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")を起票する。
中文简介正在准备中。当前显示原文说明。
人間の判断待ちaskの受け箱をMonitorで監視し、判断構造が同じopen askが溜まっていればメタaskを起票する。「ask storeを監視して」「asksを見張って」「open askの滞留をチェックして」などで発動。
中文简介正在准备中。当前显示原文说明。