ContractSpec docs

OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

Marketing agent tools

Public product/plan reads + auth-gated demo booking for the on-site agent and MCP projection.

field.key.label
Marketing agent tools
field.version.label
field.type.label
field.title.label
Marketing agent tools
field.description.label

Public product/plan reads + auth-gated demo booking for the on-site agent and MCP projection.

field.tags.label
marketing,agent-surface,operations
field.owners.label
field.stability.label
public

Three operations power the on-site embedded agent and the public MCP projection:

`marketing.product.get` (query, **public**) — product/feature facts.

`marketing.plans.compare` (query, **public**) — ranked pricing-plan comparison.

`marketing.demo.book` (command, **auth + rate-limited**) — books a demo and

returns a synthetic booking id. Default-deny: unauthenticated callers are rejected.

Schemas live in `operations/marketing.ts`; stub handlers in `operations/marketing.handlers.ts`. Real product/plan data is sourced from app-config `aiDiscovery.productKnowledge` and marketing config at the composition root.