Skip to content

Freeze Echo provider semantic-source and artifact-domain contract #651

Description

@flyingrobots

Purpose

Name exactly one Echo-owned authority for every semantic fact used by the first external Edict provider fixture. This is the source-of-truth inventory required by #650 before generation begins.

Scope

Select one operation already represented by Edict's reviewed Echo compatibility fixture, then freeze:

  • graph/domain types;
  • semantic effect names and signatures;
  • write classes;
  • obstruction taxonomy and mappings;
  • operation profile;
  • budget/cost class;
  • target intrinsic/native capability;
  • direct adapter declaration;
  • generated artifact domains and schema root rules.

For each fact, state whether authority lives in Echo GraphQL/Wesley source, an Echo semantic declaration, target metadata, or runtime implementation. Reconcile or narrow #461 so relocated SDL cannot become a second authority.

Acceptance criteria

  • A checked, versioned Echo semantic-declaration schema exists for facts not honestly owned by GraphQL.
  • Every minimal-slice fact has one coordinate, one authoritative source artifact, and one canonical domain.
  • Duplicate coordinates with conflicting facts fail deterministically.
  • Unknown type, obstruction, profile, capability, adapter, or budget references fail structurally.
  • Source reorder is semantic-order independent where the model declares a set.
  • The inventory maps every generated output to the Edict v1 artifact role and schema binding it will satisfy.
  • Tests prove stale relocated SDL or duplicate declarations cannot silently win.
  • The selected operation requires no new Edict syntax or Core feature.

Boundaries

No handwritten lawpack/profile/facts file is authoritative. Do not expand this into a general Echo schema rewrite, #406 generator refactor, or #449 test-loop project.

Parent: #650
Cross-repo contract: flyingrobots/edict#139, flyingrobots/edict#141

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions