Disambiguate
Source Code: https://github.com/frankify-app/disambiguate
Disambiguate resolves markdown glossary terms and their transitive
dependencies in topological order. Point it at a directory of *.md term
files in either GitHub format or
Obsidian format, ask for a slug or two,
and get back a self-contained markdown document where every term is
defined before it is referenced.
Quickstart
uvx disambiguate # render the entire glossary
uvx disambiguate topological-order # render one term and its dependency closure
uvx disambiguate --from notes.md # extract glossary-shaped links from a doc
uvx disambiguate --explain # render Disambiguate's own bundled spec
uvx disambiguate --lint # validate the glossary
uvx disambiguate --drift # detect prose drifting from the glossary
uvx disambiguate prune # remove terms no file links
The runtime is stdlib-only — pip install disambiguate brings in nothing
else. uvx works without an explicit install.
Installation
pip install disambiguate
How it works
Prune removes terms no file in the repository links. It serves repos that acquire a shared term set and use only part of it. A term consents by carrying an auto-prune annotation.
The pipeline parses each term into a body plus a
list of cross-references, builds a
dependency graph from those references, then
runs the resolver to produce
topological order. The same pipeline
backs from-mode and --explain.
--drift detects drift — prose that uses the
vocabulary without following it: terms mentioned but never linked, and (as
the checks grow) forbidden synonyms and wrong casing. Each
drift-check reports fatal findings named by
a stable rule-code; false positives are
silenced precisely with ignore-hints, and
already-drifted repos adopt incrementally through a checked-in
drift-baseline.
For the architectural map, see docs/architecture.md. For the full vocabulary, see the bundled glossary — Disambiguate's own dogfood.
Contributing
See CONTRIBUTING.md. Conventional commits required.
A release is a version bump merged to main (docs/releasing.md).
Org glossary
Org-genome terms stamped in by the
template
(rooted here so disambiguate --lint can reach them):
org,
org genome,
pando,
pando cell,
reinset,
principal,
agent session,
memory repo,
decision-memory,
evidence-memory,
session-memory,
pandoscope template,
template stamp.
Metadata
Release files for disambiguate 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| disambiguate-0.4.0.tar.gz | 50.5 kB | Without provenance | Details for disambiguate-0.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| disambiguate-0.4.0-py3-none-any.whl | Python 3 | none | any | Details for disambiguate-0.4.0-py3-none-any.whl |
Total release size: 119.6 kB
Release files / disambiguate-0.4.0.tar.gz
| Download URL | disambiguate-0.4.0.tar.gz |
|---|---|
| Size | 50.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
006a5f4aac18049724d091e1700d69fb0db367687d8cf364d98ca1b24158d91d
|
|
BLAKE2b-256 checksum How to use checksums |
615bdef0c5c875ed2a88b0befce7f276153639bd0f9a682fe3cd7b864884916c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / disambiguate-0.4.0-py3-none-any.whl
| Download URL | disambiguate-0.4.0-py3-none-any.whl |
|---|---|
| Size | 69.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84619c0975f89593b1bba6e507d65930574f089cacfab6718016f3cd9839c794
|
|
BLAKE2b-256 checksum How to use checksums |
af1bd763e136626af4b36caf80f8826763d5a6a77f080869f6dc626ca2117680
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for disambiguate 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.