Skip to content

feat(nightly-todo): PR タイトルに実装内容を入れる (ADR-072 決定 17) - #389

Merged
aloekun merged 1 commit into
masterfrom
feat/nightly-pr-title
Aug 11, 2026
Merged

feat(nightly-todo): PR タイトルに実装内容を入れる (ADR-072 決定 17)#389
aloekun merged 1 commit into
masterfrom
feat/nightly-pr-title

Conversation

@aloekun

@aloekun aloekun commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • 夜間ループが作る PR のタイトルを <台帳の PRタイトル列> (nightly-todo 順位 NNN) にした。実装内容と自動作成の両方が PR 一覧から読める
  • 台帳に optional な「PRタイトル」列を追加した(注意 列と同じ扱いで、列が無い台帳でも従来どおり動く)。無人可の 6 行を記入済み
  • タイトル用の screening screen_for_title を新設した(3 つ目の公開面。コードスパンで囲めないため本文用を流用できない)
  • 未記入の行は従来の feat: 順位 NNN の無人実装 (nightly-todo) へフォールバックする
  • 800 行ガイドラインに触れたため ledger.rs から ledger/screening.rs を切り出した(責務としても「出口ごとの無害化」で独立)

Context

Why: 2026-08-11 に PR #387(順位 339 の夜間実装)を観測した際、タイトルが feat: 順位 339 の無人実装 (nightly-todo) 固定で、自動実行したことしか分からないことが判明した。人間が作る PR(feat(review-request): bot 作成 PR へ人間資格情報で CodeRabbit レビューを要求する)と比べて一覧上の情報量が明確に劣り、翌朝レビューする人間が中身を開くまで対応を判断できない。

Scope decision:

  • 台帳の専用列にした。既存の 内容 列を切り詰める案は、あれが agent への依頼文であってタイトルではないため採らなかった(機械的に切っても「何を実装したか」にならず、conventional commits の prefix も feat: 固定のままになる)
  • agent にタイトルを書かせる案は採らなかった。agent 生成文字列が初めて公開面に出る構造で、ADR-072 決定 14 が意図的に避けたもの。agent は台帳の自由記述を読んでいる以上 injection の出口になりうる
  • 接尾辞にしたのは conventional commits の prefix を先頭に残すため。接頭辞は PR 一覧で左端が揃う利点があるが、他の PR とタイトル規約がずれる
  • 列は optional で、台帳 100 行超を一度に埋めなくてよい移行経路を残した

なぜ screening を分けたか: 既存の screen_for_public_output の無害化は「workflow が戻り値をコードスパンで囲む」ことが前提で、@mention と markdown を verbatim に残す設計だった(コードスパン内では描画も通知も起きないため)。PR タイトルはコードスパンにできないので、そのまま流用すると囲いが無い状態で素通りする。screen_for_title は追加で以下を行う。

処理 理由
空白の 1 行化 生の改行は --title の引数を壊す
@ → 全角 「PR タイトルからの mention が通知を飛ばすか」という外部仕様への依存を消す(飛ばない仕様だとしても、それに依存した設計にしない)
60 文字上限 PR 一覧で読む 1 行。本文用の 200 文字とは別の値

Validation

  • cargo test --workspace: 全 crate green。cli-nightly-task-select47 → 56 pass(9 件追加)
  • cargo clippy --workspace --all-targets: 警告 0 / pnpm lint:docs / markdownlint: 0 error
  • pre-push review (takt): verdict=APPROVE / Severity None
  • 実 exe で 4 経路を確認: 列あり → タイトル生成 / 列が空 → フォールバック / 列が無い台帳 → フォールバック / 末尾セル欠落 → exit 2
  • 実台帳で選択を再現し、次に選ばれる候補(順位 203)が意図したタイトルになることを確認。記入した 6 件はすべて 60 文字以内で切り詰めが発生しない

実装中に検出した自分のバグ 2 件

