---
title: "nautilus — Mova code model"
description: "Mova code model of models/nautilus.groupant: components with their labels, obernants and the model text."
url: "https://groupants.elamur.ai/free/en/mova/models/nautilus.groupant/"
---
Elamur: [Mova](https://md.mova.elamur.ai/free/en/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · **Groupants**

This page as HTML: <https://groupants.elamur.ai/free/en/mova/models/nautilus.groupant/>

# nautilus

The groupant beside models/nautilus.groupant 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

- **kind:** groupant_group
- **status:** partial source composition
- **bound sources:** 12
- **repository folder:** [`models/nautilus.groupant`](https://github.com/ElamurAI/mova-free/tree/main/models/nautilus.groupant)
- **repository commit:** `855da7bd4a7b`

> **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

| component | label | where |
|---|---|---|
| **approximant** | partial source derived | [Forward](#forward) |
| **ast** | not materialized |  |
| **composition** | partial source derived | [Composition](#composition) |
| **cost** | partial source derived | [Cost](#cost) |
| **descriptant** | partial source derived | [Descriptant](#descriptant) |
| **invariant** | partial source derived | [Invariant](#invariant) |
| **tests** | finite evidence | [tests](#tests) |

## 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.

| id | type | label | where |
|---|---|---|---|
| `behavior_complement` | behavior_complement | partial source derived finite checks | [behavior_complement](#behavior-complement) |
| `reverse_reconstruction` | reverse_reconstruction | partial source derived finite checks | [reverse_reconstruction](#reverse-reconstruction) |

## Model text


### model

## nautilus

### Descriptant

Nautilus (mova-nautilus): the dictionary maker, one of Mova's animals. Native dictionary layers from courses and corpora, English through the native deputy, a bounded standing loop with review-only proposals, and its teacher through its own mova-terminal behind a narrow interface (no model call in the tests).

### Forward

sources -> annotated units -> layer::build -> render -> layer file; deputy prompt -> Hands(draft|stats) -> English; work: Job -> native or teacher::submit through a PrivateTerminal -> validate -> proposal -> journal.

### Invariant

Native work is deterministic; every teacher question needs the operator's word, is journaled before and after, and is never asked twice; nothing is admitted by the animal.

### Cost

Drafts O(tokens); one question per loop step at most.

### Composition

Leaves are file groupants under `tools/nautilus/src/*.rs.groupant` and `tools/nautilus/tests/*.rs.groupant`. Correct leaves do not prove the wiring: the interaction checks are the English tests, which run the deputy, the handler and the real work together.

### behavior_complement

No model calls in its tests; no admission; no slots; drafts only for configured layers; the Wikipedia layer stays outside the repository.

### reverse_reconstruction

Layer files, the deputy ledger, the teacher journal and work.jsonl recover what was made, asked, answered, proposed and rejected; not unchosen units or question texts. Evidence status: source-derived with finite checks.

### Epoch 2026-11-04 (pool)

Two children joined: `mova-nautilus-improve` (the `layer` source: weak rows of an existing layer asked in tens,
proposals in the builder's formats, the layer file read only) and `mova-nautilus-pool` (a Crab pool member: the lease
read between steps, a job's shared ledger, report and backlog files). Interaction: animal::Config::job builds a
LayerJob or a DictJob for part of parts; work::Loop with a ledger makes a job movable between members without
repeated questions; the counterpart is `crab-pool`, which writes the leases and reads the reports and backlogs.
Licence classes are enforced by the configuration (shipped layers never take CC BY-SA, NC or research-only inputs)
and by the data (a CC BY-SA header in a lesson or layer file). Finite checks only; red controls listed in the
children's tests.

### Epoch 2026-11-04 (senses)

Two children joined: `mova-nautilus-senses` (lemma matching of words in examples, junk and boilerplate, the pupils'
numbered senses, native picks by lemma overlap, restatements, absent answers, the shared sense store) and
`mova-nautilus-replay` (the loop measured on copies with earlier real answers). Interaction: DictJob and LayerJob plan
every word through senses::plan; the loop writes Mova's picks next to the teacher's proposal and both feed the store
(Job::learn), which every later layer and instance reads (a fixed sense is asked only as `same`); the configuration
carries the store, the batch and the pacing. Measured 2026-11-04 by replay on a snapshot of 129 questions: 47
questions instead of 129, 23.4 words per question instead of 9.9, 578 question bytes per word instead of 771, 126 words
settled natively, 107 of 1 030 teacher senses restated a numbered sense. Prospective: on live runs about one word in
ten settled natively and about one teacher sense in ten marked as a restatement; to be corrected from the first
live day.

### tests

#### Checks

cargo test --manifest-path tools/nautilus/Cargo.toml --offline --locked with MOVA_OCTOPUS_TEST_MODEL=$MOVA_DATA/download/0/0.4/en.bin (15 unit + 2 English tests; two identical runs on 2026-11-04).
Negative controls 2026-11-04 (each red, restored): no operator-word check; no terminal-id check; a limit not stopping the loop; stats drafting instead of reading.
No teacher or model call; the private terminal is a fake in the tests.
