1<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca -->2# 📝 JoF-250: Learning Scientific Writing Conventions from Pre-LLM Financial Research34**UQO Working Paper No. 45** — *A measured-convention writing engine for Claude Code, built from 276 Journal of Finance articles (2017–2020), with a preregistered evaluation*56[](paper/main.pdf)7[](pyproject.toml)8[](docs/RIGHTS_AND_ETHICS.md)9[](docs/REPRODUCIBILITY.md)10[](https://uqo.ca)11[](mailto:simon-pierre.boucher@uqo.ca)1213> **TL;DR** — We parse 276 pre-ChatGPT *Journal of Finance* articles (vol. 72–75), annotate their rhetorical structure with a schema-validated LLM ontology, turn the train split into measured writing profiles (medians, IQRs, bootstrap CIs), index structural units for hybrid retrieval with provenance, and expose the result as a Claude Code writing/review/audit engine (`/jof-write`, `/jof-review`, `/jof-audit`, …). A preregistered held-out experiment compares five conditions (baseline → full engine) with a blind LLM judge and deterministic fidelity audits. See `docs/DELIVERY_REPORT.md` for measured results.1415## 📌 Status16| Item | Value |17|---|---|18| Version | 1.0 (November 2026) |19| SSRN | not yet submitted |20| Journal | — |21| Code & data | pipeline reproducible from `make` (see Quick start); PDFs not redistributed |2223## 🎯 What this paper does24It asks whether *abstract, domain-specific writing conventions* extracted from a pre-LLM corpus improve LLM-assisted scholarly writing and review beyond strong prompting and conventional RAG, while preserving originality and factual fidelity. It delivers both the study and the tool (the JoF-250 Writing Engine), and the paper studies the tool.2526## 🏆 Headline results27See `docs/DELIVERY_REPORT.md` and `experiments/analysis/results_heldout_v1.json` (generated from recorded runs only).2829## 🗂 Repository layout30`CLAUDE.md` (mandate) · `config/` · `src/jof250/` · `prompts/` · `profiles/` · `.claude/{commands,agents,skills}` · `experiments/{preregistration.md,protocols,fixtures,outputs,analysis}` · `paper/` · `tests/` · `scripts/` · `docs/`.3132## 🚀 Quick start33```bash34uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python -e ".[dev]"35cp .env.example .env # API key file36make audit parse profiles index test37.venv/bin/jof250 write --paper /path/to/paper --section introduction --output /tmp/intro.tex38cd paper && make # compiles main.pdf39```4041## 📊 Data42277 PDFs under `~/Desktop/Journal-of-Finance-2018-2020` (UQO library access, 2026-11-03); 276 research documents included; metadata verified against Crossref. Derived full texts are private (`docs/RIGHTS_AND_ETHICS.md`).4344## 🧪 Methodology45Phases 1–9 of `CLAUDE.md`; preregistration in `experiments/preregistration.md`; limitations in `docs/LIMITATIONS.md`.4647## 📈 Figures & tables inventory48`figures/` (regenerated by `make profiles` and `scripts/05_analyze_benchmark.py`), `paper/tables/` (generated LaTeX fragments).4950## ⚠️ Limitations51`docs/LIMITATIONS.md`.5253## 📚 Citation54```bibtex55@techreport{boucher2026jof250,56 title = {JoF-250: Learning Scientific Writing Conventions from Pre-LLM Financial Research},57 author = {Boucher, Simon-Pierre}, institution = {Université du Québec en Outaouais, Département des sciences administratives},58 type = {UQO Working Paper}, number = {45}, year = {2026}, month = {11}59}60```6162## 👤 Author & contact63Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca6465## 📝 Notes66Folder named `wp45-jof250` as required by the mandate; corpus scope amended to volumes 72–75 (A-002); global Claude Code install authorized by the author (A-003).67