コンテンツにスキップ

開発・品質チェック

このページでは、実装変更時に使うformatter、linter、テスト、ドキュメントのビルド、pre-commitの手順を説明します。変更内容ごとのテスト範囲はテストマップを参照してください。

開発依存関係

uv sync --group dev --group docs
npm install
uv run pre-commit install

PythonはRuffとpytest、Markdown / YAML / JSON / TOMLはPrettier、shell scriptはShellCheckで検証します。

Python

リポジトリ全体を確認する場合:

uv run ruff check src tests
uv run ruff format --check src tests

変更ファイルだけを確認・整形する場合:

uv run ruff check path/to/file.py
uv run ruff format --check path/to/file.py
uv run ruff format path/to/file.py

無関係なファイルをまとめて整形せず、変更した範囲を中心に実行します。

Python以外

確認:

npm run format:check -- README.md docs/**/*.md configs/**/*.yaml

変更ファイルの整形:

npm run format -- path/to/file.md path/to/config.yaml

shell scriptを変更した場合はpre-commit経由またはShellCheckを直接実行します。

テスト

全pytest:

uv run --group dev pytest -q

よく使う部分テスト:

uv run --group dev pytest tests/test_module_boundaries.py
uv run --group dev pytest tests/test_encoder.py tests/test_training.py tests/test_reranker.py

変更種別ごとの基準:

変更 主なテスト
module boundary tests/test_module_boundaries.py
encoder / model input tests/test_encoder.pyとtraining系
self-play / training record tests/test_training.pyとself-play / promotion系
submission bundle tests/test_submission.py
rule agent tests/rule_agents/

詳細はTest Mapを参照してください。

ドキュメント

ローカルserver:

mise run docs:serve

strict build:

uv run --group docs mkdocs build --strict

VS CodeではTasks: Run Taskからdocs: serveを起動し、Simple Browserでhttp://127.0.0.1:8000を開きます。

現行仕様はdocs/architecture/、運用手順はdocs/operations/、実験途中の仮説はdocs/research/、作業履歴はdocs/journal/へ置きます。

コミット前の確認

staged fileをcommit前と同じ条件で確認します。

uv run pre-commit run

hookはcommit時にも自動実行されます。全ファイルへの一括修正は意図しない差分を増やすため、通常はstaged fileまたは変更ファイルを対象にします。

生成物

次のディレクトリはソースコードではなく生成物として扱います。

data/          self-play / evaluation data
checkpoints/   model checkpointとlatest alias
logs/          長時間run、manifest、metrics
dist/          submission bundle
site/          MkDocs build output

大きな生成物は原則commitしません。schemaとlatest aliasの規約は生成物一覧を参照してください。

変更時の確認順

  1. 変更したmoduleのnarrow testを実行する。
  2. 変更ファイルへRuffまたはPrettierを実行する。
  3. public API、CLI、config、artifact形式を変えた場合はmodule docsを更新する。
  4. module boundary変更時はboundary testを実行する。
  5. 可能なら全pytestとMkDocs strict buildを実行する。

実装上の共通ルールはリポジトリ直下のAGENTS.md、コードの責務境界はソースコード設計を参照してください。