おはようございます。まさきんです。
朝は予定の確認、メールのチェック、チャットの返信漏れがないかの確認と、地味にやることが多い時間帯です。身支度をしながら片手間にこなすには、情報が散らばりすぎています。
そこで、その日の予定と気になる連絡をAIにまとめさせ、1枚のブリーフィングとして自動生成する仕組みを作りました。今回は情報の集め方から、見た目を安定して仕上げる工夫まで紹介します。
きっかけは「開くアプリが多すぎる」こと
カレンダー、メール、チャット。それぞれ別のアプリを開いて確認するだけで、朝の数分が終わってしまいます。しかも、見るべき情報とそうでない情報が混在しています。
なので、複数のアプリを横断して「今日、自分が見るべきもの」だけを1か所にまとめる仕組みを作りました。生成したものは、1枚のHTMLファイルとして書き出しています。
情報を集める順番を決めている
情報源が複数あると、どこから手をつけるかで結果の質が変わります。なので、次の順番で優先的に情報を集めるようにしています。
- カレンダー: 今日の0時から翌日の0時までの予定を、まず1回で取得する
- メール: 自分が名指しで質問されていて、まだ返信していないスレッド
- チャット: 直近2日程度で、自分宛のメンションやDMのうち、まだ反応していないもの
- 翌日の準備: 翌日の予定に主催者として名前が入っているものがあれば、関連しそうなキーワードで検索し、準備すべき材料がないか確認する
この順番にしているのは、カレンダーが最も情報の粒度が粗く扱いやすいからです。先に全体の骨格を作ってから、メールやチャットで細部を埋めていくほうが、情報が発散しにくいと感じています。
「返信が必要」の判定基準
メールやチャットは、通知の数が多いだけで実際に対応が必要なものは限られています。なので、次の基準で絞り込んでいます。
- 自分個人が名指しで聞かれていて、まだ返信していないもの
- グループ全体への連絡で、誰か一人が答えればいいものは対象外にする
- すでに絵文字などで反応済みのものは、対応済みとみなして除外する
グループ宛の連絡まで拾ってしまうと、対応不要な通知だらけになります。「自分が動かないと止まる」ものだけに絞ることで、ブリーフィングの情報量を適切に保っています。判定に迷うものは、スレッドを実際に開いて自分の返信が入っているかどうかを確認してから判断します。
この判定作業も、通信がつながっていることが大前提です。電波が不安定だと、新着そのものを拾い損ねるかもしれません。仕組みを作りながら、回線の安定性を地味に頼りにしていると感じています。
情報を2つのグループに分ける
拾い上げた項目は、次の2つに分けています。
| グループ | 内容 |
|---|---|
| 対応が必要 | 今日中に反応しないと相手を待たせてしまうもの |
| 最近解決したもの | 気にしていたが、すでに片づいたと分かるもの |
「対応が必要」なものだけを並べると、案外少ないことに気づきます。一方で「最近解決したもの」もあえて載せています。気になっていたことが片づいたと分かるだけで、朝の気分が変わるからです。
何も無い日は、無理に埋めずに「今日は特に対応が必要なものはありません」と1行だけ表示するようにしています。空欄を取り繕おうとすると、かえって嘘っぽい内容になってしまうと感じています。
表現の仕方にも気を配っている
ブリーフィングの文章は、指示口調にならないように気をつけています。「対応してください」ではなく、「〜という状況です」と事実を置くだけの書き方にしています。
謝罪めいた表現も避けています。「大した連絡はありませんでした」ではなく、「静かな一日です」のように、状況をそのまま伝える言い方を選んでいます。評価や急かす表現を混ぜないことが、毎朝ストレスなく見続けられる条件だと感じています。
1日の形をひと目で分かるようにする
文字の情報だけでなく、その日の予定の詰まり具合をSVGの折れ線グラフのようなイメージで表現しています。会議が集中している時間帯は線が高く、予定のない時間は平坦になるようなイメージです。
文字を読まなくても、線が高いか低いかを見るだけで、大まかな負荷感がつかめます。忙しい日ほど、こういう直感的な情報のほうが早く頭に入ります。図はできるだけシンプルにし、実際の予定の詰まり具合以上に山を誇張しないようにしています。
表示が毎回崩れずに開けるようにする工夫
1枚のHTMLファイルとして毎朝生成するので、フォントや画像を外部から読み込む形にすると、ネットワークの状態によって表示が崩れることがあります。なので、次のようにしています。
- 見出しに使うフォントは、ファイルの中にBase64形式で埋め込んでおき、外部への通信なしで表示できるようにする
- それ以外の文字は、端末に標準で入っているフォントをそのまま使う
さらに、生成した直後に一度、実際にブラウザで開いた見た目をスクリーンショットで確認するようにしています。ヘッドレスブラウザで自動的にファイルを開き、画像として保存してから目視するという簡単な仕組みです。
node -e "const {chromium} = require('playwright');
(async () => {
const b = await chromium.launch();
const p = await b.newPage({viewport: {width: 960, height: 1400}});
await p.goto('file:///path/to/generated.html');
await p.screenshot({path: 'check.png', fullPage: true});
await b.close();
})();"
生成してすぐに人の目で確認できるようにしておくと、レイアウトが崩れたまま気づかずに一日を過ごす、という事故を防げます。
やってみて感じたこと
一番の変化は、朝アプリを何個も開かなくてよくなったことです。1枚を見れば、その日押さえておくべきことが分かります。
平日の決まった時間に自動生成されるようにしているので、見るタイミングを自分で覚えておく必要もありません。習慣として定着させやすいのは、こういう「決まった時間に自動で用意されている」設計のおかげだと思います。
こういう人に向いている
- 朝、複数のアプリを開いて情報を確認するのに時間がかかっている人
- 通知は多いが、実際に対応が必要なものを見極めたい人
- HTMLの自動生成やヘッドレスブラウザでの確認くらいの実装は苦にならない人
まとめ
予定と連絡をAIに横断的にまとめさせ、1枚のブリーフィングとして毎朝用意する仕組みを作りました。情報を集めることより、「見るべきものだけに絞る」判断と「毎回同じ見た目で確実に開ける」作り込みの両方が、実は一番の勘所だったと感じています。
この仕組みは、毎朝当たり前につながる通信環境があってこそ成り立っています。ブリーフィングを作りながら、自分の回線まわりを見直すいいきっかけになったのではないでしょうか。
本記事にはアフィリエイト広告を含みます。当サイトのリンクを経由して商品・サービスへお申し込みいただいた場合、提携先企業から成果報酬を受け取ることがあります。 また、運営者は楽天グループに所属する社員であり、紹介プログラムを通じた報酬を受け取る場合があります。記事内容・評価は広告の有無にかかわらず、運営者の実体験と調査に基づき作成していますが、 上記の関係性をご理解のうえお読みください。詳しくは免責事項・アフィリエイト表記をご覧ください。