amduat/tier1/fcs-1.md
Carl Niklas Rydberg 3473b19425 trow AI at it.
2026-02-22 00:25:56 +01:00

2.8 KiB
Raw Permalink Blame History

FCS/1 — Function Composition Schema (Execution-Only)

Status: Approved Owner: Architecture Version: 1.0.0 SoT: Yes Last Updated: 2026-02-21 Linked Phase Pack: PH07 Tags: [execution, descriptor, deterministic]

Document ID: FCS/1 Layer: L2 — Function descriptor schema for deterministic execution

Depends on (normative):

  • DDS — canonical FCS/1 v1-min TLV layout and validation rules
  • PCB1 — parameter block encoding rules (DDS §7.3)
  • ASL/1-CORE v0.4.x — logical value model (Artifact, Reference)

0. Purpose & Scope

FCS/1 defines the execution-only descriptor schema for composite and custom functions. It explicitly excludes policy, intent, scope, authority, and other governance metadata (those belong in FCT/1).

FCS/1 descriptors are immutable and content-addressed; identical descriptors MUST hash to identical CIDs.


1. Descriptor Model (logical)

An FCS/1 descriptor captures the deterministic execution recipe:

FCSDescriptor {
  function_ptr     : CID   // FPS/1 primitive or nested FCS/1 descriptor
  parameter_block  : CID   // PCB1 parameter block
  arity            : uint32
}
  • function_ptr MAY reference another FCS/1 descriptor (composition), or a primitive function descriptor (e.g., FPS/1).
  • parameter_block MUST reference a valid PCB1 payload.
  • arity defines the expected number of input slots (must match PCB1).

2. Canonical Encoding (v1-min)

The canonical byte encoding for FCS/1 descriptors is defined by DDS §7.2:

  • COR/1 framing with strict TLV order.
  • Required TLVs only: function_ptr (0x30), parameter_block (0x31), arity (0x32).

No other TLVs are permitted in v1-min.


3. Validation Rules

Implementations MUST reject descriptors that violate any of the following:

  1. TLVs are not in strict ascending order, or appear more than once.
  2. parameter_block does not decode as a valid PCB1 envelope.
  3. arity does not match PCB1 slot manifest length.
  4. The descriptor graph (following nested function_ptr references) is cyclic.
  5. Any legacy or unknown governance TLV appears.

Error mapping follows DDS (e.g., ERR_FCS_TAG_ORDER, ERR_FCS_PARAMETER_FORMAT, ERR_PCB_ARITY_MISMATCH, ERR_FCS_CYCLE_DETECTED, ERR_FCS_UNKNOWN_TAG).


4. Composition Semantics

  • Composition is pure: a descriptor that references another FCS/1 descriptor inherits its deterministic execution recipe.
  • The composed descriptor graph MUST be acyclic.
  • Registries MUST admit only canonical, validated FCS/1 descriptors.

5. Conformance

An implementation is FCS/1conformant if it:

  • Accepts only v1-min canonical encodings.
  • Enforces the validation rules in §3.
  • Treats descriptors as immutable and content-addressed.
  • Rejects any descriptor with policy/intent metadata embedded.