チームアーキテクチャダイジェスト
チームダイジェストは、アーキテクチャのアクティビティをまとめたメールを、チームのメーリングリストへ定期的に届けます。送信スケジュール、タイムゾーン、宛先アドレス、含めたいセクションはチームごとに設定できます。ログインしなくても、適切な人が適切な情報を適切なタイミングで受け取れます。
ダイジェストに含まれるのは、そのチームが所有するプロジェクトだけです。そのため、各チームのメールは自分たちの担当範囲に絞られます。
ダイジェストの内容
ダイジェストには最大 7 つのセクションを含めることができ、それぞれチームごとにオン/オフを切り替えられます。
- アーキテクチャの健全性 — ドリフトスコアと前期間からの増減、コンフォーマンスの合格率、デプロイ件数、リードタイム、MTTR(DORA のスナップショット)。
- アーキテクチャの変更 — 追加・更新・削除された C4 要素(上位の項目)。
- 決定事項(ADR) — 期間中に作成またはマージされた ADR。
- プルリクエスト — ステータス別の Architecture Change Request。
- コンフォーマンス — 新たな違反と合格率。
- ディスカッション — アーキテクチャ要素(コンテナ、コンポーネント、ADR など)で新たに始まったコメントスレッド。
- インサイト — 期間中に生成されたアーキテクチャインサイト。
期間中に新しいアクティビティがないセクションは自動的に省略されます。半分空っぽのメールがチームに届くことはありません。
ダイジェストを有効にする
チーム管理者がチーム設定からダイジェストを設定します。
- チームセレクターを開き、チームの設定をクリックします。
- ダイジェストタブに切り替えます。
- チームのメールアドレスを入力します(通常は
team-frontend@company.comのような共有メーリングリスト)。 - 頻度を選びます:毎週、隔週、毎月。
- 送信する曜日/日付(毎週・隔週では月曜日、毎月では 1 日がデフォルト)と時刻を選びます。
- ダイジェストが正しい現地時刻に届くよう、チームのタイムゾーンを選びます。
- 含めたいセクションにチェックを入れます。
- 保存をクリックします。
off 以外の頻度で保存するまで、ダイジェストは無効(頻度が無効)のままです。
プレビューとテスト
定期スケジュールを有効にする前に、見た目と内容を確認しましょう。
- プレビュー — 最新のデータでレンダリングしたメールのプレビューをその場で開きます。メールは送信されません。
- テスト送信 — チームに設定されたダイジェストの宛先へ、メールを 1 通すぐに送信します。到達性や、実際のメールクライアントでの見え方を確認するのに便利です。
プレビューには受信者が目にするものと同じ HTML が表示されます。受信者のメールクライアントが prefers-color-scheme に対応していれば、ダーク/ライトモードへの対応も含まれます。
スケジュールの仕組み
スケジューラーは 1 時間ごとに実行されます。無効になっていない各チームについて、次のように処理します。
- 現在時刻をチームのタイムゾーンに変換します。
- 現地の時刻が
送信時刻と一致すれば、曜日/日付のルールを確認します。- 毎週は、設定された曜日に一致します。
- 隔週は、ISO 週番号が偶数の週の、設定された曜日に一致します。
- 毎月は、設定された日付に一致します。ただし月末日が上限です(そのため 31 日を指定すると 2 月は 28 日に送信されます)。
- 安全ウィンドウ(毎週は 6 日、隔週は 13 日、毎月は 27 日)内にすでにダイジェストが送信されていれば、その回はスキップされます。cron がリトライした場合の重複送信を防ぐためです。
スケジュールはいつでも変更できます。次に条件を満たした実行から、新しい設定が反映されます。
宛先
各チームが持てる digest_email アドレスは 1 つだけです。チームメンバー全員にダイジェストを届けたい場合は、共有メーリングリストを使ってください。ダイジェスト自体は個人向けにカスタマイズされないため、宛先を 1 つにしてチーム全体へ転送するのが最もシンプルな運用です。
頻度を無効から切り替えるときにアドレスが空の場合、保存は拒否されます。
権限
- チームメンバーはダイジェストの設定を閲覧できます。
- チーム管理者は設定の更新、プレビューの実行、テストメールの送信、ダイジェストのオン/オフを行えます。
- 組織管理者は、組織内のすべてのチームでチーム管理者として扱われます。
ダイジェストの停止・一時停止
チーム設定で頻度を無効に設定します。ダイジェストは次の実行時から停止します。設定は保持されるため、あとですべてを入力し直すことなく再度有効にできます。