update-shop

작성자: vercel

기존 Vercel Shop 스토어프론트를 최신 템플릿 변경사항으로 업데이트합니다. 사용자가 드리프트를 확인하거나, 업그레이드를 계획하거나, 템플릿 업데이트를 적용하려 할 때 사용합니다.

npx skills add https://github.com/vercel/shop --skill update-shop

Update Vercel Shop

Bring an existing Vercel Shop project up to date with the template by reasoning about individual rollout entries, never by diffing against a template version. Downstream storefronts often adopt only part of the template, so every decision must be validated against the current codebase.

Pick a mode

Infer the mode from the user's request:

  • Audit — report how far the project has drifted. Read-only; stop after the audit phase.
  • Plan — produce a change-level upgrade plan. Read-only; stop after the plan phase.
  • Apply — plan, confirm the selection with the user, then apply and validate. Use this when the user asks to "update" or "upgrade" the shop.

Read these inputs

  1. .vercel-shop/bootstrap.json in the project root — original templateVersion and scaffoldedAt
  2. .vercel-shop/rollout-state.json in the project root — decisions recorded by earlier runs of this skill (may not exist)
  3. The current rollout log and template version, fetched from upstream (see below)
  4. AGENTS.md and .claude/settings.json in the project if present
  5. The current project structure and any files named by matching rollout entries

If .vercel-shop/bootstrap.json is missing, say the project predates plugin bootstrap metadata and continue with a best-effort heuristic audit.

Fetch the current rollout log

The rollout log is maintained upstream in github.com/vercel/shop. The plugin bundles a copy of template-rollout-log/ and template-version.json, but it is only as fresh as the installed plugin, so prefer the upstream copy:

dir=$(mktemp -d)
curl -fsSL https://codeload.github.com/vercel/shop/tar.gz/refs/heads/main |
  tar -xz --strip-components=3 -C "$dir" \
    shop-main/packages/plugin/template-rollout-log \
    shop-main/packages/plugin/template-version.json

Read every markdown entry in the extracted template-rollout-log/ except README.md. If the fetch fails (offline or restricted network), fall back to the copies bundled with this plugin and say in the report that the log may be stale until the plugin is updated.

Phase 1 — audit

Compare the scaffold metadata against the current recommended template version and check for structural drift:

  • missing .vercel-shop/bootstrap.json
  • missing AGENTS.md
  • missing project-scoped plugin config in .claude/settings.json
  • legacy local skill files such as .agents/skills/ or a legacy .claude/skills symlink
  • obvious divergence from the expected Vercel Shop structure such as missing lib/shopify/ or components/

Report the original scaffold version, the scaffold timestamp, the current recommended template version, and a short note on overall drift. If the scaffold version matches the current version, say so explicitly. In audit mode, stop here.

Phase 2 — plan

Build the candidate list from the rollout log:

  1. If bootstrap metadata includes scaffoldedAt, treat entries with a newer introducedOn as the primary candidates. Versions are only hints.
  2. Add older entries that still look applicable from the current project state.
  3. Drop entries that .vercel-shop/rollout-state.json already records as adopted, skipped, or not applicable — unless the user asks to revisit them.

For each remaining entry, decide one of:

  • Adopt now — clearly applicable and mechanical enough to apply confidently
  • Review manually — applicable but touches heavily customized code
  • Already present — the project has the change (adopted independently or scaffolded with it)
  • Not applicable — the entry's appliesTo or preconditions don't match this project

Validate each decision against the current codebase. Do not assume a change is missing just because the scaffold is old, and do not invent upgrade work when no entries apply — say so explicitly. Call out uncertainty when the project has heavily diverged from template conventions.

The simplified single-deployment template's inline copy and reusable content functions and explicit shopConfig.localization are defaults for new storefronts, not a mandate to remove localization from existing stores. Preserve next-intl, catalogs, translations, scoped providers, locale routing, custom market selection, and intentional operation/cache locale inputs. Do not classify these customizations as obsolete drift or replace them with template English. Any requested simplification must separately assess copy, formatting, commerce country/language, public URLs, and migration parity; currency remains Shopify-owned. Rollout entries are currently paused, so their absence is not evidence that every newer template behavior is already installed.

Present the plan grouped by decision. In plan mode, stop here and do not edit files.

Phase 3 — apply

Confirm with the user which entries to apply before editing anything. Then, for each selected entry, one at a time:

  1. Re-read the entry's Summary, paths, and Apply when / Safe to skip when sections.
  2. Apply the change in the project's own idiom — re-implement the behavior described by the entry rather than copying template files over customized code. Use the entry's relatedSkills when listed.
  3. Run the entry's Validation steps before moving to the next entry.
  4. Keep each entry's edits an isolated, reviewable unit. If the project uses git and the user wants commits, suggest one commit per changeKey.

If an entry's validation fails, stop, report the failure, and ask whether to fix forward, skip the entry, or revert its edits before continuing.

Phase 4 — record and report

Record every decision in .vercel-shop/rollout-state.json so future runs don't re-litigate settled entries. Keep decisions keyed by changeKey:

{
  "decisions": {
    "storefront-typed-client": {
      "decision": "adopted",
      "decidedOn": "2026-07-06"
    },
    "pdp-metafields-specs": {
      "decision": "skipped",
      "decidedOn": "2026-07-06",
      "note": "custom PDP replaced the specs section"
    }
  }
}

Use adopted, skipped, not-applicable, or already-present as decision values. Do not modify .vercel-shop/bootstrap.jsonscaffoldedAt must keep describing the original scaffold.

Finish with a concise report: what was applied, what was skipped and why, validation results, and any entries deferred for manual review.

vercel의 다른 스킬

vercel
vercel
로컬 개발 및 테스트를 위한 Vercel REST API 에뮬레이션입니다. 사용자가 로컬에서 Vercel API 엔드포인트와 상호작용하거나 Vercel 통합을 테스트해야 할 때 사용합니다.
cron-jobs
vercel
Vercel Cron Jobs 구성 및 모범 사례. vercel.json에서 예약된 작업을 추가, 편집 또는 디버깅할 때 사용합니다.
codegen
vercel
json-render을 위한 코드 생성 유틸리티입니다. UI 명세서에서 코드를 생성하거나, 사용자 정의 코드 내보내기를 구축하거나, 명세서를 탐색하거나, props를 직렬화할 때 사용합니다.
next-best-practice
vercel
Next.js 모범 사례 - 파일 규칙, RSC 경계, 데이터 패턴, 비동기 API, 메타데이터, 오류 처리, 라우트 핸들러, 이미지/폰트 최적화,…
benchmark-sandbox
vercel
Vercel Sandbox에서 vercel-plugin eval 시나리오를 로컬 WezTerm 패널 대신 실행합니다. Claude Code와 플러그인이 사전 설치된 임시 마이크로VM을 프로비저닝합니다.
write-guide
vercel
점진적인 예제를 통해 실제 사용 사례를 가르치는 기술 가이드를 제작합니다. 개념은 독자가 필요로 할 때만 소개됩니다.
benchmark-testing
vercel
벤치마크 테스트 프로젝트를 생성하고 실행하여 실제 시나리오에서 vercel-plugin 스킬 인젝션을 테스트합니다. 격리된 디렉토리를 설정하고, 설치하며…
ai-gateway
vercel
Vercel AI Gateway 전문가 안내. 모델 라우팅, 제공업체 장애 조치, 비용 추적 또는 통합된 방식을 통해 여러 AI 제공업체를 관리할 때 사용합니다.