docs: refine stack overview to repo stack

This commit is contained in:
Carl Niklas Rydberg 2025-12-22 12:54:51 +01:00
parent d2806a5f33
commit 49fa2955cd

View file

@ -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 TGKs `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 youre 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 repos 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 descriptors 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.