038-structured-extraction

Structured extraction step and the model-derived input pattern (amends 002, 003 and 036)

Lifecycle approvedImplementation completeVerification unknownQualification unknown

An amendment of approved specs 002, 003 and 036 (R-16), for #76 child B6. Two supported ways to turn free text into typed decision inputs, both keeping extracted values model-derived. Pattern A: the host extracts and submits snapshot entries with provenance `model-derived` and an optional producer identity (artifact, template digest, production time), recorded in evidence and lineage. Pattern B: an `extract` step, a model step of spec 037's bounded envelope, asks a backend for a typed record against a declared schema and vocabularies under an identified prompt template; every field is validated and is present or absent with a reason, never coerced, clamped or truncated; each field carries its origin (`extracted`, `fallback`, `absent`) and derivation; a deterministic in-core fallback extractor (`rustev.extract-rules/1`) yields exact-derived fields; per-field distributions exist only from backend log-probabilities and are thresholded only under a bound calibration or a declared `uncalibrated_threshold`. In both patterns an exact operator, policy predicate, proposal parameter, acquisition request or other model step reads a model value only through a declared acceptance rule (an `accept_model_derived` step, or a spec 033 check covering `model-derived`); selection-policy controls never read one. Extraction can drive spec 033's `needs_input` outcome and propose which declared questions it asks. Adds to the shared #76 versions; every version 1 definition keeps its bytes, its plan and its `PlanId`. Approved (A-35); implementation is complete.

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "amending",
      "spec": "002-decision-contract-and-pure-core",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-contract/"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "002-decision-contract-and-pure-core",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-core/"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "003-runtime-execution-and-evidence",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-runtime/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "008-reference-package-lodging",
      "unit": {
        "kind": "directory",
        "path": "packages/rustev-pkg-lodging/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Makefile"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "scripts/acceptance/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "006-cli-surface",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-cli/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "004-evaluation-and-replay",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-eval/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "crates/rustev-surface/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-node/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "027-node-and-wasm-bindings",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-wasm/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-integrations",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-aicortex/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-integrations",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-serve/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "028-opentelemetry-evidence-sink",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-otel/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "007-support-routing-package",
      "unit": {
        "kind": "directory",
        "path": "packages/rustev-pkg-support-routing/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "031-public-api-and-release-family",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-release/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-integrations",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-jev/"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "010-integrations",
      "unit": {
        "kind": "directory",
        "path": "integrations/rustev-remote-http/"
      }
    }

Source headings

  1. 038: Structured extraction step and the model-derived input pattern (amends 002, 003 and 036)
  2. 1. Purpose
  3. 2. Territory
  4. 2.1 Binding principles of #76
  5. 3. Behavior
  6. 3.1 Terms
  7. 3.2 Pattern A: host-side extraction
  8. 3.3 The extract step
  9. 3.4 Field validation and presence
  10. 3.5 Origin, derivation and lineage
  11. 3.6 Per-field distributions and calibration
  12. 3.7 The fallback extractor
  13. 3.8 Acceptance steps
  14. 3.9 The model-value gate
  15. 3.10 Backend capability and output
  16. 3.11 Runtime (amends spec 003)
  17. 3.12 Evidence and judgment
  18. 3.13 Needs input from extraction
  19. 3.14 Compatibility and identity
  20. 3.15 Lodging reference example
  21. 3.16 Alignment with sibling #76 specs
  22. 4. Out of scope
  23. 5. Observable negative cases
  24. Acceptance
  25. Verification
  26. Implementation record
  27. Decisions at approval

Frozen anchors

No frozen anchors declared.