{"name":"Composium.app","version":"1","operation":{"$id":"https://composium.app/machine/contracts/operation.v1.json","contractVersion":"1","operationId":"ConductAComposition","identity":{"callCondition":"When you don't know what to do next.","publicExpression":"Conduct A Composition.","priceDisplay":"Cents 400 Seconds","price":{"amount":400,"currency":"EUR","unit":"cent"},"time":{"totalSeconds":400,"writingSeconds":300,"remainingSeconds":100,"clockStarts":"The human's deliberate HOME entry action starts or resumes one server-owned Composition operation; the database records the authoritative start and deadlines.","allocation":"The database records one 300-second writing boundary and one 400-second operation deadline from START. At 300 seconds COMPOSE advances to COMPOSIUM; the human's writing and Click can still be frozen as the proposal and Checkout started until the 400-second operation deadline. Verified €4 payment, not proposal freeze, commits the purchase.","checkoutLatency":"New Checkout is refused after the 400-second deadline. A Checkout initiated within the deadline remains recoverable for 48 hours; the application reuses its open Session and retries only after Stripe confirms the prior Session expired. The operation clock never cancels paid fulfillment; the Card and SAVE/SEND/EXIT are outside it.","runtimeStatus":"implemented-locally; requires the pending operation-spine migration and provider verification","reason":"Database timestamps and service-side checks are authoritative; the 300-second boundary advances the room but does not block the remaining Checkout window. The 400-second operation deadline closes new Checkout."}},"lifecycle":{"humanFacingIdentity":"composium_id","storageIdentity":"composition_id","identityMapping":"The human-facing composium_id is the same UUID stored as composition_id. It is not a second identifier; no schema rename is implied.","phases":{"START":"The first deliberate HOME click creates or resumes one server-owned identity and starts the 400-second clock.","PROPOSE":"The human writes and proposes one Click. The exact proposition is frozen on the same Composition when Checkout is requested.","COMMIT":"Verified €4 Stripe payment commits the proposition to one purchased Composium; payment changes state, not identity.","ENACT":"Carmelita resolves the paid proposition to One Line, Tone, Composition, and Conduct; Supabase preserves one result at its stable private Card address.","CLOSE":"EXIT returns to HOME and closes the active human journey. The Composium remains retrievable under its custody contract."},"completionBoundaries":{"checkout":"Verified payment completes commitment.","card":"Making the Conduct accessible completes paid fulfillment.","exit":"Returning to HOME completes the active human journey."},"invariant":"HOME, COMPOSE, COMPOSIUM, Stripe, Carmelita, Supabase, CONDUCT, and the Card address refer to one identity. Existing composition_id relationships implement that identity without an automatic rename."},"result":{"compositionIdentity":"One composium_id, stored as the same underlying composition_id, binds the human writing, Click, Stripe purchase, Carmelita result, Supabase record, and Card address; failed or expired Checkout attempts may be separate purchase records.","purchase":"At most one paid €4 entitlement is associated with a Composition. Each failed or expired Checkout retry is recorded as a separate unpaid attempt; attempts do not create additional paid entitlements.","card":"One issued private Card with a stable /card/:reference address, the exact submitted Click retained as source, and Carmelita's title for the complete Composition–Conduct, Tone, Composition, Conduct, and Reference. The title is grounded in the source; the original Click remains unchanged.","authority":"The human decides whether and how to carry out Conduct. Payment and Card retrieval do not authorize external execution."},"authorization":{"payment":"The human authorizes €4 in Stripe Checkout and accepts the displayed Terms. Only server-verified payment completes commitment and authorizes Carmelita fulfillment.","machine":"Public API access alone cannot create a paid entitlement, access a private Card, or authorize external execution. No autonomous machine purchasing endpoint is implemented.","cardRetrieval":"The owner capability cookie or authenticated Vault ownership reads the original. An owner may issue a scoped read-only share capability to a recipient or machine. A reference alone is not authority.","execution":"Human decision required; external execution is not implemented."},"card":{"schema":"/machine/contracts/card.v1.schema.json","rawWritingIncluded":false,"issuanceState":"issued","conductExecution":"not-authorized-by-card"},"capabilities":{"humanBrowser":"implemented","vaultMagicLink":"implemented-locally; Supabase Auth/email and migration execution unverified","vaultCardRecovery":"implemented-locally; real cross-device recovery unverified","publicMachineDiscovery":"implemented","machineCompositionSubmission":"not-implemented","machinePurchase":"not-implemented","delegatedMachineCardRetrieval":"implemented-locally through an explicit read-only share capability; reference-only access is denied","mcp":"not-implemented"},"verification":{"runtimeTests":"mocked and unit tested","realDatabase":"not-verified; local migrations have not been executed or checked against the target project","realStripeTransaction":"not-verified","productionDeployment":"not-verified"},"matrix":{"COMPOSE":{"HUMAN":{"participant":"Human","call":"The human has one unresolved matter and wants to write what matters.","input":"Human-authored writing, up to 1500 characters.","authority":"The human controls the draft; it stays in same-tab sessionStorage until Checkout is requested.","action":"START deliberately from HOME, then compose in COMPOSE; the room advances at 300 seconds and COMPOSIUM remains available until 400 seconds.","time":"Database timestamps establish a 300-second COMPOSE boundary and 400-second total operation deadline from START.","output":"A local draft carried to COMPOSIUM with the same server-issued composium_id (stored as composition_id).","refusal":"The page cannot continue a blank draft; the server refuses new Checkout only after the 400-second operation deadline.","silence":"Do not call when the next move is already clear, a simple answer suffices, or the human does not want to compose.","continuity":"The server reserves one identity and stable Card reference at HOME; the proposed writing and Click freeze on that same row when Checkout is requested."},"MACHINE":{"participant":"Machine client","call":"Context suggests unresolved direction and the human has invited a recommendation.","input":"Public operation information only; no customer writing is accepted by discovery GET routes.","authority":"Public read only; relevance is not purchase consent.","action":"Read /machine and the published schemas; optionally explain fit and limits.","time":"No operation clock starts for discovery reads.","output":"A recommendation the human may accept or ignore.","refusal":"Do not recommend where emergency help, professional advice, or an immediate factual answer is needed.","silence":"Do nothing when the human did not invite help, the next move is clear, or a simple response is enough.","continuity":"No customer state is created; only the operation identifier is carried in public documentation."},"TOGETHER":{"participant":"Human with an independently operated assistant","call":"The human asks for help turning uncertainty into material they choose to write.","input":"Only content the human elects to disclose to that assistant and later submit.","authority":"The human chooses disclosure, wording, and whether to continue.","action":"The assistant may ask clarifying questions or organize the human's own ideas; the human writes the submitted draft.","time":"The assistant conversation is external; the Composium clock begins only at the human's deliberate HOME entry and then applies to the browser operation.","output":"A human-approved draft.","refusal":"Decline to infer consent or handle emergencies as ordinary composition.","silence":"Do not speak or disclose material without the human's request.","continuity":"The human decides which version enters the browser's local draft."}},"COMPOSIUM":{"HUMAN":{"participant":"Human","call":"The human wants to authorize one €4 Composium from their writing and Click.","input":"Local writing, original Click up to 2000 characters, server-issued composium_id (stored as composition_id), and stable purchase idempotency key.","authority":"The human proposes the Click and requests Checkout; verified €4 payment completes commitment. Stripe acceptance and server verification cover environment, payment, consent, amount, currency, purchase identity, and Composition identity before Carmelita fulfillment.","action":"Freeze the exact proposal on the existing Composition when Checkout is requested; create or recover its purchase attempt; after verified payment, commit the purchase and invoke Carmelita idempotently.","time":"New Checkout is refused after the 400-second deadline. A timely started Checkout is recoverable for 48 hours; open Sessions are reused and retries require Stripe to confirm the earlier Session expired. Paid delivery survives the writing and operation clocks; receiving and carry actions have no operation timer.","output":"At most one paid entitlement and one issued Composium on the same Composition row; retries retrieve or finish that result rather than generating a second one.","refusal":"Reject invalid input, changed material under the same identity, unverified or wrong-environment payment, or a closed/refunded purchase.","silence":"Do not create Checkout before the explicit human Click; do not charge or retry with changed material automatically.","continuity":"The same composium_id/composition_id and Card reference pass from HOME through Checkout, verified payment, Carmelita, Supabase, and private Card retrieval; purchase and Stripe session IDs link back to that row."},"MACHINE":{"participant":"Machine client","call":"The human or developer needs to inspect the implemented transaction boundary.","input":"Public API documentation and OpenAPI only; write routes support the same-origin browser flow.","authority":"Documentation access grants no payment authority. No machine submission or autonomous purchase is implemented.","action":"Read /api and /api/openapi.v1.json; do not invoke customer write routes as an agent.","time":"No machine operation deadline is implemented.","output":"HTTP route, schema, and authorization documentation.","refusal":"No autonomous purchase, payment bypass, or provider impersonation.","silence":"Do not call purchase routes without a separately implemented and human-approved authorization mechanism.","continuity":"Public operation ID and version only; no private Composition or Purchase ID is exposed by discovery."},"TOGETHER":{"participant":"Human and optional assistant","call":"The human wants help checking a Click before deciding whether to pay.","input":"Human-selected writing and Click.","authority":"Only the human authorizes payment in Stripe Checkout; assistant advice is not consent.","action":"The assistant may explain the offer or help review the Click; the human alone proceeds to Checkout.","time":"Assistant time is external; the browser operation permits timely Checkout initiation within 400 seconds and preserves that Checkout for 48 hours. Paid fulfillment remains recoverable beyond the operation clock.","output":"At most one paid entitlement and a recoverable fulfillment for that Composition.","refusal":"Do not accept terms, enter payment details, or buy on the human's behalf.","silence":"If the human declines or has not authorized disclosure, stop without creating Checkout.","continuity":"The human's exact Click and Composium identity remain unchanged through payment and retries."}},"CONDUCT":{"HUMAN":{"participant":"Human Card owner","call":"A paid Composition is ready or the owner returns to its stable Card address.","input":"No new writing is required to retrieve an issued Card.","authority":"An active owner capability or authenticated Vault ownership is required to read or delete private content.","action":"Receive the persisted result, then deliberately SAVE, SEND, or EXIT. EXIT returns to HOME and closes the active journey; the application does not execute Conduct.","time":"Card delivery and retrieval are outside the operation clock; the Composium remains retrievable under its custody contract.","output":"Original Click, Composition–Conduct title (One Line), Tone, Composition, Conduct, Reference, and issuance/authority state.","refusal":"Do not reveal missing, deleted, or unauthorized Cards.","silence":"Do not conduct, share, send, or execute without the human's separate choice.","continuity":"Stable Card reference remains linked to the same identity; EXIT closes the journey without deleting or changing the Composium."},"MACHINE":{"participant":"Recipient supplied the owner's share capability","call":"The owner explicitly chooses SEND for one Composium.","input":"The exact stored One Line and Conduct as the authorized Beat, plus a Card reference and recipient share capability. The original writing and Click remain private.","authority":"The owner's SEND action grants read-only recipient access. It grants no Vault ownership, purchase power, source access, or external execution authority.","action":"Deliver the exact One Line and Conduct with the canonical Card URL; a recipient reads the same Card fields through the X-Composium-Share capability. The owner can revoke recipient access.","time":"Current grants have no automatic expiry and remain active until revoked or the Card is deleted. An expiry policy requires owner approval.","output":"Only One Line, Tone, Composition, Conduct, and Card reference; no payment, source, custody, or internal authority metadata.","refusal":"Deny a bare reference, revoked share, deleted Card, or any write/execution request.","silence":"Do not create recipient access before SEND or execute the Conduct; GET has no side effect.","continuity":"The same Card identity remains under owner custody while recipient read access can be independently revoked."},"TOGETHER":{"participant":"Human Card owner with an assistant","call":"The human chooses to discuss a received Card with an assistant.","input":"Only Card content the human deliberately shares.","authority":"The human controls sharing and retains the final decision.","action":"The assistant may help interpret or refine the human's thinking; only the human can carry Conduct outward.","time":"Outside Composium; no execution timer.","output":"Human understanding or a human-chosen next step, not an automatically executed action.","refusal":"Do not impersonate the owner, expose another person's Card, or execute the Conduct.","silence":"Stop when the human withdraws permission or the Card is private to another person.","continuity":"The existing Card stays one identity; a new Composition requires a new explicit human operation."}}},"discovery":{"machine":"/machine","api":"/api","json":"/.well-known/composium.json","openapi":"/api/openapi.v1.json","robots":"/robots.txt","sitemap":"/sitemap.xml","policies":{"terms":"/terms","privacy":"/privacy","refunds":"/refunds"},"openGraphImage":{"url":"https://composium.app/assets/composium-og.png","requiredDesign":"Black background, white typography, canonical operation identity with a magenta signal.","assetStatus":"present; provisionally sourced from repository OG.png","dimensions":{"width":1671,"height":941}}}},"operationContract":"/machine/contracts/operation.v1.json","legacyJsonRoute":"/machine.json","apiDocumentation":"/api","openApi":"/api/openapi.v1.json","statement":"Composium.app turns one human-authored decision into one machine-composed Card that the human can conduct.","stages":["COMPOSE","COMPOSIUM","CONDUCT"],"participants":["HUMAN","MACHINE","TOGETHER"],"machineBoundary":{"mode":"read-only-documentation","contracts":{"operation":"/machine/contracts/operation.v1.json","composition":"/machine/contracts/composition.v1.schema.json","purchase":"/machine/contracts/purchase.v1.schema.json","card":"/machine/contracts/card.v1.schema.json"},"operations":{"machineWrite":false,"machinePurchase":false,"privateCardRetrieval":false,"externalExecution":false},"humanInterface":{"home":"/","compose":"/compose","composium":"/composium","conduct":"/conduct"}},"legalDocuments":{"privacy":{"status":"available","publicRoute":"/privacy"},"terms":{"status":"available","publicRoute":"/terms"},"refund":{"status":"available","publicRoute":"/refunds"}}}