pull-request-standards
Shopify/hydrogen/skills/pull-request-standards/SKILL.md
Writes clear PR descriptions for contributors of this repository. Always use when creating or updating pull request descriptions.
- Installs packages
What's in it
- Hydrogen PR Descriptions
- Style
- Before Writing
- Template
- Rules
- Versioning
- Manual Testing
- Anti-Patterns
--- name: pull-request-standards description: > Writes clear PR descriptions for contributors of this repository. Always use when creating or updating pull request descriptions. --- # Hydrogen PR Descriptions Write functional PR descriptions that help reviewers quickly understand the change, intent, and impact. ## Style - Use short paragraphs, clear headlines, and bullets. - Write in understandable, simple language. Avoid complex jargon and explain in the simplest possible way - Use **bold** only for important emphasis. - Be specific and concise. - Do not be punchy, sassy, commercial, or launch-y. - Do not include the whole diff. - Highlight only what this PR touches. - The first section is the **Why** of the PR and does not need a title. - Mention any issues closed by the PR at the beginning. ## Before Writing Identify the intent behind the pull request via: - **Conversation context**: the user request, issue, spec, linked PRs, review thread, or task notes that explain why the work exists. - **Diff** between the branch this PR is merging into and this PR. - **Why**: the problem, drift, missing source of truth, or developer pain. - **Developer impact**: public APIs, exports, examples, skills, docs, generated types, or migration work. - **UX impact**: routes, buttons, UI states, forms, navigation, copy, loading states, or accessibility behavior. - **Before/after**: the smallest useful old/new code or behavior comparison. - **Versioning**: whether a changeset is needed and why. - **Manual testing**: the exact human workflow that proves the behavior works. - **Boundaries and risk**: what was intentionally left out, known tradeoffs, or follow-up work deferred to later PRs. ## Template Use only the sections that apply: ```md Closes #[number] TL;DR: [Short explanation of the problem and intent.] ## Before [Short code snippet or behavior summary showing the previous state.] ## After [Short code snippet or behavior summary showing the new state.] ## What this changes - [Concrete change] - [Concrete change] ## Developer impact [Only if library users, examples, public exports, package skills, types, or migration paths change.] ## UX impact [Only if UI, routes, forms, buttons, navigation, loading states, copy, or accessibility behavior changes.] ## Out of scope [Only if there are intentional boundaries, known tradeoffs, or risks reviewers should know about.] **Out of scope** - [What this PR deliberately does not address] ## Risk - [What could break, what we are accepting as a tradeoff, or what needs extra scrutiny] ## How to Test [Human-facing manual steps. Include setup, folder changes, dev server commands, environment assumptions, and behavior to verify.] ``` Do not include categories that do not apply. ## Rules - Never assume the reader will have full context of the situation - Prefer **source-of-truth** framing when the PR aligns server handlers, examples, generated types, or agent skills. - Use conversation context to recover intent; the diff usually shows what changed, not why it changed. - If the why is not clear from the diff, issue, spec, linked PRs, review thread, or current conversation, ask the user before drafting. - Use before/after snippets for API and example migrations. - Keep snippets short and focused on the changed contract. - Separate developer-facing impact from implementation details. - Include UX impact for any visible route, UI, navigation, or interaction change. - Call out direct public entrypoint changes separately from internal refactors. - Explain changeset level when the diff touches `packages/hydrogen/src/**`, package exports, `packages/hydrogen/skills/**`, or examples that teach supported patterns. See **Versioning** below. - Do not use linting, unit tests, integration tests, typechecks, or CI as `How to Test`. - If there is no meaningful manual behavior to test, omit `How to Test`. - `Out of scope` names what this PR does not try to solve. It is not a roadmap. - `Risk` names what could go wrong, what we are knowingly accepting, or what deserves extra reviewer attention. ## Versioning When the diff touches library code, exports, packaged skills, or teaching examples, say whether a changeset is included and why that bump level fits. Put this in **Developer impact** unless versioning is the whole point of the PR. Use these levels for `@shopify/hydrogen`: - **patch**: bug fixes, internal refactors, or skill/example hardening with no new public API - **minor**: new exports, helpers, or supported patterns that are additive for consumers - **major**: breaking changes to public exports or taught patterns Hydrogen is versioned `YYYY.Q.P` (CalVer), so these levels don't map straight onto the version number. At release time, `scripts/calver.ts` turns minor and patch into the next `P` (2026.10.0 → 2026.10.1) and major into the next quarter (2026.10.3 → 2027.1.0). While Hydrogen is on a prerelease, CI rejects major changesets. This is an example of the level of detail expected. Do not force every PR into this exact wording. ```md ## Developer impact Includes a **patch** changeset for `@shopify/hydrogen`. Tightens cart drawer skill guidance and the Next.js example wiring. No new exports and no runtime contract changes. ``` ```md ## Developer impact Includes a **minor** changeset for `@shopify/hydrogen`. Adds predictive search helpers, server handlers, and framework bindings. Consumers can adopt the new API without breaking existing search routes. ``` If no changeset is needed, say why. Example-only or repo-local skill changes that do not ship in `@shopify/hydrogen` do not need a package bump. ## Manual Testing `How to Test` is for local manual verification by a human. Assume a MacBook unless told otherwise. Include every step needed to exercise the behavior: This is an example of the level of detail expected. Do not force every PR into this exact flow. ```md ## How to Test 1. Run `pnpm install && pnpm build:pkgs` to rebuild the packages. 2. Run `pnpm dev:next` to start the Next.js example app. 3. Open `http://localhost:3000/collections/frontpage`. 4. Select a filter. 5. Confirm the URL updates and the product grid shows the filtered products. 6. Reload the page. 7. Confirm the same filter remains selected and the same products render. ``` ## Anti-Patterns - Do not write only a diff summary. - Do not include headings that do not apply. - Do not hide developer or UX impact in implementation bullets. - Do not describe unrelated future work in `What this changes`. Use `Out of scope` only for boundaries of this PR. - Do not use `pnpm lint`, `pnpm typecheck`, unit tests, or CI as manual testing instructions. - Do not over-explain code that TypeScript or the diff already makes obvious.
More agent context in Shopify/hydrogen
31 other files this repository gives its agents.
AGENTS.md
Skill
- hydrogen-analyticspackages/hydrogen/skills/hydrogen-analytics/SKILL.md
- hydrogen-cart-drawerpackages/hydrogen/skills/hydrogen-cart-drawer/SKILL.md
- hydrogen-cart-metafieldspackages/hydrogen/skills/hydrogen-cart-metafields/SKILL.md
- hydrogen-cart-uipackages/hydrogen/skills/hydrogen-cart-ui/SKILL.md
- hydrogen-collection-browserpackages/hydrogen/skills/hydrogen-collection-browser/SKILL.md
- hydrogen-customer-accountpackages/hydrogen/skills/hydrogen-customer-account/SKILL.md
- hydrogen-imagepackages/hydrogen/skills/hydrogen-image/SKILL.md
- hydrogen-local-httpspackages/hydrogen/skills/hydrogen-local-https/SKILL.md
- hydrogen-marketspackages/hydrogen/skills/hydrogen-markets/SKILL.md
- hydrogen-moneypackages/hydrogen/skills/hydrogen-money/SKILL.md
- hydrogen-oxygenpackages/hydrogen/skills/hydrogen-oxygen/SKILL.md
- hydrogen-predictive-searchpackages/hydrogen/skills/hydrogen-predictive-search/SKILL.md
- hydrogen-request-handlerspackages/hydrogen/skills/hydrogen-request-handlers/SKILL.md
- hydrogen-routingpackages/hydrogen/skills/hydrogen-routing/SKILL.md
- hydrogen-setuppackages/hydrogen/skills/hydrogen-setup/SKILL.md
- hydrogen-shop-paypackages/hydrogen/skills/hydrogen-shop-pay/SKILL.md
- hydrogen-smoke-testpackages/hydrogen/skills/hydrogen-smoke-test/SKILL.md
- hydrogen-storefront-clientpackages/hydrogen/skills/hydrogen-storefront-client/SKILL.md
- hydrogen-variant-formpackages/hydrogen/skills/hydrogen-variant-form/SKILL.md
- benchmark-canaryscripts/storefront-benchmark-harness/workspace-template/.opencode/skills/benchmark-canary/SKILL.md
- create-oxygen-templateskills/create-oxygen-template/SKILL.md
- error-reportingskills/error-reporting/SKILL.md
- playwright-testsskills/playwright-tests/SKILL.md
Discussion
Talked about elsewhere, linking to Shopify/hydrogen
- Shopify Hydrogen - project no longer launches after updating to 2024.4
Stack Overflow · 1 votes · 1 answers · Apr 15, 2024
- If I need to build a storefront, I'd probably check out Medusa [1] or Shopify Hydrogen [2]. Otherwise, probably Elixir/Phoenix and LiveView…
Bluesky · @nezteb.net · 3 likes and reposts · Sep 13, 2025
- Remix to react-router and other dep upgrades
GitHub · Shopify/hydrogen-demo-store · 8 reactions · 1 comments · Nov 24, 2025
- Shopify Admin API Access
Stack Overflow · Jan 3, 2025
- CartProvider V2
GitHub · Shopify/hydrogen-v1 · 6 reactions · 15 comments · Aug 5, 2022
- Cannot use the builder/react sdk in the new version of shopify-hydrogen using Remix
GitHub · BuilderIO/builder-shopify-hydrogen · 5 reactions · 11 comments · Feb 14, 2023
- Use ESM for SSR builds
GitHub · vitejs/vite · 4 reactions · 3 comments · May 12, 2022
- Move cart queries to an API endpoint
GitHub · Shopify/hydrogen-v1 · 4 reactions · 9 comments · Apr 5, 2022
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

