Composition
Composition builds one Product from others, and coverage, cost, availability, and remedy roll up through every link.
Composition builds one Product from others: a Service uses an Agent, the Agent uses Software, and the Software uses a Dataset. Each link is declared, typed, and priced, and the composite's numbers are computed from its parts.
A worked chain
vendorproof.com is a Startup that vets suppliers for procurement teams. It sells four Products, each built from the one above it.
| Product | Kind | Built from | Sold per |
|---|---|---|---|
| Firm records | Dataset | Public company registries | Lookup |
| Vendor onboarding | Software | Firm records | Seat |
| Vetting agent | Agent | Vendor onboarding, firm records | Passed review |
| Vendor vetted in 48 hours | Service | Vetting agent, a credentialed reviewer | Accepted report |
Each Product keeps its own Offer and Entitlements. A Customer who buys lookups gets no onboarding seat, and a Customer who orders the Service never needs one. Only the Service carries an Outcome Contract: it answers for the result, while the Agent beneath it answers for its graded work.
Computed, not claimed
A composite's promise is arithmetic over its links, never a number someone typed. SoftwareBuilder computes each figure from the graph of links and republishes it when any part changes.
| Figure | How it rolls up |
|---|---|
| Coverage | The overlap of every part's coverage: the Service vets only companies the records cover |
| Unit cost | The sum of each part's cost per unit, plus the reviewer's time |
| Availability | Bounded by the least available part on the path |
| Assurance | The weakest check on the path, unless a later step re-checks the work |
| Remedy | Runs down the chain: the part that missed settles its own remedy first |
When a vetting misses its 48 hours because the records were stale, the Dataset's remedy settles against the Service before the Service refunds its Customer. Each Product answers for its own promise, and the books show who paid.
Visible and internal parts
A part is visible when it has its own Offer, and internal when it is only a Source. vendorproof.com sells its firm records openly, and screens sanctions lists through a Source no Customer sees. Both appear in the Product's cost; only one appears in its catalog.
Sources across Startups
A Source is owned, wrapped, or recruited. When another Startup's Product is the Source, vendorproof.com orders it through that Startup's Offer under an Agreement. The supplier delivers the outcome, bills for it, and answers for it.
Sharing a Studio never merges two Startups' books. A Product a sibling sells stays the sibling's Product, with its own revenue and its own cost.
When a part fails
A dependency is declared by what the promise requires, not by technology. When a company registry is down, the Agent's Action waits as pending with reason awaitingSource. The Offer declares what happens next: wait, switch to a second Source, narrow the deliverable, or pay the remedy.
A substitute keeps the promise or changes it in the open. A switch of Source that changes a field's meaning is a Change, reviewed like any other.
Versions along the chain
Each Product pins the Version of every Product it uses. A new Version of the firm records reaches the Agent only when the Agent's definition moves to it through a Change. One improvement to a shared Dataset then reaches every Product built from it, one reviewed Change at a time.
The E2E managed service Product Template starts a Service with its Agent and human steps declared. The Services-as-Software Product Template starts one that runs on Agents alone.
Next
Where each part runs covers the three kinds of Implementation.