
Ucp
Add Universal Commerce Protocol (UCP) support to a Next.js ecommerce codebase with consult, gap analysis, scaffolding, and validation driven by `ucp.config.json`.
Install
npx skills add https://github.com/vercel-labs/agentic-commerce-skills --skill ucpWhat is this skill?
- Ten optional sub-commands: init, consult, plan, gaps, scaffold, validate, profile, test, docs
- Config-driven decisions persisted in ucp.config.json against the canonical UCP GitHub spec
- Next.js App Router only—explicitly no Edge runtime; Node.js default or Bun opt-in
- Gap detection via AST parsing and data flow tracing before scaffold
- Spec bootstrap: prefers ./ucp/, else updates ./.ucp-spec/ or shallow-clones Universal-Commerce-Protocol/ucp
Adoption & trust: 483 installs on skills.sh; 13 GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Canonical shelf is Build because the skill’s core job is implementing and wiring UCP into an existing Next.js store—not ideation or distribution. Integrations fits protocol endpoints, commerce flows, and third-party/agent checkout surfaces rather than generic UI or PM work.
Common Questions / FAQ
Is Ucp safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Ucp
# UCP Skill — Universal Commerce Protocol Implementation ## Core Principles 1. **Edge runtime is NOT USED** — Only Node.js (default) or Bun (opt-in) runtimes 2. **Interactive error handling** — When ambiguous, ask the user how to proceed 3. **Config-driven** — All decisions persist in `ucp.config.json` 4. **Spec-grounded** — All implementations reference the canonical UCP specification 5. **Next.js conventions** — Follow App Router patterns for code organization 6. **Deep analysis** — Use AST parsing and data flow tracing for gap detection --- ## Spec Repository Handling ### Location Priority Check in this order: 1. `./ucp/` — User's local copy (use as-is) 2. `./.ucp-spec/` — Previously cloned spec (update it) 3. Neither exists — Clone fresh ### Clone Procedure When cloning is needed: ```bash git clone --depth 1 https://github.com/Universal-Commerce-Protocol/ucp.git .ucp-spec ``` If HTTPS fails, try SSH: ```bash git clone --depth 1 git@github.com:Universal-Commerce-Protocol/ucp.git .ucp-spec ``` ### Update Procedure When `./.ucp-spec/` exists: ```bash cd .ucp-spec && git pull && cd .. ``` ### Gitignore Management After cloning, ensure `.ucp-spec/` is in `.gitignore`: - Read `.gitignore` if it exists - Check if `.ucp-spec/` or `.ucp-spec` is already listed - If not, append `.ucp-spec/` on a new line ### Spec File Locations (read on demand) ``` docs/specification/overview.md docs/specification/checkout.md docs/specification/checkout-rest.md docs/specification/checkout-mcp.md docs/specification/checkout-a2a.md docs/specification/embedded-checkout.md docs/specification/order.md docs/specification/fulfillment.md docs/specification/discount.md docs/specification/buyer-consent.md docs/specification/identity-linking.md docs/specification/ap2-mandates.md docs/specification/payment-handler-guide.md docs/specification/tokenization-guide.md spec/services/shopping/rest.openapi.json spec/services/shopping/mcp.openrpc.json spec/services/shopping/embedded.openrpc.json spec/handlers/tokenization/openapi.json spec/schemas/shopping/* spec/discovery/profile_schema.json ``` --- ## Configuration File ### Location `./ucp.config.json` at project root ### Schema ```json { "$schema": "./ucp.config.schema.json", "ucp_version": "2026-01-11", "roles": ["business"], "runtime": "nodejs", "capabilities": { "core": ["dev.ucp.shopping.checkout"], "extensions": [] }, "transports": ["rest"], "transport_priority": ["rest", "mcp", "a2a", "embedded"], "payment_handlers": [], "features": { "ap2_mandates": false, "identity_linking": false, "multi_destination_fulfillment": false }, "domain": "", "existing_apis": {}, "policy_urls": { "privacy": "", "terms": "", "refunds": "", "shipping": "" }, "scaffold_depth": "full", "generated_files": [], "answers": {}, "deployment": { "platform": "vercel", "region": "iad1", "mcp": { "enabled": false, "max_duration": 60 } } } ``` ### Field Descriptions | Field | Type | Description | |-------|------|-------------| | `ucp_version` | string | UCP spec version (date-based) | | `roles` | string[] | One or more of: `business`, `platform`, `payment_provider`, `host_embedded` | | `runtime` | string | `nodejs` (default) or `bun` | | `capabilities.core` | string[] | Required capabilities to implement | | `capabilities.extensions` | string[] | Optional extensions to implement | | `transports` | string[] | Enabled transports: `rest`, `mcp`, `a2a`, `embedded` | | `transport_priority` | string[] | Order to implement