---
language: "en"
title: "Knowledge language and discourse"
canonical: "https://akno.tenphi.me/language-and-discourse/"
source: "docs/language-and-discourse.md"
version: "0.18.16"
index: true
---

# Knowledge language and discourse

Akno separates source language, generated knowledge language, and answer language. Set
`knowledge_language: "en"` in machine configuration to generate English knowledge from English, Russian,
or mixed sources. The default `null` preserves previous language targeting only. Markdown qualification,
retention verification, and the updated answer behavior apply with either setting; `null` does not restore
the previous processing pipeline. The setting is never inferred from the latest source, query,
operating-system locale, or provider response.

```jsonc
{ "knowledge_language": "en" }
```

English is the initial supported knowledge target. `answer({ answer_language: "ru", ... })`, or
`akno answer ... --language ru`, independently requests a Russian answer. Without an override, the knowledge
language applies; if both are unset, no explicit answer-language policy is added. Hosts discover the effective
policy in `context.knowledge_language` and remain responsible for their own final conversation responses.

English and Russian query cues use the same precedence, including when both languages occur in one query:
reports, open questions, discussion, history, then planning. For example, an English request for a report
about a Russian-named plan selects reports. A caller's explicit `memory_view` still takes precedence over
inference; the query language and selected view do not change the knowledge or requested answer language.

For an automatically extracted record with one intact source support, answering also receives its bounded
original quotation as internal context. The visible retained record determines what can be answered; the
quotation constrains its meaning and qualifications. The same verifier call must separately confirm that
every answer proposition was selected by the retained text; missing, inconsistent or negative selection
verdicts withhold the block. This is a model judgment, not a proof that adjacent source content cannot leak. This
context is bound to the current item and exact support fingerprints, hash checked, and excluded from public
context and citations. The configured answer provider receives this bounded original quotation, and may be
different from the provider used for retention. Complete frames are selected in retrieval order with a 4,800-character total cap.
Missing archives, multiple supports, manually provided records and inactive or mismatched supports keep the
existing retained-text-only behavior. Deleting durable state therefore loses this additional context;
rebuilding the index in place preserves it. No additional model call or semantic retry is introduced.

## Generated prose and exact content

The shared model client applies the policy to retained prose, semantic labels, summaries, observation patterns,
reflection principles, curation bodies, rewritten history lines, corrected managed-memory sentences, and new titles. Exact original support/discourse-frame quotations,
names, identifiers, code, paths, existing title references, and destination headings keep their original form.
Generic role labels such as “assistant” are translated when used as descriptive attribution; actual named
speakers keep their exact spelling. A bounded answer guard checks known generic assistant reporting labels
against the effective answer language, while preserving exact source quotations and code. The shared model
language check still covers the rest of the prose.
Answer generation presents a generic assistant as a localized role label; verification and public evidence
retain the original source metadata. A named speaker is never replaced by that display label. Generation
uses direct localized outer attribution for reports and retains any nested speaker and verification limits.
It also receives localized kind, commitment, disposition and temporal-status labels as presentation aids; original enums remain the qualification authority
and verification/public evidence retain those original fields. Tentative timing stays separate from a stated
proposal and its proposed disposition. Active record status does not independently
assert that a described mental activity is still ongoing. Explicit dates, endings and resolutions remain
constrained by the source. A bounded answer check also prevents observed personal cause-nonselection
wording from becoming an agentless state. An explicit agent still needs full source verification;
provenance metadata alone does not establish who performed an action.
Curator revisions check newly generated complete Markdown through a schema-specific selector. Exact original
lines are exempt, including transfers between authorized paths; each original occurrence can exempt only
one final occurrence. Changed bytes and extra copies are checked. Existing proposed after-states are never
source-language authority. Invalid revision shapes or failed selection return a typed language-check failure
before a revision can be sealed or applied. Operational decision reasons are prompt-governed explanations,
not durable knowledge fields checked by this boundary.
Source image extraction/transcription explicitly preserves the source language.
Changing the setting does not translate existing pages, rename identities or folders, or enqueue bulk translation.

Generation receives an explicit language instruction. A separate bounded call checks generated prose fields
without translating them. A mismatch returns `language_mismatch`; an invalid/unavailable check or oversized
output returns `language_check_failed`. Neither exposes fallback generated prose for a write. The check permits
at most 24,000 generated and reference-hint characters, shares an explicit caller latency deadline, and adds one model request
when prose is generated. Classifier-only JSON needs no language call. Receipts aggregate both calls' usage.
This verdict is fallible and verifies neither truth nor translation entailment; retention and answers retain
their separate semantic verifier.
Answers supply a bounded list of exact source-backed name and title hints to the language check. Hints must
occur in the generated excerpts to be sent; the surrounding prose is still checked, and no hint overrides a
negative verdict. Minor grammar errors are distinguished from a change of language. These hints are data,
not instructions or evidence of truth.

When a query retrieves exactly one qualified managed record with a valid original-source binding and a
resolved answer language, answer generation can select an exact copy or one complete translation of that
record, capped at 600 readable characters including status labels. Longer records use ordinary
composition. A copy selects the evidence ID; the server supplies current readable text after removing its list
marker and boundary whitespace. Both copies and translations pass the existing language check and every
answer guard and source verifier. Original-source context cannot add a fact absent from the retained record.
The complete record is the rendering unit on this path, so an independent clause already in that short
retained record may also appear. This trades focused brevity for preserving the record's complete meaning.
When the selected readable record names its non-generic source speaker, a local check requires that exact
spelling in the rendered answer. A name present only in metadata or an unselected source clause cannot
introduce a new named role into the answer.

This path does not infer a record's language from its script, current configuration or historical receipt.
The model chooses copy or translation; an incorrect language choice is withheld without a retry. Records
containing citation-like Markdown or HTML, multiple records, mixed evidence and unresolved output languages
use ordinary answer composition. Translation completeness and all semantic judgments remain fallible.

Provided retention remains exact and model-free. With English configured, callers must attest supplied prose
with `retention.knowledge_language: "en"`. Missing attestation returns `language_policy_required`; a different
declared language returns `language_mismatch`, without a write or replay receipt. The caller owns that attestation
and the supplied semantics. Akno does not guess language from names or short strings, translate the candidate,
or imply semantic verification. Exact `write` operations and authored text remain under caller control.

New retain receipts record `knowledge_language`. An existing source revision replays its recorded policy and
outcome before checking current configuration, with no additional translation or write.

Extraction and verification share definitions for proposition polarity, unresolved questions, unaccepted
proposals, fictional participants and source-relative time. A positive property inside a hypothetical scenario
has affirmed polarity while its commitment remains hypothetical. Nested reports retain `source_report`
basis even when the outer recorder is a user. A narrator's later corrective clarification stays outside
the inner speaker's reported clause, with both clauses and verification limits in one retrievable record. Unanchored calendar references such as “tomorrow” stay in an
explicit unknown, tentative time envelope; readable prose names both the source clock and its unknown date.
`mentioned_at` must come from a supplied source timestamp. Durations and hypothetical coverage intervals
remain prose; an established schedule retains its cadence and time envelope, with structured recurrence
only when its start is supported.
The prescribed Russian source-clock sentence is recognized for day, week, month and year references,
including “tomorrow.” Its explicit source anchor and unknown date do not bypass semantic verification.
One recorded structural repair can address field-specific validation failures before semantic verification.
It cannot retry a semantic rejection or remove the unresolved time envelope to admit the same claim.
Automatically generated reports with an otherwise valid representation and no relations can reach the
existing verifier when a finite wording recognizer cannot establish whether their personal epistemic limits
are readable. The verifier receives the original generated text and must supply exact evidence from that
record's own source frame and current prose, alongside all existing semantic verdicts. Missing or foreign
evidence fails closed. A positive witness cannot override another omitted limit or negative verdict.
This removes the specialized report rewrite; caller-provided and model-free cleaning stays strict.

