Part of lex-lang epic alpibrusl/lex-lang#949 and the loom binding alpibrusl/lex-loom#521.
The manifesto's core move: the agent's interface is a contract to satisfy — "a type signature, a set of examples, a set of properties" — not a codebase to imitate. A typed issue is that contract. lex-code should:
- Fetch the issue (by ref, from the local store or the hub) and read its declared acceptance — the API delta + examples (typed-delta), the failing example, or the metric predicate.
- Generate to satisfy it: spec/build/test modes work from the acceptance as the spec, with the examples as the oracle the fix loop iterates against (they already gate publish).
- Publish with intent = the issue ref (
--intent-* already exists; carry the issue id in the intent so every op links back — issue ↔ intent ↔ ops ↔ attestation).
- Propose acceptance for a free-form issue (the agent-refinement flow in lex-lang's "agent-refined acceptance" issue): given a shape-5 issue, propose signatures + examples / a failing example / a metric predicate for human approval.
The runner path in loom (#521) then becomes: role picks issue → lex-code implements from its contract → the gate closes it.
Part of lex-lang epic alpibrusl/lex-lang#949 and the loom binding alpibrusl/lex-loom#521.
The manifesto's core move: the agent's interface is a contract to satisfy — "a type signature, a set of examples, a set of properties" — not a codebase to imitate. A typed issue is that contract. lex-code should:
--intent-*already exists; carry the issue id in the intent so every op links back — issue ↔ intent ↔ ops ↔ attestation).The runner path in loom (#521) then becomes: role picks issue → lex-code implements from its contract → the gate closes it.