|
| 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