内容 検出方法
index out of bounds で panicColumns::max_index()pr_title を含め忘れ、末尾セルが欠けた行が列数チェックを通り抜けていた 実 exe で再現(index out of bounds: the len is 4 but the index is 4)→ 修正後は exit 2 の loud な停止になることを再確認
本文用 screening が改行を空白化ではなく除去していた(想定と違った) 対照テストが落ちて判明。テストを実挙動に合わせた

前者の教訓(「optional」はヘッダに列が無くてよいという意味であって、ヘッダにあるのに行に無くてよいのではない)はコード doc に残した。

出力契約の注意

cli-nightly-task-select の新出力 pr_title_display は、workflow の allowlist(grep -E '^(...)=')と出力契約の検証の両方へ足してある。片方だけだと新しい出力が黙って捨てられ、毎晩フォールバックし続ける形で劣化する — これは workflow のコメントが元から警告していた失敗モードそのもの。検証 step は pr_title_display=行の存在を見る(値は空でもよい)。

References

Summary by CodeRabbit

  • 新機能

    • 夜間タスクから作成されるPRに、タスクごとに設定したタイトルを反映できるようになりました。
    • タイトル未設定時は、従来の形式を自動的に使用します。
    • コミットメッセージとPRタイトルが同じ動的タイトルで統一されます。
  • 改善

    • PRタイトルは改行や不要な文字を整理し、読みやすく安全な形式で表示されます。
    • タスク選択結果に、作成予定のPRタイトルが表示されるようになりました。

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 09a97845-9705-47ce-9f31-e21506ecb391

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

台帳に任意の PRタイトル 列を追加しました。タイトル専用のスクリーニングを実装しました。選択結果と夜間ワークフローが動的タイトルを使用し、欠落時は従来タイトルへフォールバックします。

Changes

夜間PRタイトル処理

Layer / File(s) Summary
タイトルと本文のスクリーニング
src/cli-nightly-task-select/src/ledger/screening.rs, src/cli-nightly-task-select/src/ledger.rs
本文とPRタイトルの正規化、危険な不可視文字の除去、文字数制限を実装し、各処理をテストしました。
台帳タイトル列の取り込み
src/cli-nightly-task-select/src/ledger.rs
Taskpr_title を追加し、任意列の読み取り、空セル、列不足、framing 逃避を検証します。
選択結果へのタイトル出力
src/cli-nightly-task-select/src/main.rs
pr_title_display を選択結果へ追加し、タイトル用スクリーニングを適用します。
夜間ワークフローのPR作成
.github/workflows/nightly-todo.yml, docs/adr/adr-072-nightly-todo-loop.md, docs/claude-code-web-tasks.md
出力契約に pr_title_display を追加し、順位付きタイトルまたは従来タイトルをコミットとPR作成へ渡します。運用規則とタスク表を更新します。

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Ledger
  participant TaskSelector
  participant NightlyWorkflow
  participant GitHubCLI
  Ledger->>TaskSelector: PRタイトルを読み取る
  TaskSelector->>TaskSelector: screen_for_titleで処理
  TaskSelector-->>NightlyWorkflow: pr_title_displayを出力
  NightlyWorkflow->>NightlyWorkflow: PR_TITLEを決定
  NightlyWorkflow->>GitHubCLI: gh pr create --title PR_TITLE
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed タイトルは、nightly-todo がPRタイトルに実装内容を追加する主要変更を明確かつ簡潔に示しています。
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/nightly-pr-title

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🤖 PR Monitor 分析 (GitHub Actions バックストップ)

  • トリガー: issue_comment (created) / 実行 run
  • CI: pending — rust (ubuntu-latest) pending, rust (windows-latest) pending, request skipping
  • レビュー状況: CodeRabbit はレビュー未着 (処理中プレースホルダーコメントのみ、findings なし)。人間レビュー・インラインコメントともに 0 件
  • Verdict: user_decision (レビュー未着・CI 未確定のため判定材料なし)

