GitHub ActionsでPR本文に必須セクションを強制する
PR本文にADR(Architecture Decision Records)セクションを含めるルールを作ったが、AIエージェントがルールを守らないことがあった。CLAUDE.mdに書いてもスキップされるケースがあるため、CIで機械的にブロックする方が確実。
Before(手動):
レビュー時に「ADRセクションがない」と指摘して差し戻し。見落としも発生する。
After(自動):
# .github/workflows/pr-body-check.yml
name: PR Body Check
on:
pull_request:
types: [opened, edited]
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Check required sections
uses: actions/github-script@v7
with:
script: |
const body = context.payload.pull_request.body || '';
const required = ['## Related ADRs'];
const missing = required.filter(s => !body.includes(s));
if (missing.length > 0) {
core.setFailed(`PR本文に必須セクションがありません: ${missing.join(', ')}`);
}
ポイント:
types: [opened, edited]で作成時と編集時の両方をチェックする- AIエージェントに「ルールを守れ」と書くより、CIで落とすほうが確実に機能する
- 必須セクションが増えたら
required配列に追加するだけで拡張できる