Skip to content

Slice: Author and prove Jim's first Edict operation ReplaceRange #296

Description

@flyingrobots

Slice

Author and prove ReplaceRange.edict as Jim's first real application operation.
This proves an operation law and compiler/runtime substrate; it does not by
itself prove the final Jim.edict observer composition.

Parent: #295.

Artifact boundary

  • jedit.text.schema@1 is the application ABI and fact/codec/identity contract.
  • jedit.text.ReplaceRange.oracle@1 is independent expected-behavior evidence.
  • ReplaceRange.edict is the authored executable semantics.
  • Edict Core/Target IR plus an independently verified package is executable
    meaning.
  • Echo receipts are per-execution evidence.

Neither the schema nor oracle is a program. Echo must not synthesize a package
or evaluator from them.

Required first RED

Check in the exact Jim-owned source and complete lawpack closure, then build it
through Edict's public application-build boundary. The first honest failure
routes work to its owner:

  • missing expressivity or Core representation -> Edict;
  • source that cannot lower -> Edict target adapter/lawpack;
  • verified generic profile unsupported at runtime -> Echo;
  • execution disagrees with the oracle -> triangulate source/compiler/runtime.

Do not start by reverse-engineering an Echo evaluator from the schema/oracle.

Acceptance criteria

  • ReplaceRange.edict and its complete closure are checked in under a
    Jim-owned application root.
  • Edict's public build emits exact Core, Target IR, package, manifest,
    codecs, and structurally separate verification evidence.
  • Echo consumes the exact compiler-produced package without reconstruction.
  • Echo production code uses only generic bounded-program primitives and
    contains no ReplaceRange, rope, split/join/balance, Buffer, or
    TextWindow branch or intrinsic.
  • One admitted execution produces the corpus-defined persistent-rope
    consequence or typed obstruction with basis, budget, footprint, Tick, WAL,
    receipt, reading, and recovery evidence.
  • All retained oracle cases agree through a separately implemented runtime
    path that shares no native Jedit planner or algorithm.
  • Negative gates reject handwritten packages, caller-authored graph patches,
    MutationPlan, native callbacks, fake transports, and compatibility fallback.
  • Any direct operation client/runner is explicitly test-only conformance
    scaffolding and is unreachable from final production composition.

Source location

Use a Jim-owned application root such as:

edict/replace-range/edict.application.json
edict/replace-range/src/ReplaceRange.edict
edict/replace-range/vendor/jedit-text/...

The oracle remains under contracts/jedit/lawpacks/replace-range-v1/ and is not
part of executable semantic input.

Dependencies

Non-goals

  • No Jim.edict observer cutover in this slice.
  • No buffer creation, checkpoint, save/export, causal inverse, multi-range edit,
    rope intrinsic, unrestricted VM, child lane, or wormhole.

Metadata

Metadata

Assignees

No one assigned

    Labels

    causal-ropeCausal rope text authority roadmapenhancementNew feature or requestsliceImplementable roadmap slicetext-authorityText authority and storage invariantswork-in-progressCycle or PR is intentionally in progress and not ready to merge

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions