PJR-0161 登録簿承認typeの承認フローとPR/commit使い分けの規約化
1. 概要
承認を要するtype(change-request/decision/risk/question/issue)の承認フローをregister状態遷移(review→close等)へ明文化し、承認方式を既定commit+限定PRで規約化する。PR強制はdevelop→main昇格/change-request承認/不可逆・高リスク・schema破壊的変更に限定。branch protectionとCODEOWNERSで承認者を強制、decision/questionテンプレに承認者欄を追加。関連文書はbranch-workflow-guide/git-branching-standard/register-operation-guide/pjr-rulebook。
承認を要する登録簿 type(change-request / decision / risk / question / issue)について、承認フロー(誰が・どの状態遷移で承認するか)と承認方式(Pull Request ベースか単なる commit か)が未規定である。SpecDojo は既に exec → develop を自動 commit 統合、develop → main を PR 必須とする階層モデルを持つため、これに整合する形で type 別の承認運用を明文化する。
承認の実体(register status 遷移+チケットの承認欄)は常に commit で残し、人による強制ゲート(PR)は「変更が main に載る境界」と「提案者と承認者の分離が必要な高リスク type」に限定する、という原則を規約化する。
2. 完了条件
- 承認に関わる2種類(成果物レビュー / 内容承認)の区別が定義されている。
- 承認を要する type ごとに、
register状態遷移(review→close/reject/defer/wait)に沿った承認フローが定義されている。 - 承認方式の使い分け(既定 commit + 限定 PR)と、PR を強制する3ケース(
develop → main昇格 /change-request承認 / 不可逆・高リスク・framework schema 破壊的変更)が明文化されている。 - 承認者ロール(RACI の A)が type ごとに割り当てられている。
main/developの branch protection とCODEOWNERSによる承認者強制の方針が定義されている。decision/questionテンプレートに承認者・承認日(決定者/決定日・回答者/回答日)欄が追加されている。- 上記が
branch-workflow-guide/git-branching-standard/register-operation-guide/pjr-rulebookに齟齬なく反映され、npm run lint:mdが通る。
3. 設計方針
3.1. 承認の2区分
- 成果物レビュー: agent 生成物の妥当性確認。exec の
review状態+review result+registercloseで成立。 - 内容承認: 権限者が判断・変更・対応方針を承認する行為。チケットの「審査・決定」「採択理由」「対応方針」欄が担う。本 PJR が運用を定めるのは主に後者。
3.2. type 別の承認方式
| type | 既定方式 | ゲート / 境界 | 承認者 |
|---|---|---|---|
change-request | PR ベース | feature/exec → develop の PR approve | 変更承認権限者(PO/CCB) |
decision | commit ベース | §3/§4+決定者を記入し close→decided | 意思決定者 |
risk | commit ベース | 対応方針を記入し close/defer | リスクオーナー |
question | commit ベース | 回答確定し close→decided | 回答権限者 |
issue | commit ベース(exec review) | exec review→close | 課題リード |
todo | commit ベース(exec review) | exec review→close | - |
note / dependency | commit ベース | close / update | - |
| 全 type 共通 | PR ベース | develop → main 昇格 | リポジトリ管理者 |
3.3. PR を強制する3ケース
develop → main昇格(現行どおり・最終承認境界)。change-requestの承認(実装+職務分離+CI ゲートが必要)。todo/issue/decisionのうち、不可逆・高リスク・framework schema 破壊的変更(例: PJR-0160 の dependency enum 変更、PJR-0158 の exec-run ロック)。
3.4. 判断軸
可逆性(記録のみか実装を伴うか)、職務分離(自己承認の回避)、自動化整合(PR ゲートを自動 exec → develop の内側に置かない)の3点で方式を選ぶ。
4. 作業内容
| No | 作業 | 担当 | 状態 | メモ |
|---|---|---|---|---|
| 1 | 承認2区分と type 別承認フロー(状態遷移ベース)の定義 | ARC | done | register-operation-guide / pjr-rulebook |
| 2 | 承認方式(既定 commit + 限定 PR)と PR 強制3ケースの明文化 | ARC | done | branch-workflow-guide / 標準 |
| 3 | type 別承認者ロールの割り当て(RACI の A) | ARC | done | pm-raci との整合 |
| 4 | branch protection + CODEOWNERS による承認者強制方針の策定 | ARC | done | main/develop |
| 5 | decision/question テンプレへの承認者・承認日欄の追加 | ARC | done | pjr-decision/pjr-question テンプレート |
| 6 | 関連文書への反映と lint 検証 | ARC | done | lint:md |
5. 対応結果
- 承認の2区分(成果物レビュー / 内容承認)と type 別承認フロー(
review→close/reject/defer/wait)、承認者ロール(RACI の A)を specdojo:register-operation-guide の承認フローと承認者に定義した。 - 承認方式の使い分け(既定 commit + 限定 PR)と PR 強制3ケース(
develop → main昇格 /change-request承認 / 不可逆・高リスク・framework schema 破壊的変更)を specdojo:git-branching-standard の承認ゲートと PR 強制条件に明文化し、specdojo:branch-workflow-guide の承認方式を使い分けるに操作手順を追加した。 main/developの branch protection とCODEOWNERSによる承認者強制方針を specdojo:git-branching-standard の同期・履歴・保護に追加した。- specdojo:pjr-decision-template に承認節(決定者・決定日・承認方式・証跡)、specdojo:pjr-question-template に承認節(回答者・回答日・承認方式・証跡)を追加し、specdojo:pjr-rulebook の type 別標準構成へ
decision/questionの承認節を反映した。 npx prettier --writeで対象を整形し、npm run lint:mdが通ることを確認した(詳細は result を参照)。