"予定イベントから逆算して「忘れられている準備タスク」だけを拾う。Calendar+Notion(報告会/MTG/会期)60日先を収集し逆算テンプレ適用→Todoist突合→不足分だけ提案(勝手に登録しない)。月曜はohayoが候補表示。Triggers: 逆算チェック/準備漏れ確認/イベント逆算。NOT: 単発登録→task-add"
Resources
1Install
npx skillscat add thiguchi125-debug/claude-config/gyakusan Install via the SkillsCat registry.
SKILL.md
gyakusan — イベント逆算・準備漏れ拾い
目的: 「予定は入っているのに準備タスクが無い」を構造的に潰す。提案止まりが既定。承認なしにTodoistへ書き込まない。
起動モード
- 手動: 「逆算チェック」「準備漏れ確認」「漏れタスクチェック」「イベント逆算」
- 月曜自動: ohayo が §10シグナル後に本スキルを候補表示モードで実行(登録は草川の返答があった場合のみ)
Step 1: イベント収集(今日〜60日先)
| 源 | 取り方 |
|---|---|
| Google Calendar | list_events(calendarId=kusakawa.taku@gmail.com・kusagawaは誤り)で60日分 |
| 🎤市政報告会DB | data_source df08b5ea-f5ff-4022-afe2-c8073fbe341a を1query(開催日が範囲内・進捗≠完了) |
| 📅ミーティングノートDB | data_source 26d7848d-ad1a-4e84-806f-a8dbccb1872b を1query(開催日が範囲内・ステータス=開催前) |
| 会期ハブDB | data_source 16842e7f-f34f-4242-a68c-fb59efcc2bc1 を1query(通告締切・本会議日が範囲内) |
同一イベントが複数源にあれば1つに統合(日付+名称の近さで判定)。
Step 2: 既存タスクの把握
python3 ~/.claude/scripts/todoist/td.py week + 必要に応じ td.py list <PJ> で既存タスクを取得。イベント名・地区名・会場名・テーマ語で突合し、既に準備タスクがあるイベントは提案から外す。
Step 3: 種別判定→逆算テンプレ適用(D=イベント当日)
| 種別 | 判定手がかり | 逆算タスク |
|---|---|---|
| 市政報告会 | 「報告会」 | D-21 企画(Stage1)/D-14 案内レポート・印刷入稿(Stage2)/D-7 スライド(Stage3)/D-2 解説・台本(Stage4)/D-1 前夜チェック(Stage5)。shisei-houkokukai の _status.json を先に読み、完了済みステージは提案しない |
| 議会会期 | 通告締切・定例会 | general-question-prep のロードマップが正。D-21時点で kickoff 未実施の場合のみ「kickoff未実施」を1件だけ提案(個別工程は重複提案しない) |
| 総会・懇親会・式典 | 総会/懇親会/式典/来賓/挨拶 | D-3 挨拶原稿(aisatsu-prep)/D-1 会場・時間・持ち物確認 |
| 主催イベント | 祭り/大会/主催/運営 | D-30 許可・保険・会場押さえ/D-21 チラシ入稿(design-studio)/D-14 告知発信/D-7 物品・人員手配/D-1 設営最終確認 |
| 印刷物の配布日 | 配布/ポスティング/納品 | D-21 デザイン開始/D-14 入稿 |
| 選挙関連 | 選挙/後援会/リーフレット/演説会 | D-30 印刷入稿/D-14 content-risk-reviewer公選法チェック |
| 出席のみの会議 | 上記以外 | 原則スキップ。重要案件(議案・請願がらみ)のみ D-1 資料事前読みを1件 |
Step 4: 二層フィルタ(60日運用のノイズ抑制・本スキルの要)
- 0〜14日先のイベント: 該当逆算タスクをすべて提案対象にする
- 15〜60日先のイベント: 逆算した期限が今日から14日以内に落ちるタスクだけ提案(=今動かないと間に合わないリードタイム21日級:入稿・会場・許可・アポ・企画開始)。それ以外は次回以降の実行で自然に浮上するので出さない
_declined.json(本ディレクトリ)にある「過去に草川が見送ったイベント×タスク」は再提案しない
Step 5: 提案→承認→登録
- 一覧を1回で提示:
🧮 逆算チェック(〜MM/DD・イベントN件走査) 1. <MM/DD イベント名> → 不足: <タスク> | 期限案 MM/DD | PJ案: 🏛 議員活動 2. ... 漏れなしイベント: M件(省略) - 草川の返答(「1と3」「全部」「見送り」)を待つ。返答なし・見送り分は登録しない。見送り分は
_declined.jsonに{"event":"...","task":"...","date":"YYYY-MM-DD"}で追記 - 承認分のみ
td.py add(td.py projectsで実在PJ名確認・期限=逆算日・descにイベント名と逆算根拠を1行)- 🗓 期限つきで登録する場合は task-add の突合手順を通す(想定所要を1hセッション換算→カレンダー突合→✅/⚠️/🚫判定→承認)。突合なしの
td.py add --due、Todoist MCPupdate-tasksでの期限後付け、reschedule-tasksでの明後日以降への期限設定は PreToolUse hook が deny する。今日・明日への移動(朝の繰越・即日対応)はゲート対象外。期限なしの登録はこれまで通り。 - gyakusan は Step 1 で既にカレンダーを取得済みのため、task-add にそのイベント一覧を渡して
list_eventsを再取得させない。判定(セッション換算・3値判定・_verified.json書込)だけを task-add の手順で行う。
- 🗓 期限つきで登録する場合は task-add の突合手順を通す(想定所要を1hセッション換算→カレンダー突合→✅/⚠️/🚫判定→承認)。突合なしの
- 0件なら「🧮 逆算チェック: 漏れなし(イベントN件走査)」の1行で終了
📌 恒久ガードルール
- 提案止まりが既定。承認なしのTodoist書込は禁止([[feedback_ask_destination_and_deadline_before_register]])
- カレンダーIDは
kusakawa.taku@gmail.com(kusagawaは誤り・CLAUDE.md正本) - 却下されたものは
_declined.jsonで抑制し、同じ提案を繰り返さない - 月曜ohayo実行時はブリーフィングを重くしない: 提案5件超なら上位5件+「残りは『逆算チェック』で」に畳む