品質ゲート(PR 前チェック)
変更を提出する前に、そのリポジトリの標準チェックを一通り走らせて壊れていないか確認する。
手順
- リポジトリのルートで実行する。 マーカーファイルで stack を判定する(複数該当時は両方)。
- 下表のコマンドを format(check) → lint → typecheck → test の順で実行する。
- 設定ファイルに定義済みのコマンド(package.json の scripts 等)を最優先する。 下表は無い場合のフォールバック。
- check ごとに pass / fail を報告する。fail があれば該当出力を示す。ツールが未設定ならスキップした旨を明記する(勝手に導入しない)。
stack 別コマンド
| マーカー | stack | format | lint | typecheck | test |
|---|---|---|---|---|---|
pyproject.toml (+uv.lock) |
Python (uv) | uv run ruff format --check . |
uv run ruff check . |
uv run mypy src/ |
uv run pytest |
package.json |
Node/TS | <pm> run format or biome format . |
<pm> run lint |
<pm> run typecheck / tsc --noEmit |
<pm> test |
deno.json(c) |
Deno | deno fmt --check |
deno lint |
deno check . |
deno test |
Cargo.toml |
Rust | cargo fmt --check |
cargo clippy -- -D warnings |
(clippy に含む) | cargo test |
パッケージマネージャ判定(Node/TS)
pnpm-lock.yaml→pnpm/package-lock.json→npm/yarn.lock→yarn/bun.lockb→bun- まず
package.jsonのscriptsを見て、定義されている script 名(lint/typecheck/check/test/format)を使う。 biome.jsonがあれば lint/format はbiomeに寄せる。
結果の報告フォーマット
必ずこの表の形で報告する(結果は ✅ pass / ❌ fail / ⏭️ skip の3値):
| check | コマンド | 結果 | 備考 |
|---|---|---|---|
| format | `uv run ruff format --check .` | ✅ pass | |
| lint | `uv run ruff check .` | ❌ fail | E501 ×2(下に出力) |
| typecheck | `uv run mypy src/` | ✅ pass | |
| test | `uv run pytest` | ⏭️ skip | tests/ が存在しない |
fail がある場合は表の下に該当エラー出力を貼る。全て pass なら「create-pr で PR 作成に進めます」と添える。
ルール・コツ
- 設定ファイル>推測。 リポジトリが定めたコマンドがあれば必ずそれを使う。CI 設定(
.github/workflows)に実行コマンドが書かれていれば、それを正とする。判定に迷ったら(scripts と CI で異なる等)推測で選ばずユーザーに確認する。 - format は基本
--check(破壊しない)。ユーザーが「直して」と言ったら format/lint の自動修正(ruff check --fix、deno fmt、cargo fmt、<pm> run lint --fix)を実行し、再チェックする。 - モノレポ/ワークスペースでは、変更があったパッケージ単位で実行する。
- 環境準備が必要な場合の例: Node 系は事前に
eval "$(mise activate bash)"が要ることがある。失敗したらまず環境を確認する。 - すべて pass したら、続けて
create-prで PR を作成できる旨を伝える。
完了条件
以下を全て満たしたら完了。満たせない項目があれば、黙って省略せず理由を報告する。
- リポジトリの全マーカーファイルを確認し、検出した stack を報告した
- 各チェック(format/lint/typecheck/test)を 実行 / 失敗 / スキップ のいずれかで漏れなく報告した(スキップには理由を付す)
- fail があれば該当する出力(エラーメッセージ)を提示した
- 設定ファイル(scripts / CI)に定義済みコマンドがあるか確認してから、フォールバック表を使った
- 勝手にツールを導入・設定変更していない
補足
- 社名・内部 URL・認証情報などの固有情報は扱わない。