Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,8 @@ If you are new here, start with these:
The current hill and what this repo is actively trying to lock down.
- [docs/invariants/CONTINUUM.md](docs/invariants/CONTINUUM.md)
Canonical cross-repo invariants.
- [docs/contract-family-registry.md](docs/contract-family-registry.md)
Current shared family registry, consumers, witness posture, and gaps.
- [apps/warp/README.md](apps/warp/README.md)
The current Continuum-owned prototype for the WARPspace CLI and stack bootstrap.

Expand Down
105 changes: 105 additions & 0 deletions docs/contract-family-registry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
title: Contract Family Registry
status: active
---

# Contract Family Registry

This registry is the Continuum-owned cross-repo map for shared contract
families.

It answers four practical questions:

- where is the family authored?
- what shared nouns does it publish?
- what evidence exists today?
- what compatibility cut is still missing?

The registry is not a runtime, compiler, schema replacement, or wire protocol.
It is coordination truth. The authored GraphQL family remains the contract
source. Wesley compiles and witnesses. Sibling runtimes and tools emit or
consume values that conform to those families.

## Registry Rules

1. A registry row names a shared family, not an implementation.
2. Authored home, compiler owner, runtime emitter, and consumer are separate
roles.
3. Echo and `git-warp` are sibling Continuum runtime implementations. Neither
one receives a privileged role from this registry.
4. Runtime posture terms such as browser-hosted, durable, archival, low-latency,
offline-first, hot, or cold are deployment metadata. They do not assign
protocol roles.
5. A family is not considered runtime-proven until a sibling runtime emits or
consumes conforming values and a witness records the claim.
6. A mirror, generated artifact, fixture, or cache is not the authored family.

Registry keys are repo-local labels. They are not yet stable wire ids.

## Status Vocabulary

| Status | Meaning |
| --- | --- |
| `authored` | The GraphQL source exists in Continuum under `schemas/`. |
| `profiled` | The Continuum Wesley module has a named compile or bundle profile. |
| `fixture-witnessed` | Wesley tests check generated surfaces against fixtures. |
| `runtime-open` | Live sibling runtime emission or admission is not yet witnessed. |
| `interop-open` | Cross-runtime exchange has not yet been proven. |

## Family Matrix

| Registry key | Version | Authored home | Shared nouns | Wesley status | Runtime status | Primary consumers | Evidence today | Open cut |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `receipt-family` | `0.1.0` | [`schemas/continuum-receipt-family.graphql`](../schemas/continuum-receipt-family.graphql) | `Receipt`, `DeliveryObservation`, `Capability`, `Witness` | `profiled`, `fixture-witnessed` | `runtime-open` | Echo, `git-warp`, `warp-ttd`, app/tool repos through generated artifacts | `wesley/test/witness-continuum.bats`, `wesley/test/contract.bats`, receipt fixtures | Replace fixture/mock vectors with live sibling-runtime receipt publication. |
| `settlement-family` | `0.1.0` | [`schemas/continuum-settlement-family.graphql`](../schemas/continuum-settlement-family.graphql) | `SettlementRequest`, `SettlementDelta`, `ImportCandidate`, `ConflictArtifact`, `SettlementDecision`, `SettlementPlan`, `SettlementResult` | `profiled`, `fixture-witnessed` | `runtime-open` | Echo, `git-warp`, `warp-ttd`, app/tool repos through generated artifacts | `wesley/test/witness-continuum.bats`, settlement fixtures | Prove live settlement values from sibling runtime suffix/import flows. |
| `neighborhood-core-family` | `0.1.0` | [`schemas/continuum-neighborhood-core-family.graphql`](../schemas/continuum-neighborhood-core-family.graphql) | `NeighborhoodCore`, `NeighborhoodParticipant`, `AdmissionOutcomeKind` | `authored` | `runtime-open` | `warp-ttd`, Echo, `git-warp`, app/tool observers | Authored schema and design packet `0022` | Add Wesley profile and fixture witness before claiming runtime support. |
| `runtime-boundary-family` | `0.1.0` | [`schemas/continuum-runtime-boundary-family.graphql`](../schemas/continuum-runtime-boundary-family.graphql) | `IntentEnvelope`, `TickResult`, `ObserverPlan`, `ObservationRequest`, `ReadingEnvelope`, `SuffixShell`, `ImportOutcome` | `authored` | `runtime-open`, `interop-open` | Echo, `git-warp`, Wesley, `warp-ttd`, app/tool hosts | Authored schema and design packet `0028` | Add Wesley profile, then prove witnessed suffix exchange/admission between sibling runtimes. |

