oyasumi

star 0

毎晩「おやすみ」「おやすみなさい」「good night」「夜のまとめ」「就寝」「1日の振り返り」「夜のブリーフィング」などと入力されたら必ず起動する。1日の活動(SNS投稿・ブログ・タスク完了・市民相談・ニュース・政策候補追加・Drive新規資料)を機械集約してNotionデイリーサマリを生成し、Google Driveに当日新規保存された資料を要約して📂Drive資料サマリDBへ蓄積(重複除外)、未完了タスクを明日に自動繰越し、明日のスケジュールをプレビューし、朝のダッシュボードに「昨夜のまとめ」セクションを反映する就寝時オートメーション。金曜日の夜のみ追加で週次レポートを自動生成する。完全自動化(途中で選択肢を求めない)。

thiguchi125-debug By thiguchi125-debug schedule Updated 6/14/2026

name: oyasumi description: 毎晩「おやすみ」「おやすみなさい」「good night」「夜のまとめ」「就寝」「1日の振り返り」「夜のブリーフィング」などと入力されたら必ず起動する。1日の活動(SNS投稿・ブログ・タスク完了・市民相談・ニュース・政策候補追加・Drive新規資料)を機械集約してNotionデイリーサマリを生成し、Google Driveに当日新規保存された資料を要約して📂Drive資料サマリDBへ蓄積(重複除外)、未完了タスクを明日に自動繰越し、明日のスケジュールをプレビューし、朝のダッシュボードに「昨夜のまとめ」セクションを反映する就寝時オートメーション。金曜日の夜のみ追加で週次レポートを自動生成する。完全自動化(途中で選択肢を求めない)。

おやすみスキル — 夜のオートメーション

ユーザーが夜の挨拶(「おやすみ」など)をしたとき、または「夜のまとめ」「1日の振り返り」を求めたとき、このスキルを実行する。

🔴 タスクはTodoist参照(2026-06-14〜・最優先・他記述に優先)

本スキル内の「完了タスク集計・未完了タスクの繰越し・プロジェクト化判定」は Notion✅タスクDB(292cf503)・プロジェクトDBではなく Todoist を使う。下記表・Stepで ✅タスクDB 292cf503 view を叩く記述は無効化し、代わりに:

  • 今日完了したタスク = その日 td.py done <id> でcloseした分(会話・nichijoで完了にしたもの)。Todoistの完了履歴に依存せず、当日closeした件名を要約に載せる。
  • 未完了タスクの確認・繰越しpython3 ~/.claude/scripts/todoist/td.py overdue(期限切れ)+td.py today。繰越しは期限切れタスクを翌日へ送るなら td.py add ではなく既存タスクの期限付け替え(必要時のみ・基本は据え置きで草川が翌朝 td.py morning で再確認)。
  • 監査・プロジェクト化判定td.py audit(期限超過/期限なし/@結果待ち/@保留の件数)。基準A〜Eの判断ロジックは継続するが登録先はTodoistプロジェクト。 詳細は CLAUDE.md「タスク・プロジェクトはTodoistに一本化」+ project_todoist_task_migration.md

⚡ トークン効率化原則(2026-05-07追加・最重要)

oyasumi は ohayo と同様に1回100K+消費しがち。以下を厳守してトークン半減を狙う。

  • Notion DB 取得は常に pageSize: 30 上限:今日付の差分しか使わないので全件不要。view_url 経由で時系列降順を担保
  • Drive list_recent_filespageSize: 10:議員業務関連の当日新規は通常3〜5件。10件超は modifiedTime 降順先頭10件のみ採用
  • Drive read_file_content は先頭1500字打切り:要約200〜400字には十分(旧3000字から半減)
  • Gmail 取得は ohayo との共有前提:oyasumi が取得した結果は同一セッション内で ohayo 起動時に再利用可能。別セッション24h超のみ ohayo 側で再取得
  • Step 6 デイリーサマリは2,500字以内厳守:0件セクション見出しごと省略、テーブルは2列10行以内、説明的長文化禁止
  • Step 8 朝ダッシュボード本文置換:fetch→update_content の2発を許容するが、old_str は短く(見出し1行+直下数行)に絞ってマッチ確実性を担保。長文一発置換禁止
  • 0件 DB のスキップ:notion-query-database-view が0件返した DB は後段集計から完全スキップ(空テーブル組み立てに余計なトークンを使わない)

Why: 2026-05-06 ohayo 燃費改善方針と対称運用。夜100K+ × 朝100K+ で日次200K+ は持続不可能。

設計原則(最重要)

このスキルは 完全自動化 が絶対条件。以下を厳守すること:

  1. 途中で選択肢・確認・質問を一切しない。判断が必要な場面はすべてデフォルト動作で進む
  2. 失敗してもスキップして続行(fail-safe)。1つのStepが失敗しても他のStepを止めない
  3. 判断が分かれる場合はドラフト保存(ステータス:下書き/要確認)にして、翌朝のダッシュボードで人間が確認する流れに統一
  4. 書き込み系は必ず実行。「データが揃ってない」「変化がなさそう」等の理由でスキップしない(空でも空のサマリを保存)

やること(全Step並列実行が基本)

Step 0: 日付の取得と曜日判定

  • 今日の日付YYYY-MM-DDYYYY年M月D日(曜日) の両形式で確定
  • 曜日判定:金曜日なら Step 7(週次レポート生成)を有効化
  • 明日の日付YYYY-MM-DDYYYY年M月D日(曜日) で確定
  • 今週の月曜の日付 を計算(金曜のみ使用:週次レポートの集計開始日)

Step 1: 並列データ収集(全部同時に投げる)

以下のデータを 同時並行 で取得する。順次実行は禁止。

1-A. 明日のCalendar取得(kusakawa.taku のみ・2026-05-01 燃費精査)

mcp__claude_ai_Google_Calendar__list_events

  • calendarId: kusakawa.taku@gmail.com のみt.higuchi125@gmail.com は議員業務イベント0件運用のため呼び出さない・注:kusagawaではなくkusakawa
  • time_min: 明日の00:00:00(ISO 8601)
  • time_max: 明日の23:59:59(ISO 8601)
  • orderBy: startTime、timeZone: Asia/Tokyo

時刻順に並べ、タイトル・開始時刻・終了時刻・場所を抽出。

1-B. 今日のCalendar振り返り取得

mcp__claude_ai_Google_Calendar__list_events

  • calendarId: kusakawa.taku@gmail.com のみ
  • time_min: 今日の00:00:00 / time_max: 今日の23:59:59
  • → Step 2のnichijo自動補完と Step 6のサマリで使用

1-C. Gmail振り返り

mcp__claude_ai_Gmail__search_threads

  • query: newer_than:1d -category:promotions -category:social
  • max_results: 20
  • → 件名・送信者・既読/未読を集約

ohayo との Gmail 共有(2026-05-01 燃費精査)

  • 取得結果を内部メモに保持し、翌朝同一セッションで ohayo が起動した際に再利用可能な形で保持する
  • 別セッション or 24h超なら ohayo 側で再取得

1-D. Notion DB群並列取得

以下を 並列 で取得:

データソース DB / data_source_id フィルタ条件
📣 投稿管理DB(SNS+ブログ統合) 1bd98deb-624f-402c-aeb3-bdaa4782b389 ステータス完了系 かつ 更新日=今日。プラットフォームでブログ/SNS/動画を区別(旧ブログ記事管理DB dcdf44af- は2026-05-03廃止統合)
日次ルーティンログDB f6d15ac0-73fa-414f-8242-03e8f06aa4e3 日付=今日(存在チェック用)
✅タスクDB(完了) 292cf503-a68f-81c6-b9dd-000b3ffdd2ce ステータス=Done かつ 更新日=今日
✅タスクDB(未完了・期限今日以前) 同上 ステータスDone/Archive かつ 期限≤今日
一般質問ネタDB 42716725-fece-497f-9782-705076539de4 作成日=今日
市民意見リストDB c2c34bd8-1e16-492e-aab0-d3f497d18d4d 作成日=今日 + 別途 対応状況未対応/対応中の全件
📰ニュースDB 29e5c1a2-d64d-4822-81fd-0d642c3f07bc 日付=今日
🎯政策候補DB 6f1895ac- 系(fetch して確認) 作成日=今日

