今日は頑張った。疲れた。 pic.twitter.com/ltBOkyh6CT
— よだか(夜鷹/yodaka) (@yodakablog) May 17, 2025
1. 今日やったこと(7 時間スプリント)
カテゴリ | 作業 | 効果 |
---|---|---|
構造リファクタ | core.py をcli / execution / guard / notify へ分割 | 役割ごとにファイルが独立。武器(戦略)や防具(ガード)を “着せ替え” で拡張可能に |
CI & 品質 | Poetry + GitHub Actions マトリクス(Py 3.10–3.12) Ruff+Black+pytest-cov & Codecov | プッシュごとに lint / format / テスト / カバレッジを全自動チェック |
テスト拡充 | ユニットテスト 7 → 14 件 (guard・notify を新規追加) | カバレッジ ≈ 87 %。DD ガード & Slack 通知の安全網を確保 |
ドキュメント | Mermaid アーキ図 / Session Summary / PR テンプレ | 新参でも 5 分で全体像把握できる状態に |
リリース管理 | CHANGELOG.md 作成 & v0.1.0 タグ発行 | 以降はバージョン単位で安全にロールバック/比較可能 |
2. これで “Botter” として何ができるようになったか
- 高速 PDCA
- 新戦略を追加しても CI が即判定 → “壊れないまま” デプロイ可。
- 安全な実験環境
- DD ガード/Slack 通知がテストで保証されているため、
実弾を張る前に Testnet + リプレイテスト で全シナリオを再現可能。
- DD ガード/Slack 通知がテストで保証されているため、
- 共同開発しやすい
- コードスタイル統一・PR テンプレ整備でレビューが秒速。
- リリースの透明性
- CHANGELOG とタグで “いつ・何が変わった?” を即トレース。
3. 次にやるべきこと(優先順)
- README 仕上げ
- CI / Codecov バッジと最新アーキ図を貼る。
- pre-commit 導入
- Ruff → Black をローカルでも自動実行し、CI 差分ゼロへ。
- ログリプレイ統合テスト
- 過去板データを高速再生 → “1 h 以内に DD 発火するか” を自動判定。
- Docker 自動ビルド
- タグ push → GHCR にイメージ → 本番は
docker pull
だけ。
- タグ push → GHCR にイメージ → 本番は
- Dependabot 月次運用
- 依存パッケージの脆弱性 PR を自動化。
今日の合言葉:
「武器を鍛える前に素体を鍛えよ。安全ネットが張れればワクワク開発は加速する!」
GHCR って何?
項目 | 説明 |
---|---|
正式名 | GitHub Container Registry |
役割 | Docker イメージ(コンテナ)を GitHub 上にホスティング できるサービス |
ざっくり言うと | 「GitHub 版 Docker Hub」 リポジトリと同じアカウント/権限体系で使える |
使い方イメージ | ```bash # ビルド & タグ docker build -t ghcr.io/USER/mm-bot:0.1.0 . # ログイン & プッシュ echo $GHCR_PAT |
なにが嬉しい? | - リポジトリの リリースタグとイメージタグがリンク - Private/Org 権限も GitHub と連動 - GitHub Actions で docker/build-push-action を呼ぶだけで自動デプロイ |
本番サーバー側は
docker pull ghcr.io/USER/mm-bot:0.1.0
するだけ。
タグを切る=リリース=イメージ配布 がワンフローになります。
カバレッジって何?
用語 | 意味 | このプロジェクトでの例 |
---|---|---|
テストカバレッジ | テストを実行したときに ソースコードの何%が実際に走ったか という指標 | pytest+pytest-cov で計測 → Codecov に送信 |
行カバレッジ(Line coverage) | 行単位で “実行された / されてない” を判定 | guard.py の 100 行中 90 行が実行 → 90 % |
分岐カバレッジ(Branch coverage) | if / else の両パスを踏んだかを見る指標 | DD ガードの should_stop が true/false 両方テストされているか |
今回の数値 | ≈ 87 %(14 本のユニットテストで計測) | |
目安 | 80 % 超えると「主要ロジックは大体カバー」と言われるが、 重要関数は 100 % 行・分岐を目指すことが多い |
カバレッジを上げるほど “改修しても壊れたら赤く光る” ので安心して武器(戦略)を追加できます。
まとめ
- GHCR = GitHub が提供するコンテナ倉庫。タグと連携して “push → pull” をシンプルに。
- カバレッジ = テストがコードをどれだけ通ったかの割合。高いほどバグ混入リスクを早期検知できる。