dist/cursor/a2a-multi-agent/skills/a2a-setup/SKILL.md
Scaffold a new A2A project — install the SDK, create directory structure, configure the Agent Card, and set up a basic server/client. Use when starting a new A2A multi-agent project from scratch.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins a2a-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch live docs:
https://a2a-protocol.org/latest/specification/ for the latest protocol overviewsite:github.com a2aproject a2a-python README or a2aproject a2a-js README for the target SDK's current installation and quickstartsite:github.com a2aproject a2a-samples for official sample project structuresA2A project setup creates the foundation for a multi-agent system:
my-a2a-agent/
├── agent_card.json # Agent Card (also served at /.well-known/agent-card.json)
├── server.py # A2A server entry point
├── client.py # A2A client for testing
├── agent/
│ ├── __init__.py
│ └── handler.py # Task processing logic
├── pyproject.toml # or requirements.txt
└── tests/
└── test_agent.py
my-a2a-agent/
├── agent-card.json
├── src/
│ ├── server.ts # A2A server entry point
│ ├── client.ts # A2A client for testing
│ └── handler.ts # Task processing logic
├── package.json
├── tsconfig.json
└── tests/
└── agent.test.ts
Every A2A agent needs an Agent Card. Minimal structure:
{
"name": "My Agent",
"description": "What this agent does",
"url": "http://localhost:8000",
"version": "1.0.0",
"protocolVersion": "0.2.1",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"skills": [
{
"id": "skill-1",
"name": "Skill Name",
"description": "What this skill does",
"tags": ["tag1", "tag2"],
"examples": ["Example input"]
}
],
"defaultInputModes": ["text/plain"],
"defaultOutputModes": ["text/plain"]
}
a2a-sdk), JS/TS (@a2a-js/sdk), Go, Java, .NET/.well-known/agent-card.json or via a registryFetch the SDK README for exact installation commands, class names, and quickstart code before scaffolding.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.