DueproofGitHub

Profiles

Everything Dueproof looks for lives in a profile: a Python file of plain lists in dueproof/profiles/. Choose one with DUEPROOF_PROFILE.

Profile For
notices_in (default) Indian businesses and the CA/CS firms serving them: GST, income tax, TDS, MCA/ROC, EPFO/ESIC, RBI/SEBI and court notices. Eight desks. Hindi on.
general Any organisation: operations, safety, finance, procurement, HR, legal, IT, facilities. English only unless you add languages.
hospital A hospital or health system.
municipality A city or district administration; Hindi on.
metro_rail_ml A rail operator with Malayalam vocabulary — the example of going deep on one language.

Writing your own

Copy general.py to dueproof/profiles/myorg.py, edit, and run with DUEPROOF_PROFILE=myorg. Matching is lowercase substring, so a stem ("procure", "penalt") covers its inflections.

Setting Required What it is
ROLES yes Your desks
ROLE_KEYWORDS yes desk → words that route a finding there
DEFAULT_ROLE yes where a finding goes when nothing routes it
DOC_TYPE_KEYWORDS yes document type → phrases that identify it
OBLIGATION_CUES yes how a duty is worded; start from english.OBLIGATION_CUES
DOC_TYPE_ROLES document type → the desk every finding in it goes to
SEVERITY_HIGH words that make a duty urgent
DEADLINE_MARKERS regex fragments that make a date a deadline
RECEIPT_MARKERS, HEARING_MARKERS regex fragments; defaults cover English
AUTHORITIES, REFERENCE_LABELS issuing offices; how references are introduced
CHANNELS, ORG_NAME, TIMEZONE where documents come from; your name; where "today" is decided
LANGUAGES codes to read beside English, see Languages
LOCAL_MONTHS, LOCAL_RELATIVE, TERMS, LATIN_TERMS optional own-language depth

A profile is checked when Dueproof starts: a missing required list, a DEFAULT_ROLE that is not a desk, or keywords for an unknown desk stop it with a plain message.

Changing a profile safely

Vocabulary changes move findings. Before and after an edit:

dueproof eval my-labels.jsonl --docs my-documents/

See Evaluation. Contributions of profiles for other kinds of organisation are welcome — see CONTRIBUTING.md.

Improve this page on GitHub