Gloss — False-match selection experiment, 18 September 2026

Parent: gloss. Offline comparison of direct cosine and matching pursuit at one, two and three labels. No paid API calls. All 712 non-empty notes processed; the empty 713th key is retained in the CSV.

Conclusion: there is no stable winner in this small review. On the seven new notes, two pursuit labels are promising: 13 of 14 labels were supported, versus 12 of 14 for two cosine labels; pursuit covered 10 of 21 broad source facets versus 9. However, on the eight tuning notes, cosine had higher supported-label precision than two-label pursuit. The tuning rule selected cosine3 and that selection did not outperform pursuit2 on the checking notes. Do not treat the latter as a validated replacement default.

Keep pursuit as an exploratory retrieval aid. If a compact candidate display is needed, two labels are a reasonable provisional compromise, with the third available as a weaker suggestion. One label still fails on some notes, and this experiment supplies no calibrated confidence or stopping threshold. Labels remain insufficient as factual summaries.

Method and limitations

Fixed model text-embedding-3-small, 1,536 dimensions, 14,554 filtered candidate atoms, and the same captured source notes. Cosine uses the top k unmodified similarities. Pursuit uses the first k steps of the original positive-projection greedy trajectory, retaining the original residual stopping rule. Prefix extraction is exactly equivalent to rerunning with the shorter step limit, verified by a unit test. Six lightweight policy evaluations ran concurrently; no new matrix computation was necessary.

Eight previously inspected examples form the tuning sample. Seven new keys were chosen deterministically: one SHA256-minimum eligible note from each of PROGRAMMING_RULES, README, TFG, poems, astronomy, hosts and ssl. Eligible notes have 30–550 words, no extraction audit flags, and were absent from the earlier 25-note review. first-thoughts had no eligible note, so it contributes no checking example. Exact selection seed and keys are in sample.json.

This is a single-agent, non-blind exploratory review, not human-labelled ground truth or a pristine held-out test. Checking notes were read in the same session. Each distinct note/label pair was annotated once and reused across policies. S = supported as a topical label; R = related but misleading; U = unsupported. R and U both count as problematic. Broad but accurate labels can be supported while adding no substantive coverage.

Three broad retrieval facets were recorded per note. Coverage counts the union of facets represented by supported labels, so near-synonyms do not receive repeated credit. These subjective facets and their mappings were written during annotation; they are not a pre-registered gold standard. Coverage does not mean a label preserves dates, negation, procedural constraints or every fact. Family and length selection, and only seven checking notes, prevent a corpus-wide accuracy estimate.

Tuning-only selection rule: maximize supported-label fraction, then broad-facet coverage, then prefer fewer labels. Selected cosine3. Checking results are reported without retuning that choice. All six policies remain visible so the instability is apparent.

Tuning sample

PolicyLabelsSupportedRelated/misleadingUnsupportedSupported fractionFacets coveredNotes with problems
cosine1862075.0%6/242/8
cosine216122275.0%9/244/8
cosine324184275.0%10/245/8
pursuit1862075.0%6/242/8
pursuit216113268.8%10/244/8
pursuit324174370.8%14/245/8

Checking sample

PolicyLabelsSupportedRelated/misleadingUnsupportedSupported fractionFacets coveredNotes with problems
cosine1761085.7%6/211/7
cosine214122085.7%9/211/7
cosine321182185.7%11/212/7
pursuit1761085.7%6/211/7
pursuit214131092.9%10/211/7
pursuit321181285.7%13/212/7

What changed and what remained missing

Pursuit’s third label adds clear errors in the checking sample: child reads eof for remote GUI guidance, and setdns for kelp migration. Truncating at two removes these. But pursuit’s second label can also be wrong: summer poem for the Kathy poem and perl python for the Python exception policy in the tuning sample. A hard two-label cap is not an evidence check.

Cosine is not immune: its third label for the September 2090 eclipse is solar eclipse july. It also repeats topics: summer poem / summertime / summer covers the same theme, whereas pursuit reaches June and Canada. The latter still misses the poem’s mutual-care theme.

The coverage cost is real: limiting the CertHub backlog to two pursuit labels removes future work; limiting the exercise protocol to two removes sample demonstrations while retaining a misleading handover label. All tested glosses miss the exception policy’s propagate-unless-recovery rule and the scripts-versus-servers distinction. Kelp labels fail to express the DNS/certificate cutover blocker and storage/mail constraints.

Next useful intervention: evidence checking for specific labels (dates, tools, operating systems, occasions) and removal of sentence fragments from the dictionary. This experiment tested selection/count only; those interventions were not implemented or evaluated here.

Detailed labels, classifications, reasons and missed facets: Annotation appendix. Local artifacts: /home/john/py/gloss/artifacts/selection-2026-09-18/ — comparison.csv contains all 713 keys; results.json contains all six policies; annotations.json and summary.json preserve the complete review and source-result hash. Reproduce with python selection_experiment.py and python make_selection_report.py. All 19 unit tests passed.

version 1  ·  created 2026-09-18  ·  updated 2026-09-18  ·  tags gloss, corpus, embeddings, results