Extraction and verification share one definition of an independently retrievable record: its proposition
and every source qualification that governs its meaning belong together, even across sentence boundaries.
Open questions keep their personal and record-level limits; competing hypotheses keep their common
evidence and nonselection scope. Independently asserted neighboring facts remain separate. Neutral source
attribution cannot invent a performed activity, and an actual discussion can contain tentative hypotheses
without making those hypotheses factual. These are model instructions, not a deterministic proof of complete
partitioning or source coverage; the live evaluation measures whether the resulting records preserve them.
The extraction schema places prose after exact support, discourse frame, attribution and time so the model
can formulate each independently retrievable sentence with its qualifications already specified. Output
ordering is a generation aid; incomplete or unsupported sentences still fail the same verification.

## Ordinary Markdown

A versioned deterministic scanner qualifies ordinary Markdown without adding markers or changing its bytes.
It reads the complete current file before selecting an excerpt. Returned lines carry `prose`: a view,
qualification status, reason, exact file hash, and bounded original-language context frame. This describes how
a statement is expressed, not whether it is true, and grants no managed-item authorship or retain receipt.

The first scope recognizes English/Russian hypothetical and tentative wording, ATX/setext headings, nested
headings, block quotations, speaker turns and role headings, plans, questions, rejection, fenced examples,
source fences, and an explicit following qualification referring back across a paragraph break. Conditional
and speaker scope continues across blank lines until the next heading. Sibling headings end their enclosing
scope; nested headings retain it.

ATX headings retain their scope with up to three leading spaces, tab separators, and optional closing
hashes. Empty sibling headings also end the preceding scope. The same heading recognition is used when
finding paragraph boundaries, so an indented qualifier cannot be dropped while admitting its paragraph as
factual evidence. Frames keep the exact original heading bytes. Reindexing upgrades the derived projection
and invalidates affected facts and summaries without rewriting source files.

Category headings such as `Assistant report`, `Пересказ`, `Preliminary versions` and
`Предварительные версии` also qualify their otherwise assertion-shaped paragraphs. Category matching is
bounded to the title structure: `Report serial number` and `Preliminary coating specification` remain
ordinary factual headings. The same scope applies beneath nested headings and ends at a sibling heading.
An index pass upgrades older classifications even when the Markdown file itself has not changed.

| Reading                                                        | Factual use                                  | Inspection                                                    |
| -------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------- |
| Ordinary assertion                                             | Eligible evidence, without a truth guarantee | Original text                                                 |
| Report, scenario, tentative passage, plan, question, rejection | Embedded proposition excluded                | Explicit view or `all`, with deciding context                 |
| Frame over 12 lines or 2,400 characters                        | Ineligible, including answer view `all`      | Original text, `unresolved`, and `prose_discourse_unresolved` |

Fact extraction never receives disqualified lines. Structural indexing removes old derived facts and timeline
events on those lines before deferred model work. Factual graph edges require an eligible passage projection.
Recall, context and answers retain qualification and count frames against evidence budgets. Answers must
preserve nonfactual status and citation context. Retention and answer verification each return three separately assessed dimensions:
proposition support, action arguments, and qualification scope. Every dimension must pass. An action's
object, purpose, instrument, destination and modifier attachment must survive paraphrase or translation;
a component named only as the subject of an inspection cannot silently become the object being transported.
Each verdict now includes a bounded comparison of source meaning, candidate meaning, action arguments
and qualification scope, followed by one concrete mismatch for each failed dimension. Missing comparisons,
contradictory mismatch/boolean pairs and accepted retention verdicts carrying hold reasons fail closed.
Comparison notes are audit material, never evidence or an acceptance override. Preserved source ambiguity
is legitimate; selecting an unsupported reading or losing material ambiguity is not. Retention compares at most two disjoint candidates per call; answers compare one block per call. The requested output allowance includes audit prose; the configured provider-role ceiling remains authoritative, and truncation fails closed. Usage and latency receipts sum the calls and preserve unavailable usage as unknown.

Multi-span retention candidates also require one short interpretation for every validated discourse-frame
span, keyed by private server-assigned IDs. Missing, duplicate or foreign IDs fail the verifier call closed. Retention verdicts must be complete JSON; missing closing delimiters are never repaired into an accepted decision.
Each interpretation accounts for the positive content and its limits before the aggregate semantic
comparison. The audit includes original-source clarification across languages without treating adjacency
as equivalence. A repaired position keeps its original proposition obligation separately from source
evidence. Single-span candidates retain their existing comparison. Interpretations and relationship labels
remain fallible model judgments; their presence does not prove entailment or override a negative dimension.
This accounting uses the same verification call with a bounded allowance per required span. Private candidate verdict schemas use an ordinary nested union with distinct single-value ID enums, compatible with the strict endpoint subset. Unexpected verdict fields fail local parsing as they do the wire schema.

Missing dimensions fail closed. Each candidate or block is submitted once during the semantic verification pass, with no retry after rejection. Disjoint batches retain the full original source or their own cited evidence; related candidates supply relation context only. Final retention applies dependency closure: a relation whose internal target was withheld also withholds its source record and all transitive dependents. A malformed or unavailable verification batch withholds the operation; a semantic rejection does not prevent checking other batches. Retention verifies against the complete original source, including process identity and word sense; a fluent English paraphrase cannot certify its own meaning. Generated attribution normalization keeps the structured outer recorder and explicitly supported inner reporters, holds contradictory roles or chain overflow, and never truncates a chain. Recognized source-clock expressions require both a readable source anchor and unknown date. Answers cannot infer what the whole original source omitted from a retrieved subset.
CLI excerpts show qualification labels and scope line references;
`--json` exposes the exact frame.

Whole-page summaries are suppressed when ordinary prose includes a nonfactual passage. Whole-page curation,
splitting, extraction and merging are held for those inputs; curation reports `prose_discourse_held`. Such pages
are also excluded as neighboring synthesis evidence. Observe and reflection consume the eligible fact graph.
These conservative choices keep summaries and rewrites from removing deciding context while a richer
passage-aware synthesis contract is absent. Exact user edits and source inspection remain available.

Reads recompute scope from current bytes, including editor changes that precede watcher indexing. Projection
upgrades and rebuilds leave source bytes unchanged. Missing/stale index qualification reports
`partial_memory_index`; oversized frames stay inspectable with typed degradation. No semantic classifier model
is required. The scanner does not understand arbitrary implicit discourse, every speaker convention, or every
language. Unsupported implicit qualifications may be missed; conservative false holds and bounded supported
cases must be assessed separately from model quality.

## What PR 73 demonstrates

PR 73 fixes Markdown heading scope and English/Russian query-view selection. It does not change the
retention, answer-generation or answer-verification prompts from its base revision. Those boundaries
matter: the historical answer percentages come from different corpora, profiles and model executions.
They do not demonstrate an overall accuracy improvement attributable to this PR.

The [paired comparison](/_tasty-assets/bd826b646dab-paired-comparison.md) gives the actual base and PR revision
identical ordinary Markdown and all 44 frozen retained sets, including incomplete and empty sets. Across
48 input fixtures, correct inferred views improve from **66/100 to 100/100**, and answer operations supplied
with eligible evidence improve from **153/200 to 172/200**. All **88 retained explicit-view controls**
preserve identical evidence. Five incorrect factual projections are corrected; all four ordinary fixtures
upgrade a real base-created index to the new projection without changing source bytes.

