A latent semantic index places every unit of a prose graph — a library section, a skill, a bean — in a space built from which words occur together, so units that discuss the same thing in different words sit close. It is a retrieval aid: every neighbour and finding it reports is a proposal, never a relation the graph asserts.

The method is Latent Semantic Indexing (node lsi), with correspondence analysis (node correspondence-analysis) as its parallel track; how to build, query and audit an index is the skill lsi-indexing.

2graphs that need an index and lack a fresh one

Which graphs need an index

A graph needs one at 100 units and 20,000 words — a house threshold, with its basis in scripts/lsi.ts. Below it a graph is not judged, which is not the same as fine. The same verdict is kg:audit’s tool-downstream-fresh for the lsi-index Tool.

graphneeds oneverdictdetail
bootstrap-tools/bootstrap-tools-skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
bootstrap/skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness-tools/beansstate graph — indexed on demand, never committedn/astate graph — indexed on demand, never committed
cat-harness/beansstate graph — indexed on demand, never committedn/astate graph — indexed on demand, never committed
cat-harness/docsyesfailneeds an LSI index and has none — run bun run cat lsi index --instance cat-harness --graph docs
cat-harness/foliobelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness/libraryyespassfresh
cat-harness/memorybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness/methodologiesbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness/policiesbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness/site-chromebelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
cat-harness/skillsyespassfresh
fhir-harness/fhir-harness-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
fhir-harness/fhir-ig-skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
fhir-harness/librarybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/beansstate graph — indexed on demand, never committedn/astate graph — indexed on demand, never committed
folio-assistant-core/core-librarybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/core-methodologiesbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/core-skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/folio-assistant-core-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/foliosbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/glossarybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-core/memorybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-sci/folio-assistant-sci-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-sci/libraryyespassfresh
folio-assistant-sci/sci-methodologiesbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
folio-assistant-sci/skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-base/libraryyespassfresh
smart-base/methodologiesbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-base/smart-base-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-base/smart-base-findingsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-base/smart-base-site-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-base/smart-base-skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
smart-immunizations/libraryyespassfresh
smart-trust/smart-trust-docsyesfailneeds an LSI index and has none — run bun run cat lsi index --instance smart-trust --graph smart-trust-docs
who-iris/foliobelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
who-iris/glossarybelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
who-iris/libraryyespassfresh
who-iris/who-iris-docsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
who-iris/who-iris-sitebelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged
who-iris/who-iris-skillsbelow the need-an-index threshold — not judgedn/abelow the need-an-index threshold — not judged

cat-harness / library

2140 units · 14687 terms · k = 100 · retains 44.3 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/cat-harness/library.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
152.04arxiv, models, language, model, code, wang, zhang, preprint(none)
237.43arxiv, zhang, wang, preprint, liu, chen, yang, proceedingsprov, entity, prefix, activity, term, property, type, value
331.99prov, entity, activity, prefix, rdfs, qualified, xsd, owlalgorithm, matrix, reward, arm, error, query, best, prompt
427.34quot, nbsp, code, x7b, string, query, assistant, promptarm, algorithm, reward, matrix, algorithms, bound, approximation, instances
525.48quot, json-ld, string, nbsp, node, type, x7b, iriquery, assistant, email, code, injections, defeating, prompt, side-effects
625.24quot, nbsp, x7b, arm, algorithm, reward, assistant, stringenterprise, software, agents, zta, systems, engineering, publication, multi-agent
723.92quot, nbsp, x7b, x5b, x5f, inherited, client, metajson-ld, node, term, iri, graph, expanded, document, value
823.84quot, nbsp, x7b, multi-agent, code, django, agents, sympyhealth, security, attacks, injection, enterprise, attack, zta, defense

Findings — 0 narrow dimension(s), 900 near-duplicate pair(s).