🚨 取得手段は notion-query-database-view 一択(2026-05-01 燃費精査・改訂)

  • notion-search は使わないdata_source_url 指定 + created_date_range フィルタでの絞り込みは信頼性が低く0件を返しがち(2026-04-30 oyasumi で SNS/ブログ/市民意見リストDB の3連発0件失敗の原因)
  • 全DB の view_url を以下に固定。view_url 不明なDB(政策候補DB等)は 初回1回だけ notion-fetch で取得して以後 memonotion-search への fallback は禁止
  • 0件でもエラー扱いせず、0件として記録して進める
確定済み view_url(変更厳禁)
DB view_url
✅タスクDB(最重要) https://www.notion.so/292cf503a68f814eafcdec9eed56f273?v=292cf503a68f811e9555000c1fce8ad5
📰ニュースDB https://www.notion.so/f2eefc669dd54648bbcdacdc8afa1158?v=9d34f9a4-2bc1-4381-a31b-8f8c8ac719e2
SNS投稿管理DB(2026-05-08修正) https://www.notion.so/78f40f33ae714f329cc3b00c0a36707c?v=6ac6eddd-53b7-4e54-8ebe-ec2e02227718
一般質問ネタDB(2026-05-08修正) https://www.notion.so/cb47d25e30b14b61b39f56254bf9432a?v=2d912401-3794-484a-8252-04ade354fbd2
📋市民意見リストDB(永続・c2c34bd8系・2026-05-08確定) data_source collection://c2c34bd8-1e16-492e-aab0-d3f497d18d4d / database top page https://www.notion.so/8a36d28a0e1d4fb595a09107f663aa1e(要viewURL再取得)
プロジェクトDB https://www.notion.so/292cf503a68f813aa68dd75cbc469c92?v=292cf503a68f814c914e000c76ddc78f
📂Drive資料サマリDB https://app.notion.com/p/8815412449ad4de5b3b57145513309df
🎯政策候補DB 初回 notion-fetch で取得後 memo

⚠️ 2026-05-08確定:旧記載 70eeaeabe7e246599e0e7d5f8fef88c6 は実は「📦 旧受付BOX(2026-04-30〜2026-05-02・市民意見リストへ統合済み・data_source 354432ec-)」を指していた廃止DB。現役は c2c34bd8 系。SNS投稿管理DB/一般質問ネタDB はpage URLのみで ?v= 不在のため notion-query-database-view がvalidation_errorで0件返却していた(2026-04-30〜05-07の3DB失敗事故の根本原因)。 ⚠️ 旧ブログ記事管理DB(dcdf44af-)は2026-05-03廃止統合済み。SNS投稿管理DB(1bd98deb-)にプラットフォーム=ブログとして統合されている。

