Skip to main content

Disambiguate

CI Status Test coverage percentage

uv Ruff prek

PyPI Version Supported Python versions License


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)

Source distribution for disambiguate 0.4.0
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)

Table of built distributions (wheels) for disambiguate 0.4.0
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page