Near-duplicates (cosine ≥ 0.95) — similar is not duplicate; read both:

  • 0.952 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-002.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-005.md
  • 0.952 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-012.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-016.md
  • 0.955 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-016.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-022.md
  • 0.969 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-017.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-020.md
  • 0.956 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-017.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-018.md
  • 0.980 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-018.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-020.md
  • 0.954 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-018.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-021.md
  • 0.957 — cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-020.md ~ cat-harness/library/deerwester-1990-indexing-by-lsa/sections/page-024.md
  • 0.960 — cat-harness/library/arxiv-2507.23348v1/sections/sec-000-abstract.md ~ cat-harness/library/arxiv-2507.23348v1/sections/sec-001-1-introduction.md
  • 0.952 — cat-harness/library/arxiv-2507.23348v1/sections/sec-000-abstract.md ~ cat-harness/library/arxiv-2507.23348v1/sections/sec-026-82-repository-level-issue-resolution.md
  • 0.961 — cat-harness/library/arxiv-2507.23348v1/sections/sec-001-1-introduction.md ~ cat-harness/library/arxiv-2507.23348v1/sections/sec-005-31-problem-formulation.md
  • 0.974 — cat-harness/library/arxiv-2507.23348v1/sections/sec-019-55-case-study.md ~ cat-harness/library/arxiv-2507.23348v1/sections/sec-021-61-strengths.md
  • 0.973 — cat-harness/library/w3c-2024-prov-jsonld/sections/page-003.md ~ cat-harness/library/w3c-2024-prov-jsonld/sections/page-065.md
  • 0.970 — cat-harness/library/w3c-2024-prov-jsonld/sections/page-003.md ~ cat-harness/library/w3c-2024-prov-jsonld/sections/page-036.md
  • 0.970 — cat-harness/library/w3c-2024-prov-jsonld/sections/page-003.md ~ cat-harness/library/w3c-2024-prov-jsonld/sections/page-063.md
  • … and 885 more in the sidecar

cat-harness / skills

258 units · 6578 terms · k = 100 · retains 76.0 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/cat-harness/skills.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
150.30merge, session, page, directory, declaration, kind, path, block(none)
223.11queue, prs, merge, watcher, sibling, commits, session, ledgeriri, subgraph, declaration, harness, node, publishes, site, directory
320.31steward, train, merge, head, conflict, owed, conflicted, greenslot, block, watcher, chapter, project, objection, proof, audit
417.95page, theme, tile, card, glass, avatar, board, stickysteward, subgraph, cutover, member, iri, members, mount, module
516.91preview, page, steward, head, staging, blocks, pages, slottask, beans, store, session, goals, plan, sibling, goal
616.39tile, glass, card, avatar, board, icon, sticky, tilesslice, preview, deploy, payloads, payload, github, tombstone, heavy
715.92actor, role, lane, model, roles, llm, train, agenticcommits, main, coordination, prs, sibling, idle, ledger, root
815.64slice, term, claim, payloads, payload, content-addressed, sidecar, iriconsent, principal, phase, mounted, feedback, staging, cutover, hand-over

Findings — 0 narrow dimension(s), 0 near-duplicate pair(s).

folio-assistant-sci / library

116 units · 2735 terms · k = 100 · retains 98.7 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/folio-assistant-sci/library.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
132.96formulas, formula, arxiv, pdf, matching, conference, zhang, math(none)
224.11url, doi, abs, arxiv, wang, conference, corr, volumeformulas, boxes, formula, detection, ssd, matching, character, bounding
318.88ssd, default, boxes, iou, detection, region, detector, featuresparsed, api, gpu, parsing, gemini, robust, accessed, perfect
415.82proof, lean, blueprint, theorem, statement, formal, autoformalization, mathlibconference, recognition, proceedings, detection, international, formulas, ieee, formula
513.17node, blueprint, leanarchitect, nodes, mynat, latex, lake, declarationforml, autoformalization, evaluation, test, real, datasets, training, pda
612.19link, group, let, element, homotopy, links, trivial, groupsieee, recognition, document, girshick, pattern, vol, documents, vision
712.14link, group, element, ieee, let, homotopy, recognition, productnode, blueprint, default, url, leanarchitect, nodes, matching, declaration
811.32quantum, url, arxiv, fault-tolerant, codes, merlean, balanced, papercorr, html, annual, usa, agarwal, zhijiang, add, node

Findings — 3 narrow dimension(s), 0 near-duplicate pair(s).

Narrow dimensions — carried by very few units; usually boilerplate, specimen text or a bad page:

  • dimension 1: folio-assistant-sci/library/arxiv-2512.09874v3/sections/sec-000-document.md, folio-assistant-sci/library/arxiv-2003.08005v1/sections/sec-front-matter.md, folio-assistant-sci/library/arxiv-2406.01940v2/sections/sec-016-conclusion.md
  • dimension 2: folio-assistant-sci/library/arxiv-2406.01940v2/sections/sec-016-conclusion.md, folio-assistant-sci/library/arxiv-2003.08005v1/sections/sec-front-matter.md, folio-assistant-sci/library/arxiv-2601.22554v1/sections/sec-012-limitations.md
  • dimension 3: folio-assistant-sci/library/arxiv-2512.09874v3/sections/sec-000-document.md, folio-assistant-sci/library/arxiv-2003.08005v1/sections/sec-front-matter.md