## Runtime-Boundary Noun Matrix

This section expands the active `runtime-boundary-family` spine because it is
the next compatibility target.

| Noun | Boundary role | Expected producers | Expected consumers | Evidence cut still missing |
| --- | --- | --- | --- | --- |
| `IntentEnvelope` | Set-side intent carrier. | App hosts, Echo, `git-warp`, or another sibling runtime. | Sibling runtimes and Wesley witness tooling. | Generated profile plus one runtime emission fixture. |
| `TickResult` | Immediate admission result. | Echo, `git-warp`, or another sibling runtime. | App hosts, `warp-ttd`, Wesley witness tooling. | Live admission value mapped to authored outcome kind. |
| `ObserverPlan` | Get-side observer plan. | App hosts, `warp-ttd`, runtime adapters. | Sibling runtimes and observer tooling. | Profile fixture that preserves plan identity and source metadata. |
| `ObservationRequest` | Request for one observer-relative reading. | App hosts, `warp-ttd`, runtime adapters. | Sibling runtimes and witness tooling. | Query/read path proof linking request to plan. |
| `ReadingEnvelope` | Observer-relative reading result. | Echo, `git-warp`, or another sibling runtime. | App hosts, `warp-ttd`, sibling runtimes. | Witness that reading links request, plan, lane, and backing shell. |
| `SuffixShell` | Witnessed causal suffix export/import shell. | Echo, `git-warp`, or another sibling runtime. | Sibling runtimes and Wesley witness tooling. | Export fixture with base and target frontier digests. |
| `ImportOutcome` | Distributed suffix admission result. | Target sibling runtime. | Source sibling runtime, `warp-ttd`, app hosts. | Admission witness linking outcome to `SuffixShell`. |

## Repo Role Matrix

| Repo | Registry role | Must not become |
| --- | --- | --- |
| Continuum | Semantic owner, authored home for shared families, registry owner. | A runtime, substrate, or third engine. |
| Wesley | Compiler, bundle, manifest, codec, witness, and drift-watch owner. | Semantic owner for Continuum families. |
| Echo | Sibling runtime implementation that may emit and consume conforming values. | A subordinate runtime below `git-warp`. |
| `git-warp` | Sibling runtime implementation that may emit and consume conforming values. | The durable half of Echo. |
| `warp-ttd` | Debugger, operator surface, and generated-artifact consumer. | A hand-normalized substitute for shared contracts. |
| App/tool repos | Domain-family authors and generated-artifact consumers. | Shadow homes for Continuum-owned families. |

## Compatibility Claims

| Claim | Current status | Evidence needed before stronger wording |
| --- | --- | --- |
| Wesley can compile and witness the receipt family. | `fixture-witnessed` | Keep contract release, sync, witness, and drift-watch checks green. |
| Wesley can compile and witness the settlement family. | `fixture-witnessed` | Keep settlement witness fixtures and publication-boundary checks green. |
| Neighborhood core is a shared authored family. | `authored` | Add a Wesley profile and fixture witness. |
| Runtime boundary is the next sibling-runtime interop family. | `authored` | Add a Wesley profile and live suffix/admission witness. |
| Echo and `git-warp` interoperate through shared Continuum runtime-boundary values. | `interop-open` | Prove witnessed suffix exchange and admission between sibling runtimes. |

