gutenberg-text-command
The groupant beside tools/gutenberg/src/main.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
| component | label | where |
|---|---|---|
| approximant | partial | approximant |
| ast | partial | syntax.json |
| composition | partial | composition |
| cost | symbolic source derived | invariant-and-cost |
| descriptant | present | descriptant |
| invariant | partial | invariant-and-cost |
| tests | executed bounded checks | 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 |
|---|---|---|---|
gutenberg-text-command-behavior_complement | behavior_complement | partial source derived model | behavior_complement |
gutenberg-text-command-reverse_reconstruction | reverse_reconstruction | partial source derived model | reverse_reconstruction |
gutenberg-text-command-ordered_group_gate | ordered_group_gate | partial source derived model | ordered_group_gate |
gutenberg-text-command-death_cutoff_partition | death_cutoff_partition | partial source derived model | death_cutoff_partition |
gutenberg-text-command-fetch_failure_streak | fetch_failure_streak | partial source derived model | fetch_failure_streak |
gutenberg-text-command-creation_failure_boundary | creation_failure_boundary | partial source derived model | creation_failure_boundary |
Parts
Model text
descriptant
gutenberg-text-command
Epoch 2026-10-31
Full source read preceded changes. Prospective model predicted branch/order, resource and information-loss behavior. Tests exercise actual helpers on bounded synthetic inputs; command workflows remain unexecuted. Production source prefix is preserved; only inline tests added.
csv_rows feeds select rows; validate requested groups, collect existing ids, require header columns, create JSONL, then first group match -> disaster war rejection -> all-person death gate -> existing-id rejection -> emit. fetch is independent list -> existing-file skip -> ordered three URL attempts -> rename or append missing; ten consecutive unavailable books abort.
Executable percentage approximation is unsupported: categorical parsing/effects have no useful certified metric here. Partial syntax excludes macro expansion and name resolution.
approximant
Forward relation
csv_rows feeds select rows; validate requested groups, collect existing ids, require header columns, create JSONL, then first group match -> disaster war rejection -> all-person death gate -> existing-id rejection -> emit. fetch is independent list -> existing-file skip -> ordered three URL attempts -> rename or append missing; ten consecutive unavailable books abort.
Domain
UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted.
composition
Local composition
The scoped csv-dates fragment models its declared source interval. Parent relation: csv_rows feeds select rows; validate requested groups, collect existing ids, require header columns, create JSONL, then first group match -> disaster war rejection -> all-person death gate -> existing-id rejection -> emit. fetch is independent list -> existing-file skip -> ordered three URL attempts -> rename or append missing; ten consecutive unavailable books abort.
Shared representation/invariant: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Child costs are included in parent costs, not added a second time. Other command paths are tagged alternatives; the child alone does not establish whole-file behavior.
models
Typed source models
All models are partial source-derived relations at this manifest snapshot. Scope is one call/trace under the stated domain; no universal semantic proof.
behavior_complement
Within admitted selection traces no non-English/non-Text row, later matching group or dated author above cutoff reaches normal PD output. not_pd selects the opposite date predicate. Fetch success excludes missing-log append for that attempt.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
reverse_reconstruction
A JSONL row permits any catalog with the matching selected fields and first-match/PD/skip predicates; unselected rows and prior skip entries are ambiguous. Missing log only identifies unavailable attempt, not remote absence forever.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
ordered_group_gate
gi=min{i: keyword(groups[i]) occurs}; disaster war exclusion applies to gi only; no fallback to a later group.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
death_cutoff_partition
P=Some(years) and all y<=cutoff. Admit iff P != not_pd; empty/undated becomes not-P; BCE contributes0.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
fetch_failure_streak
Success resets fails=0; all3 unsuccessful status codes increments; fails>=10 errors before final pause. Spawn error propagates immediately.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
creation_failure_boundary
Unknown group, skip scan, catalog/header failure precede create(out); rows written before later I/O failure can remain. No transactional promise.
Domain: UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. Observation: Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence. Assumptions: bounded resources and source branch semantics. Oracle: selected actual-helper tests in tests.md constrain only their finite fixtures; remaining branches are source-derived.
tests
Native evidence โ 2026-10-31
Package/bin: gutenberg. Exact selected names:
tests::csv_and_death_yearswave33::csv_boundaries_and_date_fibers
All 2 selected checks passed twice in debug and twice in release, one exact name per invocation with one test thread. Numeric exits are zero; sorted named outcomes match across all four runs. Added test blocks were formatted before these receipts; original source prefix (including earlier tests) remains byte-identical.
One compiled production mutant changed Some(y) if y > 0 to Some(y) if y >= 0. The new wave33 test compiled and failed its runtime assertion (exit 101). Exact original/restored SHA-256 equality and a restored positive exact test (exit 0) were verified. No assertion-only mutant is counted; existing negative assertions remain ordinary tests. No surviving compiled mutant is omitted.
The external wave33 text receipts retain native-commands.json, verified-outcomes.json, mutation-report.json, raw logs/statuses, paired syntax projections and prospective.md. No private filesystem path is part of this public model.
Scope: actual helpers on synthetic in-memory data only. UTF-8 catalogs; exact header names and row width; u32 dates; bounded counters and filesystem availability. Malformed CSV is tolerated. Fetch paths/id safety and live HTTP remain unexecuted. The scoped fragment reuses these tests where its helper is reached; other declared paths remain source-derived. Macro expansion, full command/effect execution, corpus accuracy and universal correctness are not established.
invariant-and-cost
Invariant and cost
Invariant
Selection keeps source row order and assigns at most one group per row. Header errors precede output creation, later write failures need not roll back. PD is an author-date heuristic, not legal certification. Existing skip entries match digit strings after the last pg occurrence.
Cost
For B input bytes, R rows, G groups, K keywords and S skip entries: O(B+S log S+RGK*Brow) comparisons, O(B+S) memory plus output; fetch at most3 external attempts per selected book with unbounded process/network latency and pause.
Arithmetic and allocation premises are conditional. No timing or percentage surrogate claimed.
This page in Markdown โ https://md.groupants.elamur.ai/free/en/mova/tools/gutenberg/src/main.rs.groupant/