The hierarchy is typed.
Five levels — article, section, subsection, clause, subclause — enforced by the schema. Demote with Tab, reorder with Alt+↑/↓. Labels recompute live; the prose stays put.
DraftLint — keep it clean
A redline built on identity, not text. DraftLint knows a clause moved instead of vanishing, a defined term was renamed instead of deleted, a reference re-labeled only because its target renumbered. And any clause is a click away, not a scroll.
① The redline, shown
Delete a section and everything below renumbers. Move a clause and it’s tagged moved, not vanished-and-reappeared. Rename a defined term and every usage follows. Here is the same edit, read two ways.
4.2 Restrictions on Use. Protect the Confidential Information using reasonable efforts. See §4.2(b).4.1 Restrictions on Use. Protect the Proprietary Information using commercially reasonable efforts. See §4.2(b).
4.1 Restrictions on Use renumbered amended
4.2 Return of Materials moved
the same edit; one drowns the signal, the other names it
4.1 Scope of Obligations. The obligations of this Article apply to all disclosed information.
4.1 Restrictions on Use. renumbered amended Each Party shall protect the Proprietary Information of the other using commercially reasonable efforts. See §4.1(b).
4.2 Return of Materials. moved Each Party shall return or destroy all Proprietary Information on request.
Integrity — what the body can’t show
In Word you scroll and lose your place. Here the document is a graph — every structural element is a destination.
4.1Restrictions on Use. Each Party shall protect the other’s information…
4.2 Return of Materials. Upon written request, each Party shall return or destroy all materials in its possession.
4.3Remedies. The Parties agree that monetary damages…
The bet
The document is the model.
Both capabilities — the honest redline, the click-to-anywhere navigation — fall out of one architectural bet. The competitive landscape is Microsoft Word + bolted-on add-ins — scanners, linters, sidebars running over a document that has no idea what it is. DraftLint inverts the bargain. There is no “run the cross-ref check” command, because the cross-refs were never plaintext. There is no “find unused definitions” pass, because the rail shows them live. There is no Track Changes for numbering, because numbering recomputes from the tree.
Five levels — article, section, subsection, clause, subclause — enforced by the schema. Demote with Tab, reorder with Alt+↑/↓. Labels recompute live; the prose stays put.
Cross-references store targetId, never the characters of the label. Defined terms carry a canonical termattribute. Refactor a section's label, and every reference follows in the same transaction.
A bundled dictionary of M&A and Master Services Agreement terms of art — ~100 entries, each tagged by rigidity tier and carrying inline watch language for the boilerplate that bites.
Specimen — a fragment
Each Party shall protect the Confidential Information1 of the other Party using reasonable efforts2, and in no event less than the care it uses to protect its own proprietary information of like importance. Disclosures permitted under §4.2(b)3 shall not waive the confidentiality of the underlying Confidential Information.
The vocabulary on board
Proof
Same nodes. Different labels. One transaction. Cross-references re-bind in the same dispatch — no refresh, no second pass.
The editor lives at /dev/editor. The guide lives at /dev/editor/guide. Open one; the other is a click away.