Skip to content

Commit b13ae6a

Browse files
authored
docs(architecture): add implementation-gated canonical service-boundary contract (#123)
1 parent 05683d8 commit b13ae6a

1 file changed

Lines changed: 160 additions & 0 deletions

File tree

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
uri: chittycanon://docs/architecture/chittycommand/service-boundary-contract
3+
namespace: chittycanon://docs/architecture
4+
type: contract
5+
version: 0.1.0
6+
status: DRAFT
7+
registered_with: chittycanon://core/services/canon
8+
title: "ChittyOS Canonical Service-Boundary Contract (Implementation-Gated)"
9+
certifier: chittycanon://core/services/chittycertify
10+
visibility: PUBLIC
11+
context_brief: chittycontext://persistent-brief
12+
discovery_refs:
13+
- chittycanon://gov/governance
14+
- chittycanon://docs/tech/spec/context-schema
15+
- chittycanon://specs/chittydna-session-governance
16+
provenance:
17+
derived_from: adversarial canon-vs-code review, 2026-06-12
18+
authored: 2026-06-14
19+
---
20+
21+
# ChittyOS Canonical Service-Boundary Contract (Implementation-Gated)
22+
23+
<!-- chitty:discovery-links:start -->
24+
## Persistent Context
25+
26+
- **Working memory brief**: [docs/PERSISTENT_BRIEF.md](../PERSISTENT_BRIEF.md)
27+
- **Canonical governance**: `chittycanon://gov/governance`
28+
- **TY/VY/RY framework**: `chittycanon://gov/governance#three-aspects-framework`
29+
- **Context model**: `chittycanon://docs/tech/spec/context-schema`
30+
- **Session governance genes**: `chittycanon://specs/chittydna-session-governance`
31+
- **Governance DNA / earned authority**: `chittycanon://gov/governance#written-to-chittydna`
32+
33+
This section is a persistent discovery hint for humans and agents. It is not an authority source.
34+
<!-- chitty:discovery-links:end -->
35+
36+
## Status of this contract
37+
38+
> **This contract is canon-aligned and implementation-gated.** Any service
39+
> boundary asserted here must be cross-referenced against (1) canonical
40+
> ChittyCanon documentation **and** (2) current repository code before it is
41+
> enforced. If docs and code conflict, mark the boundary `canonical_drift_blocked`
42+
> or `repo_identity_drift`; **do not** assume the service is implemented.
43+
44+
It describes a **target architecture** the ChittyOS ecosystem is converging
45+
toward. It is *directionally* confirmed against canonical documentation, but it
46+
is **not** a claim that the named repositories already implement these boundaries.
47+
At the time of derivation (adversarial review, 2026-06-12) several named service
48+
repos appeared to carry **copied/stale ChittyCanon** charter/package identity
49+
rather than service-specific implementation — i.e. `repo_identity_drift` — so the
50+
contract is enforceable only boundary-by-boundary as code evidence catches up to
51+
canon.
52+
53+
This document is a **governance contract**, not a decision record. For the
54+
ChittyCommand-internal platform decision it builds on, see
55+
[ADR-001](ADR-001-meta-orchestrator-extension.md).
56+
57+
## Drift-status vocabulary
58+
59+
Every boundary claim in this contract carries one or more status tags. Tags are
60+
intentionally separated into a **canon axis** (is the boundary blessed by
61+
canonical docs?) and a **code axis** (does live repository evidence support it?).
62+
63+
| Tag | Axis | Meaning |
64+
|-----|------|---------|
65+
| `canon_confirmed` | canon | Explicitly stated in canonical ChittyCanon documentation. |
66+
| `canon_directional` | canon | Implied by canonical references (e.g. tier/placement) but not spelled out as an ownership rule. |
67+
| `code_confirmed` | code | Verified against current, service-specific repository implementation. |
68+
| `code_drift` | code | Canon says one thing; the repo's current code/identity does not yet match. |
69+
| `repo_identity_drift` | code | The repo carries another service's identity (e.g. a copied ChittyCanon `CHARTER.md` / `package.json`) instead of its own. A special case of `code_drift`. |
70+
| `design_proposed` | both | Architecturally sound but no canonical evidence **and** no installed repo found. Must not be enforced. |
71+
| `hold` / `hold_blocked` | both | Insufficient source data to confirm; enforcement paused pending evidence. |
72+
| `canonical_drift_blocked` | both | Docs and code actively conflict; the boundary is blocked from enforcement until reconciled. |
73+
74+
**Capability-governor rule:** do **not** invent a service boundary without
75+
canonical evidence. A boundary that is `design_proposed` or `hold_blocked` is a
76+
hypothesis, not a contract clause to be enforced.
77+
78+
## The target boundary model (canon-aligned)
79+
80+
```text
81+
Orchestrator = thin session viewport (ephemeral working memory)
82+
ChittyEntity/ChittyContext = persistent synthetic identity (ChittyID, ledger, DNA, trust)
83+
ChittyID = identity minting
84+
ChittyConnect = context binding / connectivity
85+
ChittyRouter = routing
86+
ChittyAuth = auth / access
87+
ChittyCanon = ontology / canonical rules
88+
```
89+
90+
### Actor and context ontology (`canon_confirmed`)
91+
92+
- ChittyCanon governs the **P/L/T/E/A** type ontology, the `chittycanon://` URI
93+
namespace, code-pattern governance, and the canonical data model. It explicitly
94+
does **not** own ChittyID identity generation or ChittyAuth authentication.
95+
- An actor with agency is **`P` — Person**. A Claude / AI context is
96+
`Person (P, Synthetic)`**never** `Thing`. `Entity` is not a valid type value.
97+
- **Context is persistent; session is ephemeral.** A context has its own ChittyID,
98+
ledger, DNA, and trust score. A session operates *under* a context's ChittyID
99+
and is working memory only — a viewport, not an identity.
100+
101+
> **In-repo evidence (`code_confirmed` for this boundary):** ChittyCommand's own
102+
> charter records a required ChittyID re-mint from type `T` (Thing) to
103+
> `P`-Synthetic precisely because the service "takes autonomous action" and is
104+
> therefore a Person, not a Thing. See `CHARTER.md` → Compliance, and the
105+
> executor/sovereignty wiring in `meta/`. This is the live, local instance of the
106+
> "actors with agency are always Person (P, Synthetic)" rule.
107+
108+
## Boundary evidence table
109+
110+
Status reflects the 2026-06-12 adversarial review. Code-side findings for **other**
111+
repos were reported by that review and are **not independently re-verified in this
112+
repository** — treat them as `code_drift` flags to confirm, not as settled fact.
113+
114+
| Boundary claim | Status | Finding |
115+
|---|---|---|
116+
| ChittyCanon owns ontology / canonical model | `canon_confirmed` | Charter governs P/L/T/E/A ontology, URI namespace, code-pattern governance, canonical data model. Does **not** own ChittyID minting or ChittyAuth authentication. |
117+
| `Person (P, Synthetic)` is the actor class for AI/context | `canon_confirmed`, `code_confirmed` (local) | Canon defines `P` as actor-with-agency; AI contexts are `P`-Synthetic, never `Thing`; `Entity` is not a type. ChittyCommand's own T→P re-mint is the local instance. |
118+
| Context persistent; session ephemeral viewport/worker | `canon_confirmed` | Context has ChittyID, ledger, DNA, trust; session runs under a context's ChittyID as working memory. |
119+
| ChittyConnect owns connectivity / context binding | `canon_confirmed`, `code_drift` | Governance maps Connectivity (VY) and context binding to ChittyConnect. But `chittyos/chittyconnect`'s `CHARTER.md` / `package.json` reportedly identify as **ChittyCanon**`repo_identity_drift`. |
120+
| ChittyAuth owns auth / access | `canon_confirmed`, `code_drift` | Governance maps Authority (RY) access to ChittyAuth. But `chittyfoundation/chittyauth` reportedly carries a ChittyCanon charter/package identity → `repo_identity_drift`. |
121+
| ChittyID owns identity minting | `canon_confirmed`, `code_drift` | Context spec: ChittyID mints IDs for synthetic contexts. But `chittyfoundation/chittyid` reportedly carries a ChittyCanon charter/package identity → `repo_identity_drift`. |
122+
| ChittyRouter owns routing | `canon_directional`, `code_drift` / `hold` | Ecosystem reference places ChittyRouter in Tier-2 platform infrastructure. Earlier repo checks suggested `chittyos/chittyrouter` also looked copied/stale as ChittyCanon → `hold` until a real ChittyRouter pentad/code surface is verified. |
123+
| ChittyTasks owns credential-origination task routing | `design_proposed` / `hold_blocked` | No installed repo named `chittytasks`/`chittytask` found. Concept is sound, but the capability-governor rule forbids inventing a boundary without canonical evidence → `hold`. |
124+
125+
> **Note on local naming:** within ChittyCommand, "tasks" capability is satisfied
126+
> by the `chittyagent-tasks` durable-queue pattern reused for intent dispatch and
127+
> `node_leases` (see `CHARTER.md` → Dependencies, and `daemon/leader.ts`). That is
128+
> **not** the same thing as a canonical `ChittyTasks` service owning
129+
> credential-origination routing; the latter remains `design_proposed`.
130+
131+
## Enforcement rule
132+
133+
Before any consumer (code, telemetry, downstream contract, or agent policy)
134+
**enforces** a boundary from the target model:
135+
136+
1. Confirm the boundary is `canon_confirmed` **or** `canon_directional` against
137+
live ChittyCanon docs.
138+
2. Confirm the owning repo is `code_confirmed` — its own charter/package identity,
139+
not a copied ChittyCanon stamp.
140+
3. If (1) and (2) disagree, tag `canonical_drift_blocked` (docs vs code conflict)
141+
or `repo_identity_drift` (repo carries another service's identity) and **do not
142+
enforce** — route to reconciliation instead.
143+
4. Never assume a service is implemented because canon names it. Absence of code
144+
evidence is `hold`, not confirmation.
145+
146+
## Bottom line
147+
148+
The model is **canonically consistent** as a *target* contract. Current code and
149+
capability evidence says:
150+
151+
```text
152+
doc_code_aligned: partially
153+
repo_identity_drift: present (chittyconnect, chittyauth, chittyid; chittyrouter on hold)
154+
implementation_maturity: not enough to claim deployed
155+
chittytasks: design-proposed unless found elsewhere
156+
```
157+
158+
This preserves the intended ChittyOS architecture without pretending the current
159+
repos fully implement it. Update this contract as repos shed `repo_identity_drift`
160+
and earn `code_confirmed` status, boundary by boundary.

0 commit comments

Comments
 (0)