PaperSpine Citation
Use this branch after research and before final writing. Its job is not to learn
paper structure. Its job is to build a verified citation support bank that can
support literature statements in the user's manuscript.
Inputs
Read paper_rewriting_output/paper_spine_config.json, especially:
target_name
scene
output_language
reference_mode
reference_paths
citation_target_count defaulting to 20
materials_dir
draft_path
research_dossier.md
sota_gap_map.md
reference_materials/source_index.md
Required Output
Create:
paper_rewriting_output/citation_support_bank.md
Use this table:
| Candidate ID |
Reference/BibTeX |
Year |
Recency |
Supports Section |
Support Claim Sentence |
Why This Paper Fits |
Source |
Verified |
Verification Note |
Rules:
- Generate at least
citation_target_count * 3 candidates. Default: 60.
- About 80% of candidates should be recent. In 2026, use 2023 or later as the
simple recent threshold.
- Each candidate must pair one paper with one or two support sentences that can
be used in Introduction, Related Work, Discussion, limitations, or
application paragraphs.
- Prefer same-field, similar-field, foundational, benchmark, review, and
application papers. Do not only cite near-identical SOTA papers.
- Do not invent bibliography. Use local PDFs/metadata, DOI/arXiv/Crossref-like
metadata, official publisher pages, or user-provided reference files.
- Mark uncertain items as
[VERIFY] and do not use them in final writing until
the user verifies them.
- This bank is a candidate pool. Final writing should select a coherent subset,
not dump all candidates into the paper.
Read references/citation-support-bank.md when detailed rules are needed.
Flow
- Collection pass: Build the initial candidate pool with at least
citation_target_count * 3 rows. Leave Verified and Verification Note
columns empty during this pass.
- Verification pass: Run
citation_quality_audit.py to verify each DOI
against Crossref, score citation quality, analyze diversity gaps, and
produce citation_quality_audit.md. Fill in the Verified column as yes,
mismatch, dead, or error based on the audit results.
- Curation: Select the final subset of verified, recent, and
field-appropriate citations for the manuscript. Do not use unverified or
mismatched citations in final writing until the user confirms them.
Check
python scripts/citation_bank_check.py paper_rewriting_output/citation_support_bank.md --target-count 20 --markdown
python scripts/citation_quality_audit.py paper_rewriting_output --write
If the config has a different citation_target_count, use that value.
1---2name: paper-spine-citation3description: Builds a citation support bank for Introduction, Discussion, and background claims. (internal /paperspine step)4---56# PaperSpine Citation78Use this branch after research and before final writing. Its job is not to learn9paper structure. Its job is to build a verified citation support bank that can10support literature statements in the user's manuscript.1112## Inputs1314Read `paper_rewriting_output/paper_spine_config.json`, especially:1516- `target_name`17- `scene`18- `output_language`19- `reference_mode`20- `reference_paths`21- `citation_target_count` defaulting to `20`22- `materials_dir`23- `draft_path`24- `research_dossier.md`25- `sota_gap_map.md`26- `reference_materials/source_index.md`2728## Required Output2930Create:3132```text33paper_rewriting_output/citation_support_bank.md34```3536Use this table:3738| Candidate ID | Reference/BibTeX | Year | Recency | Supports Section | Support Claim Sentence | Why This Paper Fits | Source | Verified | Verification Note |39|---|---|---|---|---|---|---|---|---|---|4041Rules:4243- Generate at least `citation_target_count * 3` candidates. Default: 60.44- About 80% of candidates should be recent. In 2026, use 2023 or later as the45 simple recent threshold.46- Each candidate must pair one paper with one or two support sentences that can47 be used in Introduction, Related Work, Discussion, limitations, or48 application paragraphs.49- Prefer same-field, similar-field, foundational, benchmark, review, and50 application papers. Do not only cite near-identical SOTA papers.51- Do not invent bibliography. Use local PDFs/metadata, DOI/arXiv/Crossref-like52 metadata, official publisher pages, or user-provided reference files.53- Mark uncertain items as `[VERIFY]` and do not use them in final writing until54 the user verifies them.55- This bank is a candidate pool. Final writing should select a coherent subset,56 not dump all candidates into the paper.5758Read `references/citation-support-bank.md` when detailed rules are needed.5960## Flow61621. **Collection pass:** Build the initial candidate pool with at least63 `citation_target_count * 3` rows. Leave `Verified` and `Verification Note`64 columns empty during this pass.652. **Verification pass:** Run `citation_quality_audit.py` to verify each DOI66 against Crossref, score citation quality, analyze diversity gaps, and67 produce `citation_quality_audit.md`. Fill in the `Verified` column as `yes`,68 `mismatch`, `dead`, or `error` based on the audit results.693. **Curation:** Select the final subset of verified, recent, and70 field-appropriate citations for the manuscript. Do not use unverified or71 mismatched citations in final writing until the user confirms them.7273## Check7475```bash76python scripts/citation_bank_check.py paper_rewriting_output/citation_support_bank.md --target-count 20 --markdown77python scripts/citation_quality_audit.py paper_rewriting_output --write78```7980If the config has a different `citation_target_count`, use that value.