Repository navigation
Recipe 48: Document revision consistency #48
Copy link
Copy link
Closed
Labels
cat: language & contentCategory: Language & contentCategory: Language & contentdecision: choiceUses a Choice questionUses a Choice questiondecision: combinationComposes more than one decision typeComposes more than one decision typedecision: noulUses a Noul questionUses a Noul questionlevel: 4 advancedStateful workflows, provenance, adversarial cases, calibrationStateful workflows, provenance, adversarial cases, calibrationneeds: simulatorDepends on the simulation and state primitivesDepends on the simulation and state primitivespriority: p2Scheduled after p1 workScheduled after p1 worksize: LTwo to three days; consider splitting the workTwo to three days; consider splitting the workstatus: readyNo open blockers; can be picked upNo open blockers; can be picked uptype: recipeA cookbook notebook recipeA cookbook notebook recipe
Milestone
Description
Recipe 48 of 60 · Level 4 (Advanced) · Language & content ·
Choice+Noul
Use case
Select among externally supplied sentence revisions and check their consistency with paragraph context as Python assembles a versioned document.
What to build
The folder recipes/48-document-revision-consistency/ with notebook.ipynb, README.md, and fixtures/, meeting the recipe contract. Start from python tools/new_recipe.py 48 and the template in recipes/_template/.
Build notes
- A Choice selects among externally supplied sentence revisions.
- A Noul checks each selection for consistency with the paragraph context.
- Python assembles a versioned document with history and rollback.
Decision design
- Choice. Options are a fixed set supplied by Python, including the fallback outcome this use case names. Show the
choice, the per-optionprobabilities, and theconfidencefor individual examples before aggregating. - Noul. Write each proposition as a statement that is true or false. One independent question per label or concern, sent together in one request. Noul has no confidence field, so each threshold is chosen from examples and evaluated.
- Composition. Independent questions share one request. A question that depends on an earlier answer goes in a later request, and the notebook makes that boundary visible.
Level 4 scope
Stateful workflows, provenance, adversarial cases, model calibration, or several integrated decision stages.
Acceptance criteria
-
recipes/48-document-revision-consistency/notebook.ipynbruns top to bottom offline, with no key and no network, and its outputs are committed - Live mode is opt-in (
JEV_COOKBOOK_LIVE=1withTYPESAFE_API_KEY) and uses the same question definitions as the offline run - Fixtures are synthetic, include the hard cases named in the build notes, carry gold labels, and pass the fixture validator
- Every response fixture records its provenance, and the notebook states which mode it ran in
- Evaluation: Selection agreement with gold, consistency-flag precision and recall, and a version-history test.
- State, provenance, or policy rules are enforced in
helpers.pyand covered by tests that hold for any model answer - Fixtures include adversarial, conflicting, or stateful cases, and the notebook walks through at least one
- No statement about Jev's quality, latency, or cost appears without recorded live inference; in a synthetic run, metrics are labelled as pipeline checks
-
recipes/48-document-revision-consistency/README.mdsays what the recipe teaches, how to run it, and what was and was not measured live - The pull request changes only
recipes/48-document-revision-consistency/and CI is green
Dependencies
- Blocked by Foundation: CI executes every notebook offline and validates fixtures #69 (CI executes every notebook offline and validates fixtures)
- Blocked by Foundation: simulation and state primitives #70 (simulation and state primitives)
- Builds on Recipe 13: Candidate rewrite selection #13 (Candidate rewrite selection). Merge those first and reuse their patterns; do not copy their fixtures.
- Tracked in Epic: Level 4 · Advanced recipes #78
Sources
Read these before writing the questions.
- S02 · TypeSafe AI: Primitives (Questions): Choice, Noul, Score, independent questions, and dependent follow-up calls.
- S03 · TypeSafe AI: Confidence: Distribution-derived confidence and task-specific thresholds informed by observed outcomes.
- S07 · TypeSafe AI: Jev 1.13 jaggedness: Version-specific limitations affecting arithmetic, context selection, adversarial content, and generation.
Out of scope
- Changes to shared code, the catalog, or the root README. If the shared package is missing something, open a foundation issue and link it here.
- Real side effects of any kind. Actions are simulated.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cat: language & contentCategory: Language & contentCategory: Language & contentdecision: choiceUses a Choice questionUses a Choice questiondecision: combinationComposes more than one decision typeComposes more than one decision typedecision: noulUses a Noul questionUses a Noul questionlevel: 4 advancedStateful workflows, provenance, adversarial cases, calibrationStateful workflows, provenance, adversarial cases, calibrationneeds: simulatorDepends on the simulation and state primitivesDepends on the simulation and state primitivespriority: p2Scheduled after p1 workScheduled after p1 worksize: LTwo to three days; consider splitting the workTwo to three days; consider splitting the workstatus: readyNo open blockers; can be picked upNo open blockers; can be picked uptype: recipeA cookbook notebook recipeA cookbook notebook recipe
Activity