These are deterministic scope and routing measurements, not generated-answer grades. Model-free
auto-context remains inactive or degraded on many coordinates. The separate repeated Luna experiment
uses active embeddings and reranking, and couples exact matching requests across revisions. Its reviewed
results and limitations are reported with the [comparison evidence](/_tasty-assets/ff7361a1284b-README.md).

In that live comparison, independently source-useful answers improve from **43/88 to 68/88**. Requiring
support in the supplied evidence as well as source fidelity, qualifications, language and citations gives
**38/88 to 68/88 fully grounded useful answers**. Both repetitions improve, with no paired useful-answer
losses. Eight component/word-sense errors and one qualification omission remain. This bounded downstream
measurement does not replace the full retention-and-answer evaluation below.
Neither experiment replaces the full language/discourse quality gate below.

The [subsequent review and fix rounds](/_tasty-assets/42d15e86addb-README.md) correct
additional list-container and query-boundary regressions. Current code at `558954d` repeats all 48 offline
pairs with complete arm observations identical to the earlier run. The generated-answer scores above
remain measurements of frozen runtime `f23c0da`; no live generation was rerun after the review fixes.

## Full Luna baseline and remaining limits

The earlier [full Luna evaluation for PR 73](/_tasty-assets/343ae7541412-README.md) runs
22 invented V23 sources twice: 44 case-runs and 352 answer coordinates, including 32 expected read-only
abstentions. English knowledge, English/Russian queries and independently requested answer languages use
an active vector index, Luna reranking, and independent review against original sources. The runtime,
model profile and corpus are frozen before calls; outputs are recorded afterward and frozen for review.
Every result is retained.

The baseline produces **233/320 useful answers (72.8%)**, **27/40 complete retained sets** and **130/160
useful auto-recall contexts**. Fifteen published answers change source meaning, and 26 omit required
qualifications. English answers score 129/160; Russian answers score 104/160 and contain all 15 source-meaning
errors. There are no wrong-language answers or unsafe factual promotions in this matrix. Three case-runs
have typed availability failures, including one unavailable answer verification. All 32 read-only
abstentions are justified; source bytes, replay and stored support remain stable in all 44 case-runs.
Stored evidence fidelity does not establish completeness or semantic correctness of generated knowledge.

**The original quality gate fails.** The owner selected Luna as the economical runtime and approved
[bounded completion of #61/#62](/_tasty-assets/dc8dde4fd653-closure-mapping.md), with
remaining failures carried into #66. This scope decision does not lower the original thresholds, prove
that Luna cannot improve further, or claim arbitrary multilingual/discourse coverage. Model index synthesis,
graph expansion and longitudinal maintenance are outside this live matrix. Accepted-proposal transitions,
late corrections and unresolved-reference resolution from the original #61 scope also lack live coverage
here; incomplete/oversized frames and broader long-distance discourse have deterministic controls only.

A bounded Russian rejected-proposal routing defect found in both repetitions is repaired separately.
Independent review also caught negated/conditional rejection in the first patch; the final guard excludes
those cues, and both intermediate and final measurements remain visible.
The built V23 query-view matrix improves from 43/44 to 44/44 while V22 remains at 44/44. The
[separate repair evidence](/_tasty-assets/fcd7698e2eb4-summary.json) records
two fresh executions of the exposed case under the same Luna profile. Those 16 answer coordinates are
not pooled into the full baseline or treated as a replacement quality-gate run.

The earlier [ordinary Markdown supplement](/_tasty-assets/31ea9687d281-README.md)
produces 47/48 useful answers, 24/24 useful auto-recall contexts and 18/18 safe factual-negative controls
across two repetitions. All 47 published answers preserve source meaning, qualification, requested language
and supporting citations; one useful answer was withheld. Four ordinary cases provide bounded evidence,
not comprehensive Markdown coverage. The historical profiles below remain unchanged and are not pooled
with the new results.

### Historical fixed comparison

The current implementation provides an opt-in English knowledge language and bounded English/Russian
discourse handling. The fixed comparison below measures retention, qualified retrieval and answers from
22 invented sources, each run twice with all eight query-language, requested-answer-language and
explicit/inferred-view combinations. These are exposed regression scenarios, not fresh generalization evidence.

The original useful-answer target was **80%**. V17 historically achieved 143/160 (89.4%) on corpus V9;
the later 90% target and expanded corpora are separate experiments. V77's historical 220/320 (68.8%) also
used a different answer ceiling. Treating these percentages as one learning curve was misleading.
The new comparison freezes the same sources, procedure, model roles and budgets across V17, V31 and V77:
2,400 tokens for retention and 1,024 for answers, matching the evaluated local policy. A separate model
grades original sources and anonymous public outputs under one fixed rubric.

| Revision | Legacy run 1 | Legacy run 2 | Recent run 1 | Recent run 2 | Useful total | Accepted answer errors |
| -------- | ------------ | ------------ | ------------ | ------------ | ------------ | ---------------------- |
| V17      | 68/80        | 71/80        | 24/80        | 30/80        | 193/320      | 56                     |
| V31      | 64/80        | 53/80        | 48/80        | 51/80        | 216/320      | 13                     |
| V77      | 63/80        | 59/80        | 36/80        | 53/80        | 211/320      | 11                     |

There is a real original-scenario regression: V17 scores 139/160 against V77's 122/160. Earlier revisions
also lose more meaning on recent cases. None meets the declared quality gate. V31's five-answer net gain
over V77, with lower legacy coverage and continuing qualification errors, does not justify a broad rollback.
All three revisions preserve bytes and replay and justify all 32 read-only nulls. Each has six ordinary
Markdown admission mismatches. Case-level availability failures are zero; the finer answer diagnostics
record four failed calls for V31 and one for V17.

The measured integration at `963bf68` scores **249/320 useful answers (77.8%)**, compared with V77's **211/320 (65.9%)** under the same sources, model policy, budgets and rubric. Original-scenario coverage recovers to **142/160 (88.8%)**, against V77's 122/160 (76.3%) and V17's 139/160 (86.9%). Newer-scenario coverage is **107/160 (66.9%)**. The original block's two runs remain visibly different; this is a bounded recovery, not proof of repeatable general reliability.

| Block / run | Useful answers | Complete retained sets | Useful retrievals |
| ----------- | -------------- | ---------------------- | ----------------- |
| legacy / 1  | 76/80          | 10/10                  | 40/40             |
| legacy / 2  | 66/80          | 9/10                   | 36/40             |
| recent / 1  | 53/80          | 7/10                   | 34/40             |
| recent / 2  | 54/80          | 8/10                   | 33/40             |

By requested answer language, the integration scores **131/160 English answers** and **118/160 Russian answers**, with 4 and 5 accepted errors respectively. These are descriptive slices; they do not replace the fixed block/run gate.

There are **9 accepted answer errors**, down from V77's 11, and **34/40 complete retained sets**. The integration has 1 unsupported retained set (V77 had none), 0 retained-set qualification errors, 0 retained-language violations, 0 answer-language violations and 0 unsafe factual promotions. Correct output language does not imply correct translated meaning. The newly unsupported retained set changes a rattle into vibration; this regression must be weighed alongside the coverage gain. All 32 read-only nulls are justified; source bytes and replay pass in all 44 case-runs. Ordinary Markdown admission mismatches fall from six to **0**. Case-level availability failures are 4; the separate answer-level diagnostic counts 5 failures.

The **80% per-block/run quality gate remains unmet**, as does the later 90% answer target. The gate requires complete retention, qualified retrieval and useful answers in every block/run, plus zero accepted source, qualification, language and promotion errors. The newer scenarios still have missing independent facts, protective holds of defective candidates, missed view selection, and accepted qualification or component-translation errors. Pooled scores do not rescue a failing block.

The integration removes the forced report rewrite before source verification, joins source-coupled qualifications into one retrieval unit, preserves selected source-name spelling, and corrects report/hypothesis heading projections. Independent forensics confirm the report path and complete open-question record were exercised. Their improved outcomes do not prove that every stochastic change was caused by the new instructions.

A final deterministic consistency fix at `9045eda` recognizes the exact Russian source-clock sentence already prescribed by generation, including day references. It passes the local language/discourse/semantic controls, but is outside this frozen live score: no coordinate was rerun or credited for it.

That earlier bounded PR work stopped within seven of its ten allowed iterations. The opt-in language policy and bounded Markdown protections were implemented; reliability acceptance remained unmet. The latest acceptance work is reported above.

The separate [release profile smoke](/_tasty-assets/96a405c4a895-README.md)
checks the shipped 2,400-token answer ceiling under default and English language targeting. Both reports
were retained and four source-supported answers were produced. The original smoke report preserves its
failed telemetry assertions and an unexecuted English fault injection; corrected stage detection and
generic malformed-verifier handling are covered by a separate zero-egress supplement. No live case was
rerun, and these operational checks do not alter the frozen quality score or establish reliability.

The [fixed-comparison evidence](/_tasty-assets/040c8684e0d4-README.md) includes initial/final grades, exact correction ledgers, public outputs, integrity checks and separate-model reviews. The [historical V77 evidence](/_tasty-assets/97ff4a547a3e-README.md) retains its original result and a dated terminology correction.

## Evaluation

The frozen language/discourse corpora separate development and held-out cases with invented English,
Russian and mixed sources; exposed corpora remain available unchanged. V10 doubles the earlier writable
scenario count. V11 moves the ten exposed v10 held-out scenarios into development and adds ten fresh
held-out scenarios of the same kinds, including multi-turn context.
Each split also has a read-only admission case. A separate model approves source/expectation pairs before execution. Earlier corpora remain
diagnostic evidence of their recorded runtime versions. Deterministic CI covers policy, exact quotes, qualification, source-byte preservation,
rebuild/replay, graph eligibility, and failures. It does not establish live-model quality.

```bash
pnpm build
pnpm bench:language --live --split development --corpus v17 --runs 2 --output bench-results/language-development.json
pnpm bench:language --live --split held-out --corpus v17 --runs 2 --output bench-results/language-held-out.json
```

These explicitly opted-in runs use configured model roles and temporary isolated knowledge bases. They retain,
restart/rebuild, replay, query in English and Russian, assemble context, and request English and Russian answers.
Each case runs the full eight combinations of query language (English/Russian), answer language
(English/Russian), and explicit/inferred memory view. `--runs` accepts one through five repetitions, each in
fresh directories; `--case ID` selects diagnostic cases and records the selection in the report.
Ordinary passages are read and inspected through production operations. Reports include corpus/policy/prompt
versions, model ids, stage receipts, per-language/scenario counts, and denominators for holds, coverage, typed
semantic mismatches, noncanonical eligibility flags, language rejection and availability. Index summaries/facts are disabled
in this language benchmark; integration tests cover ordinary fact and graph derivation separately.

V2 introduces authored review expectations and separates writable language fidelity from a deliberately
read-only admission case. The ordinary source passage is indexed after retention, so it cannot win routing
against the writable destination. V1 indexed that passage first as a read-only knowledge page: some apparent
false holds were legitimate refusals to substitute a weaker writable page. The old setup is recorded as
`legacy-read-only-source-before-retain`; its coverage is not directly comparable to v2. Routing authority,
folder admission and configured fallback behavior are preserved.

Answer diagnostics expose `reason_code` and `validation`: generated blocks, blocks passing deterministic
guards, independently verified blocks, and rejection counts for language, citations, protected values, attribution,
discourse and semantic support. `verified_blocks: null` means verification did not complete; it is not a failed
semantic verdict. No eligible evidence is an abstention, without a fabricated `answer_failed` degradation.
For a record with an exact bound original frame, answer generation first emits a private interpretation
of that record. It is discarded before independent verification and never becomes answer evidence.
The existing verifier separately compares action actors, objects/mechanisms and qualifications using
server-assigned references into exact original and answer text. References are bound to the owning
record/block and its content; models select IDs rather than recopying quotes. Ordered sentence/clause
segments preserve every byte and are grouped to at most 24 references per text. They locate text, not
semantic propositions: complete original context resolves explicit clarification, and the complete
answer block determines whether an actor or qualification is missing. No generated audit becomes evidence.
Missing, foreign, stale, malformed or negative comparisons withhold the block alongside the existing
semantic and retained-excerpt selection checks. These fallible comparisons do not establish exhaustive
semantic correctness. Generated answers keep each selected proposition's coupled material clauses together,
preserving already-target-language content closely and translating the same meaning otherwise; independent
neighboring private details need not be included.

The answer role's default output ceiling is 4,096 tokens to accommodate these audits. Ordinary generation
still requests 1,024; framed generation reserves additional space, and verification can emit a longer
comparison. This can increase latency and output cost. Explicit caller/provider limits remain authoritative;
large or verbose audits may still exceed the ceiling and withhold an answer. Akno never truncates the
required audit into an accepted verdict, retries its semantic decision or adds a fallback pass.
An isolated language benchmark can explicitly select `--answer-output-tokens 2400`; this overrides only
that trial's answer-role ceiling and leaves service configuration untouched. Reports and their review
fingerprints include resolved answer/retention output ceilings so different trial budgets cannot be mixed.

Retain candidates expose `hold_stage` and `routing_reason` for validation, verifier and placement decisions.
Unavailable or invalid routing models report typed degradation; receipts preserve those diagnostics on replay.
Old receipts may lack the new optional fields. These fields contain no source text.

Answer guards accept bounded English/Russian qualification forms while checking combined semantics: a
reported tentative claim must retain both attribution and uncertainty, and fictional examples must remain
fictional. The complete answer still passes a separate semantic verifier, which receives the original question
and effective memory view to interpret short answers without treating the question's premises as evidence.
Exact source frames may contain a
narrower support quotation; they must remain byte-exact, uniquely located, and in the same source item.
Several adjacent frame quotations may cover one support quotation; only whitespace may bridge them.
Exact provided retention holds when the frame omits words, including negations. Automatic extraction can
complete a partial frame by appending its already validated exact support quotation. It preserves every original
frame span and the candidate prose, adds no guessed source context, and still requires full semantic verification.
Support arrays have an eight-span cap and frames a 16-span cap; invalid explicit spans cannot fall back to legacy fields, and
completion never truncates context to fit. A proposal with explicitly unknown temporal precision,
tentative time status and no date boundaries or recurrence may retain an unresolved source-relative time.
Its readable sentence must identify the unknown source clock; bare “tomorrow” is insufficient even with unknown
structured precision. It is never actionable or eligible for a bounded date query. Invented resolved dates still fail validation.

Rejected plans keep their rejected disposition through the public schema, saved markers and history views;
they are excluded from planning and factual views. Explicit invalid commitment/disposition values are held
instead of being silently normalized. Reports that explicitly lack confirmation must retain that qualification
in readable prose: source attribution alone cannot substitute for it. A corrective contrast that defines the
same action or value, such as “adjustment, not replacement,” stays in one readable record; unrelated adjacent
details are optional. Extraction and verification use the principal proposition's polarity, keeping a
positive action distinct from its rejected disposition or a contrasted exclusion.

For blocks citing only qualified managed records, the answer guard screens concrete predicate denial rather
than the mere presence of a grammatical negator. English/Russian translations can introduce negation while
preserving uncertainty, open-question status, fiction, report attribution or rejected selection. Exact token
and citation checks remain deterministic. Predicate matching is a heuristic: complete and mixed-clause polarity
still requires the full citation-scoped semantic verifier, which receives a checklist of the cited records'
typed constraints. Mixed or untyped evidence retains the conservative lexical comparison. Named report sources use a bounded grammatical reporting relation. Tentative modifiers and report ownership
can express that relation; recording an unrelated object cannot. Spaced Russian passive uncertainty must
qualify an epistemic noun rather than deny an unrelated action. Direct user
provenance (`self_attested`) does not require adding a claim of self-attestation or naming the author in the answer.
For direct assertions, author identity is excluded from the generator's and verifier's qualification checklists;
public evidence retains the complete provenance metadata. The generator also omits the internal basis label.
Readable actors, pronouns and explicit reporters remain content constraints, including a reporter different
from the author. An unspecified actor stays unspecified. Source-report records still require their outer
source and reporting scope; a direct assertion containing a report still preserves that readable attribution.
Private source frames constrain selected meaning without supplying an additional display name. These boundaries
avoid both invented attribution requirements and promotion of reports to unqualified facts. Closed plans
must preserve their rejected/cancelled/completed/superseded status, without redundant planning wording.
Competing unconfirmed hypotheses retain tentative or hypothetical commitment even when their discussion
is established; they do not gain ordinary factual eligibility from the certainty of that outer discussion.

When an answer receives an independent predicate reading of its original frame or typed temporal record,
that same source-only pass reads explicitly named reporters governing each selected predicate. The answer and
provenance author are absent from this reading. An explicitly named reporting source is bound
to its reported predicate with exact source quotations; a frame-only name absent from the readable record cannot become
a display requirement. Verification compares the reporter's exact name and the candidate's actual role against this fixed
reading. Citation metadata cannot replace an absent reporter. Complete-record copies preserve every bound reporter;
focused answers can omit only roles whose governing predicates are also unselected. Invalid readings or verdicts
withhold the answer. This adds no model call beyond the existing source-reading pass and leaves the independent
date, excerpt-selection, action and qualification checks required. Semantic interpretation remains fallible.

When extracted candidates fail structural validation, retention permits one repair transaction using the
complete original source and validation issues. Repairs target only failed original candidate positions;
relations continue to use original indices. Every repaired candidate passes the same validation and semantic
verification. The complete records, relations and order of already admitted candidates must remain identical. Each returned repair position must survive as a candidate or an explicit hold; silent duplicate collapse invalidates the transaction. Verification receives the original position’s candidate as a repair obligation, checks its source-supported core proposition, and cannot accept a sibling substitution merely because that different proposition is also true. The original candidate is not evidence.
An invalid or unavailable repair preserves those admitted candidates for verification and reports typed
degradation, including through remember previews and replay. Semantic verifier rejections are not retried.
Structural repair guidance identifies the exact allowed commitment and disposition for the candidate kind.
Questions require commitment none; invalid explicit values are held rather than silently coerced.
Generated nonfactual prose must keep its named outer source speaker; source metadata alone cannot satisfy
this readable attribution check. Named inner reporters require a bounded explicit reporting relation in the
original frame; a name merely appearing as a fictional participant is insufficient. Semantic verification still
checks the full quotation scope. Explicit exclusion wording with affirmative polarity is held before verification.
Repair cannot replace legacy event extraction. The optional
`model_usage.repair` receipt reports the extra call and replays with the original result.

Reports under `bench-results/` contain diagnostics and generated text from the invented corpus for review.
Inspect `reviewKnowledge`, per-query `reviewRetrieval` and `reviewAnswer` against frozen sources when adjudicating translation, attribution,
polarity and useful answers. Produced answers are reported both over all requests and over retained cases;
independently judged useful answers and justified abstentions remain separate, unassessed metrics. Accepted language-error, translation-error and unsafe-promotion rates stay **unassessed** until that
review: another model's agreement is not ground truth. Reports declare thresholds and remain ineligible as
release evidence without independent adjudication. Preserve prior reports for comparisons.

`scripts/review-language.mjs` exports a blind output-review packet after the corpus expectations have been
independently approved. It includes exact per-query retrieved passages for relevance and qualification review,
and excludes runtime verifier verdicts and aggregate scores. Pass the completed output
review back to compute the gate:

```bash
node scripts/review-language.mjs \
  --report bench-results/language-development.json \
  --report bench-results/language-held-out.json \
  --input-review bench-results/language-input-review.json \
  --output bench-results/language-review-packet.json

node scripts/review-language.mjs \
  --report bench-results/language-development.json \
  --report bench-results/language-held-out.json \
  --input-review bench-results/language-input-review.json \
  --output-review bench-results/language-output-review.json \
  --output bench-results/language-gate.json
```

The computed gate requires both complete splits, at least two runs, all eight query/answer/view combinations,
current matching runtime contracts, and exact corpus/report/review fingerprints. Every split/run must achieve
at least 80% independently judged useful retention and independently relevant qualified retrieval. The broader
v10 through v17 corpora require at least 90% useful qualified answers in every split/run; historical corpora retain their
original 80% answer threshold. The policy comes from the frozen corpus version, not a report-supplied number.
V10 through V17 gates also break down useful retention and answers by source language and scenario, and answers by query
and requested output language. These groups describe coverage within a finite corpus, not independent samples.
At most 5% of cases may have availability failures. Accepted language errors, qualification errors, unsafe factual promotions and
source-byte changes must all be zero; read-only holds must all be correct. Missing reviews, stale receipts,
duplicate judgments and abstention-only output cannot pass. Abstentions remain separately adjudicated.
Retrieval is judged once per query-language/view pair; duplicated evidence in the two answer-language rows
must receive the same judgment and cannot increase its weight. Model adjudication is labeled as such and must use a model different from the runtime retention/answer model;
it is fallible review of a finite invented corpus, not human validation or a longitudinal reliability guarantee.

V13 through V17 use `language-output-review-v2` and `language-quality-gate-v2`. Every retained set receives
`retainedSourceEntailed`: all saved propositions must follow from the frozen original source; an empty set
is vacuously true. Each answer receives `sourceEntailed`, null if and only if the answer is null. A nonnull
answer must follow from the original source even if it repeats flawed retained knowledge. Unsupported
retained sets and nonnull answers must both be zero. A mixed retained set can contain useful knowledge and
an unsupported addition; it still fails this precision gate. Focused answers may select a supported subset,
but cannot remove a restriction that changes meaning. These judgments are scored separately from the qualification and language dimensions; altered attribution
or commitment can also change whether the content follows from its source. Earlier corpora retain the original review schema and policy.

Older frozen answer corpora are unchanged. Some expect factual answers from a record that “says” a claim;
the stricter report boundary abstains on those cases. Their benchmark gates expose the coverage loss instead
of silently replacing expected answers. General longitudinal reliability and bounded observation/reflection
inference remain separate roadmap work.

A split used to diagnose or tune a fix is exposed diagnostic evidence afterward, even if its frozen name is
`held-out`. Fresh independently reviewed cases are required for an unbiased release-quality claim.

## Independently reviewed v26 and v27 diagnostics

The v16 corpus ran twice per split at V26 runtime `23ab599`, using GPT-5.6 Luna and independent GPT-5.6 Sol
review. The gate failed with 240/320 useful writable answers: development 74/80 and 61/80, held-out 51/80
and 54/80. Useful retention was 34/40. All retained sets were source-entailing, but one nonnull answer added
unsupported terminology doubt and lost qualification. All 32 read-only abstentions were justified; 62
writable nulls were unjustified. No accepted language error, unsafe factual promotion, source-byte change
or case availability failure was found. The [complete V26 evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v26)
includes initial and corrected independent judgments after a consistency review under the unchanged contract.

V27 at `7909f71` repairs structurally rejected original positions even when another candidate survives,
while preserving every admitted record and relation. Its exposed report/exclusion diagnostic scored 8/16
useful answers; the separate built-package probe scored 16/16, with all nonnull answers source-entailing.
The [complete V27 evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v27)
failed the repeated gate with 239/320 useful answers, 32/40 useful retained sets, three case-runs with typed
qualification errors, one unsupported answer and one case availability failure. Both initial and corrected
independent judgments remain preserved. V27 was frozen before fresh full V26 outputs were opened.

The [V28 probes](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v28) yielded 23/32
useful selected answers and 16/16 built-package answers; all nonnull answers were source-entailing. Its
fresh full trial was never started. V29 separates outer nonverification from inner-speaker commitment and
real discussion plans from their fictional propositions, preserves absence of evidence in hypothesis answers,
and addresses bounded report-wording false rejections. It uses the unchanged independently approved fresh
v17 inputs under the same repeated 90% and zero-error gate.

## Independently reviewed v23–v25 diagnostics

The v15 corpus ran twice per split at frozen runtime `75c9b90` (v23) and `bd8e068` (v24), using GPT-5.6 Luna
and independent GPT-5.6 Sol review. Both gates failed. V23 produced 253/320 useful writable answers, four
unsupported retained sets and fourteen unsupported nonnull answers. V24 produced 275/320 useful answers:
development 69/80 and 70/80, held-out 66/80 and 70/80. It recorded four unsupported retained sets, nine
unsupported nonnull answers and 36 unjustified writable nulls. All 32 read-only abstentions were justified.
No accepted qualification/language/promotion error, source-byte change or case availability failure was found
in v24. Its separate built-package probe scored 8/16 useful answers.

V24 was frozen before v23's fresh outputs were opened; its changes used only an exposed earlier probe.
Both [v23 evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v23) and
[v24 evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v24) are preserved.
Errors included changing lack of arrangement into refusal, sanding into polishing, and a device-collection
report into data collection. Subsequent extraction and verification distinguish proposition, action arguments
and qualification, preserve supported reporter roles, and constrain whole-source absence statements.

The exposed v25 diagnostics at `3988ba1` scored 14/24 useful selected answers and 15/16 useful built-package
answers. Every nonnull answer was source-entailing. Verification correctly rejected an exclusion rewritten
as whole-contract silence. The [complete v25 evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v25)
remains preserved. V26's shared contract preserves the grammatical subject and scope of negative epistemic
statements; semantic rejection remains final. V16 introduces ten fresh, independently approved writable
held-out sources under the unchanged 90% coverage and zero-error gates.

## Independently reviewed v22 broader diagnostic

The v14 corpus ran twice per split at runtime commit `4f893b4`, using GPT-5.6 Luna with independent
GPT-5.6 Sol review. The unchanged gate failed:

| Split       | Run 1 useful answers | Run 2 useful answers |
| ----------- | -------------------- | -------------------- |
| Development | 77/80                | 72/80                |
| Held-out    | 69/80                | 61/80                |

The 279/320 useful answers leave 40 unjustified nulls and one unsupported translation from service
collection to data collection. Useful retention was 37/40; all 32 read-only abstentions were justified.
No accepted qualification, language or promotion error, source-byte change or availability failure was found.
The initial reviewer missed the translation error; a consistency recheck against the unchanged contract
corrected one judgment. Both receipts and the authoritative failed gate are preserved in the
[complete evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v22).
Selected diagnostics yielded 23/24 useful answers and the separate built-package probe 14/16.

Eighteen nulls followed missed implicit memory-view intent, sixteen followed incomplete/held retention,
and six were false draft/verifier rejections. V23 adds bounded query phrases with factual counterexamples,
recognizes explicit independent-verification uncertainty and typed rejected-plan wording, and clarifies
retaining actual outcomes alongside their counterfactual alternatives. Translation instructions preserve
the action's sense and object. All candidates and accepted answer drafts still require semantic verification.
V15 reuses exposed v14 sources only for development and adds ten independently approved fresh writable
held-out sources. No acceptance threshold changes.

## Independently reviewed v21 broader diagnostic

The v13 corpus ran twice per split at runtime commit `a7c3f65`, using GPT-5.6 Luna and separate
GPT-5.6 Sol input/output review. Every group reached the 90% useful-answer target, but the gate **failed**
for five omitted source-relative time qualifications:

| Split/run     | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------- | ---------------- | ------------------- | ------------------------ |
| Development 1 | 10/10            | 40/40               | 79/80                    |
| Development 2 | 10/10            | 40/40               | 72/80                    |
| Held-out 1    | 10/10            | 40/40               | 78/80                    |
| Held-out 2    | 10/10            | 40/40               | 79/80                    |

The 308/320 useful answers leave seven unjustified nulls and five answers that mention a relative month
and unknown calendar date without tying that month to the undated original source. All 40 writable
retentions are useful. There were no accepted source-unsupported records or answers, language violations,
unsafe factual promotions, source-byte changes or case availability failures. All 32 read-only abstentions
were justified. The initial independent review missed the five clock omissions; a consistency recheck
against the same contract corrected those judgments. Both receipts remain in the
[complete evidence](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v21), with the corrected
receipt governing the failed gate. No inputs or thresholds changed during that recheck.

A separate built-package probe passed independent review for two records and all 16 answers. A selected
four-case diagnostic retained all four records faithfully and produced 29/32 useful answers, including one
source-clock omission. Those probes provide deployment and diagnostic evidence, not replacement trials.
Forensic review found six of the seven full-trial nulls were correct rejections of flawed drafts; the remaining
false rejection involved a possessive inner-speaker attribution.

V22 requires both the source anchor and unknown calendar clock when the cited record explicitly carries
unresolved source-relative timing. Unknown precision alone does not activate this check. Abstract timing
may preserve the qualification without repeating its exact unit; every accepted block still undergoes
semantic verification. V22 also accepts a bounded possessive speaker report frame while preserving the
outer recorder and semantic checks. V14's fresh held-out inputs were independently approved before
execution under the unchanged 90% and zero-error thresholds.

## Independently reviewed v20 broader diagnostic

The v12 corpus ran twice per split at runtime commit `5e0b5d3`, using GPT-5.6 Luna with independent
GPT-5.6 Sol input/output review. The unchanged 90% answer gate **failed**:

| Split/run     | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------- | ---------------- | ------------------- | ------------------------ |
| Development 1 | 7/10             | 28/40               | 60/80                    |
| Development 2 | 8/10             | 32/40               | 62/80                    |
| Held-out 1    | 9/10             | 36/40               | 66/80                    |
| Held-out 2    | 9/10             | 36/40               | 66/80                    |

The 254/320 useful answers leave 51 unjustified nulls and 15 source-unfaithful answers. Both repetitions
changed a reported service provision into an instantiated pickup booking; most answers repeated that
unsupported change. The report attribution and lack of verification survived, so the final review records
no qualification or factual-promotion error. This distinction motivated V13's separate zero-tolerance
source-entailment gate. There were no accepted language errors, source-byte changes or case availability
failures, and all 32 read-only abstentions were justified. Four writable retentions were entirely empty;
three more lost necessary content or scope.

The [complete reports, review receipts and failed gate](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v20)
remain preserved. A separate built-package probe produced 21/24 answers, of which 14/24 were independently
useful; it reproduced the provision-to-booking error and does not replace the full trial. Final review
receipts distinguish source scope from qualification and accept focused, explicitly rejected-offer answers
without requiring a redundant no-plan sentence.

V21 adds generated-candidate checks for typed booking context and readable source-supported subject
identifiers, preserves unresolved alternatives in questions, and recognizes explicit unrecoverable source
dates. Shared prompts distinguish service provision from booking, assistant tentative reports from
hypothetical scenarios, and source-supplied conditional consequences from new deductions. Bounded answer
checks accept additional faithful attribution, rejection and uncertainty forms without bypassing source
verification. V13's ten fresh held-out sources were independently approved before execution; the answer
threshold remains 90% in every split/run.

## Independently reviewed v19 broader diagnostic

The v11 corpus ran twice per split at runtime commit `015f122`, using GPT-5.6 Luna with independent
GPT-5.6 Sol input/output review. The unchanged 90% answer gate **failed**:

| Split/run     | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------- | ---------------- | ------------------- | ------------------------ |
| Development 1 | 10/10            | 40/40               | 72/80                    |
| Development 2 | 10/10            | 40/40               | 74/80                    |
| Held-out 1    | 10/10            | 40/40               | 71/80                    |
| Held-out 2    | 9/10             | 36/40               | 62/80                    |

The 279/320 useful answers leave 34 unjustified nulls and seven incomplete answers caused by a lost
retention contrast. The review found no accepted language or factual-promotion errors or source changes;
all 32 read-only abstentions were justified. One answer call reported a typed language mismatch. Its original
generated prose was not retained in the diagnostic trace, so that failure cannot be adjudicated as a true
language violation or a false language-check rejection.

A separate code audit identified asserted metadata on a readable competing-hypothesis record. The blind
reviewer accepted it as a faithful assertion that a discussion happened; the implementation contract requires
commitment to describe the embedded proposition. The original receipt remains unchanged. V12 explicitly
states that semantic distinction before input and output review, allowing tentative or hypothetical status
when either preserves the supported meaning. It moves exposed v11 cases into development and introduces
ten fresh writable held-out sources under the unchanged 90% target.

The [complete reports, review receipts and failed gate](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v19)
remain available. The 16-answer built-package probe is separate deployment evidence and does not replace the
full trial.

## Independently reviewed v18 broader diagnostic

The broader v10 corpus ran twice per split at runtime commit `66f191d`, using GPT-5.6 Luna and separate
GPT-5.6 Sol input/output review. It contains twenty writable scenarios rather than ten, with new multi-turn
held-out sources. The predeclared 90% answer gate **failed**; its scores are not directly comparable to the
smaller corpus's 80% gate.

| Split / repetition | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------------ | ---------------- | ------------------- | ------------------------ |
| Development / 1    | 10/10            | 40/40               | 77/80                    |
| Development / 2    | 9/10             | 36/40               | 70/80                    |
| Held-out / 1       | 10/10            | 39/40               | 63/80                    |
| Held-out / 2       | 8/10             | 28/40               | 54/80                    |

There were 55 unjustified null answers and one non-null answer missing an explicit qualification.
One saved report lost its source's lack of confirmation, producing a separate knowledge qualification error.
A tentative representation of two unconfirmed competing hypotheses was accepted semantically: a typed
expectation mismatch alone does not mean the uncertainty or alternatives were lost. Three writable case/runs
saved no knowledge, including one with model availability degradation. All 32 read-only abstentions were
justified; no unsafe factual promotion, accepted language violation or source-byte change was found.

The [original gate and complete reports/reviews](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v18)
remain unchanged. Its built-package report/counterfactual probe produced all sixteen answers and preserved
the actual declined decision plus unrealized alternative; that separate deployment evidence does not replace
the failed broader trial. The v10 held-out inputs are now exposed development evidence.

## Independently reviewed v17 result

The v9 corpus **passes the declared gate** for the frozen runtime at `bb78edf`. GPT-5.6 Luna remained the
retention/answer model; GPT-5.6 Sol independently approved the inputs before execution and graded the blind
output packet. Each split ran twice with all eight query/answer/view combinations per case. The runtime used
`answer-generation-v17` / `answer-verifier-v7`, `retain-extraction-language-v11` /
`retain-verifier-language-v5`, `memory-view-v3` and `prose-v1`.

| Split / repetition | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------------ | ---------------- | ------------------- | ------------------------ |
| Development / 1    | 5/5              | 20/20               | 38/40                    |
| Development / 2    | 5/5              | 20/20               | 38/40                    |
| Held-out / 1       | 5/5              | 20/20               | 34/40                    |
| Held-out / 2       | 4/5              | 20/20               | 33/40                    |

The reviewer found no accepted language errors, lost qualifications or unsafe factual promotions. All 16
read-only abstentions were justified; source bytes were unchanged, all ordinary-prose checks passed and
there were no model availability failures. The 17 writable-case null answers remain usefulness misses.
One retained counterfactual preserved the unrealized repair proposition but omitted the explicit decision
to decline the warranty, so that case counts as incomplete retention. Both losses remain in the denominators;
the minimum retention and answer coverage in a split/run were 80% and 82.5%, respectively.

The [computed gate](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/gate.json),
[development report](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/development.json),
[held-out report](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/held-out.json),
[input review](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/input-review.json) and
[output review](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/output-review.json)
preserve the complete result. A separate
[built-package time probe](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v17/built-undated.json)
retained an explicitly undated proposal, produced eight answers and replayed without changing source bytes
after rebuilding and restarting the service. It is deployment evidence, outside the gate totals.

This is fallible independent model review of a finite invented English/Russian corpus. It does not establish
universal language support, arbitrary implicit discourse understanding or longitudinal memory reliability.

## Independently reviewed v16 diagnostic

The v8 corpus ran twice per split with GPT-5.6 Luna and separate GPT-5.6 Sol input/output review.
Its original-contract gate at commit `ac562f8` **failed**. Development answered all 80 combinations, but one
retained proposal omitted the unknown source date in readable prose. Both held-out repetitions lost the
requested counterfactual proposition while retaining a decision from the same source.

| Split / repetition | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------------ | ---------------- | ------------------- | ------------------------ |
| Development / 1    | 5/5              | 16/20               | 40/40                    |
| Development / 2    | 5/5              | 20/20               | 40/40                    |
| Held-out / 1       | 4/5              | 16/20               | 22/40                    |
| Held-out / 2       | 4/5              | 16/20               | 26/40                    |

All 16 read-only abstentions were justified; 32 writable-case null answers were coverage failures. The review
found one qualification error and no accepted language errors or unsafe factual promotions. Source bytes
were unchanged and no model availability failure occurred. These inputs became exposed diagnostic evidence.

The [original gate](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v16/gate.json)
and its [reports and independent reviews](https://github.com/tenphi/akno/tree/main/benchmarks/language/results/v16)
are preserved alongside a separate built-package counterfactual answer probe. That probe checks deployment;
its two successful answers do not replace the failed complete evaluation.

## Independently reviewed v14 baseline

The v6 corpus was run twice per split with GPT-5.6 Luna for retention/answers and GPT-5.6 Sol for separate
input/output adjudication. Inputs were approved before execution; the output packet hid runtime verdicts
and aggregate scores. The gate used the original runtime contracts from commit `ebc5814`.

| Split / repetition | Useful retention | Qualified retrieval | Useful qualified answers |
| ------------------ | ---------------- | ------------------- | ------------------------ |
| Development / 1    | 5/5              | 20/20               | 39/40                    |
| Development / 2    | 5/5              | 20/20               | 33/40                    |
| Held-out / 1       | 5/5              | 20/20               | 29/40                    |
| Held-out / 2       | 5/5              | 20/20               | 33/40                    |

Both read-only holds and all 16 associated abstentions were justified. The reviewer found no accepted language,
qualification or factual-promotion errors; source bytes stayed unchanged and model availability had no failures.
Nevertheless, **this baseline failed**: the first held-out run missed the 80% useful-answer threshold. Its 26
unjustified null answers across both splits remain coverage failures. The v6 split became exposed diagnostic
evidence after this review and informed later guard fixes.

The [computed gate](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v14-baseline/gate.json),
[development report](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v14-baseline/development.json),
[held-out report](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v14-baseline/held-out.json),
[input review](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v14-baseline/input-review.json) and
[output review](https://github.com/tenphi/akno/blob/main/benchmarks/language/results/v14-baseline/output-review.json) are preserved unchanged.

## Initial live baseline

The initial diagnostic run used `language-discourse-v1` (fingerprint
`69752a7525357e462aea76b251f531a33862279b0a87900eeb182bed6d1db458`), English knowledge,
`retain-extraction-language-v1` / `retain-verifier-language-v1`, `answer-generation-v5` /
`answer-verifier-v3`, and `prose-v1`. Retention/answer used `gpt-5.6-luna`, embeddings used
`text-embedding-qwen3-embedding-0.6b`, and expansion used `llama-3.2-3b-instruct`.

| Diagnostic metric                                       | Development   | Exposed held-out |
| ------------------------------------------------------- | ------------- | ---------------- |
| Useful cases with retained knowledge                    | 6/8           | 4/6              |
| False holds among useful cases                          | 2/8           | 2/6              |
| Expected safe holds                                     | No such cases | 2/2              |
| Retained cases retrieved with qualification             | 6/6           | 4/4              |
| Retained cases matching typed expectations              | 6/6           | 4/4              |
| Ordinary prose qualification matches                    | 8/8           | 8/8              |
| Source-byte changes                                     | 0/8           | 0/8              |
| Noncanonical eligibility warning flags                  | 0/6           | 0/6              |
| Cases with language-policy rejection                    | 0/8           | 0/8              |
| Cases with model availability degradation               | 1/8           | 0/8              |
| Queries producing an answer, before independent grading | 13/32         | 12/32            |
| Queries reporting `answer_failed`                       | 8/32          | 16/32            |

In this initial baseline, useful retention was below the declared 80% threshold in both splits. Three useful cases were held because
routing found no writable destination in the legacy mixed-permission setup; the counterfactual case was held for uncertain discourse semantics.
The development availability degradation came from query expansion. The `answer_failed` counts arose after
retention left no exact answer evidence in the queried folder; they are distinct from model availability.
Some retained reports, tentative claims and fictional examples were retrieved but did not yield accepted answers.

These counts describe behavior, not independently graded answer correctness. Zero eligibility flags or language
rejections does not establish zero accepted semantic/language errors. Those error rates remain unassessed, and
this baseline **does not pass the live quality gate**. The implementation supplies conservative controls and
reviewable diagnostics; routing coverage, qualified answer usefulness and independent quality adjudication
needed further work. The original frozen answer benchmarks also retain their visible coverage failures described above.

## Repeated v2 diagnostics

The next run froze eight fresh cases before execution (`language-discourse-v2`, fingerprint
`9be572567928a10c4002d811a4f882424aa9d2a4bbea56067768f6383779f5a7`) and repeated each split twice.
It used the same model roles as the initial baseline, `answer-generation-v6` / `answer-verifier-v4`, and
all eight independent query/answer/view combinations per case. These are authored expectations with
implementation review, not independent adjudication. The diagnostic artifacts are
`language-development-v6.json` and `language-held-out-v6.json` under ignored `bench-results/`.

| Diagnostic metric                              | Development, two runs | Held-out, two runs |
| ---------------------------------------------- | --------------------- | ------------------ |
| Expected useful cases with retained knowledge  | 7/8                   | 2/6                |
| Expected-retention misses                      | 1/8                   | 4/6                |
| Expected read-only holds                       | No such cases         | 2/2                |
| Retained cases retrieved with qualification    | 7/7                   | 2/2                |
| Produced answers over retained cases' requests | 40/56                 | 10/16              |
| Produced answers over all requests             | 40/64                 | 10/64              |
| No eligible answer evidence                    | 8/64                  | 48/64              |
| Draft guard rejection                          | 6/64                  | 2/64               |
| Semantic verifier rejection                    | 10/64                 | 4/64               |
| Model availability degradation                 | 0/8                   | 0/8                |
| Ordinary qualification matches                 | 8/8                   | 8/8                |
| Source/index-rebuild byte changes              | 0/8                   | 0/8                |

One development hypothesis was held during deterministic validation (`discourse_uncertain`). In both held-out runs the model
selected no durable candidate from the fictional example; the proposal mentioning “next month” was held
as `time_unresolved` because no source clock/timezone was supplied. The read-only case reported
`read_only_match` at placement without calling the routing model. A separate final two-run admission
probe also checked the tree before and after retention and found no byte changes.

The two noncanonical-eligibility flags in held-out are the factual denials “the warranty was not extended”
retained alongside separately marked counterfactuals, which the authored expectation explicitly allows.
They illustrate why the flag is a review signal, not a measured unsafe-promotion rate. Likewise, the original
v6 artifacts label expected-retention misses `falseHolds`; the runner now calls those
`expectedRetentionMisses` and leaves v2 `falseHolds` unassessed pending independent judgment. An unanswered
request following a deliberate selection or unresolved-time hold is not automatically an incorrect abstention.

Auto-recall activated for 8/128 requests. The reports now preserve the full activation receipt, including
candidate count, qualification pass and reference resolution. This run disables the reranker: ambiguous
cases requiring calibrated qualification cannot activate through that path. That result does not establish
a language-specific auto-recall recall rate, and no injection/permission gate was relaxed to improve it.

The repeated run predates the final attribution fixes: preserving explicitly attributed beliefs and assumptions, accepting “приведённая” as an attribution
form and translating the assistant role when extraction stores `source_speaker: "assistant"`. Actual named
speakers still keep their spelling. Focused built-package probes cover those final fixes; the table is retained
as diagnostic evidence, not relabeled as a measurement of the final guard. Verifier disagreements and
qualified-answer coverage remain visible. This v2 diagnostic did not meet the live quality gate: retention
was below target and accepted semantic/language errors were unassessed. Its held-out split is now exposed
and cannot serve as an unseen release test after these fixes.

Inferred views also recognize bounded questions about tentative assistant readings, qualified retellings, fictional promises and described unrealized variants. These cues select a view; they do not make a report or imagined claim eligible as an ordinary fact. Explicit views remain available when phrasing is ambiguous.

Personal verification limits remain attached to the speaker: an assistant saying it has not examined an agreement does not establish that nobody has examined it. Generation and verification share this scope rule with coupled hypothetical consequences and fictional content. An explicit clarification in the supplied source can resolve a bilingual wording difference before conflict handling; a language switch alone cannot. These are fallible model judgments, evaluated alongside deterministic view and source-clock checks.