## Maintenance Rule

Update this file when any of these change:

- a Continuum-authored family is added, renamed, or removed
- a family version changes
- Wesley gains or loses a compile, bundle, witness, or drift-watch profile
- Echo, `git-warp`, `warp-ttd`, or an app repo publishes compatibility metadata
- a witness turns a compatibility gap into evidence

Do not update this registry to make a claim aspirationally true. Add the row as
a gap until there is inspectable evidence.
161 changes: 161 additions & 0 deletions docs/design/0029-cross-repo-contract-family-registry/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
---
title: Cross-Repo Contract Family Registry
status: proposed
---

# Cross-Repo Contract Family Registry

**Cycle:** 0029-cross-repo-contract-family-registry
**Legend:** SOURCE
**Type:** coordination cycle
**Sponsor human:** James
**Sponsor agent:** Codex

## Hill

Publish one small registry that makes shared contract-family ownership,
consumption, and witness posture visible across Continuum, Wesley, Echo,
`git-warp`, and `warp-ttd`.

The registry exists so maintainers can answer:

- which repo authored this family?
- which shared nouns does the family publish?
- does Wesley have a profile or witness for it?
- which sibling runtimes or tools are expected to emit or consume it?
- which claims are still gaps?

## Why This Exists

The sibling-runtime doctrine is now clearer:

- Continuum owns shared protocol, contract, admissibility, and witness language
- Wesley compiles and witnesses Continuum contract families
- Echo and `git-warp` are sibling runtime implementations
- `warp-ttd` is a debugger/operator consumer, not a shadow contract authority

But the repo still needed one practical map that separates those roles per
family.

Without that map, every discussion has to rediscover the same answers by
memory, and downstream repos can accidentally turn generated artifacts,
fixtures, or host-local mirrors into de facto canonical contracts.

## Decision

The registry lives at:

- [docs/contract-family-registry.md](../../contract-family-registry.md)

It is intentionally Markdown-first. The current need is a factual
coordination table, not a new schema, CLI, database, or generated artifact.

The registry records:

- registry key
- version
- authored home
- shared nouns
- Wesley status
- runtime status
- primary consumers
- evidence today
- open compatibility cut

## Registry Law

### 1. Authored home is not runtime truth

The authored GraphQL family says what the shared contract means. It does not
make Continuum a runtime, substrate, or implementation facade.

### 2. Wesley status is not semantic ownership

Wesley may compile, bundle, witness, and drift-watch a family. That does not
make Wesley the semantic owner of Continuum-owned families.

### 3. Runtime status needs runtime evidence

A family is not live-runtime-compatible merely because a schema exists or a
fixture passes.

Runtime compatibility requires a runtime to emit or consume conforming values
and a witness to record the claim.

### 4. Interop claims are stricter than single-runtime claims

Cross-runtime compatibility requires witnessed suffix exchange and admission
between sibling runtimes. It is not enough for two runtimes to have similar
local structs.

### 5. Missing evidence stays visible

The registry should name gaps directly. It should not hide them behind vague
phrases like "supported by the stack" unless the supporting witness exists.

## Initial Scope

The first registry slice covers the Continuum-authored family spine already on
disk:

- `receipt-family`
- `settlement-family`
- `neighborhood-core-family`
- `runtime-boundary-family`

It also expands the minimum runtime-boundary nouns because those are the next
active sibling-runtime compatibility target:

- `IntentEnvelope`
- `TickResult`
- `ObserverPlan`
- `ObservationRequest`
- `ReadingEnvelope`
- `SuffixShell`
- `ImportOutcome`

## Smallest Honest Artifact

The smallest honest artifact is not a new implementation. It is the registry
itself:

- [docs/contract-family-registry.md](../../contract-family-registry.md)

That file is enough to turn "we should have a compatibility matrix" into an
inspectable repo truth. The remaining work is to make more rows move from
`authored` to `fixture-witnessed`, and eventually to live runtime evidence.

## Playback Questions

### Human

- [ ] Can I tell which repo authored each shared family?
- [ ] Can I tell whether a row is proven or only planned?
- [ ] Can I see the next missing cut without reading five repos?

### Agent

- [ ] Can I avoid creating a shadow family in Echo, `git-warp`, `warp-ttd`, or
an app repo?
- [ ] Can I decide whether to add a Wesley profile, fixture witness, runtime
emitter, or consumer compatibility declaration next?
- [ ] Can I report gaps without overstating compatibility?

## Non-Goals

- defining a new wire protocol
- adding a registry service or CLI
- adding implementation code to Echo, `git-warp`, `warp-ttd`, or Wesley
- claiming live runtime compatibility from schema existence alone
- making Continuum the runtime or compiler owner

## Follow-Up Cuts

The registry makes the next cuts sharper:

- add a Wesley profile for `runtime-boundary-family`
- add fixture witnesses for `runtime-boundary-family`
- add a consumer compatibility declaration shape for sibling repos
- prove one witnessed suffix exchange/admission path between Echo and
`git-warp`
- decide whether the registry eventually needs a machine-readable companion
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: Backlog Origin - Cross-Repo Contract Family Registry
status: active
---

# Backlog Origin

Origin discussion:

- The stack now has a clearer contract-family story, but it lacked one single
place to say which repo authored each shared family.
- The first useful registry needed to name the active family spine:
`IntentEnvelope`, `TickResult`, `ObserverPlan`, `ObservationRequest`,
`ReadingEnvelope`, `SuffixShell`, and `ImportOutcome`.
- The registry needed to distinguish authored home, compiler/module owner,
runtime emitter, downstream consumer, and non-authoritative mirrors.
- The registry also needed to make unproved compatibility claims visible as
gaps rather than folklore.

Prompt distilled into this packet:

**Publish one small Continuum-owned registry that makes shared contract-family
ownership, consumers, witnesses, and missing compatibility cuts obvious across
the active stack.**
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,18 @@ status: proposed

## Why

We have real contract and witness work in Wesley, but no single place that says
which cross-repo claims are actually proved and which are still directional.
The first Continuum-local compatibility matrix now exists:

- [docs/contract-family-registry.md](../../../contract-family-registry.md)

The remaining gap is evidence. Some rows are authored and some are
fixture-witnessed, but none yet prove live sibling-runtime exchange.

## Goal

Create a Continuum compatibility matrix that tracks, at minimum:
Turn the registry's open cuts into witnessed evidence.

Track, at minimum:

- contract family
- canonical authored home
Expand All @@ -23,6 +29,8 @@ Create a Continuum compatibility matrix that tracks, at minimum:

## Done When

- one matrix exists in Continuum
- it links outward to real evidence instead of repeating it
- each unproved cross-repo claim is visible as a gap rather than folklore
- the registry row for `runtime-boundary-family` has a Wesley profile
- the registry row for `runtime-boundary-family` has fixture witness evidence
- at least one sibling-runtime suffix exchange/admission claim is backed by an
inspectable witness
- unproved cross-repo claims remain visible as gaps rather than folklore

This file was deleted.

3 changes: 3 additions & 0 deletions schemas/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ Current authored family:
- `continuum-settlement-family.graphql`
- `continuum-runtime-boundary-family.graphql`

The cross-repo ownership, consumer, and witness posture for these families lives
in [docs/contract-family-registry.md](../docs/contract-family-registry.md).

Wesley compiles the schemas in this directory into Rust, TypeScript, manifests,
and codec artifacts. Echo, `git-warp`, and `warp-ttd` should consume generated
artifacts instead of re-authoring the same contracts by hand.
Expand Down