兰亭 (Lanting) — there is no original, only the truest copy.
After the Lantingji Xu, Wang Xizhi's 353 CE preface to a gathering of scholars composing poetry by a winding stream. The original no longer exists; every version we know is a copy. This project is built on the same premise: there is no ground truth manuscript, only the most faithful version we can produce together.
An agentic manuscript-writing loop for drafting, critique, collation, and revision.
Each loop iteration runs one section through four judges: scientific integrity, article-type fit, adversarial review, and rhetorical hierarchy. Scores feed the next revision. The loop stops when scores stabilize or a hard trigger fires for human review.
Phase 1 target: software application note (e.g. Briefings in Bioinformatics Application Note).
- Fill in
paper/project_config.jsonwith your software name, protected claim, forbidden phrases, and sections. Seepaper/profiles/software_application_note/required_fields.jsonfor what is required. - Fill in
Claude/spec.mdwith the paper spec, novelty threats, and figure plan. - Add 3+ target-paper PDFs to
paper/style_ref/. (Style corpus extraction is a Phase 2 addition — in Phase 1, populatepaper/rubrics/style_metrics.jsonmanually from the target journal guidelines.) - Fill in
paper/groundtruth/ground_truth_examples.mdwith annotated good/bad examples as the paper develops.
# First draft of a section
python run_loop.py --section introduction --loops 3
# Check scores
python run_loop.py --status
# Resume after human review
python run_loop.py --resume
# Overnight run over all sections
bash run_overnight.sh
# Verify references against CrossRef + Semantic Scholar
python run_loop.py --verify-refs- Phase 1 (current): Software application note profile. JSON state, direct API calls, four judges, human-review triggers.
- Phase 2: LangGraph checkpointing, style corpus extraction, metrics database.
methods_paperprofile. - Phase 3: Scheduled overnight runs, morning brief. Additional profiles.
pip install -r requirements-paper.txtRequires ANTHROPIC_API_KEY in .env.