Skip to content

docs: proposal — ActionDef value-dispatch (body lowering + interpreter)#171

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/medcare-rs-transcode-ruff-3y2olh
Jul 7, 2026
Merged

docs: proposal — ActionDef value-dispatch (body lowering + interpreter)#171
AdaWorldAPI merged 1 commit into
mainfrom
claude/medcare-rs-transcode-ruff-3y2olh

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

Adds docs/ACTIONDEF-VALUE-DISPATCH-PROPOSAL.md — a design proposal for closing the gap between the offline transpile (emits effect descriptors) and a runtime that dispatches recoverable methods value-for-value.

Why

Measured over a real 2748-action compiled corpus, every ActionDef has kausal / body_source / on_enter = null; only the name-level effect sets (writes / reads / calls / raises) are populated. ogar-vocab documents this (lib.rs:402-403, 406): the value written "is not captured by today's frontend". So a consumer can verify structural effect-parity but cannot execute an ActionDef to reproduce a method's return value — and re-deriving the formula in the consumer would violate the consumer-side "logic resolves at the Core, never re-implemented downstream" boundary.

Proposal (two coordinated pieces)

  1. Frontend lowering — populate the already-existing typed carriers (EnterEffect for on_enter, KausalSpec for kausal) from the recipe-codebook's recoverable band, instead of name-level effect sets only. The schema exists; the frontend just never fills it.
  2. A value-reproducing interpreter (lance-graph-side, per the thinking boundary) that takes an ActionDef + inputs -> effect values; consumers wire it via a thin ActionDefExecutor trait that defaults to Unsupported until it lands.

Agnostic producer/executor capability gap — no consumer-specific detail. Includes a bit-for-bit falsifier against a hand-written oracle.

🤖 Generated with Claude Code

ActionDefs emit effect signatures (writes/reads/calls/raises name sets) but
kausal/body_source/on_enter are null across a real 2748-action corpus, so a
consumer can check structural effect-parity but cannot execute an ActionDef to
reproduce a recoverable method's value. The typed carriers (EnterEffect,
KausalSpec) already exist in ogar-vocab; the frontend just never populates them.

Proposes: (1) frontend lowering to populate on_enter/kausal from the
recipe-codebook's recoverable band; (2) a lance-graph-side value interpreter
consumers wire via a thin ActionDefExecutor trait (defaults to Unsupported).
Agnostic producer/executor capability gap; no consumer-specific detail.
@AdaWorldAPI AdaWorldAPI merged commit 2e346ea into main Jul 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant