Astro PR 작성기
리뷰어가 의도, 동작 변경 사항, 검증 방법을 빠르게 이해할 수 있도록 Astro Pull Request 설명을 작성합니다.
사용자가 다음과 같은 PR 작성 관련 작업을 요청할 때 이 스킬을 사용하세요:
- pull request 생성/열기
- pull request 초안 생성/열기
- PR 제목 업데이트
- PR 본문/설명 업데이트
- PR 노트/요약 작성
핵심 원칙
변경 사항, 작동 방식, 중요한 이유를 설명하세요.
Changes는 수정/기능이 무엇을 하는지 설명합니다.Testing은 추가 또는 변경된 테스트 코드를 나열합니다.Docs는 사용자 대상 문서 변경이 필요한지 설명합니다.
PR 섹션을 작업 로그로 사용하지 마세요.
PR 제목 규칙
사람이 읽기 좋은, 리뷰어 친화적인 제목을 사용하세요.
- 결과를 평이한 언어로 설명하세요.
- 간결하고 구체적으로 작성하세요.
- 리뷰 대기열에서 사람이 자연스럽게 작성할 법한 표현을 선호하세요.
다음은 사용하지 마세요:
- PR 제목에 conventional commit 접두사(
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와 하위 호환됨.
Changeset
패키지를 수정하는 모든 PR에는 changeset이 필요합니다. examples/* 변경만 예외입니다.
changeset 스킬을 사용하여 changeset 파일을 생성하고 메시지를 작성하세요. 파일 생성, 형식, 범프 유형, 메시지 컨벤션을 다룹니다.
PR 본문을 작성할 때:
- 게시하기 전에 changeset이 있는지 확인하세요. PR이 패키지를 수정하고 changeset이 없으면, 지금
changeset스킬을 사용하여 생성하세요 — changeset 없이 PR을 게시하지 마세요. Changes섹션에 "changeset 추가"를 언급하지 마세요. 동작 변경이 아닌 프로세스 잡음입니다.
게시 전 자가 점검
- 제목이 리뷰어 친화적입니까? (커밋 스타일이 아님)
Changes항목이 동작/구현/영향을 설명합니까?Testing이 테스트 실행 결과가 아닌 추가/변경된 테스트 코드를 나열합니까?Docs결정이 명시적입니까?- 패키지를 수정하는 PR의 경우
.changeset/에 changeset 파일이 존재합니까? — 없으면 게시 전에 생성하세요.