|
1 | 1 | # 日報 — 2026-08-12 |
2 | 2 |
|
3 | 3 | **作業者**: hideyukiMORI |
4 | | -**バージョン**: v1.8.168(セッション終了時点) |
| 4 | +**バージョン**: v1.8.169(セッション終了時点) |
5 | 5 |
|
6 | 6 | --- |
7 | 7 |
|
@@ -216,7 +216,60 @@ ls .venv/lib/python3.14/site-packages/mcp/server/ # fastmcp が無いこと |
216 | 216 |
|
217 | 217 | --- |
218 | 218 |
|
219 | | -## 4. 明日以降の方針 |
| 219 | +## 4. 週次の定期再検査を導入(v1.8.169) |
| 220 | + |
| 221 | +§1 の根本原因(CI が push に結合していて、コードが動かない限り外界の変化を検知できない)を |
| 222 | +塞ぐため、`.github/workflows/ci.yml` に週次 `schedule` を入れた。 |
| 223 | + |
| 224 | +| 追加 | 値 | 理由 | |
| 225 | +|---|---|---| |
| 226 | +| `schedule` | `cron: '30 0 * * 1'`(月曜 09:30 JST) | 検知したいのは**外界の変化**。検知器は `pip-audit` | |
| 227 | +| `workflow_dispatch` | — | schedule の初回発火を待たずに確認・再実行するため | |
| 228 | +| `concurrency.group` | <code v-pre>...-${{ github.event_name }}</code> を**含む** | 含めないと schedule 実行が push に cancel される | |
| 229 | + |
| 230 | +- **毎時 00 分を避けた理由**: GitHub 公式に「`schedule` イベントは高負荷時に遅延しうる。 |
| 231 | + 高負荷時間帯には毎時の開始が含まれる」「遅延の可能性を下げるには毎時の別の時刻に |
| 232 | + スケジュールせよ」と明記されているため、意図的に 30 分にずらした。 |
| 233 | +- **`uv.lock` をコミットしている効果**: `uv sync` が lock を尊重するので、週次実行は |
| 234 | + 「いま固定している版に対する既知脆弱性」を正確に測る。検知器として精度が高い。 |
| 235 | +- **フル CI を回す設計にした理由**: 監査専用の workflow を別に作ると、PR のマージ関門と |
| 236 | + 週次チェックが**別々に育って乖離する**。同じ `ci.yml` を回せば「週次で確認しているもの」= |
| 237 | + 「マージに必要なもの」が定義上一致する。 |
| 238 | + |
| 239 | +### 🔴 この装置自身の限界(未解決) |
| 240 | + |
| 241 | +**public リポジトリの scheduled workflow は、リポジトリの活動が 60 日間無いと |
| 242 | +GitHub により自動的に無効化される**(公式ドキュメントに明記)。 |
| 243 | + |
| 244 | +本リポジトリの空白は **74 日**(2026-05-30 → 2026-08-12)で、**しきい値を 14 日超えている**。 |
| 245 | + |
| 246 | +> **この装置は、それが検知しようとしている状態そのものによって停止させられうる。** |
| 247 | +> 「週次が動いていること」を外側から確かめる仕組みは、この workflow の中では解決できない。 |
| 248 | +
|
| 249 | +対策はリポジトリ単体では完結しない(外部からの `workflow_dispatch` 発火や、 |
| 250 | +活動中のリポジトリからの横断ディスパッチなど)。フリート全体の装置設計に属するため、 |
| 251 | +本日時点では**限界を明記するに留める**。 |
| 252 | + |
| 253 | +### 通知の実測(誰が赤に気づくのか) |
| 254 | + |
| 255 | +週次で回しても、失敗が誰にも届かなければ「CI が走っていなかった」が |
| 256 | +「走ったが誰も見なかった」に化けるだけなので、実測した。 |
| 257 | + |
| 258 | +| 測定項目 | 実測値 | |
| 259 | +|---|---| |
| 260 | +| 通知の配信 | **機能している**(`ci_activity` 通知が実際に生成されている) | |
| 261 | +| 未読通知の総数 | **1,828 件** | |
| 262 | +| うち `ci_activity` | **634 件** | |
| 263 | +| 本リポジトリの未読 `ci_activity` | **128 件** | |
| 264 | +| 最古の未読 | **2026-05-11**(3 ヶ月前) | |
| 265 | + |
| 266 | +**配信は届いている。届いた先が飽和している。** 週次の失敗通知を 1 件足しても、 |
| 267 | +1,828 件の山に 1,829 件目として積まれるだけで、検知装置としては機能しない。 |
| 268 | +通知経路の設計はフリート全体に効くため別途提案する。 |
| 269 | + |
| 270 | +--- |
| 271 | + |
| 272 | +## 5. 明日以降の方針 |
220 | 273 |
|
221 | 274 | | 優先度 | タスク | |
222 | 275 | |---|---| |
|
0 commit comments