ELNOR REPO READER TEXT MIRROR Original path: Memory Rebuild Docs/Stage_6_Charters/E1_E2_DOC81_Scope_Policy/Charter_Input_Deck.md Source repo: /Users/OpenClaw1/Elnor/Elnor Specs Git branch: main Git commit: dbaa25962edc11ab30e8d4ca1715f9ae5bf77331 Generated: 2026-06-09T01:23:58.539Z --- # E1/E2 Charter Input Deck — DOC81 Scope & Policy **Extracted from:** `STAGE_6_CHARTER_INPUT_INDEX.md` §DOC81 — Scope & Policy (E1 + E2), 2026-05-28; refreshed against the ratified E0 (DOC80 core) 2026-06-01. **Purpose:** everything E1/E2 needs to read before drafting. References by path/ID — the drafter reads the source content from the repo. ## OPA V4 rows targeting DOC81 (10 — whole-section retarget of MultiDoc PropA → DOC81) `OBL-PROPA-NEW-01` · `OBL-PROPA-NEW-02` · `OBL-PROPA-NEW-V15-01` … `OBL-PROPA-NEW-V15-06` (6 rows) · `OBL-XDOC-PROPA-DSPY-TARGETS-01` · **`OBL-PROPA-NEW-SOURCE-EXCLUSION-FILTER-01` (NEW — D3a)**. Full row bodies in `OPA_V4.md` §6 (PropA section). These carry the Knowledge-Pipeline-Sensitivity & Self-Improvement policy content (PropA R6.3) that DOC81 now owns. ## Obligations handed down from E0 (2) - **`OBL-D81-TOPIC-COLLECTION-SUPPRESSION-01`** (OPA §6.Z; ADQ-406) — topic-level privacy layer: `TopicCollectionDirective` carries `collection_mode` (collect / suppress / exclude); **DOC81 owns the suppression governance rules; EC §1 collection gate enforces at admission.** User-defined "privacy / dummy topics" are topics whose directive is `suppress`. Stacks with EC §1 per-surface toggles + §1.3 incognito. - **`OBL-PROPA-LOCALFILEEXPORT-OUTBOUND-PATCH-01`** (OPA §6.Z3; from the E0 R3 egress work) — patch PropA §2 outbound matrix so `local_file_export` is treated as outbound (principle #2 omits it while #3 says only same-machine is non-egress — self-inconsistent). ## ADQ rows pinned to DOC81 | ADQ | tier | direction | |---|---|---| | **ADQ-310** | resolved | ReasonCode registry (DOC80 core) unblocks E1/E2 — **refer to it; do NOT invent local reason-code systems.** | | **ADQ-315** | resolved / pinned to E1 | `AssertionRelationEdge` traversal scope checks: owner-doc EC specifies `relation_kind → required scope checks + render gating`. **Decision pinned to the E1 charter.** | | **ADQ-PASS2-02** | resolved (2026-05-28) | corpus↔library identity authority is **DOC87** (ADQ-220). DOC81/E1 consumes the corpus/library identity *term* from DOC87 as upstream vocabulary; `OBL-D24-CORPUS-LIB-MAP-01` is DOC87's logical row. | | **ADQ-316** | resolved | restamp policy: keep / downgrade / block; **CANNOT grant access beyond original ceilings** (binds the `PolicyStampRestamp` contract). | | **ADQ-313** | resolved (E0) | DomainProfile registry + `conservative` fallback (highest restrictiveness) — DOC81 consumes for its fail-closed default. | | **ADQ-308** | resolved | SafeLabel disclosure policy split (DOC81 owns policy/disclosure meaning; DOC86 references). | | **ADQ-213** | resolved | `TopicRiskClass` risk classification (DOC81 policy; EC executes; DOC87 consumes for `TopicActivationState`). | ## Skeletal baseline — DOC81 section map + §10/§11 fold-ins **DOC81 member section** (`DOC80_Skeletal_Target_Baseline.md` §"DOC81 — Scope and Policy Plane", lines ~135–144): - §1 Scope plane · §2 Policy plane · §3 Coordination (capability/disclosure meet separation, Round D §1.6; ExtractionRoutePolicyEnvelope; PolicyCappedDAMSInput) · **§4 Fail-closed rules (Round D §3.6)** · §5 CascadingSourceInvalidation envelope (B3 split) · §6 DOC81 → DOC86 export (Patch B1) · §7 Lints (policy + scope + capability/disclosure suite). **§10 / §11 fold-ins DOC81 must land:** | § | content | role for DOC81 | |---|---|---| | §10.3 | `LegalHoldState` flag + family-wide destructive-job invariant (OPA-033) | DOC81 owns the flag + invariant | | §10.4 | DOC81/DOC87 non-overlap invariant + 5 lints | scope containment ≠ membership ≠ authority | | §10.11 | `CascadingSourceInvalidation` 5-plane fan-out verification | the **wiring check is a Stage 6 charter obligation** | | §11.3 | extraction-start-to-resolution policy-generation re-gate | DOC81 owns the policy-generation boundary; DOC83 re-gates | | §11.9 | policy + source-revocation monotonicity (narrow-only; restamp the only widening path, ADQ-316) | DOC81 invariants + lints | | §10.5 | `MemoryMutationEnvelope` (NAMED at E0) carries policy epoch / restamp refs | DOC81 policy restamps flow through it | ## Owner Map — DOC81-owned rows (the objects to formalize) `DOC80_Owner_Map.md` lines 62, 71–94, 194: `ExtractionRoutePolicyEnvelope`, `ScopeIdentityRoot`, `ScopeEquivalenceBinding`, `ScopeContainerRelation`, `ScopeBoundary`, `ScopeAffinity`, `ScopeResolutionResult`, `ScopeResolutionTrace`, `ScopePopulationHealth`, `MemoryPolicyDecision`, `EffectiveMemoryPolicy` (SM-013 — wholly DOC81), `PolicyMembraneDecision`, `PolicyObligation`, `PolicyStamp`+`PolicyStampScope`+`PolicyStampInvalidation`, `PolicyDisambiguationRequest`, `EpisodePolicyEpoch`, `SafeLabelDisclosurePolicy`, `PolicyCappedDAMSInput`, `contamination_risk` threshold rule, `disclosure_class`, `CascadingSourceInvalidation` envelope, `TopicRiskClass`. ## Import Graph — DOC81 edges `DOC80_Import_Graph.md`: DOC81 → DOC80 core (registries, contracts — schema_import); DOC81 → PropA (policy rules; `ExternalDependencyRecord`, line 144); DOC81 → EC (policy enforcement + ScopeResolutionResult computation, line 145); DOC81 → DOC86 (Patch B1 export, §1 / §2.x); EC → DOC81 (policy re-evaluation triggers, command flow). No cycle (B1 fix). ## Conflict Register None pinned exclusively to DOC81. ## Open seams DOC81 must honor - **Capability meet vs disclosure meet are orthogonal** (Round D §1.6) — do not collapse them. - **Fail-closed by default** — missing/unknown/incomparable scope or policy ⇒ `conservative` (ADQ-313). - **EC executes; DOC81 defines contracts** — scope resolution computation, policy enforcement, and durable writes are EC. - **Policy monotonicity** — narrow-only; `PolicyStampRestamp` is the sole widening path and cannot exceed original ceilings (ADQ-316). - **DOC81/DOC87 non-overlap** — scope topology (DOC81) and membership (DOC87) are distinct; neither implies the other or any access/source/truth authority. ## Pre-conditions - **E0 ratified** — ReasonCode + DomainProfile registries + policy-generation carrier + `MemoryFlowCertificate` + the §12.1 invariant set available for DOC81 to bind to. ✅ met 2026-06-01. - E1 (Scope/Policy) is itself a **pre-condition** for E3/E4 (knowledge writes gate on policy), E5/E6 (extraction re-gates on `policy_generation`), E7/E8 (delivery caps on `PolicyCappedDAMSInput` + EffectiveMemoryPolicy), and E10 (UI surfaces PolicyStamp/disclosure). ## Cross-charter notes - DOC81 **consumes** from E0: ReasonCode registry, DomainProfile registry, the policy-generation carrier, `EffectiveMemoryPolicy` consumption-protocol reference, `MemoryFlowCertificate`. **Bind by reference; do not re-define E0 contracts.** - DOC81 **exports** to DOC86 (Patch B1): PolicyStamp + EffectiveMemoryPolicy ref + disclosure_class + restamp eligibility + safe-label constraints. - DOC81 is **consumed by** DOC82 (write gating), DOC83 (extraction re-gate + ExtractionRoutePolicyEnvelope), DOC84 (PolicyCappedDAMSInput + EffectiveMemoryPolicy cap), DOC87 (TopicRiskClass; non-overlap), EC (executes all of it). - `TopicCollectionDirective` stays at DOC83; DOC81 owns only the `collection_mode` **suppression governance** layer over it (ADQ-406).