Astro PR Writer(Astro PRライター)
レビュワーが変更の意図、動作の変更、検証内容を素早く理解できるAstroプルリクエストの説明文を作成します。
ユーザーが以下のようなPR作成タスクを依頼した場合にこのスキルを使用します:
- プルリクエストの作成/オープン
- 下書きプルリクエストの作成/オープン
- PRタイトルの更新
- PR本文/説明の更新
- PRメモ/概要の作成
基本原則
変更内容、その仕組み、なぜ重要か を説明します。
- 「Changes」では、修正や機能が何を行うかを説明します。
- 「Testing」では、追加または変更したテストコードを列挙します。
- 「Docs」では、ユーザー向けドキュメントの変更が必要かどうかを説明します。
PRのセクションをタスクログとして使用しないでください。
PRタイトルのルール
人間にとって読みやすく、レビュワーに優しいタイトルにします。
- 結果を平易な言葉で説明します。
- 簡潔かつ具体的にします。
- レビューキューで人が自然に書くような表現を選びます。
以下のような表現は使用しないでください:
- PRタイトルでの従来のコミットプレフィックス(
fix:、feat:、docs:など) - スコープ付きコミットスタイルのタイトル(
fix(cloudflare): ...)
本文のルール
以下の構造を使用します:
## Changes(変更内容)
- <動作の変更とその理由>
- <実装の詳細と影響>
## Testing(テスト)
- <新規または変更したテストとその範囲>
- <既存のアサーションを変更した理由>
## Docs(ドキュメント)
- <ドキュメント更新不要。理由:...>
Changes(変更内容)
動作、実装アプローチ、影響に焦点を当てます。
以下の内容を含めます:
- 以前は動作しなかったが、今回動作するようになったこと
- 修正や機能の仕組み(レビュワーにとって有用なレベルで)
- ユーザーに影響する信頼性/互換性/パフォーマンスの動作変更
以下の内容は含めないでください:
- 「テストを追加した」「フィクスチャを更新した」(これらは
Testingに含めます) - 「changesetを追加した」
- 動作に影響のない内部プロセスに関するメモ
Testing(テスト)
追加または変更したテストコードとその理由を列挙します。レビュワーはこのセクションを読んでテストカバレッジの変更を理解します — テストスイートを実行したことを伝えるためのものではありません。
以下の内容を含めます:
- 追加した新しいテストファイルやテストケースと、その範囲の簡単な説明
- 更新した既存のテストと、アサーションを変更した理由
以下の内容は含めないでください:
- テストが通ったこと(CIが表示するため、ノイズになります)
- 実行したコマンド
- 何件のテストが通ったか
Docs(ドキュメント)
ドキュメントへの影響を明確に説明します。
- ドキュメントが不要な場合は、その理由を一文で述べます。
- ドキュメントが必要な場合は、ドキュメントPRへのリンクを貼ります。
簡潔さのガイドライン
デフォルトでは短くします。セクションあたり1~2項目が標準で、変更が本当に複雑な場合にのみ項目を増やします。PRキューをスキャンするレビュワーが、通常のパッチであれば本文全体を30秒以内で読めるようにします。
冗長すぎる例:
base.tsとrelative.tsの両方でserver設定プロパティに対してz.preprocess()の外側に.optional().prefault({})を移動し、#16531 のintegrations修正と一致させました。Zod 4.4.0 はプリプロセッサや内部のデフォルトが実行される前に、z.preprocess()でラップされた欠落プロパティを拒否します — プリプロセス呼び出しの外側に.optional().prefault({})を移動することでこの問題を解決します。@rururux によって報告されたserverプロパティの問題を修正します。- Zod 4.4.0 互換性のために、Astro エラーマップとDBエラーマップの両方に
invalid_key、invalid_element、識別共用体optionsハンドラを追加しました。Zod 4.4.0 はレコードキーのリファインメント失敗(例:envスキーマ変数名)を、フラットなメッセージではなく、ネストされたエラーを持つ構造化されたinvalid_key問題として表面化させます。ハンドラは実際のリファインメントメッセージを抽出し、ユーザーに明確なエラーを表示します。- すべての変更は Zod 4.3.x と後方互換性があります。新しいエラーマップブランチは、4.4.0 が発行し始める問題コードに対してのみアクティブになります。
改善例:
server設定のz.preprocess()の外側に.optional().prefault({})を移動し、#16531 のintegrations修正と一致させました。@rururux によって報告された問題を修正します。- Zod 4.4.0 互換のために、両方のエラーマップに
invalid_key、invalid_element、識別共用体optionsハンドラを追加しました。- Zod 4.3.x と後方互換性があります。
チェンジセット(Changesets)
パッケージを変更するすべてのPRにはチェンジセットが必要です。examples/* の変更のみが例外です。
changeset スキルをロードしてチェンジセットファイルを作成し、メッセージを記述します。このスキルはファイル作成、フォーマット、バンプタイプ、メッセージの慣習をカバーします。
PR本文を記述する際:
- 投稿前に、チェンジセットが存在するか確認します。PRがパッケージを変更しており、チェンジセットが存在しない場合は、今すぐ
changesetスキルを使用して作成します — チェンジセットなしでPRを投稿しないでください。 - 「Changes」セクションで「added changeset」と言及しないでください — それはプロセスのノイズであり、動作の変更ではありません。
投稿前の自己チェック
- タイトルがレビュワーに優しいこと(コミットスタイルでないこと)
- 「Changes」の項目が動作/実装/影響を説明していること
- 「Testing」がテストコードの追加/変更を列挙しており、テスト実行結果ではないこと
- 「Docs」の判断が明示されていること
- パッケージを変更するPRに対して、
.changeset/にチェンジセットファイルが存在すること — ない場合は、投稿前に作成すること