Elamur GroupantsāŒ•
☰

mova-hard-cases-harvest

The groupant beside tools/hard-cases/src/harvest.rs in the Mova repository: what the code computes, what it never does, how to go back from its outputs, its invariants, cost and checks.

Facts

Implementation material. A Mova code model describes this code at one source revision: partial models, finite checks and their stated scope. It is not a reviewed general exposition, and its labels are shown as written, never raised.

Components

componentlabelwhere
approximantpartialForward approximant
astpartialsyntax.json
compositionpartialComposition
costpartialCost
descriptantpresentDescriptant
invariantpartialInvariant
testsfinite evidenceTests

Obernants

The typed relations around the forward model: the behaviour complement (what the code never does), the reverse reconstruction (every input compatible with an output) and specialised views.

idtypelabelwhere
behavior_complementbehavior_complementpartial source derived modelbehavior_complement
reverse_reconstructionreverse_reconstructionpartial source derived modelreverse_reconstruction

Model text

Descriptant

Validated Fish replies of the lane's waves -> learn/annotations.jsonl and per track/split CoNLL-U and pragmatics TSV, review-only silver. Source: tools/hard-cases/src/harvest.rs.

Forward approximant

for wave in order, pager root, job in sorted order: accept when outer and inner receipts are validated_review_only (review_only, not training-authorized), reply binds task id, each target tree has the target id and its context text -> first annotation per target (minus held-out texts) -> write(annotations, track/split files, manifest).

Invariant

Only ledger targets with status queued are kept; one annotation per target; files are rewritten whole and atomically; nothing is gold or training-authorized.

Cost

O(jobs + reply bytes).

Composition

Reads fish-pages/fish-swarm job layouts (pages/<intent>/run/jobs/<job>/); feeds witness, eel and judge. Parent hard-cases.

behavior_complement

Does not judge annotation correctness, merge two replies or repair trees; quarantined, uncertain or unbound jobs are skipped with their reason counted. Evidence status: source-derived model with finite checks, not a proof.

reverse_reconstruction

Each annotation keeps its wave, job, receipt hash, source id and key, so the reply and the case can be found again; the other replies for the same target are not kept in learn/.

Tests

harvest::tests (2026-11-04): a bound validated reply counts; red: a quarantined job and a tree whose text is not its target's; learn files split by track and split. Finite fixtures and live samples; not a proof.

This page in Markdown → https://md.groupants.elamur.ai/free/en/mova/tools/hard-cases/src/harvest.rs.groupant/