Uh oh!
There was an error while loading. Please reload this page.
schemas: MPCC event contract v0.1 — conversation + trading event family - #204
Merged
Conversation
Land the conversation-event contract v0.1 from SocioProphet/profit-mpcc as first-class SourceOS typed contracts, hardened from the loose drafts to the bar set by profit-mpcc's policy-integrity tranche-0001 snapshots: additionalProperties:false everywhere, specVersion pinned to const 0.1.0, anchored urn:srcos: id patterns, mandatory idempotency keys, and required fields limited to source-required fields or stated invariants. - ConversationEvent: the canonical 26-field conversation-fabric event (causal parents, authority context w/ delegation chain, visibility scope, requested/approved/actual effect refs, modality, speech act). Domain object: rides inside EventEnvelope on channels rather than replacing it; bridges to SourceOSInteractionEvent by reference (interactionEventRefs). - EffectRequest / EffectDecision / EffectRecord: the requested -> approved -> actual -> compensated effect lifecycle. EffectDecision references PolicyDecision (policyDecisionRefs) and ExecutionDecision (executionDecisionRef) instead of duplicating them; EffectRecord grounds authority in a decision or a first-class autonomous policy path (anyOf). - NullAbsenceRecord: the 12-kind null/absence taxonomy so distinct kinds of nothing are never conflated. - MarketDataEvent, OrderIntent, ExecutionReport, PositionChange, ReconciliationRecord: the trading families as structural profiles of the ConversationEvent envelope — one shared envelope vocabulary, with parity machine-enforced by tools/validate_mpcc_event_examples.py. Includes canonical examples telling one end-to-end governed trade story, negative conformance vectors (fixtures/mpcc-event-contract/conformance.json), a validate-mpcc-event-examples Make target wired into make validate, a normative spec note (specs/mpcc-event-contract.md), and schema-catalog / CHANGELOG updates. Provenance: SocioProphet/profit-mpcc schemas/event.schema.json, effect-request/effect-record/approval-event/null-absence and the five trading *-event.schema.json drafts, plus exports/policy-integrity/tranche-0001 decision/effect schema snapshots and docs/canonical-event-schema.md, docs/effect-approval-semantics.md, docs/null-absence-taxonomy.md, docs/trading-event-families.md.
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Jul 29, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Lands the MPCC (multi-party conversation control) conversation-event contract v0.1 plus the trading event family as first-class typed contracts, imported from
SocioProphet/profit-mpccand hardened from its loose drafts to the strictness bar set by profit-mpcc's own policy-integrity tranche-0001 snapshots:additionalProperties:falseon every object,specVersionpinned to const0.1.0(per-family contract version, in the style of the in-repo*.v1.1.jsoncontrol-plane contracts), anchoredurn:srcos:id patterns, mandatory idempotency keys, and required fields limited to source-required fields or stated invariants.Schemas added (10) + provenance
ConversationEvent.jsonurn:srcos:conversation-event:schemas/event.schema.json+docs/canonical-event-schema.mdEffectRequest.jsonurn:srcos:effect:schemas/effect-request.schema.json+exports/policy-integrity/tranche-0001/effect.schema.snapshot.jsonEffectDecision.jsonurn:srcos:effect-decision:schemas/approval-event.schema.json+exports/policy-integrity/tranche-0001/decision.schema.snapshot.json+docs/effect-approval-semantics.mdEffectRecord.jsonurn:srcos:effect-record:schemas/effect-record.schema.json+exports/policy-integrity/tranche-0001/effect.schema.snapshot.jsonNullAbsenceRecord.jsonurn:srcos:null-absence:schemas/null-absence.schema.json+docs/null-absence-taxonomy.md(12-kind taxonomy, verbatim)MarketDataEvent.jsonurn:srcos:market-data-event:schemas/market-data-event.schema.jsonOrderIntent.jsonurn:srcos:order-intent:schemas/order-intent-event.schema.jsonExecutionReport.jsonurn:srcos:execution-report:schemas/execution-report-event.schema.jsonPositionChange.jsonurn:srcos:position-change:schemas/position-change-event.schema.jsonReconciliationRecord.jsonurn:srcos:reconciliation-record:schemas/reconciliation-event.schema.jsonPlus: 10 canonical examples telling one end-to-end governed trade story (quote -> agent proposal -> effect request -> human approval w/ policy-narrowed rewrite -> order intent -> venue fill -> effect record -> position change -> EOD reconciliation, plus a typed feed-gap absence), negative conformance vectors (
fixtures/mpcc-event-contract/conformance.json),tools/validate_mpcc_event_examples.pywired asmake validate-mpcc-event-examples(and intomake validate), a normative spec note (specs/mpcc-event-contract.md), andschemas/README.md+CHANGELOG.mdentries.One envelope, not two
The five trading events are structural profiles of the ConversationEvent envelope: they carry the identical shared vocabulary (
specVersion,actorRef,workspaceRef,branchRef,visibilityScope,wallTime,logicalTime,causalParents,traceContext,provenanceLinks,policyLabels,riskLabels, plus the sharedauthorityContextblock), with parity machine-enforced by the validator — any drift fails the build. Required-ness varies per family (venue-originatedMarketDataEventdoesn't requireactorRef;ConversationEvent/OrderIntentdo); the vocabulary may not.allOfcomposition was rejected because this repo requiresadditionalProperties:falseon every object (CONTRIBUTING.md), which is incompatible withallOfenvelope reuse in draft 2020-12 short of introducingunevaluatedProperties— used nowhere in the v2 family. Self-contained strict files match both the house style and the tranche-0001 snapshots.Overlap decisions (spec-first, nothing duplicated)
EventEnvelope— kept as the AsyncAPI wire wrapper; MPCC events are domain objects that ride in itspayload. Different layer, no competition.SourceOSInteractionEvent— surface/interaction telemetry stays there;ConversationEventis the durable fabric record and bridges by reference viainteractionEventRefs(urn:srcos:interaction-event:pattern).PolicyDecision— not duplicated;EffectDecision.policyDecisionRefs(urn:srcos:decision:pattern) references it as the policy-evaluation basis.EffectDecisionremains necessary: neither existing decision type carries the approved effect shape or the requested->approved->actual chain.ExecutionDecision— not duplicated;EffectDecision.executionDecisionRef(urn:srcos:exec-decision:pattern) references it when an agent-session gate participated.runtime-effect-decision.v1.1— distinct concern (control-plane event-pipeline dispatch); untouched.SettlementEvent— distinct concern (FogCompute usage-receipt settlement);ReconciliationRecordcovers post-trade reconciliation incl.settlement-windowscope, stated in its description.AbstentionEvent(in-flight onfeat/sp-patt-warr-001-schemas, not onmain) — no file or concept collision: that is a warrant-ceiling authority event;NullAbsenceRecord'sabstentionkind classifies an observed absence in the event fabric. Complementary — an abstention occurrence can be recorded askind: abstention+relatedEventRef. No structural dependency taken.Topic—ConversationEvent.topicsmay carryurn:srcos:topic:URNs where the fog-layer Topic applies.decisionHashfollows the existingPolicyDecision/ExecutionDecisionsha256:convention; scalar-map fields follow theAgentMachineReceipt.metricsconvention.Exact commands run
Pass/fail output summary
make validate— all family targets green, ending:validate-mpcc-event-examples(full check detail — 34/34 true):Guardrails:
Known gaps (deliberate, v0.1)
semantic/context.jsonldmappings yet — matches how the recent contract families (reasoning, agent-machine, pattern-warrant) landed; the context-mapping CI step warns without failing. Wiring follows once names settle.claims/entitiesare free-form stable references (typed claim/entity contracts are future work);workspaceRef/branchRefare free-form pending adoption of the profit-mpcc branch-id contract.docs/trading-event-families.md§2/§4) are not yet landed.feat/sp-patt-warr-001-schemas(or vice versa) will produce a trivialMakefileconflict (both append a validate target); either order resolves in seconds.Blocked
Nothing blocked.