Write and update Astro pull requests with reviewer-friendly titles and high-signal bodies. Trigger whenever the user asks to create a PR, open a PR, draft a PR, update PR title/body, or write PR notes/summary/description.
Write Astro pull request descriptions that help reviewers quickly understand intent, behavior changes, and validation.
Use this skill whenever the user asks for any PR-writing task, including:
Describe the change, how it works, and why it matters.
Changes explains what the fix/feature does.Testing explains how behavior was validated.Docs explains whether user-facing docs changes are needed.Do not use PR sections as a task log.
Use a human, reviewer-friendly title.
Do not use:
fix:, feat:, docs:, etc.)fix(cloudflare): ...)Use this structure:
## Changes
- <Behavior change and why it matters>
- <Implementation detail and impact>
## Testing
- <What scenarios were validated and why this proves the behavior>
- <Key test file/test name where applicable>
## Docs
- <No docs update needed, because ...>
Focus on behavior, implementation approach, and impact.
Include:
Do not include:
Testing)Explain validation quality.
Include:
Do not include:
Explain docs impact clearly.
Every PR that modifies a package requires a changeset file. Only examples/* changes are exempt.
Create .changeset/<descriptive-slug>.md with YAML front matter listing affected packages and bump type, followed by a plain-text description that becomes the changelog entry:
---
'astro': patch
---
Fixes a case where fonts files would unnecessarily be copied several times during the build
name field in the package's package.json exactly (e.g., 'astro', '@astrojs/node')patch, minor, or majormajor and minor bumps to the core astro package are blocked by CI and require maintainer reviewBegin with a present tense verb that completes the sentence "This PR …":
Describe the change as a user of Astro will experience it, not how it was implemented internally:
// Too implementation-focused
Logs helpful errors if content is invalid
// Better — user-facing impact
Adds logging for content collections configuration errors.
Patch updates — one line is usually enough; no end punctuation required unless writing multiple sentences:
---
'astro': patch
---
Fixes a bug where the toolbar audit would incorrectly flag images as above the fold
New features (minor) — start with "Adds", name the new API, and describe what users can now do. Include a code example when helpful. New features are also an opportunity to write a richer description that can feed into blog posts — see https://contribute.docs.astro.build/docs-for-code-changes/changesets/#new-features for guidance.
---
'astro': minor
---
Adds a new, optional property `timeout` for the `client:idle` directive
This value allows you to specify a maximum time to wait, in milliseconds, before hydrating a UI framework component.
Breaking changes (major) — use verbs like "Removes", "Changes", or "Deprecates". Must include migration guidance; use diff code samples when appropriate:
---
'astro': major
---
Removes support for returning simple objects from endpoints. You must now return a `Response` instead.
Additional rules:
#### and deeper headings (never ## or ###) to divide sections — this keeps the CHANGELOG readableWrite the changeset file manually in .changeset/ with a descriptive kebab-case slug as the filename (e.g., .changeset/fix-font-copy-on-build.md).
Changes section — it is process noise, not a behavior changeChanges bullets describe behavior/implementation/impactTesting explains scenarios and outcomes, not shell commandsDocs decision is explicit.changeset/ for any package-modifying PR