Applicable Findings (Critical / High / Major)

(該当なし — レビュー指摘 0 件)

Applicable Findings (Medium 以下)

(該当なし)

Filtered (not applicable)

(該当なし)

次のアクション

  • CI (rust ubuntu/windows) と CodeRabbit レビューの完了を待ち、findings が付いた時点で再分析する
  • diff 概要: 6 ファイル変更 (+516/-191)。.github/workflows/nightly-todo.ymlpr_title_display 出力の許可リスト追加・output-contract 検証強化、src/cli-nightly-task-select/src/ledger.rs の大幅リファクタと新規 ledger/screening.rs (287行) 追加、ADR-072 と docs/claude-code-web-tasks.md の更新 — ADR-072 決定17 (PR タイトルへの実装内容反映) に沿った実装

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/cli-nightly-task-select/src/ledger/screening.rs`:
- Around line 110-130: Extend is_bidi_or_invisible_format_char to cover the
complete intended Unicode format/invisible character set, including U+2061 and
any other omitted characters. Ensure both reject_prompt_frame_escape in ledger
parsing and screen_for_title use this predicate so such characters are rejected
in framing and title screening. Add regression coverage for a payload containing
U+2061 in both paths.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d3e01b78-affd-4ede-a0ff-6520ba425f66

📥 Commits

Reviewing files that changed from the base of the PR and between cee3e37 and 634b2c1.

📒 Files selected for processing (6)
  • .github/workflows/nightly-todo.yml
  • docs/adr/adr-072-nightly-todo-loop.md
  • docs/claude-code-web-tasks.md
  • src/cli-nightly-task-select/src/ledger.rs
  • src/cli-nightly-task-select/src/ledger/screening.rs
  • src/cli-nightly-task-select/src/main.rs

Comment thread src/cli-nightly-task-select/src/ledger/screening.rs Outdated
@github-actions

Copy link
Copy Markdown
Contributor

🤖 PR Monitor 分析 (GitHub Actions バックストップ)

  • トリガー: pull_request_review (submitted) / 実行 run
  • CI: rust (ubuntu-latest) pass、rust (windows-latest) pass、request skipping、CodeRabbit pass (Review completed)。analyze (本ジョブ) は実行中
  • レビュー状況: CodeRabbit がレビュー投稿済み (COMMENTED, 2026-08-11T07:42:44Z) — インライン指摘 1 件。人間レビューは 0 件
  • Verdict: needs_fix

Applicable Findings (Critical / High / Major)

# File (Line) Reviewer Issue Recommended Action
1 src/cli-nightly-task-select/src/ledger/screening.rs:110-130 CodeRabbit (Major, Security & Privacy) is_bidi_or_invisible_format_char が U+2061 (FUNCTION APPLICATION, Unicode Cf カテゴリの不可視演算子) を未列挙。コード確認済み: reject_prompt_frame_escape (ledger.rs:343) と screen_for_title (screening.rs:67) はどちらもこの述語を使っており、===END_LEDGER\u{2061}_DATA=== のような payload が contains 比較と文字判定の両方を素通りしてフレーミング区切り文字を偽装できる。同関数は直前のコミットで U+2060/U+00AD/U+FE00-FE0F/U+061C/U+E0000-E007F/U+200E-200F を既に追加済み (docstring 記載の pre-push review SEC-NEW-ledger-rs-L327 および CodeRabbit 指摘への対応) であり、本指摘は同じ回避クラスの延長線上にある妥当な指摘 U+2061 (および他に見落としている Cf/invisible format 文字があればそれも) を列挙へ追加し、reject_prompt_frame_escapescreen_for_title の両経路で U+2061 payload の回帰テストを追加する

Applicable Findings (Medium 以下)

(該当なし)

Filtered (not applicable)

(該当なし — 唯一の指摘は project fitness filter を通過。プラットフォーム適合性・ADR 意図的設計・sensitive-file・スコープ外・false positive のいずれにも該当せず)

次のアクション

  • is_bidi_or_invisible_format_char (screening.rs:110) へ U+2061 を追加し、両経路 (reject_prompt_frame_escape / screen_for_title) の回帰テストを追加する fix を実施する
  • 修正後、同種の未列挙 Cf コードポイントが他に残っていないか (Unicode Cf カテゴリの網羅性) を合わせて再確認する

タイトルが "feat: 順位 NNN の無人実装 (nightly-todo)" 固定で、自動実行したことしか
分からなかった。翌朝 PR 一覧を見た人間が中身を開くまで何が入っているか判断できない。

- 台帳へ optional な PRタイトル 列を追加する (注意 列と同じ扱い、列が無くても動く)
- タイトルは <PRタイトル列> (nightly-todo 順位 NNN) の形にする
- 未記入の行は従来のタイトルへフォールバックする (移行期間を許す)
- タイトル用の screening (screen_for_title) を新設する
- 出力契約の allowlist と検証の両方へ pr_title_display を足す
- ADR-072 決定 17 として記録し、決定 14 へ 3 つ目の公開面を追記する

タイトルはコードスパンで囲めないため、本文用 screening をそのまま流用すると囲いが
無い状態で @mention と改行が素通りする。出口ごとに必要な処理が違うという決定 14 の
方針に従い、空白の 1 行化・@ の全角化・60 文字上限を行う別関数にした。

実装中に自分のバグを 2 件検出した。optional 列を max_index() へ数え漏らして
index out of bounds で panic する経路 (実測で再現し exit 2 へ修正) と、本文用
screening が改行を空白化ではなく除去する実挙動の取り違え。

ADR-072 決定 17
@github-actions

Copy link
Copy Markdown
Contributor

🤖 PR Monitor 分析 (GitHub Actions バックストップ)

  • トリガー: pull_request_review (submitted) / 実行 run
  • CI: rust (ubuntu-latest) pass、rust (windows-latest) pass、request skipping、CodeRabbit pass (Review completed)。analyze (本ジョブ) 実行中。fix ジョブは cancelled — 後続の review イベント (coderabbitai の返信, 07:56:27Z) による concurrency 上書きで、実質的な CI 失敗ではない
  • レビュー状況: CodeRabbit が Major 指摘 1 件を投稿 (07:42:44Z)。aloekun が 07:55:49Z に返信で「修正しました」と報告 (列挙方式から Unicode 16.0 Cf 全域 + variation selector のレンジテーブル方式へ変更、両経路に回帰テスト追加、exe 実測で 56→59 pass)。CodeRabbit は 07:56:27Z にこの返信を受けて根本原因対応と認め、スレッドを resolved マーク。ただし PR の head commit は依然 634b2c1c のまま変化がなく、gh pr diff で確認した現在のコードにも U+2061 / Cf 全域テーブルは含まれていない — 返信で説明された修正はまだ PR ブランチに push されていない
  • Verdict: needs_fix (指摘への対応方針はレビュースレッド上で合意済みだが、実コミットに未反映のため)

Applicable Findings (Critical / High / Major)

# File (Line) Reviewer Issue Recommended Action
1 src/cli-nightly-task-select/src/ledger/screening.rs:110-130 CodeRabbit (Major, Security & Privacy) is_bidi_or_invisible_format_char が U+2061 (FUNCTION APPLICATION) 等の invisible format 文字を未列挙で、===END_LEDGER<U+2061>_DATA=== のような payload が reject_prompt_frame_escape / screen_for_title の両方をすり抜けてフレーミング区切り文字を偽装できる。aloekun は返信でレンジテーブル方式への置き換え + 回帰テスト追加による修正を報告し、CodeRabbit も根本原因対応と認めているが、現在の head commit (634b2c1) の diff にはその変更が反映されていない 説明された修正 (Unicode Cf 全域テーブル化 + variation selector 拒否 + 両経路の回帰テスト) を実際に PR ブランチへ push する。push 後、diff に U+2061 を含む Cf レンジ拒否ロジックとテストが含まれているか再確認する

Applicable Findings (Medium 以下)

(該当なし)

Filtered (not applicable)

(該当なし)

次のアクション

  • 説明されている修正コミットが実際に push されているか確認する。push 済みなら本分析の「未反映」判断は誤り (API 反映遅延) の可能性があるため、次回分析で head sha の変化を再確認する
  • push が未完了であれば、その完了を待って CI (rust ubuntu/windows, CodeRabbit) の再実行結果を確認する
  • mergeStateStatus が BLOCKED (reviewDecision 未確定) のため、上記対応後の最終マージ判断は人間に委ねる

@aloekun
aloekun force-pushed the feat/nightly-pr-title branch from 634b2c1 to 191d462 Compare August 11, 2026 08:00
@aloekun
aloekun merged commit 92e6446 into master Aug 11, 2026
3 checks passed
@aloekun
aloekun deleted the feat/nightly-pr-title branch August 11, 2026 09:44
aloekun added a commit that referenced this pull request Aug 11, 2026
本セッションで実施した WP-18 (2) 運用問題 5 件の対処 (#385/#386/#388/#389) について、
実走観測の記録・計画書の整理・feedback 採否の登録をまとめて行う。

## 実走観測の記録

- ADR-072 へ定常運用 2 巡目 (PR #387) の観測を追加する。決定 15-17 投入後の
  9 項目が設計どおり動いたことと、review-request の成功判定が「反応の有無」で
  止まっている (拒否も success になる) ことを事実として記録する
- ADR-019 へレート制限の競合が記録の翌日に実地で再現したことを追加する
- 順位 386 の観測を 7 回 → 9 回へ更新する。うち 1 件は空コミットではなく
  「近い revset を優先する規則」そのものが原因で、本命の対処案だけでは
  解決しない可能性がある点を併記する

## 計画書の整理 (ADR-073 新設)

- 完了条件の切り方 (残作業を 3 区分に分け、その WP が生んだ問題は完了条件に
  含め、WP 外の派生は含めない) を ADR-073 として切り出す
- WP-18 節を 71 行 → 35 行へ整理し、完了記録を削除して残作業のみにする
- ローカル実行時の jj workspace 注記を ADR-072 へ移す

## post-merge feedback 採否 (順位 414-432)

- 採用候補 24 件のうち 6 件は当該 PR 内で実装済みのため対象外とした
  (実物と照合して確認)
- 採用 19 件を系統 A-G + セッション由来へ分類して登録する
- SIGPIPE resilience は却下する。レポートが「実測証拠」とした recovery が
  実際には発生しておらず (run 1 回・completed・marker の痕跡なし)、提案内容も
  ADR-030 §L1 で実装済みだった。feedback レポート自身が根拠を誤った初の実例
  として記録し、順位 403 の対象へ含めるよう申し送る

## 付随

- todo21.md が 57KB (50KB 閾値超過) のため todo22.md を新設する
- todo-summary.md の「現行の追加先」が todo14.md のまま stale だったので直す
- cli-docs-lint が検出した preamble の数詞ずれ (23 → 24) を 9 ファイルで更新する

ADR-073 / 順位 414-432
aloekun added a commit that referenced this pull request Aug 11, 2026
本セッションで実施した WP-18 (2) 運用問題 5 件の対処 (#385/#386/#388/#389) について、
実走観測の記録・計画書の整理・feedback 採否の登録をまとめて行う。

## 実走観測の記録

- ADR-072 へ定常運用 2 巡目 (PR #387) の観測を追加する。決定 15-17 投入後の
  9 項目が設計どおり動いたことと、review-request の成功判定が「反応の有無」で
  止まっている (拒否も success になる) ことを事実として記録する
- ADR-019 へレート制限の競合が記録の翌日に実地で再現したことを追加する
- 順位 386 の観測を 7 回 → 9 回へ更新する。うち 1 件は空コミットではなく
  「近い revset を優先する規則」そのものが原因で、本命の対処案だけでは
  解決しない可能性がある点を併記する

## 計画書の整理 (ADR-073 新設)

- 完了条件の切り方 (残作業を 3 区分に分け、その WP が生んだ問題は完了条件に
  含め、WP 外の派生は含めない) を ADR-073 として切り出す
- WP-18 節を 71 行 → 35 行へ整理し、完了記録を削除して残作業のみにする
- ローカル実行時の jj workspace 注記を ADR-072 へ移す

## post-merge feedback 採否 (順位 414-432)

- 採用候補 24 件のうち 6 件は当該 PR 内で実装済みのため対象外とした
  (実物と照合して確認)
- 採用 19 件を系統 A-G + セッション由来へ分類して登録する
- SIGPIPE resilience は却下する。レポートが「実測証拠」とした recovery が
  実際には発生しておらず (run 1 回・completed・marker の痕跡なし)、提案内容も
  ADR-030 §L1 で実装済みだった。feedback レポート自身が根拠を誤った初の実例
  として記録し、順位 403 の対象へ含めるよう申し送る

## 付随

- todo21.md が 57KB (50KB 閾値超過) のため todo22.md を新設する
- todo-summary.md の「現行の追加先」が todo14.md のまま stale だったので直す
- cli-docs-lint が検出した preamble の数詞ずれ (23 → 24) を 9 ファイルで更新する

ADR-073 / 順位 414-432
aloekun added a commit that referenced this pull request Aug 11, 2026
本セッションで実施した WP-18 (2) 運用問題 5 件の対処 (#385/#386/#388/#389) について、
実走観測の記録・計画書の整理・feedback 採否の登録をまとめて行う。

## 実走観測の記録

- ADR-072 へ定常運用 2 巡目 (PR #387) の観測を追加する。決定 15-17 投入後の
  9 項目が設計どおり動いたことと、review-request の成功判定が「反応の有無」で
  止まっている (拒否も success になる) ことを事実として記録する
- ADR-019 へレート制限の競合が記録の翌日に実地で再現したことを追加する
- 順位 386 の観測を 7 回 → 9 回へ更新する。うち 1 件は空コミットではなく
  「近い revset を優先する規則」そのものが原因で、本命の対処案だけでは
  解決しない可能性がある点を併記する

## 計画書の整理 (ADR-073 新設)

- 完了条件の切り方 (残作業を 3 区分に分け、その WP が生んだ問題は完了条件に
  含め、WP 外の派生は含めない) を ADR-073 として切り出す
- WP-18 節を 71 行 → 35 行へ整理し、完了記録を削除して残作業のみにする
- ローカル実行時の jj workspace 注記を ADR-072 へ移す

## post-merge feedback 採否 (順位 414-432)

- 採用候補 24 件のうち 6 件は当該 PR 内で実装済みのため対象外とした
  (実物と照合して確認)
- 採用 19 件を系統 A-G + セッション由来へ分類して登録する
- SIGPIPE resilience は却下する。レポートが「実測証拠」とした recovery が
  実際には発生しておらず (run 1 回・completed・marker の痕跡なし)、提案内容も
  ADR-030 §L1 で実装済みだった。feedback レポート自身が根拠を誤った初の実例
  として記録し、順位 403 の対象へ含めるよう申し送る

## 付随

- todo21.md が 57KB (50KB 閾値超過) のため todo22.md を新設する
- todo-summary.md の「現行の追加先」が todo14.md のまま stale だったので直す
- cli-docs-lint が検出した preamble の数詞ずれ (23 → 24) を 9 ファイルで更新する

ADR-073 / 順位 414-432
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant