Grading rubric

Status: no model has been evaluated with this pack. There are no empirical scores to report.

Use this rubric with version 0.1.0 of prompts.jsonl. The schema validator checks file integrity; it is not an automatic linguistic grader.

Common rules

Exact-text cases

An exact_text specification contains expected and normalization.

  1. Normalize both texts to NFC.
  2. Convert CRLF and CR to LF and trim only whitespace around the entire response.
  3. For nfc_trim, compare all remaining characters exactly.
  4. For apostrophe_equivalent, first map the five glyphs below to ASCII ', then compare all remaining characters exactly. Do not remove any sign.

Accepted equivalent glyphs for this mode:

Glyph Code point Name
'U+0027APOSTROPHE
‘U+2018LEFT SINGLE QUOTATION MARK
’U+2019RIGHT SINGLE QUOTATION MARK
ʻU+02BBMODIFIER LETTER TURNED COMMA
ʼU+02BCMODIFIER LETTER APOSTROPHE

The equivalence applies only to cases that enable it. It is a narrow comparison convenience, not a general spelling rule. A grave accent/backtick, inserted spaces inside words, missing signs, or a different letter are not automatically equivalent. If an additional glyph should be accepted, document a versioned rule before comparison rather than making a provider-specific exception.

Case 004 must distinguish ʻ U+02BB in Oʻ/Gʻ from ʼ U+02BC in tutuq words because the prompt asks for those exact code points. NFC alone does not merge these characters. Cases 001 and 003 require the requested Uzbek Cyrillic letters, including ҳ rather than х when appropriate.

JSON cases

A json specification contains expected, string_normalization, and extra_keys: false.

The expected JSON values in this version are small objects or arrays with no open-ended wording. In case 008 the prompt supplies the permitted payment labels, so an evaluator need not guess which synonyms to accept.

Checklist cases

A checklist specification contains numbered checks and an illustrative reference_answer.

Grade each check as pass, fail, or needs_review. Add a short note quoting the relevant response segment or stating what is missing. The reference answer is one possible answer, never an exclusive wording requirement.

Linguistic judgments should be independently reviewed by qualified Uzbek readers before comparative publication. Record actual reviewers and qualifications only when known; this pack does not claim such review has already happened.

Case outcome and aggregation

Use these case outcomes:

The main measure is strict case success, not an impressionistic fluency score. A checklist case with three passing checks and one failing check is a case failure; retain the check-level results as diagnostics. Do not mix a fraction of checks with whole-case pass counts in the same metric.

For a fully completed and adjudicated run:

If any cases are missing, errored, ungraded, or under review, report coverage and outcomes rather than a purported full-pack score. A partial result may say “P passes / G graded completed cases; C of 24 responses collected; R cases under review,” using actual observed values. Do not put placeholder numbers in a leaderboard.

Do not claim statistical significance, broad capability superiority, or real-world reliability from this starter set. A single overall number hides different failure modes; show category and case-level evidence.

Repeated runs and fair comparison

Declare repeated-run policy before collecting outputs. Use the same number of attempts, context reset, settings, tool policy, and scoring for every compared system. Never choose each model's best response after the fact.

Keep each repeated run in a separate directory with its own metadata and corpus hash. If the model is nondeterministic, report variation across runs. A seed and temperature 0 are useful controls when available, but they are not a reproducibility guarantee. Interface-specific hidden instructions and model updates can remain confounds; disclose them.

Do not use the tested model as its own sole judge. If using another model to assist grading later, record its identity and judging prompt, blind model names where possible, and have humans adjudicate uncertain language cases. No automated judge is included or run here.

Recording outputs and judgments

tools/validate.py init-run PATH creates metadata and 24 blank response records. Fill the metadata before inference; keep all fields even when their values are unknown, not exposed, or not applicable.

For each response, record:

The blank template has grading: null. When grading is done, use an object with outcome, reviewer, checks, and notes. checks is an object keyed by C1/C2/etc. for checklist cases, or by comparison for exact-text/JSON cases. Each value is pass, fail, or needs_review. This is a recording convention, not a fabricated result.

Keep a copy of the original response and preserve any subsequent grading corrections as a documented revision. Do not save private chain-of-thought or unrelated account data.

When to revise the pack

Record an issue when a prompt admits multiple valid answers that its grading rules cannot handle, when a supposedly natural sentence is disputed, or when an exact-character check measures typography more than the intended skill. Review changes blind to model identity where possible. Version answer-key changes and rerun comparisons against the same version; do not compare old and new scores as if the tasks were unchanged.