smart-base / library

839 units · 7506 terms · k = 100 · retains 55.3 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/smart-base/library.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
150.58registry, clinical, governance, facility, record, required, dpi-h, service(none)
226.89registry, dpi-h, requirement, consuming, limr, mandatory, authoritative, governeduser, intervention, training, accessed, pcposs, testing, interventions, handbook
321.66provider, transmit, healthcare, registration, manage, facility, location, eventlimr, fhir, models, computable, smart, cdse, semantic, standards
420.53lhr, cdse, surveillance, hmis, phsp, alerts, clinical, transmitproduct, master, supplier, identifier, mandatory, chain, canonical, date
519.32accessed, world, organization, website, geneva, international, pdf, januarypcposs, user, worker, decision-support, logic, intervention, counselling, activity
618.30accessed, website, world, adaptation, organization, geneva, pcposs, roll-outarchitecture, product, infrastructure, goals, chain, supply, dhsc, shared
717.87healthcare, transmit, provider, manage, fhir, clinical, models, limrphsp, configurable, indicators, surveillance, lhr, outbreak, threats, investigation
816.90intervention, limr, mhealth, project, evaluation, axis, consuming, versioningpcposs, registry, identity, consent, roll-out, foundational, handbook, dpi

Findings — 0 narrow dimension(s), 72 near-duplicate pair(s).

Near-duplicates (cosine ≥ 0.95) — similar is not duplicate; read both:

  • 0.995 — smart-base/library/9789240116191-eng/sections/page-003.md ~ smart-base/library/9789241511766-eng/sections/page-002.md
  • 0.985 — smart-base/library/9789240116191-eng/sections/page-013.md ~ smart-base/library/9789240120747-eng/sections/page-016.md
  • 0.987 — smart-base/library/9789240116191-eng/sections/page-014.md ~ smart-base/library/9789240120747-eng/sections/page-017.md
  • 0.957 — smart-base/library/9789240116191-eng/sections/page-021.md ~ smart-base/library/9789240116191-eng/sections/page-022.md
  • 0.954 — smart-base/library/9789240116191-eng/sections/page-043.md ~ smart-base/library/9789240116191-eng/sections/page-044.md
  • 0.986 — smart-base/library/9789240116191-eng/sections/page-052.md ~ smart-base/library/9789240116191-eng/sections/page-054.md
  • 0.981 — smart-base/library/9789240116191-eng/sections/page-056.md ~ smart-base/library/9789240120747-eng/sections/page-064.md
  • 0.988 — smart-base/library/9789240093362-eng/sections/sec-005-12-smart-guidelines.md ~ smart-base/library/9789240116191-eng/sections/page-014.md
  • 0.982 — smart-base/library/9789240093362-eng/sections/sec-005-12-smart-guidelines.md ~ smart-base/library/9789240120747-eng/sections/page-017.md
  • 0.977 — smart-base/library/9789240093362-eng/sections/sec-005-12-smart-guidelines.md ~ smart-base/library/9789240101197-eng/sections/page-016.md
  • 0.997 — smart-base/library/9789240081949-eng/sections/page-002.md ~ smart-base/library/9789240081949-eng/sections/page-008.md
  • 0.994 — smart-base/library/9789240081949-eng/sections/page-004.md ~ smart-base/library/9789240116191-eng/sections/page-003.md
  • 0.993 — smart-base/library/9789240081949-eng/sections/page-004.md ~ smart-base/library/9789241511766-eng/sections/page-002.md
  • 0.967 — smart-base/library/9789240081949-eng/sections/page-005.md ~ smart-base/library/9789240081949-eng/sections/page-014.md
  • 0.951 — smart-base/library/9789240081949-eng/sections/page-032.md ~ smart-base/library/who-rhr-1806-eng/sections/page-014.md
  • … and 57 more in the sidecar

smart-immunizations / library

