"Todoist全体の定期棚卸し:6チェック(期限なし/停滞超過/長期@結果待ち・@保留/停滞PJ箱/PJ化候補/ラベル)→推奨スタンス提示→バッチ承認で一括処理。Triggers: タスク棚卸し/タスク監査/停滞タスク確認/PJ化候補出して/全タスク見直し。NOT: 単発登録→task-add"
Install
npx skillscat add thiguchi125-debug/claude-config/task-audit Install via the SkillsCat registry.
🧹 task-audit — タスク監査・定期棚卸しスキル
🔴 Todoist一本化(2026-06-14〜・最優先/2026-07-05本文Todoist化済み)
タスク管理は Notion✅タスクDB→Todoistへ移行済み。本スキルの棚卸し対象も Todoist(python3 ~/.claude/scripts/todoist/td.py audit / overdue / nodue / list / projects。書込は done/add、期限変更・ラベル付与は Todoist MCP reschedule-tasks/update-tasks)。Notion✅タスクDB(292cf503-a68f-81c6-…)・旧🗂️プロジェクトDB(292cf503-a68f-81fe-…)は廃止・書込禁止(過去データの参照のみ可・🗄️旧アーカイブ収容済み)。PJ化判定の格上げ先はTodoistプロジェクト(🏛議員活動配下サブPJ等)+情報蓄積は🗂プロジェクト・プラットフォーム(ds=8975c6a9)のPJページ。
起動トリガー
- 「タスク棚卸し」「タスク監査」「停滞タスク確認」「タスク整理」
- 「task-audit」
- 「PJ化候補出して」「プロジェクト化候補」
- 「全タスク見直し」「タスクを効率化」「タスク管理改善」
- ohayoのシグナルセクションで件数閾値超え時の草川呼出
設計思想
ohayoに「シグナル」を組み込み、本格処理はこのスキルで手動起動。理由:
- ohayoが燃費圧迫しない(朝のブリーフィングは70-90K目標を堅持)
- 草川が認知負荷の都合に合わせて頻度自己制御できる
- cron不要・自動化しすぎない
モード設計(3パターン)
⚡ quick(既定・即実行)
- 期限なしタスク全件のみ棚卸し(
td.py nodue) - 推奨スタンス提示→バッチ承認1回で一括処理
- 所要:5-10分、燃費:40-60K
🔍 standard(軽量本格)
- 期限なし + 停滞期限超過(4日以上)+ 長期@結果待ち・@保留(60日以上滞留)
- 各カテゴリで推奨スタンス提示→カテゴリ別バッチ承認
- 所要:15-20分、燃費:80-120K
🧹 full(月次大棚卸し)
- standard + 停滞PJ箱の次の一手タスク提案 + PJ化候補抽出
- PJ化候補は基準A-Eを自動付与してTodoistプロジェクト格上げまで一気通貫
- 所要:30-45分、燃費:150-250K
6つの自動チェック
1. 🟢 期限なしタスク
td.py nodueを叩く(件数だけならtd.py audit)- 期限が空のタスクを全件抽出(ohayoの盲点=期限なしは朝の視界に入らない)
- 推奨スタンス:
- アクション具体・やる案件 → 期限「今日+3日」設定(メモリ
feedback_task_deadline_3days.md準拠・Todoist MCPreschedule-tasks) - タイトルのみ・具体性なし → @アイデア/@保留 ラベル退避 or 削除候補(削除は草川明示承認時のみ
td.py rm) - 複数タスク連動・継続性高 → Todoistプロジェクト格上げ推奨
- アクション具体・やる案件 → 期限「今日+3日」設定(メモリ
2. 🟡 停滞 期限超過
td.py overdueを叩き、ローカルで期限 < 今日-4日でフィルタ- 4日以上放置されている期限超過タスクを抽出
- 推奨スタンス:
- 期限再設定(今日+3日・Todoist MCP
reschedule-tasks)※明後日以降の日付はtask-addの突合が必須(未突合はhookがdeny) - Done判定確認(実は完了済の可能性 →
td.py done <id>) - @結果待ち/@保留 ラベル退避(相手のボール化・要検討化。Todoist MCP
update-tasks)
- 期限再設定(今日+3日・Todoist MCP
3. 🟠 長期 @結果待ち・@保留
td.py listの出力から @結果待ち/@保留 ラベル付きタスクを抽出(精密な滞留日数が要る場合のみ Todoist MCPfind-tasksで作成日・更新日を取得)- 60日以上動いていない滞留タスクを抽出(連絡まち忘却防止)
- 推奨スタンス:
- 強制再連絡(連絡まちは生きてるか確認 → 再連絡タスクを
td.py add) - 完了 or 削除候補(連絡途絶 or 自然解消 →
td.py done、削除は草川明示承認時のみ) - ラベル外して現役復帰(期限つきに戻す)
- 強制再連絡(連絡まちは生きてるか確認 → 再連絡タスクを
4. 🔵 停滞 PJ箱
td.py projectsで全プロジェクト一覧 → 各サブPJをtd.py list <PJ名>で確認- 残タスク0件 or 全件塩漬け(全部期限超過/@保留のみ)のプロジェクト箱を抽出。🗂プロジェクト・プラットフォーム(ds=
8975c6a9)のPJページとも突合(Todoist=実行/Notion=蓄積の対応ずれ検出) - ※ 旧🗂️プロジェクトDB(
collection://292cf503-a68f-81fe-bd40-000b64314f2e)は廃止・書込禁止。過去PJの経緯を確認したい時に限り参照のみ可 - 推奨スタンス:
- 次の一手タスク自動提案(PJページ要約から「初動」タスク1件をドラフト→承認後
td.py add --project <箱>) - PJ箱のクローズ提案(完了 or 中止 → Todoist MCP
project-managementでアーカイブ・草川承認後のみ) - 既存の散在タスクを箱へ移動提案(Todoist MCP
update-tasks/project-move) - 🗓 期限つきで登録する場合は task-add の突合手順を通す(想定所要を1hセッション換算→カレンダー突合→✅/⚠️/🚫判定→承認)。突合なしの
td.py add --due、Todoist MCPupdate-tasksでの期限後付け、reschedule-tasksでの明後日以降への期限設定は PreToolUse hook が deny する。今日・明日への移動(朝の繰越・即日対応)はゲート対象外。期限なしの登録はこれまで通り。今日・明日への繰越はゲート対象外。
- 次の一手タスク自動提案(PJページ要約から「初動」タスク1件をドラフト→承認後
5. 🟣 PJ化候補
- Inbox直下タスク全件(
td.py list Inbox)をローカルクラスタリング:- 同一テーマキーワード3件以上(例:「がん検診」「菅内交差点」「障害福祉」など)
- 同一相談者・同一プロジェクト軸 etc
- 基準A-E自動付与:
- A: 同一テーマで関連タスク2件以上
- B: 同テーマ散在3件以上
- C: 着手〜完了が2週間超
- D: 複数ステークホルダー絡み
- E: 「〜検討」「〜整備」「〜推進」等の継続性ある語感
- 推奨スタンス:Todoistプロジェクト格上げ(🏛議員活動配下等にサブPJ新設→該当タスクを移動。PJ名・由来・基準は説明に記載。新設は草川承認後・Todoist MCP
add-projects。経緯蓄積が要る案件は🗂プロジェクト・プラットフォームにPJページも作成)
6. ⚫ ラベル棚卸し(旧・死蔵ステータス)
- Todoistにステータス概念はないため、ラベルの棚卸しに読み替える
- Todoist MCP
find-labelsで全ラベル取得 → 使用件数ゼロ or 定番4種(@結果待ち/@保留/@アイデア/@読む)から外れた野良ラベルを検出 - 推奨スタンス:削除 or 定番ラベルへの統合を提案(実行は草川承認後・Todoist MCP
update-labels/delete-object)
実行ワークフロー
Step 1: モード判定
草川指示から quick / standard / full を判定。曖昧な場合は AskUserQuestion で確認。
Step 2: データ取得
モードに応じて td.py をBash 1回にまとめて叩く:
- quick:
td.py nodue(+件数確認にtd.py audit) - standard:
td.py nodue && td.py overdue && td.py list(@結果待ち/@保留抽出用) - full: standard +
td.py projects+td.py list Inbox(PJ化候補クラスタリング用)+必要時のみ Todoist MCP 読み取り(作成日・ラベル一覧)
Step 3: 推奨スタンス計算(ローカル処理)
取得データをローカルでフィルタ・クラスタリング・スタンス判定。追加API呼出しなしの処理。
Step 4: バッチ承認 UI
各カテゴリで AskUserQuestion を1回ずつ:
🟢 期限なしタスク 12件 — どう処理しますか?
A. 全推奨どおり実行(期限設定8件・@保留退避3件・PJ格上げ1件)
B. 退避のみ実行、期限設定・PJ格上げは個別判断
C. 1件ずつ確認
D. 今回はスキップStep 5: 一括実行
草川承認後に実行:完了=td.py done <id>、期限設定=Todoist MCP reschedule-tasks(明後日以降はtask-add突合→_verified.json書込を先に済ませる)、ラベル退避=Todoist MCP update-tasks、PJ新設=Todoist MCP add-projects+タスク移動、削除=草川が明示指定した分のみ td.py rm。旧Notion✅タスクDB・旧🗂️プロジェクトDBへの書込は一切行わない。
Step 6: 結果サマリ
処理件数を集計してチャット出力(処理後の td.py audit 件数を添える)+メモリログ追記。Notionの「📔 タスク監査ログ」ページに月次蓄積。
既存スキル・エージェントとの連携
| 連携先 | 役割 |
|---|---|
| ohayo | 朝のシグナルセクションで件数表示・閾値超え時に草川を本スキルに誘導 |
| oyasumi | 既存の「プロジェクト化候補」抽出ロジック(Step 6.5系)と整合・重複しないよう調整 |
| nichijo | 記録時の期限自動設定(今日+3日デフォルト)と整合 |
| iken | 市民相談→タスク登録時に基準A-E自動付与 |
関連メモリ参照
このスキル実行時、必ず以下メモリを参照:
feedback_ohayo_task_3block_display.md— 3ブロック表示原則feedback_ohayo_deadline_null_blindspot.md— 期限なし放置の構造的穴feedback_task_deadline_3days.md— 期限デフォルト今日+3日project_todoist_task_migration.md— td.pyコマンド正本・Todoist移行の経緯
旧リソース(Notion view・現在は使用しない)
旧✅タスクDB時代に棚卸し用に作成した専用view。廃止済み・定常クエリ禁止(過去データを参照する時に限り可):
📋 期限なしinbox(棚卸し用)view://35dcf503-a68f-8130-90fa-000ce264c871⏰ 超過+今週中(棚卸し検証用)view://35dcf503-a68f-8118-b566-000cd069b4dd🔎 期限なし全件(ステ問わず・棚卸し2)view://35dcf503-a68f-816b-be17-000c3d758442🔁 Remind残存確認view://35dcf503-a68f-8120-a42e-000c38f4646d
禁止事項
- 旧Notion✅タスクDB・旧🗂️プロジェクトDBへの書込は全面禁止(Todoist一本化・過去データの参照のみ可)
- 草川判断なしの削除・退避一括実行は禁止:データロス防止のため、必ずバッチ承認を取る。特に
td.py rmは草川が明示的に「削除」と指定した分のみ - stop-iter禁止:途中で「もう疲れたから残りスキップ」をしない。全カテゴリ完了まで走る or 草川指示で明示的に中断
- ohayoの中で重い処理を実行しない:ohayoはシグナル表示のみ、本格処理はこのスキル
- cron化禁止:自動化しすぎると草川の認知制御が利かなくなる。あくまで手動起動
トークン消費目安
- quick: 40-60K
- standard: 80-120K
- full: 150-250K
月平均運用見込み:
- quick × 月2回 + standard × 月1回 + full × 四半期1回 = 約 250-400K/月
- 棚卸しをしないと「期限なし放置」「停滞PJ」が累積し、半年後に1,000K超の集中棚卸しが発生するため、定期実行が経済合理的。
完了基準
以下すべて満たして初めて完了:
- 全カテゴリのチェック実行済み(モードに応じて)
- 草川判断UIで承認取得
- Todoist更新(期限設定/完了/ラベル退避/PJ格上げ)の実行ログがチャット出力
- メモリの「進行中プロジェクト」インデックス更新(新規PJ作成時)
- 「📔 タスク監査ログ」ページに今回実行記録追記