-
Notifications
You must be signed in to change notification settings - Fork 393
chore: Include schema and documentation development instructions in README.md for better discoverability #452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
damaz91
wants to merge
13
commits into
main
Choose a base branch
from
chore/readme-update
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+117
−56
Open
Changes from 11 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
83f12ee
chore: Include schema and documentation development instructions in R…
damaz91 afc8f6f
update instructions
damaz91 3a7037c
better run command
damaz91 81bfdf6
fix typo
damaz91 931e8c4
fix super-linter errors
damaz91 91637ff
super-linter issues
damaz91 7903dda
line length fixed to 80 + single line command
damaz91 8c12d8a
Merge branch 'main' into chore/readme-update
damaz91 0e5e42e
clarify agents role and use of ucp-schema
damaz91 547ab19
Merge branch 'main' into chore/readme-update
damaz91 d919178
Merge branch 'chore/readme-update' of https://github.com/Universal-Co…
damaz91 1742a02
add callout for other repo contribution
damaz91 bd2c135
Merge branch 'main' into chore/readme-update
damaz91 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,91 +41,149 @@ ensuring secure and consistent commerce experiences across the web. | |
|
|
||
| With UCP, businesses can: | ||
|
|
||
| * **Declare** supported capabilities to enable autonomous discovery by | ||
| platforms. | ||
| * **Facilitate** secure checkout sessions, with or without human intervention. | ||
| * **Offer** personalized shopping experiences through standardized data | ||
| exchange. | ||
| - **Declare** supported capabilities to enable autonomous discovery by | ||
| platforms. | ||
| - **Facilitate** secure checkout sessions, with or without human intervention. | ||
| - **Offer** personalized shopping experiences through standardized data | ||
| exchange. | ||
|
|
||
| ## Why UCP? | ||
|
|
||
| As commerce becomes increasingly agentic and distributed, the ability for | ||
| different systems to interoperate without custom, one-off integrations is vital. | ||
| UCP aims to: | ||
|
|
||
| * **Standardize Interaction:** Provide a uniform way for platforms to interact | ||
| with businesses, regardless of the underlying backend. | ||
| * **Modularize Commerce:** Breakdown commerce into distinct **Capabilities** | ||
| (e.g., Checkout, Order) and **Extensions** (e.g., Discounts, | ||
| Fulfillment), allowing for flexible implementation. | ||
| * **Enable Agentic Commerce:** Designed from the ground up to support AI | ||
| agents acting on behalf of users to discover products, fill carts, and | ||
| complete purchases securely. | ||
| * **Enhance Security:** Support for advanced security patterns like AP2 | ||
| mandates and verifiable credentials. | ||
| - **Standardize Interaction:** Provide a uniform way for platforms to interact | ||
| with businesses, regardless of the underlying backend. | ||
| - **Modularize Commerce:** Breakdown commerce into distinct **Capabilities** | ||
| (e.g., Checkout, Order) and **Extensions** (e.g., Discounts, Fulfillment), | ||
| allowing for flexible implementation. | ||
| - **Enable Agentic Commerce:** Designed from the ground up to support AI agents | ||
| acting on behalf of users to discover products, fill carts, and complete | ||
| purchases securely. | ||
| - **Enhance Security:** Support for advanced security patterns like AP2 mandates | ||
| and verifiable credentials. | ||
|
|
||
| ### Key Features | ||
|
|
||
| * **Composable Architecture:** UCP defines **Capabilities** (such as | ||
| "Checkout" or "Identity Linking") that businesses implement to enable easy | ||
| integration. On top of that, specific **Extensions** can be added to enhance | ||
| the consumer experience without bloating the capability definitions. | ||
| * **Dynamic Discovery:** Businesses declare their supported Capabilities in a | ||
| standardized profile, allowing platforms to autonomously discover and | ||
| configure themselves. | ||
| * **Transport Agnostic:** The protocol is designed to work across various | ||
| transports. Businesses can offer Capabilities via REST APIs, MCP (Model | ||
| Context Protocol), or A2A, depending on their infrastructure. | ||
| * **Built on Standards:** UCP leverages existing open standards for payments, | ||
| identity, and security wherever applicable, rather than reinventing the | ||
| wheel. | ||
| * **Developer Friendly:** A comprehensive set of SDKs and libraries | ||
| facilitates rapid development and integration. | ||
| - **Composable Architecture:** UCP defines **Capabilities** (such as "Checkout" | ||
| or "Identity Linking") that businesses implement to enable easy integration. | ||
| On top of that, specific **Extensions** can be added to enhance the consumer | ||
| experience without bloating the capability definitions. | ||
| - **Dynamic Discovery:** Businesses declare their supported Capabilities in a | ||
| standardized profile, allowing platforms to autonomously discover and | ||
| configure themselves. | ||
| - **Transport Agnostic:** The protocol is designed to work across various | ||
| transports. Businesses can offer Capabilities via REST APIs, MCP (Model | ||
| Context Protocol), or A2A, depending on their infrastructure. | ||
| - **Built on Standards:** UCP leverages existing open standards for payments, | ||
| identity, and security wherever applicable, rather than reinventing the wheel. | ||
| - **Developer Friendly:** A comprehensive set of SDKs and libraries facilitates | ||
| rapid development and integration. | ||
|
|
||
| ## Key Capabilities | ||
|
|
||
| The initial release focuses on the essential primitives for transacting: | ||
|
|
||
| * **Checkout:** Facilitates checkout sessions including cart management and | ||
| tax calculation, supporting flows with or without human intervention. | ||
| * **Identity Linking:** Enables platforms to obtain authorization to perform | ||
| actions on a user's behalf via OAuth 2.0. | ||
| * **Order:** Webhook-based updates for order lifecycle events (shipped, | ||
| delivered, returned). | ||
| * **Payment Token Exchange:** Protocols for PSPs and Credential Providers to | ||
| securely exchange payment tokens and credentials. | ||
| - **Checkout:** Facilitates checkout sessions including cart management and tax | ||
| calculation, supporting flows with or without human intervention. | ||
| - **Identity Linking:** Enables platforms to obtain authorization to perform | ||
| actions on a user's behalf via OAuth 2.0. | ||
| - **Order:** Webhook-based updates for order lifecycle events (shipped, | ||
| delivered, returned). | ||
| - **Payment Token Exchange:** Protocols for PSPs and Credential Providers to | ||
| securely exchange payment tokens and credentials. | ||
|
|
||
| ## Getting Started | ||
|
|
||
| * 📚 **Explore the Documentation:** Visit [ucp.dev](https://ucp.dev) for a | ||
| complete overview, the full protocol specification, tutorials, and guides. | ||
| * 🎬 **Review our | ||
| [samples](https://github.com/Universal-Commerce-Protocol/samples)** for | ||
| implementation examples. | ||
| * 🛠️ **Use our | ||
| [SDKs](https://github.com/orgs/Universal-Commerce-Protocol/repositories)** | ||
| to start building your own integrations. | ||
| * 📝 **Check conformance** with our [conformance tests](https://github.com/Universal-Commerce-Protocol/conformance). | ||
| - 📚 **Explore the Documentation:** Visit [ucp.dev](https://ucp.dev) for a | ||
| complete overview, the full protocol specification, tutorials, and guides. | ||
| - 🎬 **Review our | ||
| [samples](https://github.com/Universal-Commerce-Protocol/samples)** for | ||
| implementation examples. | ||
| - 🛠️ **Use our | ||
| [SDKs](https://github.com/orgs/Universal-Commerce-Protocol/repositories)** to | ||
| start building your own integrations. | ||
| - 📝 **Check conformance** with our | ||
| [conformance tests](https://github.com/Universal-Commerce-Protocol/conformance). | ||
|
|
||
| ## Contributing | ||
|
|
||
| We welcome community contributions to enhance and evolve UCP. | ||
|
|
||
| * **Questions & Discussions:** Join our [GitHub | ||
| Discussions](https://github.com/Universal-Commerce-Protocol/ucp/discussions). | ||
| * **Issues & Feedback:** Report issues or suggest improvements via GitHub | ||
| Issues. | ||
| * **Contribution Guide:** See our [CONTRIBUTING.md](https://github.com/Universal-Commerce-Protocol/.github/blob/main/CONTRIBUTING.md) | ||
| for details on how to contribute. | ||
| - **Questions & Discussions:** Join our | ||
| [GitHub Discussions](https://github.com/Universal-Commerce-Protocol/ucp/discussions). | ||
| - **Issues & Feedback:** Report issues or suggest improvements via GitHub | ||
| Issues. | ||
| - **Contribution Guide:** See our | ||
| [CONTRIBUTING.md](https://github.com/Universal-Commerce-Protocol/.github/blob/main/CONTRIBUTING.md) | ||
| for details on how to contribute. | ||
|
|
||
| ### Schema Development | ||
|
|
||
| Schemas live in `source/` and are published with `ucp_*` annotations intact. | ||
| **Agents** (such as AI assistants or platforms participating | ||
| in the protocol) can use the | ||
| [ucp-schema](https://github.com/universal-commerce-protocol/ucp-schema) tool to | ||
| resolve these annotations at runtime. This enables them to generate | ||
| operation-specific schema variants (e.g., for 'create', 'update', or 'read' | ||
| operations) from the master schemas, ensuring they only process fields relevant | ||
| to the current action and direction (request vs. response). | ||
|
|
||
| 1. Ensure `ucp-schema` is installed: | ||
|
|
||
| ```bash | ||
| cargo install ucp-schema # from crates.io | ||
| cargo install --git https://github.com/universal-commerce-protocol/ucp-schema # from git | ||
| ``` | ||
|
|
||
| 1. Make updates to JSON files in `source/` | ||
|
|
||
| 1. Run `ucp-schema lint source/` to validate syntax and references | ||
|
|
||
| ### Documentation Development | ||
|
|
||
| This project uses [uv](https://docs.astral.sh/uv/) for Python dependency | ||
| management. | ||
|
|
||
| 1. Install Python dependencies: `uv sync` | ||
| 1. Ensure `ucp-schema` is installed (see above) | ||
| 1. Run the development server: `uv run mkdocs serve --watch source` | ||
| 1. Open **<http://127.0.0.1:8000>** in your browser | ||
| 1. Before submitting, run `uv run mkdocs build --strict` to check for | ||
| warnings/errors | ||
|
|
||
| Alternatively, you can use the local build script to build the full site | ||
| including spec versions: | ||
|
|
||
| ```bash | ||
| ./scripts/build_local.sh | ||
| ``` | ||
|
|
||
| This will build the site and start a local server. You can use the | ||
| `--draft-only` flag to skip release branches and only build the current draft: | ||
|
|
||
| ```bash | ||
| ./scripts/build_local.sh --draft-only | ||
| ``` | ||
|
|
||
| You can start the documentation server locally by running | ||
|
|
||
| ```bash | ||
| python3 -m http.server 8000 -d "local_preview" | ||
| ``` | ||
|
|
||
| The local version of the documentation website will then be available at | ||
| **<http://127.0.0.1:8000>** | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Final nit: maybe add that for contributing to SDKs, Samples, Conformance or other repos, the README in those repos will contain relevant information on specific developer workflows / instructions? |
||
| ## What's Next | ||
|
|
||
| Take a look at [our roadmap on ucp.dev](https://ucp.dev/documentation/roadmap/). | ||
| Future enhancements include: | ||
|
|
||
| * **New Verticals:** Applications beyond Shopping (e.g., Travel, Services). | ||
| * **Loyalty:** Standardized management of loyalty programs and rewards. | ||
| * **Personalization:** Enhanced signals for personalized product discovery. | ||
| - **New Verticals:** Applications beyond Shopping (e.g., Travel, Services). | ||
| - **Loyalty:** Standardized management of loyalty programs and rewards. | ||
| - **Personalization:** Enhanced signals for personalized product discovery. | ||
|
|
||
| ## About | ||
|
|
||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one of these lines is enough for having the cargo, right ? so i suggest splitting the bash code section in 2 and putting an OR in between. (lazy developer would just copy the lines and run in command line and would have issues running both)