130 units · 3985 terms · k = 100 · retains 99.0 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/smart-immunizations/library.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
159.94schedule, recommendations, dose, system, record, recommended, vaccines, client(none)
233.44epid, years, months, weeks, recommends, weekly, booster, ipvinformation, eir, system, process, systems, date, business, requirements
329.83immz, client, personas, worker, decision-support, workflows, nfxnreq, cliniceir, program, individualized, system, information, project, ethical, registries
422.19ddcc, digital, care, certificate, hcid, covid, specifications, phaeir, duplicate, program, report, variables, immz, evaluation, contraindications
518.35ddcc, pha, certificate, hcid, scenario, verification, solution, authoritypiri, catch-up, routine, sia, doses, canada, home-based, kenya
616.78ethical, challenge, geneva, journal, american, united, benefit, researchsystem, solution, questions, activity, doses, information, figure, routine
716.00catch-up, piri, age, eligibility, ddcc, doses, vaccinations, missedeir, adaptation, kit, indicators, requirements, recommendations, dak, decision-support
815.09nfxnreq, retention, resilience, disaster, recovery, archiving, accessibility, regulationyes, pha, registry, dose, certificate, hcid, scenario, signed

Findings — 0 narrow dimension(s), 2 near-duplicate pair(s).

Near-duplicates (cosine ≥ 0.95) — similar is not duplicate; read both:

  • 0.995 — smart-immunizations/library/immunization-summary-table-1/sections/sec-001-table-1-summary-of-who-position-papers-recommend.md ~ smart-immunizations/library/immunization-summary-table-2/sections/sec-002-table-2-summary-of-who-position-papers---recomme.md
  • 0.996 — smart-immunizations/library/immunization-summary-table-1/sections/sec-front-matter.md ~ smart-immunizations/library/immunization-summary-table-2/sections/sec-front-matter.md

who-iris / library

336 units · 3827 terms · k = 100 · retains 69.2 % of the weighted matrix · weighting log-entropy · sidecar cat-harness/test/results/lsi/who-iris/library.lsi.json

Dimension 1 has no negative pole: it most likely measures unit length and term frequency (a margin), not a theme. Read the themes from dimension 2 on.

Each dimension is a contrast between two poles, shown by their highest-loading terms. It is not named here: naming it is a reader’s act.

dimσone polethe other pole
123.69evidence, review, group, quality, health, interest, development, systematic(none)
213.83imprecision, effect, confidence, inconsistency, estimate, studies, rated, indirectnessorganization, november, accessed, grc, world, planning, group, doi
313.06accessed, november, pmid, cochrane, website, doi, oxman, orginterests, interest, members, conflict, coi, financial, individuals, chair
412.14names, international, nomenclature, used, name, republic, style, socialgdg, doi, grade, interest, interests, review, evidence, coi
511.85gender, determinants, social, equity, rights, services, human, rightname, names, republic, style, full, text, nomenclature, english
611.57doi, coi, financial, accessed, november, conflict, interests, coisrapid, proposal, canada, advice, planning, updating, key, review
710.79republic, name, local, approved, english, haiti, addis, abunomenclature, symbols, world, international, abbreviations, text, used, organization
810.54determinants, interests, canada, conflict, effect, declarations, social, conflictsgdg, cost, key, questions, condition, steering, diabetes, effectiveness

Findings — 0 narrow dimension(s), 9 near-duplicate pair(s).

Near-duplicates (cosine ≥ 0.95) — similar is not duplicate; read both:

  • 0.953 — who-iris/library/who-pub-tps-931/sections/page-039.md ~ who-iris/library/who-pub-tps-931/sections/page-040.md
  • 0.999 — who-iris/library/who-pub-tps-931/sections/page-116.md ~ who-iris/library/who-pub-tps-931/sections/page-119.md
  • 0.975 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-006.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-008.md
  • 0.971 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-006.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-010.md
  • 0.965 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-006.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-007.md
  • 0.961 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-007.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-008.md
  • 0.955 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-007.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-010.md
  • 0.968 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-008.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-010.md
  • 0.970 — who-iris/library/wpr-rdo-2020-003-eng/sections/page-020.md ~ who-iris/library/wpr-rdo-2020-003-eng/sections/page-021.md

Generated by bun run cat lsi:viz -- --detail during the docs-site build, with each index’s freshness and detail read from the checkout. The committed page in the repository carries the first two columns only — those are a function of the tree, and these are a function of the store. Bean tqjj.


folio-assistant — code under the Apache License 2.0, documentation under CC BY 3.0. Generated schema and API references are rebuilt from source on every push to main.

deployed b08c961 · 2026-10-23T23:11:09Z