From 46ab240473e19186fd18a72937fd0d9ab6948624 Mon Sep 17 00:00:00 2001 From: Weksa Date: Thu, 12 Nov 2026 23:49:38 +0000 Subject: [PATCH 1/2] mint-prompt-door: the mint prompt carries an example serialized from the door's own draft type; layer, feature id and Is forms taught as admitted Co-Authored-By: Claude Sonnet 5.5 --- crates/weksa/src/context.rs | 67 +++++++++++++++++++++++------ crates/weksa/tests/ontology_mint.rs | 40 +++++++++++++++++ 2 files changed, 95 insertions(+), 12 deletions(-) diff --git a/crates/weksa/src/context.rs b/crates/weksa/src/context.rs index 98dfe7f..d725814 100644 --- a/crates/weksa/src/context.rs +++ b/crates/weksa/src/context.rs @@ -35,9 +35,10 @@ use serde::Serialize; use crate::corpus::{CorpusItem, CorpusItemId}; use crate::inventory::{Inventory, InventoryEntry, OptionLabel, Slot, ValueKind}; use crate::lower::{EntityForms, LowerError, entity}; -use crate::ontology::{Ontology, select}; +use crate::encode::{EntryOntologyDraft, OntologyDraft}; +use crate::ontology::{Condition, Layer, Ontology, Test, select}; use crate::packet::{ - Context, Discourse, EntityId, Extension, Predication, Referent, Relation, Stance, + Context, Discourse, EntityId, Extension, FeatValue, Grade, Predication, Referent, Relation, Stance, }; use crate::run::LADDER_STEP; use crate::split::{Checkpoint, Split, SplitScheme, fnv1a64, hex16}; @@ -92,7 +93,7 @@ Answer with one JSON object and nothing else: {\"text\": \"...\"}, the continuat pub const MINT_ONTOLOGY_INSTRUCTIONS: &str = "\ Below are lines written in one language (the language line), the features an ontology condition may test, and the entries that language's ontology already has. Draft new entries: choices this language's culture makes, for a speaker in a stance and scene, about word, grammar, discourse, sound or script, that the lines show. Answer with one JSON object and nothing else: {\"entries\": [{\"layer\": \"...\", \"when\": [...], \"choice\": \"...\", \"examples\": [...]}]}. No code fence, no commentary. -Give 1 to 8 entries. layer is one of lexicon, grammar, discourse, phonology, orthography. when holds at most 4 conditions, each {\"slot\": \"Stance\" | \"Discourse\" | \"Scene\", \"feature\": \"\", \"test\": {\"AtLeast\": } | {\"AtMost\": } | {\"AtMostOrUnset\": } | {\"Is\": }}, over the listed feature ids only; when may be empty when a choice holds for every line of the language. choice states a pattern the lines show, in at most 200 bytes, without quoting a line. examples are original short phrases of the language, never copied from the lines below, at most 3."; +Give 1 to 8 entries. layer is exactly one of Lexicon, Grammar, Discourse, Phonology, Orthography. when holds at most 4 conditions, each {\"slot\": \"Stance\" | \"Discourse\" | \"Scene\", \"feature\": \"\", \"test\": ...}, where is the id printed before the colon of a listed feature (\"feature:10\", never its name) and its slot is one that feature lists. test is {\"AtLeast\": }, {\"AtMost\": } or {\"AtMostOrUnset\": } on a grade feature, or {\"Is\": {\"Option\": \"