mergegate/docs/dtp/GIT-RULES.md
林 駿甫 (Shunsuke Hayashi) 146fcafc5e [追加] DTP (Deterministic Task Protocol) 設計文書・指示書を移植
deterministic-task-protocol リポから miyabi-cli-standalone に統合:
- docs/dtp/: PLAYBOOK, PLAN, UML, GIT-RULES, Codex レビュー 3件
- autorun/: Phase 0-8 の TASKS/ASSIGNMENT/GATE + INDEX/HANDOFF/ROLLBACK
- project_memory/tasks.json: 全9 Phase の DAG SSOT
- skills/: polaris-ops, rust-llm-pitfalls
- .codex/instructions.md: Codex 設定

実装は miyabi-core に gate.rs, lock.rs, protocol.rs, store.rs を追加する方針。
既存の dag.rs, github.rs, approval.rs 等は変更不要。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 01:07:32 +09:00

5.4 KiB
Raw Permalink Blame History

Git 運用ルール

このリポジトリにおけるコミットとプルリクエストの出し方の定義。 全エージェント・全人間がこのルールに従う。


ローカルコミットのルール

いつコミットするか

状況 コミットする?
ファイルを1つ以上変更した はい、すぐコミット
テストを追加した はい、すぐコミット
ドキュメントを更新した はい、すぐコミット
設定ファイルを変更した はい、すぐコミット
作業途中だが一区切りついた はい、途中でもコミット
1時間以上コミットしていない 危険。今すぐコミット

原則: 小刻みにコミット。大きな変更を1コミットにまとめない。

コミットメッセージの形式

日本語タグ形式を使用する。

[タグ] 何をしたかの要約1行、日本語

(必要なら)詳細・理由・影響範囲

タグ一覧

タグ いつ使う
[追加] 新しい機能・ファイルを加えた [追加] DAGエンジンのトポロジカルソート実装
[修正] バグ・不具合を直した [修正] ロック競合チェックの off-by-one エラー
[改善] 既存コードの品質・性能を上げた [改善] Clippy警告を解消
[整備] 設定・CI・依存など開発環境の手入れ [整備] clap 依存を Cargo.toml に追加
[文書] ドキュメント・READMEの更新 [文書] HANDOFF プロトコルを追加
[削除] 不要なコード・ファイルを取り除いた [削除] 未使用の TaskState::Deploying を削除
[検証] テストの追加・修正 [検証] GATE拒否テスト5件追加
[完了] Phase が完了したGATE GREEN [完了] Phase 2: ステートマシンGATE統合

コミットの粒度

良い例:
  [追加] TaskLock に last_heartbeat フィールド追加
  [検証] lease 期限切れテスト追加
  [修正] is_expired() の閾値計算を修正

悪い例:
  [追加] Phase 4 全部実装  ← 大きすぎ。分割すること

リモート push のルール

いつ push するか

状況 push する?
Phase の GATE が GREEN になった はい、必ず push
HANDOFF_NOTE.md を書いた はい、必ず push次のエージェントが pull する)
作業の区切りがついた3コミット以上溜まった はい、push
1日の作業終了時 はい、必ず push
テストが RED のまま push してよい(ただしコミットメッセージに明記)

原則: push は頻繁に。ローカルに溜め込まない。


プルリクエストのルール

いつ PR を出すか

このリポジトリでは Phase 単位で PR を出す

状況 PR を出す?
Phase の GATE.md が全て GREEN はい、PR を出す
Phase の作業が途中 出さないmain に直接 push でよい)
複数 Phase をまとめて 出さない1 PR = 1 Phase

PR のタイトル形式

[完了] Phase {N}: {Phase の要約}

例:

[完了] Phase 1: 型定義のハードニング
[完了] Phase 2: ステートマシンにGATE predicate統合
[完了] Phase 6: Protocol統合全GATEを1クラスに結合

PR の本文テンプレート

## 概要
Phase {N} の全タスクを完了。

## 完了したタスク
- [x] タスク1
- [x] タスク2
- [x] タスク3

## テスト結果
- cargo test: {N}/{M} GREEN
- cargo clippy: 警告ゼロ

## GATE 状態
autorun/phase-{N}-*/GATE.md の全条件 GREEN

## 次の Phase
Phase {N+1} に引き継ぎ可能。
HANDOFF_NOTE.md を autorun/phase-{N}-*/ に配置済み。

PR のマージ条件

条件 必須?
cargo test GREEN 必須
cargo clippy 警告ゼロ 必須
GATE.md 全条件 GREEN 必須
HANDOFF_NOTE.md 作成済み 必須
人間のレビュー承認 Phase 6, 8 のみ必須。他は自動マージ可
Codex レビュー 推奨(必須ではない)

ブランチ戦略

main ← 全ての作業はここに直接 push
     ← Phase 完了時に PRmain → main ではなく、記録用)

feature/phase-{N}-{slug} ← Phase の作業ブランチ(任意)
  例: feature/phase-2-state-machine-gates

worktree ← Codex が並列実行時に使用

原則: main に直接 push してよい。ブランチは並列作業時のみ使用。


現在のコミット履歴

b3dcbfa [整備] autorun/ をトップレベルに移動
5f8b4e2 [文書] Auto Run Playbook 階層化 + Handoff Protocol 完成
c88f218 [追加] Rust 基盤: types + state machine with GATE predicates
c030294 [追加] 初期条件: SSOT ドキュメント + ワークスペース構造

禁止事項

禁止 理由
git push --force 他エージェントの作業を消す
git reset --hard ローカルの未コミット変更を消す
1日以上 push しない 他エージェントとの同期が切れる
コミットメッセージを英語で書く このリポは日本語タグ形式
10ファイル以上を1コミットにまとめる 分割すること