# 📝 JoF-250: Learning Scientific Writing Conventions from Pre-LLM Financial Research **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* [![Paper](https://img.shields.io/badge/paper-PDF-b31b1b?logo=latex&logoColor=white)](paper/main.pdf) [![Python](https://img.shields.io/badge/python-3.12-3776AB?logo=python&logoColor=white)](pyproject.toml) [![Data](https://img.shields.io/badge/data-276%20JoF%20articles%20·%20private-4051b5)](docs/RIGHTS_AND_ETHICS.md) [![Reproducible](https://img.shields.io/badge/reproducible-make%20pipeline-2e7d32)](docs/REPRODUCIBILITY.md) [![Institution](https://img.shields.io/badge/UQO-D%C3%A9pt.%20des%20sciences%20administratives-16365c)](https://uqo.ca) [![Author](https://img.shields.io/badge/author-Simon--Pierre%20Boucher-16365c)](mailto:simon-pierre.boucher@uqo.ca) > **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. ## 📌 Status | Item | Value | |---|---| | Version | 1.0 (November 2026) | | SSRN | not yet submitted | | Journal | — | | Code & data | pipeline reproducible from `make` (see Quick start); PDFs not redistributed | ## 🎯 What this paper does It 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. ## 🏆 Headline results See `docs/DELIVERY_REPORT.md` and `experiments/analysis/results_heldout_v1.json` (generated from recorded runs only). ## 🗂 Repository layout `CLAUDE.md` (mandate) · `config/` · `src/jof250/` · `prompts/` · `profiles/` · `.claude/{commands,agents,skills}` · `experiments/{preregistration.md,protocols,fixtures,outputs,analysis}` · `paper/` · `tests/` · `scripts/` · `docs/`. ## 🚀 Quick start ```bash uv venv --python 3.12 .venv && uv pip install --python .venv/bin/python -e ".[dev]" cp .env.example .env # API key file make audit parse profiles index test .venv/bin/jof250 write --paper /path/to/paper --section introduction --output /tmp/intro.tex cd paper && make # compiles main.pdf ``` ## 📊 Data 277 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`). ## 🧪 Methodology Phases 1–9 of `CLAUDE.md`; preregistration in `experiments/preregistration.md`; limitations in `docs/LIMITATIONS.md`. ## 📈 Figures & tables inventory `figures/` (regenerated by `make profiles` and `scripts/05_analyze_benchmark.py`), `paper/tables/` (generated LaTeX fragments). ## ⚠️ Limitations `docs/LIMITATIONS.md`. ## 📚 Citation ```bibtex @techreport{boucher2026jof250, title = {JoF-250: Learning Scientific Writing Conventions from Pre-LLM Financial Research}, author = {Boucher, Simon-Pierre}, institution = {Université du Québec en Outaouais, Département des sciences administratives}, type = {UQO Working Paper}, number = {45}, year = {2026}, month = {11} } ``` ## 👤 Author & contact Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca ## 📝 Notes Folder 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).