pr-description

Rédige des descriptions de PR et des notes de version pour le monorepo Sanity. Suit le modèle de PR du dépôt avec Description, Ce qu'il faut examiner, Tests, et Notes pour…

npx skills add https://github.com/sanity-io/sanity --skill pr-description

PR Description & Release Notes

When creating a PR

Follow the repo's PR template. Always create PRs as drafts. All AI-agent PRs must include the 🤖 bot label.

1. Analyze the changes

Before writing, understand the full diff:

git log main..HEAD --oneline
git diff main...HEAD

2. PR title

Must follow conventional commits (CI-enforced):

type(scope): lowercase description
  • Types: feat, fix, chore, docs, refactor, test, perf, ci
  • Scope: package or area affected (groq, cli, form, schema, deps, etc.)
  • No backticks, quotes, or markdown in the title
  • Description starts lowercase

3. Write the PR body

Lead with why. Only elaborate on the non-obvious. The reviewer can read the diff — they need the context the diff can't give them. Default to terse; expand only where a reader would genuinely wonder.

Priorities for the Description section:

  • Heavy on why — the motivation, the problem being solved, the constraint or incident that forced this change
  • Cover why not — alternatives considered and rejected, one sentence each. This is often the most valuable part: it prevents the reviewer from suggesting a path you've already ruled out. Skip if there were no real alternatives worth mentioning
  • Light on how — only call out approach when it's non-obvious, novel, or a reviewer might reasonably have picked a different path. Skip it for routine changes where the diff speaks for itself
  • Minimal what — the diff shows what changed. One sentence of orientation at most; don't restate file-by-file changes the reviewer can see

Length test: if a sentence would tell the reviewer something they could deduce in 10 seconds from the diff, cut it. A good PR description is often 3–5 sentences total. Bulleted lists of "alternatives considered" should be one line per alternative, not a paragraph.

If you catch yourself writing "this PR renames X to Y" or "adds a new function Z", delete it. If you're explaining why X needed to be renamed or why Z exists (and why the obvious alternative wasn't chosen), keep it — but stay brief.

Use all four sections:

Description

Focus on why and why not, tersely:

  • The problem or context the diff doesn't reveal (one short paragraph)
  • Alternatives considered and why rejected (one line each, only if they were real candidates)
  • How only when non-obvious or debatable
  • What reduced to a one-line orientation

What to review

  • Which files/areas matter most
  • Anything tricky or non-obvious
  • Which packages are affected (this is a monorepo)

Testing

  • Tests added or modified
  • If no automated tests: how you tested and why automation wasn't practical

Notes for release

This section is used by the docs team to write release notes.

If not needed, write one of:

  • N/A — internal-only changes
  • N/A – Part of feature X — partial implementation not yet enabled
  • N/A – Internal only — tooling/chore work

If needed, write for end users and the docs team:

  • What changed from a user perspective
  • How to use it (code snippets if applicable)
  • Limitations or breaking changes

Always end this section with a --- horizontal rule. The release-notes automation stops at the first --- after the "Notes for release" heading, so the rule fences off anything appended below (Cursor Bugbot reviews, later edits) and keeps it out of the changelog.

4. Create the PR

Always create as draft and apply the 🤖 bot label. Do not mark as ready for review until CI passes and the prompter approves.

gh pr create --draft --label "🤖 bot" --title "type(scope): description" --body "$(cat <<'EOF'
### Description

[what and why]

### What to review

[guidance for reviewers]

### Testing

[tests added or manual testing explanation]

### Notes for release

[release notes or N/A]

---
EOF
)"

If the label was omitted at create time:

gh pr edit --add-label "🤖 bot"

After CI is green and the prompter approves, mark ready for review:

gh pr ready

Release notes checklist

  • Written for end users, not internal engineers
  • Includes code snippets for new APIs or changed behavior
  • Mentions breaking changes prominently
  • No unexplained jargon
  • Concise — a paragraph plus code example is ideal

Plus de skills de sanity-io

tdd
sanity-io
Développement piloté par les tests avec boucle rouge-vert-refactorisation. À utiliser lorsque l'utilisateur souhaite créer des fonctionnalités ou corriger des bugs en utilisant le TDD, mentionne "rouge-vert-refactorisation", veut…
performance-optimization
sanity-io
Optimise les performances de l'application. À utiliser lorsque des exigences de performance existent, lorsque vous suspectez des régressions de performance, ou lorsque les Core Web Vitals ou les temps de chargement…
content-experimentation-best-practices
sanity-io
Conseils structurés pour concevoir, exécuter et analyser des expériences de contenu afin d’améliorer la conversion et l’engagement. Couvre les cadres d’hypothèses, la sélection des métriques, le calcul de la taille de l’échantillon et les tests de signification statistique pour les expériences A/B et multivariées. Inclut des ressources détaillées sur les valeurs p, les intervalles de confiance, l’analyse de puissance et les méthodes bayésiennes pour interpréter les résultats. Fournit des modèles d’intégration CMS pour gérer les variantes au niveau du champ et connecter des systèmes externes...
content-modeling-best-practices
sanity-io
Conseils de modélisation de contenu structuré pour la conception de schémas, la réutilisabilité et la diffusion multicanal. Couvre les principes fondamentaux : traiter le contenu comme des données plutôt que comme des pages, maintenir des sources uniques de vérité, concevoir pour les canaux futurs et optimiser les flux de travail des éditeurs. Inclut des cadres de décision pour les références par rapport aux objets intégrés, la séparation des préoccupations et les modèles de réutilisation du contenu. Fournit des conseils sur la taxonomie et la classification pour les approches plates, hiérarchiques et à facettes. S'applique à...
portable-text-conversion
sanity-io
Convertir du contenu HTML et Markdown en blocs Portable Text pour Sanity. À utiliser lors de la migration de contenu depuis des CMS hérités, de l'importation de HTML ou Markdown dans Sanity,…
portable-text-serialization
sanity-io
Rendre et sérialiser le Portable Text en React, Svelte, Vue, Astro, HTML, Markdown et texte brut. Utiliser lors de l'implémentation du rendu Portable Text dans n'importe quel frontend…
sanity-best-practices
sanity-io
We need to translate the given text from English to French. The text is a description of a directory item for an agent skill named "sanity-best-practices". The instruction says to preserve product names, protocol names, URLs, numbers, technical terms. Also, do not include the name unless it appears in the source text. The name "sanity-best-practices" does not appear in the source text, so we don't include it. We translate only the text inside <text>. The text is a single paragraph. We need to translate it accurately, keeping terms like "Sanity CMS", "Next.js", "Nuxt", "Astro", "Remix", "SvelteKit", "Angular", "GROQ", "Visual Editing", "Portable Text", "TypeGen" as they are. Also numbers like "10+". The translation should be natural French. Let's break down the text: "Comprehensive best practices and integration guides for Sanity CMS development across frameworks and topics. Covers 10+ framework integrations including Next.js,
sanity-migration
sanity-io
Planifie, implémente et révise les migrations depuis d’autres CMS et systèmes de contenu vers Sanity. À utiliser lors d’une migration ou d’un replatforming vers Sanity depuis AEM, Adobe Experience Manager, Contentful, Strapi, Webflow, WordPress, Payload, Drupal, fichiers Markdown/MDX/frontmatter, exports WXR/XML, API CMS, dumps de base de données, HTML statique, ou lors de la conception de workflows d’extraction, transformation, conversion en Portable Text, migration de ressources, redirections, validation et basculement.
data-analysisdatabasedevelopment