Created: 14-06-2026 · Last updated: 11-07-2026
csl-orig is the canonical source-text store for the Cologne Digital Sanskrit
Dictionaries (CDSL) — the single git-tracked home for the plain-text bodies of
every dictionary the project publishes: PWG
(Petersburger Wörterbuch, large), PW (small), MWS
(Monier-Williams), PWK (Böhtlingk's shorter edition), GRA (Grassmann's
Rig-Veda dictionary), AP90 (Apte 1890), FRI (Frisch's reader), and dozens more
— currently 45 dictionary subfolders under
v02/, from abch
to snp and beyond.
Every downstream artifact — the generated XML, the web front-ends
(csl-websanlexicon),
the API layer (csl-apidev),
the dashboards — traces back to a v02/<dict>/<dict>.txt file in this repo.
Get a correction wrong here and it propagates to every reader-facing surface
in the project; that is why this repo runs a stricter write discipline than
almost any other in the org.
Upstream maintainers Jim Funderburk and Dhaval Patel commit corrections
directly to csl-orig — that is the canonical maintainer pattern. Agents and
downstream contributors do not push directly. Instead, corrections are:
- prepared and XML-validated locally against a snapshot of the target dictionary file,
- queued together with an audit-trail change file in the sibling csl-corrections repo,
- delivered as one consolidated pull request to csl-orig roughly once a month — never as a stream of small PRs or bot comments.
This exists because csl-orig sits at the root of the CDSL dependency graph: noisy, frequent, or unvalidated writes here would ripple into every dictionary's generated XML and every reader-facing site at once. The batching discipline is the load-bearing safety mechanism, not a formality. The full procedure is documented in the canonical csl-corrections correction-workflow.md.
Note: this read-only-for-direct-pushes rule governs dictionary text corrections. Ordinary repository-maintenance content (this README, CI config, and the like) is delivered by normal pull request.
The full 8-stage sequence — snapshot, apply via updateByLine.py or an
equivalent controlled edit, regenerate + XML-validate, write the
csl-corrections audit trail, then deliver by batched PR — lives in the
canonical
csl-corrections correction-workflow.md.
This repo's own self-contained operator view — the 8 stages, the CFR
preflight, the local safety hooks, the delivery split, and every gotcha — is
docs/CORRECTION_MANUAL.md.
In short:
v02/<dict>/<dict>.txtfiles are canonical and may only change through the documented workflow (snapshot → change file → validate → audit trail → batched PR).- Before applying any correction issue, check the sibling csl-corrections CFR and batch history for the same dictionary / L-number / headword — if it was already rejected or deferred, don't re-patch without a maintainer reopening the decision.
- Accepted corrections choose between a plain replacement or an inline
correction layer (
{{old->new||YYYYMMDD|author|issue|}}) that preserves the original reading. - XML validation (
csl-pywork/v02/generate_dict.sh+xmlchk_xampp.sh, ormake_xml.py's "All records parsed by ET" on Windows without XAMPP) is required before any commit.
v02/
<dict>/
<dict>.txt canonical source text (the file every correction targets)
... per-dictionary auxiliary files (varies by dict)
45 dictionary directories currently exist under v02/, including abch, ap90, ben, fri, gra, ieg, mw, pw, pwg, pwkvn, shs, and skd — this repo carries the full CDSL corpus, not only the handful of dictionaries the parent org actively maintains tooling for.
Issues are tracked against the Cologne issue taxonomy. As of 11-07-2026: 30 open, 2777 closed. The overwhelming bulk of closed work sits under the Digitization Quality milestone (2709 closed); Structured Data (43 closed) and Major Enhancements (14 closed) hold the rest, with a small tail of legacy date-labelled milestones. Recent commit activity is dominated by per-dictionary correction commits flowing through the documented workflow, plus front-matter and paper-related work on specific dictionaries.
- Runtime: Python (correction tooling,
updateByLine.py, diff generators) - Validation:
csl-pywork(generate_dict.sh,xmlchk_xampp.sh,make_xml.pyfor the Windows-without-XAMPP fallback) - Pipeline docs: csl-observatory tooling runbook
Dr. Mārcis Gasūns