Skip to content

Preserve typed obstruction identity in executable operation packages #696

Description

@flyingrobots

Outcome

Preserve the application-authored obstruction identity through generic Edict-to-Echo lowering, independent verification, executable-package admission, and the external runner witness.

Executable claim

A compiler-produced create-if-absent package lowered from an authored obstruction arm retains that exact obstruction coordinate. Duplicate execution reports the retained coordinate while Echo production code remains application-neutral.

Acceptance criteria

  • Lowering emits a canonical package field binding the authored obstruction coordinate.
  • The structurally separate verifier derives and checks the same field from real Core and Target IR closure.
  • Package admission rejects missing, malformed, or substituted obstruction identities.
  • The generic runner reports the package-declared obstruction when the runtime returns the corresponding generic precondition obstruction.
  • Generic fixtures prove at least two distinct application-owned obstruction coordinates.
  • The checked provider package is regenerated only through its owning generators and embeds the updated lowerer and verifier.
  • Production modules contain no Hello Echo, Graft, or other application vocabulary.

RED witness

cargo test -p echo-edict-provider-lowerer --test executable_operation_package

cargo test -p echo-edict-provider-verifier --test executable_operation_package

cargo test -p xtask --test run_edict_operation

Non-goals

No native application callback, application-specific runner branch, handwritten package, provider import, external-effect protocol, or multi-Action Tick claim.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureFeature umbrella (epic)legend:testMethod legend test.priority:highMethod priority high.roadmap-aRoadmap A: standalone Hello Echo deliveryruntimeRuntime corespecSpec/Design documenttoolingTooling/CI/CLItype:enhancementMethod work type enhancement.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions