Sprint 1: project skeleton, type system, and all architecture specs

- src/types.hpp: complete UCWM type system in C++20 — 19 enums, 11 facet
  data types, all core structs (CanonicalObject, Constraint, Facet,
  GateSignal, WorldState, etc.) with full JSON round-trip serialization
- src/main.cpp: smoke test — constructs apple-problem WorldState by hand,
  serializes to JSON
- tests/test_types.cpp: 19 tests, 123 assertions, all passing
- CMakeLists.txt: CMake + CPM build with nlohmann/json, spdlog, Catch2
- schemas/: JSON Schema contracts for all UCWM data types
- gates/, specialists/, resolver/, synthesis/: language-agnostic interface
  contracts and domain specs for all pipeline layers
- docs/: architecture, vocabulary, decision matrices, roadmap (6 phases,
  28 sprints), sprint_001, implementation_constraints

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-01 16:09:55 -07:00
commit b758d7ea60
35 changed files with 6344 additions and 0 deletions

90
docs/vocabulary.md Normal file
View File

@@ -0,0 +1,90 @@
# UCWM Vocabulary
## Core terms
**UCWM — Unified Constraint World Model**
The whole structured reasoning substrate. Converts messy natural language into a typed world state of objects, facets, and constraints, then resolves that state to produce answers.
**RSA — Relay Specialist Architecture**
The routing and dispatch mechanism inside UCWM. RSA decides which specialists run, on which objects, with what budget. RSA is not the model core; UCWM is.
**CanonicalObject**
The primary reusable referent. A stable anchor that facets attach to. Objects are not overloaded — they carry identity, kind, status, confidence, and refs to facets, constraints, and provenance.
**FacetBundle**
The collection of typed descriptions attached to a single canonical object. A single object may have temporal, causal, spatial, logical, and other facets simultaneously.
**Facet**
A partial, typed view of a canonical object. Examples: TemporalFacet, SpatialFacet, CausalFacet, QuantityFacet. Facets are optional — not every object exists in every relation type.
**Schema Plurality**
The principle that the same underlying thing may be validly described by multiple schema systems simultaneously. UCWM does not force a single schema early. Specialists attach schema-shaped facets; the resolver reconciles.
**Constraint**
An explicit relation, restriction, incompatibility, requirement, or preference involving objects and/or facets. Constraints are the core reasoning currency. Examples: `before(E1, E2)`, `owns(Alice, apples, count=5)`, `quantity(Q1) = quantity(Q2) - 3`.
**Constraint Profile**
The active set of constraints touching a given object and its facets.
**Composite Routing**
A relay decision that activates multiple specialists on the same target simultaneously.
**Relation Gate Array**
The front-end set of small recognizers that detect which relation families are probably relevant to the input. High-recall by design — prefer false activation over missed activation.
**GateSignal**
The output of a single gate. Contains: gate_id, activated flag, confidence score, and evidence spans.
**RoutingDecision**
The output of the relay. Contains: active specialists, target object refs, execution mode, budget, and priority order.
**WorldState**
The active UCWM state at a given processing stage. Contains all current objects, facets, constraints, and their statuses.
**Contractual Layer**
A module boundary with typed input/output schemas and testable behavior. Every UCWM layer is a contractual layer.
**Specialist**
A contract-bound module that takes canonical objects and routing context, and emits typed facets and constraints. May be neural, symbolic, statistical, or hybrid. Emits bounded structured output — never unconstrained free text.
**Resolver**
The UCWM component that combines constraints from specialists, detects contradictions, reinforces agreements, and stabilizes WorldState into a resolved form ready for synthesis.
**Synthesis**
The final stage. Produces a natural language answer and derivation trace from resolved WorldState. The answer must be derivable from constraints, not from surface token patterns.
**Provenance**
A record of where a fact, object, facet, or constraint came from: which input span, which module, which inference step, at what confidence.
## Constraint strength levels
| Strength | Meaning |
|---|---|
| `hard` | Must hold; contradiction is an error |
| `soft` | Preferred; can be overridden by hard constraints |
| `probabilistic` | Holds with a stated probability |
| `defeasible` | Default assumption; can be retracted by new evidence |
## Constraint status lifecycle
```
unresolved → resolved
→ contradicted
→ suspended
```
## Object kinds
`entity`, `event`, `concept`, `proposition`, `relation_instance`, `procedure_step`, `code_object`, `quantity`, `claim`, `state`
## Object status lifecycle
```
proposed → active → merged
→ split
→ invalidated
```
## Facet kinds
`temporal`, `spatial`, `causal`, `logical`, `syntactic`, `semantic`, `social`, `ownership`, `code_structure`, `quantity`, `planning`