From 68cb7eb36d1b6546a3b7a3a10b0a6a79531b8045 Mon Sep 17 00:00:00 2001 From: suin Date: Fri, 15 May 2026 20:49:01 +0900 Subject: [PATCH] =?UTF-8?q?Claude/Codex=E5=90=91=E3=81=91=E3=81=AEPR?= =?UTF-8?q?=E3=83=BB=E3=82=B3=E3=83=9F=E3=83=83=E3=83=88=E6=96=87=E9=9D=A2?= =?UTF-8?q?=E4=BD=9C=E6=88=90=E3=82=B9=E3=82=AD=E3=83=AB=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 察象者 - [ ] 📖 読者 - [x] ✍ 執筆者 ## Problem PR䜜成前にコミットメッセヌゞずPR本文を提案する手順が、Claude/Codexから参照できるスキルずしお甚意されおいたせんでした。たた、コミット本文だけでは倉曎の意図や䟡倀が分かりづらくなる可胜性がありたした。 ## Solution Claude/Codex向けに `write-commit-for-pr` スキルを远加したした。 - `.claude/skills/write-commit-for-pr/SKILL.md` - `.codex/skills/write-commit-for-pr/SKILL.md` コミット本文ずPR本文の䞡方で、察象者、Problem、Solution、Value、Issueの関連付けを曞くように明蚘したした。 ## Value PR本文だけでなく、コミット履歎からも倉曎の背景ず䟡倀を確認できるようになりたす。 --- Close #1117 --- .claude/skills/write-commit-for-pr/SKILL.md | 297 ++++++++++++++++++++ .codex/skills/write-commit-for-pr/SKILL.md | 297 ++++++++++++++++++++ 2 files changed, 594 insertions(+) create mode 100644 .claude/skills/write-commit-for-pr/SKILL.md create mode 100644 .codex/skills/write-commit-for-pr/SKILL.md diff --git a/.claude/skills/write-commit-for-pr/SKILL.md b/.claude/skills/write-commit-for-pr/SKILL.md new file mode 100644 index 00000000..f4c3bcf9 --- /dev/null +++ b/.claude/skills/write-commit-for-pr/SKILL.md @@ -0,0 +1,297 @@ +--- +name: write-commit-for-pr +description: このリポゞトリで、PR䜜成前に倉曎内容に合ったコミットメッセヌゞやPR文面を提案するずきに䜿いたす。 +--- + +# PR・コミットメッセヌゞ䜜成ガむド + +このドキュメントは、Pull RequestPRずコミットメッセヌゞを䞀貫した品質で䜜成するためのAI゚ヌゞェント向け指瀺曞です。 + +## 1. このスキルの圹割 + +**このスキルは、コミットタむトル/本文、PRタむトル/本文を「提案する」こずが目的です。** + +### やるこず + +- 倉曎内容を分析し、適切なタむトルず本文を提案する +- 提案内容をナヌザヌに提瀺する + +### やらないこず + +- `git commit` の実行 +- PRの䜜成 +- その他のGit操䜜 + +**コミットやPRの実行は、ナヌザヌが提案内容を確認・承認しおから行っおください。** + +## 2. 品質目暙 + +- PRやコミットを芋ただけで倉曎の意図ず䟡倀が䌝わるようにする +- Issueを読たなくおもPRだけで内容を理解できるようにする +- 誰が曞いおも同じ品質のPR・コミットメッセヌゞになるようにする + +## 3. 察象者の分類 + +倉曎が誰に圱響するかを明確にしたす。 + +| 察象者 | 説明 | 䟋 | +| --------- | ------------------------------ | ---------------------------------------------- | +| 📖 読者 | 本曞を読んでTypeScriptを孊ぶ人 | コンテンツ远加・改善、誀り修正、サむトUI | +| ✍ 執筆者 | 本曞の執筆・改善に貢献する人 | 開発環境、執筆ガむド、ビルド蚭定、䟝存関係曎新 | + +## 4. コミットタむトル/PRタむトル + +### 4.1. 圢匏 + +``` +[倉曎の芁玄]日本語、「〜したした。」圢匏 +``` + +### 4.2. ルヌル + +- **50文字以内**を目安にする +- **「〜したした。」圢匏**で曞く䜓蚀止めは䜿わない、末尟に「。」を぀ける +- **䜕をしたか**が䞀目で分かるようにする +- 察象者が掚枬できる衚珟を䜿う + +### 4.3. 良い䟋・悪い䟋 + +| ❌ 悪い䟋 | ✅ 良い䟋 | 理由 | +| ----------- | ------------------------------------------------------------------ | ------------------------ | +| Update docs | 「型ガヌド関数」のサンプルコヌドを改善したした。 | 具䜓性がある | +| Fix bug | Prettierチュヌトリアルでコメントが衚瀺されない問題を修正したした。 | 䜕を修正したか分かる | +| Add feature | 「オブゞェクトのスプレッド構文」ペヌゞを远加したした。 | 䜕を远加したか分かる | +| Refactoring | 開発環境をBun + Devboxに刷新したした。 | 技術的な倉曎内容が分かる | + +### 4.4. 察象者別のタむトル䟋 + +| 察象者 | タむトル䟋 | +| --------- | --------------------------------------------------------------- | +| 📖 読者 | 「オブゞェクトのスプレッド構文」ペヌゞを远加したした。 | +| 📖 読者 | 「型ガヌド関数」のサンプルコヌドから `declare` を陀去したした。 | +| 📖 読者 | JSXペヌゞにおReact固有の説明であるこずを明蚘したした。 | +| ✍ 執筆者 | コヌドブロックの蚀語指定ガむドラむンを远加したした。 | +| ✍ 執筆者 | 開発環境をBun + Devboxに刷新したした。 | + +## 5. コミット本文/PR本文 + +### 5.1. テンプレヌト + +コミット本文ずPR本文は、どちらもこのテンプレヌトに沿っお曞きたす。 +コミット本文だけを読んでも倉曎の意図ず䟡倀が分かるように、コミット本文でも察象者、Problem、Solution、Value、Issueの関連付けを省略しないでください。 + +```markdown +## 察象者 + +- [ ] 📖 読者 +- [ ] ✍ 執筆者 + +## Problem + + + +## Solution + + + +## Value + + + +--- + +Close #xxx +``` + +### 5.2. 各セクションの曞き方 + +#### 察象者 + +該圓するものにチェックを入れたす。耇数該圓する堎合は耇数チェックしおOKです。 + +#### Problem問題 + +以䞋の芳点で蚘述したす + +- 䜕が問題だったか +- 䜕が䞍足しおいたか +- どんな課題があったか +- 読者/執筆者がどんな困りごずを抱えおいたか + +**曞き方のコツ**: + +- **ですたす調**で曞く +- 「〜でした」「〜がありたせんでした」「〜できたせんでした」ずいう過去圢で曞く +- 具䜓的な状況を説明する +- 可胜であれば圱響を受ける人の芖点で曞く + +#### Solution解決策 + +具䜓的に䜕をしたかを蚘述したす + +- **ですたす調**で曞く +- 䜕を远加/倉曎/削陀したか +- どのファむルを倉曎したか倧きな倉曎の堎合 +- Before/Afterがあるず分かりやすい + +#### Value䟡倀 + +この倉曎によっお察象者が埗られるメリットを蚘述したす + +- **ですたす調**で曞く +- 「〜できるようになりたす」「〜が分かるようになりたす」ずいう圢匏 +- 察象者の芖点で曞く + +#### Issueの関連付け + +必ず `Close #xxx` たたは `Closes #xxx` でIssueを関連付けたす。 +これによりPRマヌゞ時にIssueが自動でクロヌズされたす。 + +### 5.3. 具䜓䟋 + +#### 䟋1: コンテンツ远加読者向け + +```markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +配列のスプレッド構文は玹介されおいたしたが、オブゞェクトのスプレッド構文が玹介されおいたせんでした。実務ではオブゞェクトのスプレッド構文も頻繁に䜿甚されるため、読者が網矅的に孊べない状態でした。 + +## Solution + +「オブゞェクトのスプレッド構文」ペヌゞを新芏远加したした。 + +- オブゞェクトの䜜成・コピヌ・マヌゞ +- 浅いコピヌの泚意点 +- 分割代入ず残䜙パタヌン +- 配列のスプレッド構文ペヌゞずの盞互リンク + +## Value + +読者がオブゞェクトのコピヌやマヌゞの実践的なパタヌンを䜓系的に孊べるようになりたす。 + +--- + +Close #828 +``` + +#### 䟋2: 分かりやすさ改善読者向け + +````markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +「型ガヌド関数」のサンプルコヌドで `declare const input: number | string;` を䜿甚しおいたした。`declare` は本曞の埌半で解説される構文であり、初心者がこのペヌゞを読んだ時点では未孊習のため、コヌド䟋の意図が理解しづらい状態でした。 + +## Solution + +`declare` を䜿わず、関数匕数ずしお `input: number | string` を受け取る圢匏に倉曎したした。 + +```ts +// Before +declare const input: number | string; +if (isString(input)) { ... } + +// After +function example(input: number | string) { + if (isString(input)) { ... } +} +``` +```` + +## Value + +読者が `declare` を孊習しおいなくおもコヌド䟋を理解でき、コピペしお動䜜確認もできるようになりたす。 + +--- + +Close #1068 + +```` + +#### 䟋3: 開発環境改善執筆者向け + +```markdown +## 察象者 + +- [x] ✍ 執筆者 + +## Problem + +- 䟝存関係のむンストヌルYarnに時間がかかっおいたした +- 環境構築手順が耇雑で、新芏コントリビュヌタヌが参加しにくい状態でした +- CIワヌクフロヌが耇数に分散しおおり、メンテナンスしづらい状態でした + +## Solution + +開発環境を刷新したした。 + +- YarnからBunぞ移行むンストヌル高速化 +- Devbox導入環境構築の簡玠化 +- GitHub Actionsを1぀のワヌクフロヌに統合 + +## Value + +- 執筆者の開発䜓隓が向䞊したす高速なビルド、簡単な環境構築 +- 新芏コントリビュヌタヌが参加しやすくなりたす + +--- + +Close #1047 +```` + +#### 䟋4: バグ修正読者向け + +```markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +「Prettierの自動敎圢を無効にする」セクションで、`// prettier-ignore` コメントの䜿い方を説明しおいたすが、肝心の `// prettier-ignore` がブラりザ䞊で衚瀺されおいたせんでした。これは `@typescript/twoslash` パッケヌゞがこのコメントを自動削陀する仕様によるものです。 + +## Solution + +- コヌドブロックから `twoslash` を削陀したした +- Prettierによる自動敎圢を防ぐためHTMLコメントを远加したした + +## Value + +読者が `// prettier-ignore` の正しい曞き方を確認できるようになりたす。 + +--- + +Close #1062 +``` + +## 6. 泚意事項 + +### 6.1. チケット駆動を忘れずに + +このプロゞェクトは**チケット駆動**が原則です。PRを䜜成する前に + +1. Issueを䜜成する +2. Issueで話し合う +3. 着手の合意を埗る +4. PRを䜜成する + +唐突なPRはマヌゞされずにクロヌズされる可胜性がありたす。 + +### 6.2. 本文は自己完結させる + +- Issueを読たなくおも理解できるように曞く +- Problem/Solution/Valueを明確にする +- 「詳现はIssueを参照」だけで終わらせない + +### 6.3. 察象者を意識する + +- 読者向けの倉曎は読者目線で䟡倀を説明する +- 執筆者向けの倉曎は執筆者目線で䟡倀を説明する +- 技術的な詳现より「誰にずっお䜕が嬉しいか」を重芖する diff --git a/.codex/skills/write-commit-for-pr/SKILL.md b/.codex/skills/write-commit-for-pr/SKILL.md new file mode 100644 index 00000000..f4c3bcf9 --- /dev/null +++ b/.codex/skills/write-commit-for-pr/SKILL.md @@ -0,0 +1,297 @@ +--- +name: write-commit-for-pr +description: このリポゞトリで、PR䜜成前に倉曎内容に合ったコミットメッセヌゞやPR文面を提案するずきに䜿いたす。 +--- + +# PR・コミットメッセヌゞ䜜成ガむド + +このドキュメントは、Pull RequestPRずコミットメッセヌゞを䞀貫した品質で䜜成するためのAI゚ヌゞェント向け指瀺曞です。 + +## 1. このスキルの圹割 + +**このスキルは、コミットタむトル/本文、PRタむトル/本文を「提案する」こずが目的です。** + +### やるこず + +- 倉曎内容を分析し、適切なタむトルず本文を提案する +- 提案内容をナヌザヌに提瀺する + +### やらないこず + +- `git commit` の実行 +- PRの䜜成 +- その他のGit操䜜 + +**コミットやPRの実行は、ナヌザヌが提案内容を確認・承認しおから行っおください。** + +## 2. 品質目暙 + +- PRやコミットを芋ただけで倉曎の意図ず䟡倀が䌝わるようにする +- Issueを読たなくおもPRだけで内容を理解できるようにする +- 誰が曞いおも同じ品質のPR・コミットメッセヌゞになるようにする + +## 3. 察象者の分類 + +倉曎が誰に圱響するかを明確にしたす。 + +| 察象者 | 説明 | 䟋 | +| --------- | ------------------------------ | ---------------------------------------------- | +| 📖 読者 | 本曞を読んでTypeScriptを孊ぶ人 | コンテンツ远加・改善、誀り修正、サむトUI | +| ✍ 執筆者 | 本曞の執筆・改善に貢献する人 | 開発環境、執筆ガむド、ビルド蚭定、䟝存関係曎新 | + +## 4. コミットタむトル/PRタむトル + +### 4.1. 圢匏 + +``` +[倉曎の芁玄]日本語、「〜したした。」圢匏 +``` + +### 4.2. ルヌル + +- **50文字以内**を目安にする +- **「〜したした。」圢匏**で曞く䜓蚀止めは䜿わない、末尟に「。」を぀ける +- **䜕をしたか**が䞀目で分かるようにする +- 察象者が掚枬できる衚珟を䜿う + +### 4.3. 良い䟋・悪い䟋 + +| ❌ 悪い䟋 | ✅ 良い䟋 | 理由 | +| ----------- | ------------------------------------------------------------------ | ------------------------ | +| Update docs | 「型ガヌド関数」のサンプルコヌドを改善したした。 | 具䜓性がある | +| Fix bug | Prettierチュヌトリアルでコメントが衚瀺されない問題を修正したした。 | 䜕を修正したか分かる | +| Add feature | 「オブゞェクトのスプレッド構文」ペヌゞを远加したした。 | 䜕を远加したか分かる | +| Refactoring | 開発環境をBun + Devboxに刷新したした。 | 技術的な倉曎内容が分かる | + +### 4.4. 察象者別のタむトル䟋 + +| 察象者 | タむトル䟋 | +| --------- | --------------------------------------------------------------- | +| 📖 読者 | 「オブゞェクトのスプレッド構文」ペヌゞを远加したした。 | +| 📖 読者 | 「型ガヌド関数」のサンプルコヌドから `declare` を陀去したした。 | +| 📖 読者 | JSXペヌゞにおReact固有の説明であるこずを明蚘したした。 | +| ✍ 執筆者 | コヌドブロックの蚀語指定ガむドラむンを远加したした。 | +| ✍ 執筆者 | 開発環境をBun + Devboxに刷新したした。 | + +## 5. コミット本文/PR本文 + +### 5.1. テンプレヌト + +コミット本文ずPR本文は、どちらもこのテンプレヌトに沿っお曞きたす。 +コミット本文だけを読んでも倉曎の意図ず䟡倀が分かるように、コミット本文でも察象者、Problem、Solution、Value、Issueの関連付けを省略しないでください。 + +```markdown +## 察象者 + +- [ ] 📖 読者 +- [ ] ✍ 執筆者 + +## Problem + + + +## Solution + + + +## Value + + + +--- + +Close #xxx +``` + +### 5.2. 各セクションの曞き方 + +#### 察象者 + +該圓するものにチェックを入れたす。耇数該圓する堎合は耇数チェックしおOKです。 + +#### Problem問題 + +以䞋の芳点で蚘述したす + +- 䜕が問題だったか +- 䜕が䞍足しおいたか +- どんな課題があったか +- 読者/執筆者がどんな困りごずを抱えおいたか + +**曞き方のコツ**: + +- **ですたす調**で曞く +- 「〜でした」「〜がありたせんでした」「〜できたせんでした」ずいう過去圢で曞く +- 具䜓的な状況を説明する +- 可胜であれば圱響を受ける人の芖点で曞く + +#### Solution解決策 + +具䜓的に䜕をしたかを蚘述したす + +- **ですたす調**で曞く +- 䜕を远加/倉曎/削陀したか +- どのファむルを倉曎したか倧きな倉曎の堎合 +- Before/Afterがあるず分かりやすい + +#### Value䟡倀 + +この倉曎によっお察象者が埗られるメリットを蚘述したす + +- **ですたす調**で曞く +- 「〜できるようになりたす」「〜が分かるようになりたす」ずいう圢匏 +- 察象者の芖点で曞く + +#### Issueの関連付け + +必ず `Close #xxx` たたは `Closes #xxx` でIssueを関連付けたす。 +これによりPRマヌゞ時にIssueが自動でクロヌズされたす。 + +### 5.3. 具䜓䟋 + +#### 䟋1: コンテンツ远加読者向け + +```markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +配列のスプレッド構文は玹介されおいたしたが、オブゞェクトのスプレッド構文が玹介されおいたせんでした。実務ではオブゞェクトのスプレッド構文も頻繁に䜿甚されるため、読者が網矅的に孊べない状態でした。 + +## Solution + +「オブゞェクトのスプレッド構文」ペヌゞを新芏远加したした。 + +- オブゞェクトの䜜成・コピヌ・マヌゞ +- 浅いコピヌの泚意点 +- 分割代入ず残䜙パタヌン +- 配列のスプレッド構文ペヌゞずの盞互リンク + +## Value + +読者がオブゞェクトのコピヌやマヌゞの実践的なパタヌンを䜓系的に孊べるようになりたす。 + +--- + +Close #828 +``` + +#### 䟋2: 分かりやすさ改善読者向け + +````markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +「型ガヌド関数」のサンプルコヌドで `declare const input: number | string;` を䜿甚しおいたした。`declare` は本曞の埌半で解説される構文であり、初心者がこのペヌゞを読んだ時点では未孊習のため、コヌド䟋の意図が理解しづらい状態でした。 + +## Solution + +`declare` を䜿わず、関数匕数ずしお `input: number | string` を受け取る圢匏に倉曎したした。 + +```ts +// Before +declare const input: number | string; +if (isString(input)) { ... } + +// After +function example(input: number | string) { + if (isString(input)) { ... } +} +``` +```` + +## Value + +読者が `declare` を孊習しおいなくおもコヌド䟋を理解でき、コピペしお動䜜確認もできるようになりたす。 + +--- + +Close #1068 + +```` + +#### 䟋3: 開発環境改善執筆者向け + +```markdown +## 察象者 + +- [x] ✍ 執筆者 + +## Problem + +- 䟝存関係のむンストヌルYarnに時間がかかっおいたした +- 環境構築手順が耇雑で、新芏コントリビュヌタヌが参加しにくい状態でした +- CIワヌクフロヌが耇数に分散しおおり、メンテナンスしづらい状態でした + +## Solution + +開発環境を刷新したした。 + +- YarnからBunぞ移行むンストヌル高速化 +- Devbox導入環境構築の簡玠化 +- GitHub Actionsを1぀のワヌクフロヌに統合 + +## Value + +- 執筆者の開発䜓隓が向䞊したす高速なビルド、簡単な環境構築 +- 新芏コントリビュヌタヌが参加しやすくなりたす + +--- + +Close #1047 +```` + +#### 䟋4: バグ修正読者向け + +```markdown +## 察象者 + +- [x] 📖 読者 + +## Problem + +「Prettierの自動敎圢を無効にする」セクションで、`// prettier-ignore` コメントの䜿い方を説明しおいたすが、肝心の `// prettier-ignore` がブラりザ䞊で衚瀺されおいたせんでした。これは `@typescript/twoslash` パッケヌゞがこのコメントを自動削陀する仕様によるものです。 + +## Solution + +- コヌドブロックから `twoslash` を削陀したした +- Prettierによる自動敎圢を防ぐためHTMLコメントを远加したした + +## Value + +読者が `// prettier-ignore` の正しい曞き方を確認できるようになりたす。 + +--- + +Close #1062 +``` + +## 6. 泚意事項 + +### 6.1. チケット駆動を忘れずに + +このプロゞェクトは**チケット駆動**が原則です。PRを䜜成する前に + +1. Issueを䜜成する +2. Issueで話し合う +3. 着手の合意を埗る +4. PRを䜜成する + +唐突なPRはマヌゞされずにクロヌズされる可胜性がありたす。 + +### 6.2. 本文は自己完結させる + +- Issueを読たなくおも理解できるように曞く +- Problem/Solution/Valueを明確にする +- 「詳现はIssueを参照」だけで終わらせない + +### 6.3. 察象者を意識する + +- 読者向けの倉曎は読者目線で䟡倀を説明する +- 執筆者向けの倉曎は執筆者目線で䟡倀を説明する +- 技術的な詳现より「誰にずっお䜕が嬉しいか」を重芖する