Skip to content

Service product files

A product file with $type Service declares the work a Startup sells and warrants, its intake, steps, supply and default Outcome Contract.

A product file with $type: [Service] declares a Service: what the buyer sends, the steps, who checks each, and the default Outcome Contract.

  • products/
  • catalog-audit.mdxCatalogmend's catalog audit
  • offers/
  • catalog-audit.mdx$99 for up to 1,000 listings

Reference

KeyTypeHoldsRequiredStatus
$typelistOne or more of App, API, Agent, Dataset, Servicerequiredlive
nounsNoun namesThe Nouns it exposes; a Dataset holds Things of exactly onelive
verbsVerb idsThe Verbs a Customer may calllive
interfaceslistThe Interfaces it ships on; every kind by defaultlive
workNoun nameThe work Noun it holds from intake until the Customer acceptsrequiredplanned
intakelist of { name, type, measure, required }What the buyer sends before work startsrequiredbeta
coveragelist of sentencesWhat it delivers, for which inputs, stated before any chargerequiredbeta
cadenceonce, recurring or standingOnce per Order, on a period, or continuous and judged by rate termsrequiredbeta
stepslist of stepsEach a Verb with its Function, doer, checker, assurance and legal floorrequiredbeta
supplylist of { role, source }Who does the work, each owned, wrapped or recruitedbeta
contractOutcome Contract termsThe default promise; an Offer may tighten it, never loosen itrequiredbeta
ofRecordstringThe partner of record when a step needs a licensed practicebeta

Examples

Minimal

products/catalog-audit.mdx
---
$type: [Service]
intake: [{ name: listings, type: integer }]
coverage: [Online catalogs up to 50,000 listings]
cadence: once
steps: [{ id: fix, verb: Order.deliver, function: agentic, doer: delivery-manager, checker: 'evaluator:listing-fix', provides: graded }]
contract: { done: Order.delivered, accept: customer, window: P5D, remedy: [{ kind: redo }], earns: Order.confirmed }
---

Catalogmend

products/catalog-audit.mdx
---
$type: [Service]
intake:
  - { name: storeUrl, type: url }
  - { name: listings, type: integer, measure: Listings in the catalog }
  - { name: sizeChart, type: file, required: false }
coverage: [Online catalogs up to 50,000 listings]
cadence: once
steps:
  - { id: import, verb: Order.start, function: code, doer: integration-engineer, checker: 'evaluator:catalog-schema', provides: measured }
  - { id: fix, verb: Order.deliver, function: agentic, doer: delivery-manager, checker: 'evaluator:listing-fix', provides: graded, after: [import] }
contract:
  done: Order.delivered
  statement: Every listing error fixed or explained.
  accept: customer
  window: P5D
  deadline: PT48H
  remedy: [{ kind: redo, within: P2D }, { kind: refund }]
  earns: Order.confirmed
---
Every listing error fixed or explained within 48 hours.

What it builds

The ServiceBuilder compiles the file.

  • the order form from intake, in the Portal and as the inputs a buyer's agent sends
  • each step as an Action run by its doer and graded by its checker, never the doer
  • the publish check: Offer.publish refuses an Offer whose remedy or basis the steps cannot back
  • the Portal, the supplier app for recruited supply, and the review queue for human steps

Good to know