✅タスクDB 取得後の処理(必須)
  1. ステータスDone / Archive のものは除外(この除外が抜けると古い完了タスクが残る
  2. その上で date:期限:start ≤ 今日 のものを「未完了・期限超過/今日」として抽出
  3. 別途 ステータス=inbox かつ date:期限:start = 今日 のものを「本日inbox」として抽出
各DBの集計方針
  • SNS投稿管理DB / ブログ記事管理DB: 取得後ローカルで「更新日=今日 かつ ステータスが投稿済/公開済系」を絞り込む
  • 市民意見リストDB(c2c34bd8): 取得後ローカルで「作成日=今日」+「対応状況が未対応/対応中の全件」を別途集計
  • 一般質問ネタDB: 取得後ローカルで「作成日=今日」を絞り込む
  • 🎯政策候補DB: 取得後ローカルで「作成日=今日」を絞り込む

⚠️ ダッシュボードの旧テーブルからの数値流用は禁止。必ず実DBクエリの結果のみを採用する(2026-04-30事故踏まえ)。

1-E. Google Drive 当日更新ファイル取得

mcp__claude_ai_Google_Drive__list_recent_files並列 で呼ぶ:

  • orderBy: lastModified
  • pageSize: 10(2026-05-07 燃費改善:旧25→10。当日新規は通常3〜5件で十分)
  • excludeContentSnippets: true(一覧段階では本文不要)

取得後、ローカルで以下を必ず実施

  1. modifiedTime今日(JST 00:00〜23:59) の範囲のファイルだけ抽出(タイムゾーン換算注意:DriveはUTC、今日のJST 00:00 = 前日UTC 15:00)
  2. 既登録ID除外:📂Drive資料サマリDB(data_source_id 317c4d02-ac0a-48c3-9fc5-56029000e64e)を notion-query-database-view で過去7日分取得し、そこに含まれる ファイルID プロパティの値とマッチする id のファイルはスキップ
  3. 残った新規ファイル群を 新規Drive資料リスト として保持(後続 Step 5.5 で処理)
  4. 上限:最大10件(多すぎる日は modifiedTime 降順で先頭10件)。残りは 処理ステータス=スキップ で件数だけ集計
  5. 0件なら空のままでOK(後続 Step 5.5 もスキップ)

注意list_recent_files は所有・閲覧したすべてのファイルが返る。viewedByMeTime のみで modifiedTime が今日でないものは除外(単に今日開いただけのファイルを「新規資料」として誤検出しない)。


Step 2: nichijo(日次ルーティンログ)自動補完

Step 1-D で取得した「日次ルーティンログDB の今日のページ」の状態に応じて分岐:

共通:CalendarのKEEP/SKIP判定(nichijo Step 1.5と同一基準)

Step 1-C で取得した今日のCalendarイベントから、以下を KEEP(記録に残す):

  • 議会公務(本会議/委員会/議員総会/議運/会派会議)
  • 視察・現地確認・調査
  • 委員会・協議会・連絡会・審議会
  • 市民相談/面談/ヒアリング
  • 街頭演説・挨拶まわり・戸別訪問・後援会活動
  • 地域イベント参加(祭り/式典/総会/自治会行事/PTA等)
  • 後援会・支持者交流(懇親会・ワイン会・新年会等)
  • 講演・登壇・取材対応
  • 公開行事への出席

以下は SKIP(記録から除外):

  • 家族関連(送迎/通院等)
  • 個人の習い事・趣味(公務性なし)
  • 「【参考】」「【参考までに】」プレフィクス
  • 「private」「個人」と明示されたもの
  • 判断に迷う場合は KEEP 寄り

2-A. 今日のページが存在しない場合(自動推測でフル生成)

以下のソースから今日の活動を自動推測:

  • 今日のCalendar予定(KEEPのみ・1-Cで取得)
  • 今日のSNS投稿(1-D)
  • 今日のブログ公開(1-D)
  • 今日完了したタスク(1-D)
  • 今日新規追加された市民意見(1-D)

これらを時系列で並べ、以下のフォーマットで日次ルーティンログDBに新規ページを作成:

タイトル: YYYY-MM-DD ⚠️AI自動生成
日付: today
内容(content):
## ⚠️ AI自動推測による補完版

このログは「おやすみ」スキル起動時に nichijo の手動記録が無かったため、
Calendar・SNS・タスク完了履歴等から自動推測したものです。
翌朝、必要に応じて手動修正してください。

### 📅 本日のスケジュール(Google Calendar抽出・議員業務分のみ)
- **HH:MM–HH:MM** または **終日**: 予定タイトル
...

*除外(私的予定)*: 予定タイトル列挙(あれば)

### 今日の発信
- SNS: N件投稿(媒体: ...)
- ブログ: M件公開

### 完了タスク
- タスク名1
...

### 受け付けた市民意見
- 件名1
...

ステータス:下書き(DBに該当プロパティがあれば)

2-B. 今日のページが既に存在する場合(Calendar セクションのみ補完)

既存ページを notion-fetch で取得し、以下の判定:

  • ### 📅 本日のスケジュール セクションが既に存在する → 何もしない(重複追記しない)
  • 同セクションが存在しないnotion-update-pageupdate_content で本文末尾にCalendar KEEP分を追記:

### 📅 本日のスケジュール(Google Calendar抽出・議員業務分のみ)
- **HH:MM–HH:MM** または **終日**: 予定タイトル
- ...

*除外(私的予定)*: 予定タイトル列挙(あれば)

KEEP分が0件なら「(議員業務分の予定なし)」と明記して空セクションだけ作る(後続スキルでの照合のため)。

既存の手動記録は絶対に上書き・改変しない(追記のみ)。


Step 3: 未完了タスクの自動繰越し + プロジェクト化判定(2026-05-01追加)

入力データの取得(必ず実DBクエリ)

Step 1-D の query 結果(タスクDBの「すべて」view)から、ローカルで以下を抽出:

  1. 必ず除外: ステータス ∈ {Done, Archive}(これを忘れると古い完了済タスクが繰越し対象として残り、ダッシュボードを汚す)
  2. 対象抽出:
    • 期限が今日: date:期限:start = 今日の YYYY-MM-DD
    • 期限が今日以前(超過): date:期限:start < 今日
    • ステータス=inbox で期限なし → 繰越し対象外(Step 6 サマリの 📋 積み残しでだけ言及)

プロジェクト化判定(Step 3 内に組込み・2026-05-01以降必須)

繰越タスク群に対して、以下基準A〜Eのいずれか1つ以上該当する未紐付けタスク(プロジェクトrelation空)を検出:

  • A: 同一テーマで関連タスク2件以上 / B: 同テーマ散在10件以上
  • C: 着手〜完了が2週間超(=繰越超過状態) / D: 複数ステークホルダー絡み
  • E: 「〜検討」「〜整備」「〜推進」等の継続性ある語感

重複判定回避: 昇格判定日=今日が入っているタスクは再判定スキップ(nichijo整理モードとのダブル提案防止)。

該当検出時は朝のダッシュボード「💡 プロジェクト化候補」セクションに反映(草川が朝確認時にyes/no判断)。oyasumi本体では自動登録しない(朝の判断に委ねる)。

繰越しルール

  • 期限が今日のタスク: 期限の DB 値変更は行わない(朝のダッシュボードで「本日期限」として再表示すればよく、書き換えはノイズ)
  • 期限が今日以前(=超過)のタスク: 期限はそのまま(超過証跡保持)
  • DBへの ⚠️ プレフィクス書き込みは原則禁止(タイトル汚染リスク・二重マーカー化)
    • 旧仕様(タイトル先頭に ⚠️ 付加)は廃止。代わりに ダッシュボード描画時に表示のみで ⚠️ 付与 する(ohayo Step 4 のテーブル組み立てで処理)
    • 例外:ユーザーが明示的に「タイトルにも書いて」と指示したときのみ実施

制約

  • 絶対にタスクを削除しない
  • 絶対にタイトルを書き換えない(上記例外を除く)
  • 失敗時もスキップ続行
  • 件数の集計値(超過 X 件 / 本日期限 Y 件)を Step 6 サマリへ受け渡す

Step 4: 未対応市民相談の整理(参照のみ)

Step 1-D で取得した「市民意見リストDB(対応状況=未対応/対応中)」全件を集計。 件数と直近5件のタイトルを Step 6 のデイリーサマリへ流す。

新規書き込みは行わない(参照のみ)。


Step 4.5: AIミーティングノート自動振り分け(2026-05-03追加)

Notion AI Meeting で当日記録された会議を、📅 ミーティングノートDB(26d7848d-ad1a-4e84-806f-a8dbccb1872b)へ自動転記する。これは nichijo整理モード R1-B / R2 / R4-A の subset を oyasumi 内部で実行するもので、ユーザーが明示的に「整理」と打たなくても夜の段階で自動整理が完了するようにする。

設計方針(草川 2026-05-03 承認の D + B 案)

  • D: nichijo の整理ロジックを内部呼出し(重複定義を避ける)
  • B: 会議体マスタとのマッチは確度0.8以上のみ自動紐付け、それ以下は relation 空で保存して翌朝レビュー対象にする

4.5-1. 当日のAIミーティングノート取得

mcp__claude_ai_Notion__notion-query-meeting-notes で当日 createdTime のページを取得:

{
  "filter": {
    "operator": "and",
    "filters": [{
      "property": "created_time",
      "filter": {
        "operator": "date_is",
        "value": {"type": "exact", "value": {"type": "date", "start_date": "YYYY-MM-DD"}}
      }
    }]
  }
}

取得結果が0件なら本Stepをスキップ。Step 6サマリに「AIミーティング: 0件」と記載のみ。

4.5-2. 既振り分け済みフィルタリング

📅 ミーティングノートDB(ds:26d7848d-)を notion-query-database-view でクエリ。今日作成された全レコードの AI元ノートURL を取得し、4.5-1 で取得したAIノートURL一覧と照合。既に紐付け済みのものは除外

4.5-3. 各AIノートの分類・推定(R2 subset)

残った各AIノートについて、タイトル+(必要なら冒頭本文先頭500字)から以下を推定:

会議種別の自動推定

キーワード 推定種別
議会/定例会/委員会/本会議/会派/議運/議長/議員 議会公務
自治会/町内会/総会/組合/協会/JC/協議会/青年会議所 地域・団体
相談/お困り/陳情/要望/〇〇様(個人名) 市民相談
その他(マッチなし) 未分類

重要度の自動推定

  • 高:議会関連 / 市長関連 / 緊急性キーワード(決定/緊急/重要)
  • 中:定例会議 / 通常打ち合わせ
  • 低:その他・短時間メモ

フォローアップ要否の自動推定

  • タイトル or 本文に「次回」「ToDo」「○○まで」「課題」「持ち帰り」等のキーワードがあれば __YES__、なければ __NO__

4.5-4. 会議体マスタとのマッチング(B案:確度0.8以上のみ)

🏛 会議体マスタDB(ds:46414643-)から「アクティブ状態 = 継続中」のレコード一覧を取得。

各AIノートタイトルに対して、会議体名との文字列マッチを実行:

  • 完全一致 or 包含マッチ(タイトルに会議体名が含まれる):確度1.0、自動紐付け
  • 部分一致(会議体名の8割以上の文字がタイトル内連続出現):確度0.8、自動紐付け
  • 曖昧マッチ(複数の会議体に部分一致 or 単語レベルマッチ):確度0.5以下、relation 空で保存

過去の自動マッチ事例(参考):

  • コスモス祭り → コスモス三寺
  • JC関連 → 亀山JC
  • 応援団 → 三重大学応援団
  • eスポーツ → 亀山市eスポーツ協会

4.5-5. 📅 ミーティングノートDBへの転記(R4-A subset)

各AIノートに対して mcp__claude_ai_Notion__notion-create-pages で新規レコード作成:

parent: { data_source_id: "26d7848d-ad1a-4e84-806f-a8dbccb1872b" }
properties: {
  "タイトル": "[AIノート元タイトル、先頭の ‣ 等の余計な記号は除去]",
  "date:開催日:start": "YYYY-MM-DD",  // 当日
  "会議種別": "[4.5-3で推定した値]",
  "重要度": "[4.5-3で推定した値]",
  "フォローアップ要否": "[4.5-3で推定した値]",
  "ステータス": "開催済み",
  "作成元": "nichijoスキル",  // 既存選択肢を流用(oyasumi由来も nichijoスキル として扱う)
  "AI元ノートURL": "[元AIノートのURL]",
  "会議体": [マッチ確度0.8以上の会議体URL] or []  // 空配列の場合は未紐付け
}

本文の構造化は行わない(オーバーヘッド回避のため、本文整理は明示の整理モードに任せる)。

4.5-6. サマリ集計(Step 6 デイリーサマリ用)

以下を Step 6 に渡す:

  • aim_total: 当日AIミーティング総数
  • aim_processed: 自動転記した件数
  • aim_already_linked: 既に紐付け済みでスキップした件数
  • aim_unmatched_kaigitai: 会議体未紐付け(確度<0.8)の件数 と各タイトル
  • aim_processed_titles: 転記した会議のタイトル一覧(最大5件)

4.5-7. エラー処理

  • AIミーティングノートDB取得失敗:警告ログを記録、本Stepスキップ
  • create-pages 失敗(個別):その1件はスキップして残りを継続、サマリにエラー件数を記載
  • 部分成功でも本Stepは「完了」扱い

4.5-8. フォローアップ自動抽出 → ✅タスクDB(2026-05-08追加・「未確認」運用)

4.5-3 で フォローアップ要否=__YES__ と推定された AIミーティングノートに対して、本文先頭1500字を mcp__claude_ai_Notion__notion-fetch で取得し、以下のキーワードパターン行をパースしてタスク候補を抽出:

パターン例 抽出方針
次回(まで)?に[\s::]+(.+) タイトル化、文末まで or 改行まで
ToDo[\s::]+(.+) / アクション[\s::]+(.+) / 課題[\s::]+(.+) タイトル化
(.+?)持ち帰り / (.+?)宿題 タイトル化
(\d{1,2})月(\d{1,2})日まで(.+) タイトル+期限同時抽出

展開ロジック

  1. 1ミーティングから最大5タスクまで抽出(それ超過は切り捨て・ノイズ防止)
  2. 各候補について ✅タスクDB(data_source_id: 292cf503-a68f-81c6-b9dd-000b3ffdd2ce)に notion-create-pages
    properties: {
      "タスク名": "【未確認・自動抽出】[会議体名 or 会議タイトル前半]:[抽出文 60字以内]",
      "ステータス": "inbox",
      "優先度": "中",
      "date:期限:start": "[抽出された日付があれば/なければ空]",
      "date:期限:is_datetime": 0,
      "作成元": "oyasumi-skill-auto-extract",
      "関連ミーティング": "[該当📅DBページのrelation・あれば]"
    }
    
  3. 重複防止: 同一タイトル+作成日=今日のタスクが既に存在する場合はスキップ(notion-search で前検証)
  4. 抽出0件のミーティングは何もせず継続
  5. 個別 create_pages 失敗時は他ミーティングを継続

集計を Step 6 に渡す

  • mtg_extracted_tasks_total: 全件数
  • mtg_extracted_tasks_by_meeting: ミーティング別件数(最大5件)
  • mtg_extracted_tasks_titles: 抽出タイトル一覧(最大5件・サマリ用)

「未確認」運用ルール

  • ステータスは既存選択肢の inbox を流用(タスクDBに「未確認」ステータスは存在しないため、タイトル先頭の 【未確認・自動抽出】 プレフィクスで識別)
  • 草川が朝ohayoで一覧確認後、確定時はプレフィクスを削除して通常運用に昇格、誤抽出時は削除

Step 5: 政策候補の自動ドラフト抽出(軽量)

以下の いずれか が満たされた場合のみ、🎯政策候補DBに「下書き」ステータスでドラフトを1件追加:

  • 今日の市民意見追加が 10件以上 で、共通テーマが推測できる
  • 今日のニュースで 亀山関連度 ★★★★ 以上 が10件以上ある

ドラフト内容

タイトル: 【夜抽出ドラフト】YYYY-MM-DD - [推測テーマ]
ステータス: 下書き
作成元: oyasumi-skill-auto-draft
内容:
## 抽出元
- 今日の市民意見 N件: [タイトル列挙]
- 今日のニュース M件: [タイトル列挙]

## 仮の論点(要レビュー)
[2〜3行で論点の素描]

## 次アクション
朝のダッシュボードで草川が確認 → policy-synthesizer / policy-validator で本格検証へ

閾値未満なら何もしない(過剰なドラフトを生まない)。


Step 5.5: Drive 当日新規資料の要約と DB 登録

Step 1-E で抽出した 新規Drive資料リスト を1件ずつ処理する。リストが空なら本Stepをスキップ。

5.5-1. ファイル本文取得

各ファイルについて mcp__claude_ai_Google_Drive__read_file_content を呼ぶ。

  • 取得後、先頭1500字までで打ち切る(2026-05-07 燃費改善:旧3000字→1500字。要約200〜400字には十分)
  • 取得失敗(権限なし/非対応形式:動画・大型バイナリ等)の場合は 処理ステータス=要約失敗 でメタ情報のみ登録

5.5-2. 要約生成(200〜400字)

以下の 議員業務視点 で要約:

  • 何が書かれているか(中核内容を1〜2文)
  • 草川の仕事との接点(亀山市政・議会・市民相談・政策候補・選挙等のどれに関連するか)
  • 使い道の目星(一般質問ネタ/政策候補ドラフト/市民相談返信の根拠/後援会報告/選挙資料 等)

要約は平易な日本語で。禁止用語(悉皆等)は使わない

5.5-3. 議会活用メモ抽出(任意・該当時のみ)

要約と同時に、以下のいずれかが該当すれば「議会活用メモ」フィールドに1〜2行で記録:

  • 一般質問のネタになりそう → → 一般質問ネタ候補:[論点]
  • 既存の市民意見と連動 → → 市民意見「[件名]」と関連
  • 政策候補ドラフト化候補 → → 政策候補化検討:[テーマ]
  • 該当なしなら空欄

5.5-4. 📂Drive資料サマリDBへ登録

mcp__claude_ai_Notion__notion-create-pages で1件ずつページ作成:

  • parent: data_source_id: 317c4d02-ac0a-48c3-9fc5-56029000e64e
  • properties:
    • ファイル名: Driveファイルの title
    • ファイルID: Driveファイルの id(重複除外キー)
    • date:更新日時:start: modifiedTime(ISO8601)
    • date:更新日時:is_datetime: 1
    • MIMEタイプ: 下記マッピング表で SELECT
    • ファイル容量MB: fileSize ÷ 1048576(小数点2桁)
    • Drive URL: viewUrl
    • 要約: 5.5-2で生成した200〜400字
    • 議会活用メモ: 5.5-3で抽出(なければ空)
    • date:登録日:start: 今日のYYYY-MM-DD
    • date:登録日:is_datetime: 0
    • ソース: oyasumi自動
    • 処理ステータス: 成功時 要約済 / 失敗時 要約失敗 / 上限超過 スキップ
MIMEタイプ → SELECTマッピング
Google Drive mimeType SELECT 値
application/pdf PDF
application/vnd.google-apps.document Google Doc
application/vnd.google-apps.spreadsheet Google Sheet
application/vnd.google-apps.presentation Google Slide
application/msword / application/vnd.openxmlformats-officedocument.wordprocessingml.document Word
application/vnd.ms-excel / application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Excel
application/vnd.ms-powerpoint / application/vnd.openxmlformats-officedocument.presentationml.presentation PowerPoint
image/* Image
text/* Text
その他 その他

5.5-5. 集計を Step 6 へ受け渡す

  • 新規登録件数 N(成功)
  • 失敗件数 K
  • スキップ件数 S(上限超過分)
  • 各登録ページの URL とタイトル(Step 6のサマリで列挙するため保持)

5.5全体の制約:失敗が出ても他のファイル処理を止めない(fail-safe)。0件処理でもエラー扱いしない。

5.5-6. 議会活用メモから自動展開 → 📝質問ネタDB/🎯政策候補DB(2026-05-08追加・「未確認」運用)

5.5-4 で 要約済 ステータスで登録した Drive資料サマリレコードのうち、議会活用メモ フィールドが空でないものについて、テキストパターンを解析して該当DBへ自動展開する。

パターン分岐

議会活用メモのパターン 展開先
→ 一般質問ネタ候補:(.+) 📝一般質問ネタDB(42716725-fece-497f-9782-705076539de4
→ 政策候補化検討:(.+) 🎯政策候補DB(Step 5 とは別パスで「Drive単独抽出ドラフト」として 1件 create)
→ 市民意見「.+?」と関連 v2で対応(今は議会活用メモに残すのみ)

📝一般質問ネタDBへの create_pages

properties: {
  "タイトル": "【未確認・Drive自動抽出】[マッチ部の50字以内]",
  "状況": "収集",  // 既存選択肢を流用(「未確認」ステータスは無いため)
  "概要": "📂Drive資料『[ファイル名]』より自動抽出。\n議会活用メモ:[元メモ全文]\n出典: [Drive URL]",
  "作成元": "oyasumi-skill-auto-extract"
}

🎯政策候補DBへの create_pages(Step 5 の閾値判定に該当しなくても Drive 単独でドラフト化):

properties: {
  "タイトル": "【Drive抽出ドラフト】YYYY-MM-DD - [マッチ部の50字以内]",
  "ステータス": "下書き",
  "作成元": "oyasumi-skill-auto-extract",
  "内容": "## 抽出元\n📂 Drive資料『[ファイル名]』 [Drive URL]\n\n## 議会活用メモ(元)\n[元メモ全文]\n\n## 次アクション\n朝のダッシュボードで草川が確認 → policy-synthesizer で本格検証へ"
}

制約

  1. Drive資料1件から最大2展開まで(質問ネタ+政策候補の組合せ等)
  2. 重複防止: 同一タイトル+作成日=今日のレコードが既に存在する場合はスキップ
  3. 抽出失敗・create失敗時は他レコードを継続
  4. 「未確認」運用は 4.5-8 と同じ(タイトルプレフィクスで識別、草川が確定時にプレフィクス削除)

集計を Step 6 に渡す

  • drive_extracted_questions: 質問ネタ自動抽出件数
  • drive_extracted_policies: 政策候補自動抽出件数
  • drive_extracted_titles: 抽出タイトル一覧(最大5件・サマリ用)

Step 5.6: 公開済アーカイブ取得(月曜夜のみ・草川の実テキスト学習素材)

Step 0 で曜日が 月曜日 と判定された場合のみ実行。それ以外の曜日では完全スキップ。

5.6-1. スクレイパー実行

bash python3 ~/.claude/scripts/published-archive/scrape.py --since 8 を実行。 (過去8日間 = 1週間+α分の差分取得。月曜実行で漏れなく前週分カバー)

出力: ~/.claude/scripts/published-archive/output.json

  • ブログ(go2senkyo RSS):直近8日分
  • YouTube(公式RSS):直近8日分
  • Threads:直近5〜6件(ログイン制限)

5.6-2. 既登録URLと照合

📚公開済アーカイブDB(data_source 0ae2d907-d804-49ab-9860-b4b981d34c56)を notion-query-database-view で過去30日分取得し、公開URL プロパティと scrape 結果のURLを比較。

view_url(初回 fetch で取得後 memo):

  • https://app.notion.com/p/a9d670b3acec4f18bb8dabdd651f5fa9

5.6-3. 新規分のみ Notion create-pages

scrape結果の各itemについて、URLがDB未登録なら以下を properties としてページ作成:

  • タイトル: item.title
  • 媒体: item.media(ブログ/Threads/YouTube)
  • 公開URL: item.url
  • date:公開日:start: item.published(ISO8601)
  • date:公開日:is_datetime: 1
  • 本文: item.body の先頭1900字
  • 文字数: item.char_count
  • voice-DNA抽出済: __NO__
  • 差分あり: __NO__
  • 分野: 推定(タイトル+本文から「子育て/教育/防災/環境/交通/産業/行政/都市計画/福祉/その他」のいずれか)

ページ content には ## {媒体} 公開済テキスト 見出し+公開URL/公開日/文字数のみ記載(本文全文は output.json 参照)。

5.6-4. voice-dna 抽出トリガー

voice-DNA抽出済=false の件数を集計。5件以上溜まっていれば Task tool で kusakawa-voice-analyst を起動:

  • input: ~/.claude/scripts/published-archive/output.json を真の声ソースとして読み込み、voice-dna.md を更新
  • 完了後、対応する Notion ページの voice-DNA抽出済__YES__ に一括更新

未満なら何もしない。

5.6-5. 集計を Step 6 へ

  • 新規追加件数 N(媒体別内訳)
  • voice-dna抽出 起動有無
  • 失敗があれば末尾に警告

5.6全体の制約:失敗時もスキップ続行。0件処理でもエラー扱いしない。


Step 6: デイリーサマリページ作成(必須・毎晩)

mcp__claude_ai_Notion__notion-create-pages で以下を作成:

  • parent: page_id: 34ecf503-a68f-8182-99d3-fabb7e7c4c5e(📔 夜のまとめ)
  • タイトル: 📔 YYYY-MM-DD(曜日)デイリーサマリ
  • icon: 📔

本文圧縮ルール(2026-05-01 燃費精査)

  • 0件のセクションは見出しごと省略(「該当なし」だけ書いて空テーブルを残さない)
  • 箇条書きは1行30〜50字目安。説明的な長文化を避ける
  • 要約・備考は1セクション3行以内で完結。詳細は元ページURLにリンクで送る
  • テーブルは 指標 / 件数 2列のみで、行数は10行以内
  • 全体の目標:デイリーサマリ1本 = 2,500字以内(圧縮前は5,000〜8,000字になりがち)

content フォーマット(必須)

# YYYY年M月D日(曜日)デイリーサマリ

> 就寝時刻 HH:MM JST に oyasumi スキル自動生成

---

## 📊 今日の数字(実DB集計・Done/Archive除外済み)

| 指標 | 件数 |
|------|------|
| ✅ 本日 Done に変わったタスク | N件 |
| 🚚 期限≤今日の未完了タスク | M件(4/27期限 X件 / 4/28 Y件 / 4/29 Z件 など内訳) |
| 📆 明日(YYYY-MM-DD)期限の本日inbox+Remind タスク | 件数 |
| 📱 SNS投稿 | X件 |
| 📝 ブログ公開 | Y件 |
| 🎙️ 受付市民相談 | Z件 |
| 🗞️ 今朝のニュース | P件 |
| 📚 一般質問ネタ追加 | Q件 |
| 🎯 政策候補ドラフト追加 | R件([本日抽出 / 抽出なし])|
| 📂 Drive新規資料 | N件([要約済 N / 失敗 K / スキップ S])|
| 📚 公開済アーカイブ追加(月曜のみ) | N件([ブログ X / YouTube Y / Threads Z])|

**注意**: ダッシュボードの旧タスクテーブルからは件数を引かないこと。実DBを必ずクエリして集計(2026-04-30事故踏まえ)。

---

## 📱 今日のSNS発信(媒体別)

- **Threads** (件数): タイトル / タイトル / ...
- **X** (件数): タイトル / タイトル / ...
- **Instagram** (件数): タイトル / ...
- **Facebook** (件数): タイトル / ...
- **LINE** (件数): タイトル / ...

(0件の場合)今日のSNS発信はありません。

---

## 📝 今日のブログ公開

- [タイトル](URL)

(0件の場合)今日のブログ公開はありません。

---

## ✅ 完了したタスク

- タスク名(プロジェクト:xxx)
- ...

(0件の場合)今日完了したタスクはありません。

---

## 🚚 明日へ繰越したタスク

| # | タスク名 | 元期限 | 新期限 | 優先度 |
|---|---------|--------|--------|--------|
| 1 | ... | YYYY-MM-DD | YYYY-MM-DD | 高 |

(0件の場合)繰越しはありません。

---

## ⚠️ 期限超過アラート

- ⚠️ タスク名(期限:YYYY-MM-DD、N日超過)
- ...

(0件の場合)期限超過タスクはありません。

---

## 🎙️ 未対応の市民相談(累計)

総数:N件

直近5件:
1. 件名(受付日)
2. ...

→ 全件: [市民からの意見まとめ](https://www.notion.so/ec4c8e956fe74a518ecb393f893a8fde)

---

## 🗞️ 今朝のニュース振り返り

- [カテゴリ][★X] 見出し(議会活用メモ:あり/なし)
- ...

(議会活用メモが空のものを2件以上検出した場合の追記)
> ⚠️ 議会活用メモが未記入のニュースが N 件あります。朝のダッシュボードで補記推奨。

---

## 📂 本日のDrive新規資料(要約済 N件)

- **[ファイル名](Drive URL)**(MIMEタイプ・X.XMB)
  - 要約: [200〜400字の要約・1〜2文に圧縮表示]
  - 議会活用: [メモがあれば/なければ「(特になし)」]
- ...

→ 全件: [📂 Drive資料サマリDB](https://app.notion.com/p/8815412449ad4de5b3b57145513309df)

(0件の場合)本日Driveに新規保存された議員業務関連資料はありません。
(失敗・スキップが出た場合)⚠️ 要約失敗 K件 / 上限超過スキップ S件

---

## 🤝 本日の会議自動整理(AIミーティング → 📅DB)

**処理結果**:
- AIミーティング総数: `aim_total` 件
- 📅 DB へ自動転記: `aim_processed` 件
- 既紐付けスキップ: `aim_already_linked` 件
- 会議体未紐付け(確度<0.8、要朝レビュー): `aim_unmatched_kaigitai` 件

**転記された会議**(最大5件表示):
1. [タイトル] | 種別: [推定] | 重要度: [推定] | 会議体: [マッチ会議体名 or 未紐付け]
2. ...

(会議体未紐付けが1件以上ある場合の追記)
> ⚠️ 会議体マスタとマッチしなかった会議が `aim_unmatched_kaigitai` 件あります。朝のダッシュボードで会議体を手動紐付け、または新規会議体登録を検討してください。

→ 全件: <mention-page url="https://www.notion.so/a247fd5d56da4acdb9db3ad97cec6a12">🗂️ 会議ハブ</mention-page>

(0件の場合)本日のAIミーティング記録はありません。

---

## 📝 自動抽出された質問ネタ候補(未確認・2026-05-08新設)

- **総件数**: `drive_extracted_questions` 件(Drive由来)
- 朝のohayoで一覧表示・草川判断で「収集→検討中」へ昇格

**直近5件**:
1. `[drive_extracted_titles[0]]` ← 出典: [ファイル名]
2. ...

→ 全件: <mention-page url="https://www.notion.so/cb47d25e30b14b61b39f56254bf9432a">📝 一般質問ネタDB</mention-page>

(0件の場合)本日の自動抽出はありませんでした。

---

## ✅ 自動抽出されたタスク候補(未確認・2026-05-08新設)

- **総件数**: `mtg_extracted_tasks_total` 件(ミーティング由来)
- 朝のohayoで一覧表示・草川判断で確定 or 削除

**直近5件**:
1. `[mtg_extracted_tasks_titles[0]]` ← 出典: [ミーティング会議名]
2. ...

→ 全件: <mention-page url="https://www.notion.so/292cf503a68f814eafcdec9eed56f273">✅ タスクDB</mention-page>

(0件の場合)本日の自動抽出はありませんでした。

---

## 📅 明日(M月D+1日 曜日)の予定

| 時刻 | タイトル | 場所 |
|------|---------|------|
| HH:MM〜HH:MM | ... | ... |

(0件の場合)明日の予定は登録されていません。

---

## 🎯 朝イチで確認したいこと(自動推測)

[以下から優先度順に最大3項目を機械的に抽出]
1. ⚠️期限超過タスクが N 件 → 朝のダッシュボード「✅タスク」で対応判断
2. 未対応市民相談 N 件 → ◯◯案件は受付から N 日経過
3. 明日の最初の予定 HH:MM「◯◯」 → 移動時間 X 分前出発推奨
4. (政策ドラフト追加時)夜抽出された政策候補ドラフト → policy-synthesizer 実行検討

(特になしの場合)特筆事項はありません。良い夜を。

---

## 🔗 関連リンク

- 朝のダッシュボード: https://www.notion.so/722beb9e9827421aa5dbbef67c1c4688
- 昨日のサマリ: [昨日分のURLを記載/なければ「初回生成」]

仕様上の注意

  • 必ずこのページを作成する。データが0件でも空テーブルで作る
  • 数字は 必ず Step 1-D の取得結果そのまま。恣意的に丸めない
  • ページ作成後、URLを保持して Step 8 で使う

Step 6.5: 仕上げモード自動実行(2026-05-08新設・基準a 完全保守的)

nichijo「仕上げ」モード(U1〜U4 の A/B/C 系統)を oyasumi 内部で自動実行する。これにより草川が「仕上げ」発話をしなくても夜の段階で清書・素材抽出・DB振分が完了する。

設計方針(草川 2026-05-08 承認の基準a)

  • A: モバイル下書き仕上げ → voice-dna整合90%以上のみ自動清書、90%未満は朝レビュー
  • B: 当日コンテンツ素材抽出 → 素材抽出のみ(本文生成は朝下流agentに委ねる)
  • C: 全DB横断振り分け → 確度0.8以上のみ自動、未満は未紐付けで朝レビュー

6.5-A: 📱モバイル下書き仕上げ(保守的・voice-dna整合90%以上のみ自動)

6.5-A-1. 対象抽出

以下の下書きを集約:

  • 当日 nichijo モバイル下書き(日次ルーティンログDB の今日のページ内・モバイル走り書きセクション)
  • 📣SNS投稿管理DB(1bd98deb-624f-402c-aeb3-bdaa4782b389)の「ステータス=未着手」かつ「作成元=モバイル」の今日の下書き
6.5-A-2. voice-dna整合度の機械評価

各下書きに対して、以下を読み込んで照合:

  • ~/.claude/agents/knowledge/kusagawa_archive/04_compass/voice-dna.md(コア・必須)
  • voice_examples.md は重いのでフル読込しない。代わりに voice-dna.md §6(NG表現リスト)と §7(典型構文パターン)の整合だけチェック
6.5-A-3. 整合スコア計算

下書きを文単位で分割し、各文に以下のチェック:

  • ✅ 草川の常用語彙・文末・接続詞が使われているか
  • ❌ NG表現(断定的「絶対」「必ず」、難読語「悉皆」等)が含まれていないか
  • ✅ 文末パターンが voice-dna §6 の許容形式か(です/ます/思います/と考えます等)
  • ✅ 一文長が voice-dna §7 の標準範囲内(30〜80字目安)か

スコア = 整合文数 ÷ 全文数 × 100。90%以上のみ自動清書対象

6.5-A-4. 自動清書(90%以上のみ)
  • 誤字脱字修正(feedback_obsidian_memo.md 誤字疑いリスト参照)
  • 文末整え(一貫性確保)
  • 改行・段落整形
  • 論旨は絶対に変えない/情報を追加しない/削除は明白な誤字のみ

清書済みは:

  • nichijoモバイル下書き → 該当日次ルーティンログページの本文を notion-update-page で更新(モバイル走り書きセクションのみ)
  • SNS下書き → 📣SNS投稿管理DB の 本文 プロパティを更新、ステータスを 下書き完成 系の既存選択肢へ(無ければ 進行中
6.5-A-5. 90%未満は保留

90%未満のスコアの下書きは何もしない(草川オリジナル原文のまま保持)。朝のohayo「📱下書き仕上げ保留」セクションで一覧表示し、草川が手動で「仕上げて」発話するかオリジナルのまま使うかを判断。

6.5-A-6. 集計を Step 6.5 完了サマリに渡す
  • polished_total: 清書済み件数
  • polished_held: 保留件数(90%未満)
  • polished_titles: 清書済みタイトル一覧(最大3件)

6.5-B: 当日コンテンツ素材抽出(生成はしない)

6.5-B-1. 抽出元データ

Step 1-D / Step 2 / Step 3 / Step 4.5-8 / Step 5.5-6 で既に取得済みのデータから、ブログ/SNS素材になりうる「具体性の高い情報」を抽出:

  • 今日の Calendar / nichijo の活動記録(KEEPのみ)
  • 完了したタスク(具体的な成果が見えるもの)
  • 受け付けた市民意見(公表可なもの)
  • 自動抽出された質問ネタ候補(5.5-6 由来)
6.5-B-2. 素材分類

各情報を以下に分類:

  • ブログ深掘り素材:政策論考になりうる具体事例+背景データ(blog-writer 向け)
  • ブログノーマル素材:今日の活動報告として書ける素朴な現場ストーリー(blog-writer-normal 向け)
  • SNS即時素材:1〜2文で言い切れる具体的な気付き・場面(sns-content-creator 向け)
6.5-B-3. 出力先

📔 デイリーサマリページ(Step 6 で作成済み)に対して notion-update-page末尾に新セクション追加


---

## 📝 仕上げモード抽出:当日コンテンツ素材(2026-05-08新設・本文未生成)

### ブログ深掘り素材(最大3件)
1. **[テーマ名]** — フック: [1行・具体場面] / 軸: [伝える/繋ぐ/希望]
2. ...

### ブログノーマル素材(最大3件)
1. **[テーマ名]** — フック: [1行・現場ストーリー]
2. ...

### SNS即時素材(最大5件)
1. **[テーマ名]** — フック: [1行]
2. ...

→ 朝のohayoでこの素材一覧をチャット表示。草川が「ブログ書いて:[テーマ]」「SNS作って:[テーマ]」で本文生成を起動(content-pipeline 経由で安全ゲート通過)

本文生成はしない(生成は朝下流の blog-writer / sns-content-creator に委ねる)。

6.5-B-4. 集計
  • extracted_blog_deep: ブログ深掘り素材数
  • extracted_blog_normal: ブログノーマル素材数
  • extracted_sns: SNS素材数

6.5-C: 全DB横断振り分け(確度0.8以上のみ自動)

6.5-C-1. 対象抽出

本日新規作成された Notion ページのうち、適切なDBに振り分けされていないものを notion-search で検出:

  • 旧情報DB(325dd77f-)配下の今日新規ページ
  • 親ページ未設定の今日新規ページ
  • 一時メモ系ページ(タイトルが日付・短い・テーマ不明確)
6.5-C-2. 自動分類ロジック

各ページのタイトル+本文先頭500字を機械分類:

検出キー 振分先
会議体名・参加者・議題キーワード 📅ミーティングノートDB
市民氏名(敬称付き)・相談・お困り 📋市民意見受付BOX
ToDo・期限・次アクション ✅タスクDB
政策・条例・制度キーワード 🎯政策候補DB
議会・本会議・委員会キーワード 📝一般質問ネタDB

確度0.8以上のみ自動振り分け

  • 完全マッチ or 包含マッチ → 確度1.0、自動振分
  • 部分マッチ(複数キー検出 or キーが弱い) → 確度0.5以下、未紐付けで保持

Step 4.5(AIミーティング限定)で既処理のものはスキップ(重複防止)。

6.5-C-3. 自動振分実行

該当DBに notion-create-pages でレコード作成、元ページにはタイトル末尾に 【自動振分済2026-MM-DD】 を追加(重複処理防止)。

6.5-C-4. 未紐付け(確度<0.8)の扱い

何もしない。朝ohayo「🗂未紐付けページ」セクションで一覧表示。草川が朝に手動で振分する。

6.5-C-5. 集計
  • auto_classified_total: 自動振分済件数(DB別内訳)
  • auto_classified_unmatched: 未紐付け件数

6.5 全体のエラー処理

  • 各サブステップ(A/B/C)は独立して実行。1つが失敗しても他は続行
  • voice-dna.md / その他ローカル md 読込失敗時は、6.5-A をスキップして 6.5-B/C を継続
  • create-pages 失敗(個別)はスキップ、サマリにエラー件数を記録
  • Step 6 のデイリーサマリページは既に作成済みなので、本Stepの追記が失敗しても致命傷にならない

6.5 完了後のサマリ反映

Step 9 のチャット出力に「📝 仕上げモード自動実行」サマリを追加:

  • 清書済み N件 / 保留 K件
  • 素材抽出(深掘り L件 / ノーマル M件 / SNS P件)
  • 自動振分 Q件 / 未紐付け R件

Step 7: 週次レポート生成(金曜日の夜のみ)

Step 0 で曜日が 金曜日 と判定された場合のみ実行。それ以外の曜日では完全スキップ。

7-A. 月〜金の追加データ取得

Step 1-D の今日分取得とは別に、今週の月曜0:00〜金曜23:59 で再取得:

  • ✅タスクDB → ステータス=Done かつ 更新日が今週月〜金
  • SNS投稿管理DB → ステータス=投稿済 かつ 投稿日が今週月〜金
  • ブログ記事管理DB → ステータス=公開済 かつ 公開日が今週月〜金
  • 市民意見リストDB → 作成日が今週月〜金 + 同期間内に完了に変わった件数
  • 一般質問ネタDB → 作成日が今週月〜金
  • 🎯政策候補DB → 作成日が今週月〜金
  • 🎯政策候補DB → 承認状態=草川承認待ち かつ トリガー=週次自動 or 月次自動(policy-radar Routine 由来の累積未承認件数・2026-05-21追加)
  • 📝一般質問ネタDB → ネタ名が 🆕 or 🔄 で始まる かつ 状況=調査中(policy-radar Routine 由来の累積未承認件数・2026-05-21追加)

7-B. 週次レポートページ作成

mcp__claude_ai_Notion__notion-create-pages で:

  • parent: page_id: 34ecf503-a68f-81b0-9275-d34249f59cf6(📅 週次レポート)
  • タイトル: 📅 YYYY-MM-DD週 週次レポート(M/D(月)〜M/D(金))
  • icon: 📅

content フォーマット

# YYYY-MM-DD週 週次レポート

> M月D日(月)〜 M月D日(金)の活動集約 / oyasumi スキル金曜自動生成

---

## 📊 週次サマリ

| 指標 | 今週 | 内訳 |
|------|------|------|
| ✅ 完了タスク | N件 | 月X / 火X / 水X / 木X / 金X |
| 📱 SNS投稿 | X件 | Threads X / X X / IG X / FB X / LINE X |
| 📝 ブログ公開 | Y件 | - |
| 🎙️ 受付市民相談 | Z件 | 解決 K件(解決率 K/Z = N%)|
| 📚 一般質問ネタ追加 | Q件 | - |
| 🎯 政策候補追加 | R件 | (内訳:下書きL / 検討中M)|
| 📡 policy-radar 承認待ち累積 | S件 | 🎯草川承認待ち(週次/月次Routine由来)X件 / 📝🆕🔄状況=調査中 Y件 — 2026-05-21追加 |

---

## 🌟 今週のハイライト10件(自動抽出)

[以下のロジックで10件選出]
- 完了タスクで `優先度=高` だったもの → 上位
- 公開ブログ記事 → 上位
- 解決した市民相談 → 上位
- これらが10件未満なら、SNS投稿数最多の媒体・テーマで補う

1. **[ハイライト見出し]** — 説明
2. **[ハイライト見出し]** — 説明
3. **[ハイライト見出し]** — 説明

---

## 🚚 来週への引継ぎ

### 未完了タスク(繰越し済)
- ⚠️タスク名(期限:YYYY-MM-DD、超過X日)
- タスク名(期限:YYYY-MM-DD)

### 未対応市民相談
総数 N件 — 受付から7日以上経過 K件

### 月初/週初に動かす予定
(来週月曜以降のCalendarから抽出した重要予定 上位10件)
- M月D日(月)HH:MM ◯◯
- ...

---

## 📈 トレンド観察

- SNS投稿の媒体別バランス: [傾向コメント1行]
- ブログ公開ペース: 今週Y件(先週比 ±N件)※先週データが取れない場合は本項省略
- 市民相談の集中テーマ: [上位タグ]

---

## 🔗 今週のデイリーサマリ

- 📔 月曜サマリ: [URL or 未生成]
- 📔 火曜サマリ: [URL or 未生成]
- 📔 水曜サマリ: [URL or 未生成]
- 📔 木曜サマリ: [URL or 未生成]
- 📔 金曜サマリ: [今夜分URL]

---

## 💡 来週への提案(自動)

[以下から最大3点]
- 期限超過タスクが多い → 月曜朝に棚卸し時間を確保
- 未対応相談が滞留 → citizen-inquiry-responder の活用
- ブログが0件だった → content-pipeline で1本生成検討

Step 8: 朝のダッシュボードへの「📔 昨夜のまとめ」セクション反映

mcp__claude_ai_Notion__notion-update-page で朝のダッシュボードを更新:

  • page_id: 722beb9e9827421aa5dbbef67c1c4688
  • command: update_content

old_str の取り方

朝のダッシュボードを notion-fetch で取得し、## 📔 昨夜のまとめ セクションが既に存在するかチェック:

  • 存在する場合: そのセクション全体(次の ## 直前まで)を old_str
  • 存在しない場合: ## 📅 今日のスケジュール セクションの直前に挿入する形で old_str を組む

new_str

## 📔 昨夜のまとめ(M/D(曜日)oyasumi 自動生成)

- ✅ 完了 N件 / 🚚 繰越 M件(⚠️超過 K件)
- 📱 SNS X件 / 📝 ブログ Y件 / 🎙️ 相談 Z件
- 🎯 朝イチ確認: [Step 6 で抽出した最重要1項目]
→ 詳細: [📔 昨日のデイリーサマリ](Step 6 で作成したページのURL)
(金曜のみ追加)→ [📅 今週の週次レポート](Step 7 で作成したページのURL)

Step 9: チャット出力(簡潔・対話なし)

すべての処理が完了したら(成功・失敗問わず)、以下のフォーマットで端的に出力:

おやすみなさい。今日もお疲れさまでした。
(YYYY年M月D日(曜日)就寝時刻 HH:MM)

📊 今日の実績
✅ タスク完了 N件 / 🚚 明日へ繰越 M件(⚠️期限超過 K件)
📱 SNS X件 / 📝 ブログ Y件 / 🎙️ 相談 Z件 / 🗞️ ニュース P件
📚 一般質問ネタ +Q件 / 🎯 政策候補ドラフト +R件
📂 Drive新規資料 +N件(要約済)

🤖 自動抽出(未確認・朝のohayoでレビュー)
📝 質問ネタ候補 +[drive_extracted_questions]件 / ✅ タスク候補 +[mtg_extracted_tasks_total]件
🎯 政策候補(Drive由来) +[drive_extracted_policies]件

📝 仕上げモード自動実行(基準a 完全保守)
📱 清書済み [polished_total]件 / 保留 [polished_held]件(朝レビュー)
📦 素材抽出: ブログ深掘り [extracted_blog_deep] / ノーマル [extracted_blog_normal] / SNS [extracted_sns]
🗂 自動振分 [auto_classified_total]件 / 未紐付け [auto_classified_unmatched]件(朝レビュー)

📅 明日(M月D+1日 曜日)の準備完了
最初の予定: HH:MM ◯◯(場所)/ 全 N件

🎯 朝イチ確認推奨
[Step 6 で抽出した最重要1〜2項目]

📔 デイリーサマリ: [URL]
(金曜のみ) 📅 週次レポート: [URL]
(nichijo自動補完を実行した場合) ⚠️ nichijo を自動補完しました。朝に修正可能。

良い夜を。明日もまた `おはよう` でお会いしましょう。

エラーハンドリング方針(必須)

  • 各MCP呼び出しで失敗した場合、その項目を「取得失敗」として記録し他Stepは続行
  • 致命的なエラー(Notion全体が落ちている等)でも、Step 6のデイリーサマリは最低限のスケルトンで保存する
  • 失敗ログはチャット出力末尾に ⚠️ 一部取得失敗: [項目名] として簡潔に表示
  • 絶対にユーザーに「もう一度試しますか?」「どうしますか?」と聞かない

DB / ページ ID 一覧(変更厳禁)

役割 ID
朝のダッシュボード 722beb9e9827421aa5dbbef67c1c4688
📔 夜のまとめ親ページ 34ecf503-a68f-8182-99d3-fabb7e7c4c5e
📅 週次レポート親ページ 34ecf503-a68f-81b0-9275-d34249f59cf6
✅タスクDB 292cf503-a68f-81c6-b9dd-000b3ffdd2ce
🗂️プロジェクトDB 292cf503-a68f-81fe-bd40-000b64314f2e
日次ルーティンログDB f6d15ac0-73fa-414f-8242-03e8f06aa4e3
一般質問ネタDB 42716725-fece-497f-9782-705076539de4
SNS投稿管理DB 1bd98deb-624f-402c-aeb3-bdaa4782b389
ブログ記事管理DB dcdf44af-f285-499e-a6c3-08cc343fc3fa
市民意見リストDB c2c34bd8-1e16-492e-aab0-d3f497d18d4d
📰ニュースDB 29e5c1a2-d64d-4822-81fd-0d642c3f07bc
🎯政策候補DB 6f1895ac-(fetchで確定)
📂Drive資料サマリDB data_source 317c4d02-ac0a-48c3-9fc5-56029000e64e / DB top 8815412449ad4de5b3b57145513309df
📚公開済アーカイブDB data_source 0ae2d907-d804-49ab-9860-b4b981d34c56 / DB top a9d670b3acec4f18bb8dabdd651f5fa9

カレンダーID(注意)

  • プライマリ: t.higuchi125@gmail.com
  • 個人: kusakawa.taku@gmail.comkusagawa は誤り。2026-04-26に取りこぼし事故あり

注意事項(再掲・最重要)

  1. 完全自動化:途中で選択肢・確認・質問を一切しない
  2. 失敗時もスキップ続行:1Stepの失敗で全体を止めない
  3. 判断保留はドラフト保存:朝のダッシュボードで人間が確認する流れに統一
  4. Step 6のデイリーサマリは必ず作成:データ0件でも空サマリで保存
  5. 金曜判定は厳密に:他曜日で週次レポートを作らない
  6. 数字は実数そのまま:恣意的な丸めや件数絞り込みは禁止

update_content の罠と必須fetch verify(2026-04-27事故踏まえ追加)

Step 8(朝ダッシュボードへの「📔 昨夜のまとめ」差込)で notion-update-page を使う際、以下を厳守する:

マッチ失敗の典型パターン(サイレント失敗するので要警戒)

update_contentold_str がマッチしない場合エラーを返さず黙ってスキップする。

  • 特殊文字の取り違え:「・」(U+30FB) と「、」(U+3001) を unicode escape で書くと取り違えやすい。unicode escape 禁止、平文で書く
  • 長文 old_str はマッチ失敗確率が高い:1セクション全体を一発で置換せず、見出し+小区切りで複数passに分ける

必須:fetch verify

Step 8 完了後、必ず notion-fetch でダッシュボードを再取得し、「📔 昨夜のまとめ」セクションが正しく差し込まれていることを目視verify。失敗していれば即追加置換 + 再fetch。

同様にStep 6(デイリーサマリ作成)でも

create_pages の戻り値(id・url)を保持し、その後の参照に使う。サマリ作成失敗時は警告ログをチャット出力末尾に表示。

Step 9: 過去ページ漸進棚卸し(2026-05-05追加・自動化)

目的

2026-05-05のNotion完全棚卸しで発見した旧情報DB(325dd77f-)配下100件超の未整理ページを毎晩10件ずつ漸進整理する。一気に処理せず1日10件ペースで約34日かけて完了。

対象データソース

  1. 旧情報・質問DB (collection://325dd77f-2689-4d0e-ba79-f2a7d559014f) — 100件超未処理
  2. その他📦旧_リネーム済DB配下の個別ページで未移行のもの

実行ロジック(毎晩自動)

1. 旧情報DBから未処理ページ10件取得(古い順)
   - notion-query-database-view で全件取得
   - タイトルに「📦」「【整理済」が付いていない10件を選定

2. 各ページの内容をfetchして自動分類:
   - 政策候補化 → 🎯政策候補DB(b9f8d42a-)登録(承認状態=「草川承認待ち」)
   - 市民相談 → 📋市民意見受付BOX(c2c34bd8-)登録
   - 会議記録 → 📅ミーティングノートDB(26d7848d-)登録
   - 個人活動(JC/三重大応援団/家族)→ KEEP(個人領域保護)
   - 重複・古い・不要 → 元ページを📦旧_リネーム

3. 元ページのタイトル末尾に「【整理済2026-MM-DD】」を追加して二重処理防止

4. デイリーサマリ「📦 過去棚卸し」セクションに当日処理10件を記録

個人領域保護ルール(触らない)

以下キーワード含むページはKEEP

  • JC/青年会議所/卒業生事業/会員会議所
  • 三重大学応援団
  • 家族/嫁/息子/娘/誕生日
  • 個人/プライベート/読書/趣味
  • 卒園式/披露宴/年末挨拶

KPI

  • 1日10件ペース → 100件で約10日完了(2026-05-15頃)
  • 進捗が思わしくなければ1日15件に加速可(草川判断)

サマリ報告フォーマット

📦 過去棚卸し(2026-MM-DD)
- 政策候補化: X件(POL-XX)
- 市民相談化: X件
- 会議DB登録: X件
- リネーム: X件
- 旧情報DB残: あと XX件(推定完了 YYYY-MM-DD)

停止条件

  • 旧情報DB残ページが0件 → Step 9を自動スキップ
  • 連続3日エラー → 翌朝ohayoで草川に通知

禁止用語と誤字疑いリスト(草川向け原則・2026-04-27ユーザー指摘)

禁止用語(絶対使用しない)

禁止 代替
悉皆(しっかい) 全戸 / もれなく / 全件

草川は市民向け平易な日本語を重視。難読・専門用語は徹底排除。サマリ・nichijo自動補完・サマリページ等すべての出力で適用。

誤字疑いリスト(new_str作成時に確認)

固有名詞・地名・人名はNotion検索結果からコピペで書き起こす。記憶ベース生成は誤字を量産する。

  • 「みずきが丘」(×ミズキが丘)
  • 「夜間休日」(×夕間休日)
  • 「亀田伊藤煙火」(×亀町伊藤煌火)
  • 動詞「ぶつける/投げかける」(×訪れる)
  • 動詞「裁く/凌ぐ」(×議請ぐ)
  • 名詞「校区/馴染み」(×染み単独)
Install via CLI
npx skills add https://github.com/thiguchi125-debug/claude-config --skill oyasumi
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
thiguchi125-debug
thiguchi125-debug Explore all skills →