Bot mmnot 環境構築・インフラ 開発ログ

🛠️開発記録#234(2025/5/19)🚀 Bot 開発 “基盤フル整備 Day” レポート


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” として何ができるようになったか

  1. 高速 PDCA
    • 新戦略を追加しても CI が即判定 → “壊れないまま” デプロイ可。
  2. 安全な実験環境
    • DD ガード/Slack 通知がテストで保証されているため、
      実弾を張る前に Testnet + リプレイテスト で全シナリオを再現可能。
  3. 共同開発しやすい
    • コードスタイル統一・PR テンプレ整備でレビューが秒速。
  4. リリースの透明性
    • CHANGELOG とタグで “いつ・何が変わった?” を即トレース。

3. 次にやるべきこと(優先順)

  1. README 仕上げ
    • CI / Codecov バッジと最新アーキ図を貼る。
  2. pre-commit 導入
    • Ruff → Black をローカルでも自動実行し、CI 差分ゼロへ。
  3. ログリプレイ統合テスト
    • 過去板データを高速再生 → “1 h 以内に DD 発火するか” を自動判定。
  4. Docker 自動ビルド
    • タグ push → GHCR にイメージ → 本番は docker pull だけ。
  5. 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” をシンプルに。
  • カバレッジ = テストがコードをどれだけ通ったかの割合。高いほどバグ混入リスクを早期検知できる。

-Bot, mmnot, 環境構築・インフラ, 開発ログ