Trust engine
services/trust-engineChecked by automation only
still a draft
Written 2026-10-29 by ktl-librarian (automation). Last checked 2026-10-15 by ktl-librarian (automation).
The full record
- Checks
- 2026-10-15 by
ktl-librarian(automation)
- 2026-10-15 by
- Sources
- Is part of
- Depends on
- Pointed to by
- Curator side panel (depends on)
- In-editor aids (depends on)
- KTL Curator plugin (derived from)
- Graph
- Open this concept in the knowledge graph
- IRI
https://w3id.org/ktl/curator/knowledge/services/trust-engine- Licence
- CC BY 4.0
- Files
- MarkdownJSON-LDSource on GitHubHistory on GitHub
Overview
Section titled “Overview”src/bundle.ts and src/trust.ts together compute every trust label that references/trust-fields.md (the ktl-curator skill) defines. They are pure functions with no Obsidian dependency and no Date.now(). today is always a parameter, so every date-dependent label is reproducible under plain Node (scripts/smoke-test.ts).
bundle.tsis carried over from the siblingktl-registrarplugin. It holds bundle-root resolution (normalizeBundleRoots,resolveBundleRoot), the frontmatter split, relation-target resolution, and the class check (classify). The class check runs against the pinned manifest’s fifteen classes (KNOWN_LOKF_TYPES,Roleincluded), or, since 2026-09-14, against whatever list is handed in from the settings tab’s Known LOKF types.HARDCODED_LOKF_TYPESkeeps the pre-schema fourteen for the settings refresh rule.SCHEMA_VERSIONexposes the manifest’s version.- In
trust.ts,buildTrustRecordturns one concept’s frontmatter and heading list into aTrustRecord. ItsTrustInputsmay carryknownTypes, whichclassifyreceives. A concept reads as unchecked when itsverifiedholds no events, soverified: []and a bareverified:count as nobody has checked. It reads as checked by automation only when its events hold none by ahuman:actor. computeReliedOnBydoes the second pass over every concept’s relation fields plusrelations[].target, to fill in “N other concepts rely on this”. The relation fields areRELATION_FIELDSinbundle.ts: the fourteen slots the pinned schema ranges overConcept, read from the manifest, withHARDCODED_RELATION_FIELDSas the fallback. Each relying concept counts once. A retired concept counts for none and is counted for none, the ruleknowledge-report.shapplies.computeHealthproduces the seven counts, which overlap rather than partition.rankQueueorders the queue by the skill’s four ranking groups, then by reliance count, then by newestgenerated.at. The class check never enters the ranking.parseCurationPolicyTable(body, knownTypes)honours apolicies/knowledge-curation.mdrow only for a class in the list it is given, so a listed domain class can carry an interval of its own.monthsForClassfalls back to 12 months for a class no group or row names. That table is prose a person writes, so since 2026-09-14 the match ignores spaces and English plurals (policyRowForms): “Glossary terms” bindsGlossaryTerm, “people” bindsPerson. Before that the match was literal, and it silently ignored four rows of the plugin’s own template, whose intervals happened to coincide with the settings defaults.