diff --git a/tier1/amduat20-stack-overview.md b/tier1/amduat20-stack-overview.md index 2e3e61e..857bdfc 100644 --- a/tier1/amduat20-stack-overview.md +++ b/tier1/amduat20-stack-overview.md @@ -3,8 +3,8 @@ **Document ID:** `SUBSTRATE/STACK-OVERVIEW` **Layer:** Overview (Tier-1 orientation) **Status:** Approved (Tier-1 orientation; non-normative behaviour) -**Version:** 0.4.1 -**Last updated:** 2025-11-30 +**Version:** 0.4.2 +**Last updated:** 2025-12-22 **Depends on (normative):** @@ -34,14 +34,8 @@ > **Scope note (v0.4.0)** > This revision relocates the stack map into `/amduat/tier1/` and locks it to the -> Amduat 2.0 kernel scope required by PH06. Certification, receipt, fact, and -> overlay profiles are explicitly deferred to later phases. - -> **PH06 closure note (v0.4.1)** -> TGK store/provenance surfaces now reference the PH06 TGK rebuild evidence: -> `/amduat/vectors/ph06/tgk/manifest.json`, -> `/amduat/logs/ph06/evidence/tgk/PH06-EV-TGK-REBUILD-001/`, and the governance -> bundle `PH06-EV-GOV-REG-001` that records registry/ADR alignment for closure. +> Amduat 2.0 kernel scope. Certification, receipt, fact, and overlay profiles +> are explicitly deferred to later phases. © 2025 Niklas Rydberg. @@ -63,13 +57,14 @@ public domain under CC0 1.0. ## 0. Purpose -This document gives a **short, shared map** of the Amduat 2.0 substrate: +This document is a **short, shared map** of the Amduat 2.0 substrate: * what the core layers are, * what each layer is responsible for (and not responsible for), * how they depend on one another. -It is the “you are here” page for kernel work and substrate profiles. All detailed behaviour is defined in the referenced specs. +It is the “you are here” page for kernel work and substrate profiles; detailed +behaviour is defined in the referenced specs. --- @@ -83,16 +78,19 @@ Key invariants: Everything that matters is an immutable `Artifact`; identity is `(hash_id, digest)` over a canonical encoding. 2. **Tiny kernel, rich profiles** - The kernel only knows: + The kernel covers: * Artifacts (values) — `ASL/1-CORE` * pure execution — `PEL/1-CORE` * graph semantics — `TGK/1-CORE` - Meaning (facts, receipts, overlays, policy) lives in profiles on top. + Meaning (facts, receipts, overlays, policy) lives in profiles above. 3. **Single logical provenance graph** - All relationships (execution, certs, overlays, facts, annotations) appear as typed edges in one logical graph over artifact IDs (`Reference`s), via `TGK/1-CORE`. EdgeArtifacts are ordinary Artifacts; their identities are ordinary `Reference`s. + All relationships (execution, certs, overlays, facts, annotations) appear as + typed edges in one logical graph over artifact IDs (`Reference`s), via + `TGK/1-CORE`. EdgeArtifacts are ordinary Artifacts; their identities are + ordinary `Reference`s. 4. **Additive evolution, no history rewrites** @@ -103,7 +101,8 @@ Key invariants: 5. **Storage-neutral, policy-neutral kernel** * No special filesystem, database, or policy model is assumed. - * Stores, transports, graph stores, and policies are layered around the substrate via adapters and profiles. + * Stores, transports, and policies are layered around the substrate via + adapters and profiles. --- @@ -137,10 +136,9 @@ At a high level: * `OPREG/PEL1-KERNEL` — kernel operation set * `OPREG/PEL1-KERNEL-PARAMS/1` — canonical param encodings for kernel ops -* **Profiles above kernel + near-core** — intentionally out-of-scope for this - version to keep the focus on the Amduat 2.0 kernel contract. Certification, - receipt, fact, overlay, and domain profiles will reattach once the kernel is - proven inside future phases. +* **Profiles above kernel + near-core** — out of scope for this version to keep + the focus on the Amduat 2.0 kernel contract. Certification, receipt, fact, + overlay, and domain profiles return in later phases. Below is a more explicit breakdown. @@ -261,7 +259,7 @@ Responsibilities: * Defining a **ProvenanceGraph** as a pure projection over: * a finite set of Artifacts, and - * a configured set of edge encoding profiles and type catalogs. + * a configured set of edge encodings and type catalogs. Core kernel rules: @@ -277,14 +275,15 @@ Not responsible for: Layering with PEL/1-CORE: -* PEL executions MAY be *described* via TGK edges (e.g., `EDGE_EXECUTION`, `EDGE_RECEIPT_SUPPORTS`). +* PEL executions MAY be *described* via TGK edges (via future profiles). * TGK is **not** a runtime dependency for PEL; edges can be emitted by runtimes or reconstructed from Artifacts (programs, inputs, traces, receipts). --- ## 4. Near-core Substrate & Graph Store Profiles -These surfaces are not kernel primitives, but are canonical and expected in almost all deployments. +These surfaces are not kernel primitives, but are canonical and expected in +almost all deployments. ### 4.1 ENC/ASL1-CORE v1 — Core Canonical Encoding @@ -298,9 +297,9 @@ Defines the **canonical binary encoding** for `ASL/1-CORE` values: Responsibilities: -* Provide injective, stable, deterministic, streaming-friendly encodings for `Artifact` and `Reference`. -* Define the canonical byte sequences used as input to ASL1 hash functions and stores. -* Satisfy all canonical encoding constraints from `ASL/1-CORE` (injective, stable, deterministic, explicit structure, type-sensitive, byte-transparent, streaming-friendly). +* Provide stable, injective, streaming-friendly encodings for `Artifact` and + `Reference`. +* Define the canonical byte sequences used as input to ASL1 hashes and stores. Not responsible for: @@ -394,7 +393,7 @@ These are standard, near-core profiles that give a concrete, store-backed execut * Wires `Exec_s` from `PEL/1-CORE` to `ASL/1-STORE`. * Takes `scheme_ref`, `program_ref`, `input_refs`, `params_ref` plus a StoreInstance. * Resolves Artifacts, invokes `Exec_s`, persists outputs and a surface-level `ExecutionResult` Artifact. -* Does **not** depend on TGK, CIL, FER, FCT, or OI on the execution hot path. +* Does **not** depend on TGK or higher profiles on the execution hot path. **`PEL/PROGRAM-DAG/1` — DAG Program Scheme** @@ -405,8 +404,10 @@ These are standard, near-core profiles that give a concrete, store-backed execut **`PEL/PROGRAM-DAG-DESC/1` — DAG Scheme Descriptor** * Defines the logical descriptor value for the DAG scheme (`DagSchemeDescriptor`) and its encoding as a dedicated scheme-descriptor Artifact. -* Binds `PEL/PROGRAM-DAG/1` to a concrete `SchemeRef` (`SchemeRef_DAG_1`) by hashing that descriptor Artifact under `ASL_ENC_CORE_V1` and a chosen `HashId` (Amduat 2.0 baseline: `HASH-ASL1-256`, `HashId = 0x0001`). -* Records, in a content-addressed way, which `TypeTag` and encoding profile (`TYPE_TAG_PEL_PROGRAM_DAG_1`, `PEL_ENC_PROGRAM_DAG_V1`) identify Program Artifacts for this scheme. +* Binds `PEL/PROGRAM-DAG/1` to a concrete `SchemeRef` (`SchemeRef_DAG_1`) by + hashing the descriptor Artifact under `ASL_ENC_CORE_V1` + a chosen `HashId`. +* Records which Program `TypeTag` and encoding profile identify Program + Artifacts for this scheme. * Remains store- and graph-neutral; engines MAY treat the descriptor as build-time or configuration metadata and are not required to read it on the execution hot path. **`ENC/PEL-PROGRAM-DAG/1` — Program Encoding** @@ -418,7 +419,8 @@ These are standard, near-core profiles that give a concrete, store-backed execut **`PEL/TRACE-DAG/1` — DAG Execution Trace Profile** * Defines `TraceDAGValue`: per-node run status, output refs, and deterministic diagnostics, linked to `scheme_ref`, `program_ref`, `input_refs`, `params_ref`. -* Optional but deterministic; enables TGK to reconstruct node-level execution edges (via profiles like `TGK/PEL/1`). +* Optional but deterministic; enables higher layers to reconstruct node-level + execution relationships. **`ENC/PEL-TRACE-DAG/1` — Trace Encoding** @@ -498,7 +500,7 @@ Design note: Defines the **graph store abstraction and basic query semantics** over the TGK provenance graph induced by Artifacts: -* Treats TGK’s `ProvenanceGraph` as the source of truth: +* Treats the induced `ProvenanceGraph` as the source of truth: ```text ProvenanceGraph { @@ -528,15 +530,16 @@ Responsibilities: Not responsible for: * Provenance algorithms (backward/forward reachability, trace construction) — those belong to `TGK/PROV/1` and higher-level profiles. -* Certificate, fact, or overlay semantics (`CIL/1`, `FER/1`, `FCT/1`, `OI/1`). +* Certificate, fact, or overlay semantics (future profiles). * Transport or API shapes (HTTP/gRPC/etc.). * Store semantics themselves (`ASL/1-STORE` is the source of artifact resolution). -`TGK/STORE/1` is strictly: +`TGK/STORE/1` is: > “Given a graph defined by `TGK/1-CORE`, how do we expose its edges and adjacency in a way that is deterministic, identity-preserving, and policy-neutral?” -Kernel provenance semantics (`TGK/PROV/1`) and higher-level profiles (`FER/1`, `FCT/1`, `CIL/1`, `OI/1`, domain profiles) typically use `TGK/STORE/1` as their standard graph-access surface. +Kernel provenance semantics (`TGK/PROV/1`) and higher-level profiles typically +use `TGK/STORE/1` as their standard graph-access surface. --- @@ -546,11 +549,8 @@ Kernel provenance semantics (`TGK/PROV/1`) and higher-level profiles (`FER/1`, ` Defines the **kernel provenance operators** over a `ProvenanceGraph` snapshot: -* A small, store-neutral provenance parameter model: - - * `ProvDirection` (BACKWARD, FORWARD, BOTH), - * `EdgeTypeFilter` (edge-type selection), - * `DepthLimit` (hop-count bound). +* Parameters: `ProvDirection` (BACKWARD/FORWARD/BOTH), `EdgeTypeFilter`, + `DepthLimit`. * Pure, deterministic operators: @@ -561,10 +561,8 @@ Defines the **kernel provenance operators** over a `ProvenanceGraph` snapshot: Responsibilities: -* Provide a **graph-only** provenance kernel over `TGK/1-CORE`: - - * semantics are defined purely in terms of `ProvenanceGraph` snapshots and finite seed sets, - * no dependence on any particular store, index, or query API. +* Define semantics purely over `ProvenanceGraph` snapshots and finite seed sets + (store/index/API neutral). * Fix canonical behaviour for backward/forward/bidirectional reachability, depth assignment, and trace construction that higher profiles can rely on. @@ -573,52 +571,28 @@ Responsibilities: Not responsible for: * Graph store or adjacency APIs (`TGK/STORE/1`); these are implementation choices. -* Edge-type **meaning** or provenance policy (“which edges count as causal vs decorative”); that is decided by profiles (e.g. PEL/TRACE-DAG, `FER/1`, `FCT/1`, `OI/1`). +* Edge-type **meaning** or provenance policy (“which edges count as causal vs decorative”); that is decided by profiles (e.g. PEL/TRACE-DAG and future profiles). * Encoding of provenance results into Artifacts (receipts, reports, overlays). Layering: * Depends **normatively** only on `TGK/1-CORE` (and, via TGK, `ASL/1-CORE`). -* Typically implemented on top of `TGK/STORE/1` for adjacency and edge resolution, but any implementation that operates over a `ProvenanceGraph` snapshot and satisfies `TGK/PROV/1`’s semantics is valid. -* Used by `FER/1`, `FCT/1`, `CIL/1`, `OI/1`, and domain profiles as the canonical way to ask provenance questions over the TGK graph. +* Typically implemented on top of `TGK/STORE/1` for adjacency and edge + resolution, but any implementation over a `ProvenanceGraph` snapshot that + satisfies `TGK/PROV/1`’s semantics is valid. +* Used by higher layers as the canonical way to ask provenance questions over the TGK graph. --- ## 5. Profiles on Top -These build on kernel + near-core and express semantics and policy. - -* **CIL/1 — Certification & Integrity Layer** - - * Certificates as Artifacts. - * Generic signatures over `Reference`s and other Artifacts. - * Separation between “is the signature cryptographically valid?” (CIL) and “what does it mean?” (profiles such as FCT/1). - -* **FER/1 — Evidence / Receipts** - - * Receipts bundling descriptors, inputs, outputs, traces, and certs as Artifacts. - * Plays well with TGK via edges like “this receipt supports this fact” or “this receipt is attached to this execution”. - * Typically uses `TGK/PROV/1` to construct provenance cones and trace projections when building or checking receipts. - -* **FCT/1 — Facts / Transactions** - - * Facts/transactions as semantics over receipts + certificates + TGK graph patterns. - * Governs acceptance criteria for domain-level “truth”. - * May rely on `TGK/PROV/1` to define which provenance patterns or trace shapes are acceptable evidence for particular fact schemas. - -* **OI/1 — Overlays & Navigation** - - * Overlays mapping human-friendly names, paths, or views to `Reference`s. - * Graph-based navigation and UI surfaces, often driven by `TGK/PROV/1` queries over `TGK/STORE/1`. - -All of these: +Profiles above kernel + near-core are deferred in this repository. When those +profiles are introduced, they will: * encode their objects as Artifacts (own `TypeTag` ranges and encodings), * use `Reference`s as durable pointers into the substrate, -* typically expose relationships as TGK edges, using edge types bound to `ENC/TGK1-EDGE/1` (or other edge encodings where appropriate), -* and query the resulting graph via `TGK/STORE/1` / `TGK/PROV/1` or equivalent. - -Higher-level domain profiles (AI evals, CI pipelines, governance processes, ledgers, etc.) sit above all of this. +* typically expose relationships as TGK edges, and +* query the resulting graph via `TGK/STORE/1` / `TGK/PROV/1` or equivalent. --- @@ -631,26 +605,24 @@ Higher-level domain profiles (AI evals, CI pipelines, governance processes, ledg * ↓ used by `ENC/ASL1-CORE`, `HASH/ASL1`, `ASL/1-STORE`, `PEL/1-CORE`, `TGK/1-CORE`, `PEL/PROGRAM-DAG/1`, `PEL/PROGRAM-DAG-DESC/1`, `PEL/TRACE-DAG/1`, `OPREG/PEL1-KERNEL`, `OPREG/PEL1-KERNEL-PARAMS/1`, - `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, `TGK/PROV/1`, - `CIL/1`, `FER/1`, `FCT/1`, `OI/1`. + `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, `TGK/PROV/1`. * `ENC/ASL1-CORE` * ↓ used by `HASH/ASL1` (for `ArtifactBytes` / `ReferenceBytes`), `ASL/1-STORE`, `PEL/1-SURF`, `ENC/PEL-PROGRAM-DAG/1`, `ENC/PEL-TRACE-DAG/1`, `PEL/PROGRAM-DAG-DESC/1`, - `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, and higher profiles. + `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, and future profiles. * `HASH/ASL1` * ↓ used by `ASL/1-STORE`, `PEL/1-SURF`, `ENC/PEL-PROGRAM-DAG/1`, `ENC/PEL-TRACE-DAG/1`, `PEL/PROGRAM-DAG-DESC/1`, - `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, and higher profiles for identity. + `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, and future profiles for identity. * `ASL/1-STORE` - * ↓ used by `PEL/1-SURF`, TGK storage/indexing profiles (`TGK/STORE/1`), - `CIL/1`, `FER/1`, `FCT/1`, `OI/1`. + * ↓ used by `PEL/1-SURF`, TGK storage/indexing profiles (`TGK/STORE/1`). * `PEL/1-CORE` @@ -660,32 +632,27 @@ Higher-level domain profiles (AI evals, CI pipelines, governance processes, ledg * `PEL/1-SURF`, `PEL/PROGRAM-DAG/1`, `PEL/PROGRAM-DAG-DESC/1`, `PEL/TRACE-DAG/1`, `ENC/PEL-PROGRAM-DAG/1`, `ENC/PEL-TRACE-DAG/1`, `OPREG/PEL1-KERNEL`, `OPREG/PEL1-KERNEL-PARAMS/1` - * ↓ used by `FER/1`, `FCT/1`, `CIL/1`, `OI/1` and domain profiles to build reproducible executions, traces, and evidence. + * ↓ used by future profiles and domain layers to build reproducible executions, traces, and evidence. * `TGK/1-CORE` * ↓ used by `ENC/TGK1-EDGE/1` (for the logical `EdgeBody` model), `TGK/STORE/1`, `TGK/PROV/1`, - `FER/1`, `FCT/1`, `CIL/1`, `OI/1`, and domain profiles for provenance reconstruction. + and future profiles for provenance reconstruction. * `ENC/TGK1-EDGE/1` * ↓ used by TGK-aware stores (`TGK/STORE/1`), provenance profiles (`TGK/PROV/1`), - and by higher layers (e.g. `FER/1`, `FCT/1`, `CIL/1`, `OI/1`) that emit or interpret EdgeArtifacts. + and by higher layers that emit or interpret EdgeArtifacts. * `TGK/STORE/1` * ↓ used by `TGK/PROV/1` (provenance operators), - and by higher layers (`FER/1`, `FCT/1`, `CIL/1`, `OI/1` and domain profiles) as the standard way to query the provenance graph. - * Evidence hooks: PH06 rebuild CLI and parity receipts live under - `/amduat/vectors/ph06/tgk/manifest.json` and - `/amduat/logs/ph06/evidence/tgk/PH06-EV-TGK-REBUILD-001/`. + and by higher layers as the standard way to query the provenance graph. * `TGK/PROV/1` - * ↓ used by `FER/1`, `FCT/1`, `CIL/1`, `OI/1`, and domain profiles as the canonical kernel for provenance closure, depth, and trace semantics over TGK graphs, typically implemented on top of `TGK/STORE/1`. - -Higher-level domain profiles depend on all of the above as needed. + * ↓ used by higher layers as the canonical kernel for provenance closure, depth, and trace semantics over TGK graphs, typically implemented on top of `TGK/STORE/1`. --- @@ -712,18 +679,22 @@ When editing: * Keep `ASL/1-CORE` + this overview in view. * Kernel semantics are storage- and graph-neutral. - * Must not require `TGK/1-CORE`, `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, `CIL/1` or higher profiles on the execution hot path. + * Must not require `TGK/1-CORE`, `ENC/TGK1-EDGE/1`, `TGK/STORE/1`, or higher profiles on the execution hot path. * **PEL/1-SURF:** * Keep `ASL/1-CORE`, `ENC/ASL1-CORE`, `HASH/ASL1`, `ASL/1-STORE`, `PEL/1-CORE` + this overview in view. - * May wire `Exec_s` to stores, but must not depend on TGK, CIL, FER, FCT, or OI on the execution hot path. + * May wire `Exec_s` to stores, but must not depend on TGK or higher profiles on the execution hot path. * **PEL/PROGRAM-DAG/1, ENC/PEL-PROGRAM-DAG/1 & PEL/PROGRAM-DAG-DESC/1:** * Keep `ASL/1-CORE`, `PEL/1-CORE` + this overview in view. - * `PEL/PROGRAM-DAG/1` defines the scheme model and evaluation semantics; `ENC/PEL-PROGRAM-DAG/1` defines the canonical Program encoding; `PEL/PROGRAM-DAG-DESC/1` binds that scheme to a concrete `SchemeRef` and Program `TypeTag`/encoding via a descriptor Artifact. - * Must not depend on store semantics or graph/cert layers; descriptor logic must remain store- and TGK-neutral (no provenance or policy semantics baked into the scheme binding). + * `PEL/PROGRAM-DAG/1` defines the scheme and evaluation semantics; + `ENC/PEL-PROGRAM-DAG/1` defines the canonical Program encoding; + `PEL/PROGRAM-DAG-DESC/1` binds the scheme to a `SchemeRef` and Program + identity (type tag + encoding profile) via a descriptor Artifact. + * Must not depend on stores or TGK; keep descriptor logic store-/graph-neutral + (no provenance/policy baked into scheme binding). * **PEL/TRACE-DAG/1 & ENC/PEL-TRACE-DAG/1:** @@ -754,19 +725,15 @@ When editing: * Must not re-define `Node`, `EdgeBody`, `EdgeTypeId`, or `ProvenanceGraph`; it only exposes and queries the graph that TGK/1-CORE defines. * Must not introduce new identity schemes for nodes or edges; `Node := Reference`, `EdgeRef := Reference`. * Must remain policy- and semantics-neutral: no fact, certificate, or provenance *meaning* inside `TGK/STORE/1`, just projection and queries. - * PH06 evidence discipline: implementations MUST cite `tools/tgk/rebuild.py` - receipts (`/amduat/logs/ph06/evidence/tgk/PH06-EV-TGK-REBUILD-001/`) and the - governance bundle `PH06-EV-GOV-REG-001` when wiring store adapters into CLI - workflows. * **TGK/PROV/1:** * Keep `ASL/1-CORE`, `TGK/1-CORE`, `TGK/STORE/1` (as an implementation surface) + this overview in view. * Must define provenance operators purely in terms of `ProvenanceGraph` snapshots and finite seed sets; semantics are graph-only and store-neutral. * Must not depend on particular graph-store APIs (`TGK/STORE/1` is an optimisation/implementation choice, not a semantic dependency). - * Must not bake in CIL/FER/FCT/OI semantics; it is a kernel layer that higher profiles specialise via edge-type selection and policies. + * Must not bake in higher-profile semantics; it is a kernel layer that higher profiles specialise via edge-type selection and policies. -For any profile (`CIL/1`, `FER/1`, `FCT/1`, `OI/1`, domain-specific): +For any future profile (certification, receipts, facts, overlays, or domain-specific): * Treat this document as the “ground truth map” of what you’re allowed to assume from the substrate, and where your profile must stop. * If you find yourself needing new kernel behaviour, that likely means a new `*-CORE` surface, not a profile shortcut. @@ -775,30 +742,12 @@ For any profile (`CIL/1`, `FER/1`, `FCT/1`, `OI/1`, domain-specific): ## 8. Document History (Informative) +* **0.4.2 (2025-12-22):** Trimmed the overview to the repo’s implemented stack, + removed deferred profile details and PH06 evidence hooks, and kept the focus + on kernel + near-core orientation. +* **0.4.1 (2025-11-30):** Highlighted TGK/STORE evidence hooks + PH06 governance linkage. * **0.4.0 (2025-11-16):** Relocated the stack overview into `/amduat/tier1/`, trimmed the PH06 scope to the kernel-only surfaces, and documented that certification/receipt/fact/overlay profiles are deferred to future phases. * **0.3.3 (2025-11-16):** Added `PEL/PROGRAM-DAG-DESC/1` as the canonical DAG scheme descriptor across references, the PEL execution stack, dependency summary, and editing guidance. * **0.3.2 (2025-11-16):** Added `TGK/PROV/1` to the stack overview as the canonical provenance kernel over `TGK/1-CORE` and wired it through references, dependency summary, and editing guidance. * **0.3.1 (2025-11-16):** Added `TGK/STORE/1` into the overview as the standard graph store & query profile, clarified dependency summary/editing guidance, and introduced the history section. * **0.3.0 (2025-11-16):** Initial Tier-1 substrate stack orientation for Amduat 2.0 (kernel, near-core profiles, canonical PEL stack, and profile authoring guidance). - ---- - -* **0.4.1 (2025-11-30):** Highlighted TGK/STORE evidence hooks + PH06 governance linkage. -### Commit message - -**Commit title:** - -`PEL/PROGRAM-DAG-DESC/1 v0.1.6 + SUBSTRATE/STACK-OVERVIEW v0.3.3 — wire DAG scheme descriptor into stack map` - -**Commit body:** - -* `PEL/PROGRAM-DAG-DESC/1` → v0.1.6 - - * Finalised the DAG scheme descriptor value model and encoding, and fixed `SchemeRef_DAG_1` as the canonical `SchemeRef` for `PEL/PROGRAM-DAG/1` under `ASL_ENC_CORE_V1` + `HASH-ASL1-256`. - * Clarified that the descriptor binds the scheme to a Program `TypeTag` and encoding profile and remains store- and graph-neutral. - -* `SUBSTRATE/STACK-OVERVIEW` → v0.3.3 - - * Added `PEL/PROGRAM-DAG-DESC/1` to the references list and the canonical PEL execution stack. - * Described the descriptor’s role in §4.4 and wired it into the dependency summary (§6) and editing guidance (§7) as the scheme binding between `PEL/1-CORE`, `PEL/PROGRAM-DAG/1`, and ASL/1 `SchemeRef`s. - * Orientation-only change; no behavioural rules added.