exhibitkit
A cover with key takeaways and a conflict box, part bands and numbered chapters, numbered exhibits with the caption above and the source line beneath, cross-references that resolve to Exhibit N, a themed running header and footer, and a disclosure appendix assembled from a library of sections including the CFTC-style hypothetical-performance language.
Three themes, each with a chart palette validated in OKLab for normal and colour-deficient vision, plus a matplotlib style so figures match the page.
The one rule
An exhibit never travels without its source line, and a document never ships without its
disclosures. Seven core disclosure sections and the cover conflict statement render whatever
the front matter says. exhibitkit check enforces both, plus the house rule that every quoted
Sharpe ratio carries its basis label.
That last one is the same discipline as the papers: a Sharpe with no accounting basis attached is not a number, and the tool refuses to emit one.
How it’s built
pandoc for prose, Markdown to LaTeX through a single Lua filter, and Python for everything document-level: theme, fonts, cover, appendix, the XeTeX run and its log. No regex post-processing of pandoc output anywhere.