Initial commit: hardened DeerFlow factory
Vendored deer-flow upstream (bytedance/deer-flow) plus prompt-injection hardening: - New deerflow.security package: content_delimiter, html_cleaner, sanitizer (8 layers — invisible chars, control chars, symbols, NFC, PUA, tag chars, horizontal whitespace collapse with newline/tab preservation, length cap) - New deerflow.community.searx package: web_search, web_fetch, image_search backed by a private SearX instance, every external string sanitized and wrapped in <<<EXTERNAL_UNTRUSTED_CONTENT>>> delimiters - All native community web providers (ddg_search, tavily, exa, firecrawl, jina_ai, infoquest, image_search) replaced with hard-fail stubs that raise NativeWebToolDisabledError at import time, so a misconfigured tool.use path fails loud rather than silently falling back to unsanitized output - Native client back-doors (jina_client.py, infoquest_client.py) stubbed too - Native-tool tests quarantined under tests/_disabled_native/ (collect_ignore_glob via local conftest.py) - Sanitizer Layer 7 fix: only collapse horizontal whitespace, preserve newlines and tabs so list/table structure survives - Hardened runtime config.yaml references only the searx-backed tools - Factory overlay (backend/) kept in sync with deer-flow tree as a reference / source See HARDENING.md for the full audit trail and verification steps.
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# APA 7th Edition Citation Template
|
||||
|
||||
Use this template when the user requests APA format, or when they do not specify a format. APA 7th is the default for social sciences and most CS journals outside of IEEE venues.
|
||||
|
||||
## Citation Format Rules
|
||||
|
||||
### In-text citations
|
||||
|
||||
- **Single author**: `(Vaswani, 2017)` or `Vaswani (2017) showed that...`
|
||||
- **Two authors**: `(Vaswani & Shazeer, 2017)` — use `&` inside parentheses, "and" in running text.
|
||||
- **Three or more authors**: `(Vaswani et al., 2017)` — use `et al.` from the first citation onward (APA 7th changed this from APA 6th).
|
||||
- **Multiple citations**: `(Vaswani et al., 2017; Devlin et al., 2018)` — alphabetical order, separated by semicolons.
|
||||
|
||||
### Reference list entry for arXiv preprints
|
||||
|
||||
arXiv papers are preprints, not formally published articles. Cite them as preprints with the arXiv identifier:
|
||||
|
||||
```
|
||||
Author, A. A., Author, B. B., & Author, C. C. (Year). Title of the paper. arXiv. https://arxiv.org/abs/ARXIV_ID
|
||||
```
|
||||
|
||||
**Real example** (from paper metadata `{id: "1706.03762", title: "Attention Is All You Need", authors: ["Ashish Vaswani", "Noam Shazeer", "Niki Parmar", "Jakob Uszkoreit", "Llion Jones", "Aidan N. Gomez", "Łukasz Kaiser", "Illia Polosukhin"], published: "2017-06-12"}`):
|
||||
|
||||
```
|
||||
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. arXiv. https://arxiv.org/abs/1706.03762
|
||||
```
|
||||
|
||||
Formatting rules:
|
||||
|
||||
- **Author names**: `LastName, FirstInitial.` (middle initial optional). Join with commas; last author gets an `&`.
|
||||
- **Year**: the `published` field's year, in parentheses.
|
||||
- **Title**: sentence case (only first word and proper nouns capitalized). Italicize titles in typeset output; in plain markdown, leave plain.
|
||||
- **Source**: the literal word `arXiv`, then the full abs URL.
|
||||
- **No DOI** unless the paper has also been published in a venue with a DOI. arXiv alone uses the URL.
|
||||
|
||||
### Special cases
|
||||
|
||||
- **Up to 20 authors**: list all of them separated by commas, with `&` before the last.
|
||||
- **21 or more authors**: list the first 19, then `...`, then the final author.
|
||||
- **No DOI and no URL**: not possible for arXiv papers; always use the `abs_url` from the paper metadata.
|
||||
|
||||
## Report Structure
|
||||
|
||||
Follow this structure verbatim when writing the SLR report body. Fill in content from your Phase 3 extraction and Phase 4 synthesis.
|
||||
|
||||
```markdown
|
||||
# Systematic Literature Review: <Topic>
|
||||
|
||||
**Date**: <YYYY-MM-DD>
|
||||
**Papers surveyed**: <N>
|
||||
**Scope**: <arXiv search query, category, time window>
|
||||
**Citation format**: APA 7th edition
|
||||
|
||||
## Executive Summary
|
||||
|
||||
<3-5 sentences summarizing the state of the literature on this topic. What do the surveyed papers collectively tell us? What is the shape of the field? Avoid listing papers — synthesize.>
|
||||
|
||||
## Methodology
|
||||
|
||||
This review surveyed <N> arXiv papers retrieved on <YYYY-MM-DD> using the query `<query>`<, filtered to category <cat>><, published between <start_date> and <end_date>>. Papers were sorted by <relevance | submission date> and the top <N> were included. Metadata extraction (research question, methodology, key findings, limitations) was performed by language-model agents, with cross-paper synthesis performed by the lead agent.
|
||||
|
||||
**Limitations of this review**: arXiv preprints are not peer-reviewed; some included papers may not reflect their final published form. Coverage is limited to arXiv — papers published directly in venues without arXiv preprints are not represented.
|
||||
|
||||
## Themes
|
||||
|
||||
<3-6 thematic sections. Each theme is a recurring research direction, problem framing, or methodological approach across the surveyed papers.>
|
||||
|
||||
### Theme 1: <Theme name>
|
||||
|
||||
<2-4 paragraphs describing this theme. Cite papers inline as you discuss them, e.g. "Vaswani et al. (2017) introduced X, while subsequent work (Devlin et al., 2018; Liu et al., 2019) extended it to Y." Do not just list papers — describe the intellectual thread that connects them.>
|
||||
|
||||
### Theme 2: <Theme name>
|
||||
|
||||
<...>
|
||||
|
||||
## Convergences and Disagreements
|
||||
|
||||
**Convergences**: <findings that multiple papers agree on — e.g. "Most surveyed papers agree that X is necessary, citing evidence from Y and Z.">
|
||||
|
||||
**Disagreements**: <where papers reach different conclusions — e.g. "Vaswani et al. (2017) argue that X, while Dai et al. (2019) find the opposite under condition Y.">
|
||||
|
||||
## Gaps and Open Questions
|
||||
|
||||
<What the collective literature does not yet address. Pull from the "limitations" field of your Phase 3 extraction and identify patterns — if 5 papers all mention the same missing piece, that is a gap worth flagging.>
|
||||
|
||||
## Per-Paper Annotations
|
||||
|
||||
<One subsection per paper, ordered by year then first author. Each subsection is a mini-summary of that paper's contribution.>
|
||||
|
||||
### Vaswani et al. (2017)
|
||||
|
||||
**Research question**: <1 sentence from Phase 3 metadata>
|
||||
**Methodology**: <1-2 sentences>
|
||||
**Key findings**:
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
**Limitations**: <1-2 sentences>
|
||||
|
||||
### <Next paper>
|
||||
|
||||
<...>
|
||||
|
||||
## References
|
||||
|
||||
<Alphabetical list by first author's last name, APA 7th format as described above.>
|
||||
|
||||
Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2018). BERT: Pre-training of deep bidirectional transformers for language understanding. arXiv. https://arxiv.org/abs/1810.04805
|
||||
|
||||
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., Kaiser, Ł., & Polosukhin, I. (2017). Attention is all you need. arXiv. https://arxiv.org/abs/1706.03762
|
||||
|
||||
<... more entries, one per paper ...>
|
||||
```
|
||||
|
||||
## Quality checks before finalizing
|
||||
|
||||
Before saving the report, verify:
|
||||
|
||||
- [ ] Every paper in the surveyed set appears **both** in "Per-Paper Annotations" **and** in "References".
|
||||
- [ ] Every in-text citation matches a reference entry (no dangling citations).
|
||||
- [ ] Authors are formatted `LastName, FirstInitial.` — not `FirstName LastName`.
|
||||
- [ ] Years are in parentheses inline, and at the start of reference entries.
|
||||
- [ ] Titles are in sentence case in references (only first word + proper nouns capitalized).
|
||||
- [ ] arXiv URLs use the `abs_url` form (`https://arxiv.org/abs/...`), not `pdf_url`.
|
||||
- [ ] References are alphabetized by first author's last name.
|
||||
@@ -0,0 +1,156 @@
|
||||
# BibTeX Citation Template
|
||||
|
||||
Use this template when the user mentions BibTeX, LaTeX, wants machine-readable references, or is writing a paper that will be typeset with a LaTeX citation style (natbib, biblatex, etc.).
|
||||
|
||||
## Critical: use `@misc`, not `@article`, for arXiv papers
|
||||
|
||||
**arXiv preprints must be cited as `@misc`, not `@article`.** This is the most common mistake when generating BibTeX for arXiv papers, and it matters:
|
||||
|
||||
- `@article` requires a `journal` field. arXiv is not a journal — it is a preprint server. Using `@article` with `journal = {arXiv}` is technically wrong and some bibliography styles will complain or render it inconsistently.
|
||||
- `@misc` is the correct entry type for preprints, technical reports, and other non-journal publications. It accepts `howpublished` and `eprint` fields, which is exactly what arXiv citations need.
|
||||
- Only switch to `@article` (or `@inproceedings`) when the paper has been **formally published** in a peer-reviewed venue and you have the venue metadata. In this workflow we only have arXiv metadata, so always emit `@misc`.
|
||||
|
||||
## Citation Format Rules
|
||||
|
||||
### Entry structure for arXiv preprints
|
||||
|
||||
```bibtex
|
||||
@misc{citekey,
|
||||
author = {LastName1, FirstName1 and LastName2, FirstName2 and ...},
|
||||
title = {Title of the Paper},
|
||||
year = {YYYY},
|
||||
eprint = {ARXIV_ID},
|
||||
archivePrefix = {arXiv},
|
||||
primaryClass = {PRIMARY_CATEGORY},
|
||||
url = {https://arxiv.org/abs/ARXIV_ID}
|
||||
}
|
||||
```
|
||||
|
||||
**Real example**:
|
||||
|
||||
```bibtex
|
||||
@misc{vaswani2017attention,
|
||||
author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, {\L}ukasz and Polosukhin, Illia},
|
||||
title = {Attention Is All You Need},
|
||||
year = {2017},
|
||||
eprint = {1706.03762},
|
||||
archivePrefix = {arXiv},
|
||||
primaryClass = {cs.CL},
|
||||
url = {https://arxiv.org/abs/1706.03762}
|
||||
}
|
||||
```
|
||||
|
||||
### Field rules
|
||||
|
||||
- **Cite key**: `<firstauthorlast><year><firstwordoftitle>`, all lowercase, no punctuation. Example: `vaswani2017attention`. Keys must be unique within the report.
|
||||
- **`author`**: `LastName, FirstName and LastName, FirstName and ...` — note the literal word `and` between authors, not a comma. LaTeX requires this exact separator. LastName comes first, then a comma, then the given names.
|
||||
- **Special characters**: escape or wrap LaTeX-sensitive characters. For example, `Łukasz` becomes `{\L}ukasz`, `é` becomes `{\'e}` (or wrap the whole name in braces to preserve casing: `{Łukasz}`). If unsure, wrap the problematic name in curly braces.
|
||||
- **`title`**: preserve the paper's capitalization by wrapping it in double braces if it contains acronyms or proper nouns you need to keep capitalized: `title = {{BERT}: Pre-training of Deep Bidirectional Transformers}`. Otherwise plain braces are fine.
|
||||
- **`year`**: the 4-digit year from the paper's `published` field.
|
||||
- **`eprint`**: the **bare arXiv id** (e.g. `1706.03762`), **without** the `arXiv:` prefix and **without** the version suffix.
|
||||
- **`archivePrefix`**: literal string `{arXiv}`.
|
||||
- **`primaryClass`**: the first category from the paper's `categories` list (e.g. `cs.CL`, `cs.CV`, `stat.ML`). This is the paper's primary subject area.
|
||||
- **`url`**: the full `abs_url` from paper metadata.
|
||||
|
||||
## Report Structure
|
||||
|
||||
The BibTeX report is slightly different from APA / IEEE: the **bibliography is a separate `.bib` file**, and the main report uses LaTeX-style `\cite{key}` references that would resolve against that file. Since we are emitting markdown, we show `\cite{key}` verbatim in the prose and emit the BibTeX entries inside a fenced code block at the end.
|
||||
|
||||
```markdown
|
||||
# Systematic Literature Review: <Topic>
|
||||
|
||||
**Date**: <YYYY-MM-DD>
|
||||
**Papers surveyed**: <N>
|
||||
**Scope**: <arXiv search query, category, time window>
|
||||
**Citation format**: BibTeX
|
||||
|
||||
## Executive Summary
|
||||
|
||||
<3-5 sentences. Use \cite{key} form for citations, e.g. "Transformer architectures \cite{vaswani2017attention} have become the dominant approach.">
|
||||
|
||||
## Methodology
|
||||
|
||||
This review surveyed <N> arXiv papers retrieved on <YYYY-MM-DD> using the query `<query>`<, filtered to category <cat>><, published between <start_date> and <end_date>>. Metadata extraction was performed by language-model agents, with cross-paper synthesis performed by the lead agent. All citations in this report use BibTeX cite keys; the corresponding `.bib` entries are at the end of this document.
|
||||
|
||||
**Limitations of this review**: arXiv preprints are not peer-reviewed; coverage is limited to arXiv.
|
||||
|
||||
## Themes
|
||||
|
||||
### Theme 1: <Theme name>
|
||||
|
||||
<Paragraphs describing the theme. Cite with \cite{key} form: "The original transformer architecture \cite{vaswani2017attention} introduced self-attention, which was later extended in \cite{dai2019transformerxl}.">
|
||||
|
||||
### Theme 2: <Theme name>
|
||||
|
||||
<...>
|
||||
|
||||
## Convergences and Disagreements
|
||||
|
||||
**Convergences**: <e.g. "Multiple papers \cite{key1,key2,key3} agree that X is necessary.">
|
||||
|
||||
**Disagreements**: <...>
|
||||
|
||||
## Gaps and Open Questions
|
||||
|
||||
<...>
|
||||
|
||||
## Per-Paper Annotations
|
||||
|
||||
### \cite{vaswani2017attention} — "Attention Is All You Need" (2017)
|
||||
|
||||
**Research question**: <1 sentence>
|
||||
**Methodology**: <1-2 sentences>
|
||||
**Key findings**:
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
**Limitations**: <1-2 sentences>
|
||||
|
||||
### \cite{devlin2018bert} — "BERT: Pre-training of Deep Bidirectional Transformers" (2018)
|
||||
|
||||
<...>
|
||||
|
||||
## BibTeX Bibliography
|
||||
|
||||
Save the entries below to a `.bib` file and reference them from your LaTeX document with `\bibliography{filename}`.
|
||||
|
||||
\`\`\`bibtex
|
||||
@misc{vaswani2017attention,
|
||||
author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, {\L}ukasz and Polosukhin, Illia},
|
||||
title = {Attention Is All You Need},
|
||||
year = {2017},
|
||||
eprint = {1706.03762},
|
||||
archivePrefix = {arXiv},
|
||||
primaryClass = {cs.CL},
|
||||
url = {https://arxiv.org/abs/1706.03762}
|
||||
}
|
||||
|
||||
@misc{devlin2018bert,
|
||||
author = {Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina},
|
||||
title = {{BERT}: Pre-training of Deep Bidirectional Transformers for Language Understanding},
|
||||
year = {2018},
|
||||
eprint = {1810.04805},
|
||||
archivePrefix = {arXiv},
|
||||
primaryClass = {cs.CL},
|
||||
url = {https://arxiv.org/abs/1810.04805}
|
||||
}
|
||||
|
||||
... more entries, one per paper ...
|
||||
\`\`\`
|
||||
```
|
||||
|
||||
(Note: in the actual saved report, use a real fenced code block `` ```bibtex `` — the backticks above are escaped only because this template file itself is inside a markdown code block when rendered.)
|
||||
|
||||
## Quality checks before finalizing
|
||||
|
||||
Before saving the report, verify:
|
||||
|
||||
- [ ] Every entry is `@misc`, not `@article` (this workflow only has arXiv metadata).
|
||||
- [ ] Cite keys are unique within the report.
|
||||
- [ ] Cite keys follow the `<firstauthorlast><year><firstword>` pattern, all lowercase.
|
||||
- [ ] `author` field uses ` and ` (the literal word) between authors, not commas.
|
||||
- [ ] LaTeX special characters in author names are escaped or brace-wrapped.
|
||||
- [ ] `eprint` is the bare arXiv id (no `arXiv:` prefix, no version suffix).
|
||||
- [ ] `primaryClass` is set from the paper's first category.
|
||||
- [ ] Every `\cite{key}` in the text has a matching `@misc` entry in the bibliography.
|
||||
- [ ] The bibliography is emitted inside a fenced ```` ```bibtex ```` code block so users can copy-paste directly into a `.bib` file.
|
||||
@@ -0,0 +1,127 @@
|
||||
# IEEE Citation Template
|
||||
|
||||
Use this template when the user targets an IEEE conference or journal, or explicitly asks for IEEE format. IEEE uses **numeric citations** — references are numbered in the order they first appear in the text, and in-text citations use bracketed numbers.
|
||||
|
||||
## Citation Format Rules
|
||||
|
||||
### In-text citations
|
||||
|
||||
- **Single reference**: `[1]` — use the number assigned in the References section.
|
||||
- **Multiple references**: `[1], [3], [5]` or `[1]–[3]` for consecutive ranges.
|
||||
- **Citation as a noun**: "As shown in [1], ..." or "Reference [1] demonstrated...".
|
||||
- **Author attribution**: "Vaswani et al. [1] introduced..." — author names are optional in IEEE; use them when it improves readability, always followed by the bracketed number.
|
||||
|
||||
Numbers are assigned in **order of first appearance in the text**, not alphabetically. The first reference you cite is `[1]`, the second new reference is `[2]`, and so on.
|
||||
|
||||
### Reference list entry for arXiv preprints
|
||||
|
||||
IEEE format for arXiv preprints:
|
||||
|
||||
```
|
||||
[N] A. A. Author, B. B. Author, and C. C. Author, "Title of the paper," arXiv:ARXIV_ID, Year.
|
||||
```
|
||||
|
||||
**Real example**:
|
||||
|
||||
```
|
||||
[1] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser, and I. Polosukhin, "Attention is all you need," arXiv:1706.03762, 2017.
|
||||
```
|
||||
|
||||
Formatting rules:
|
||||
|
||||
- **Author names**: `FirstInitial. LastName` — initials before the last name, opposite of APA. Join with commas; last author gets `and` (no Oxford comma before it in strict IEEE, but accepted).
|
||||
- **Title**: in double quotes, sentence case. No italics.
|
||||
- **Source**: `arXiv:<id>` — the literal prefix `arXiv:` followed by the bare id (e.g. `arXiv:1706.03762`, not the full URL).
|
||||
- **Year**: at the end, after a comma.
|
||||
- **URL**: optional in IEEE. Include if the publication venue requires it; otherwise the `arXiv:<id>` identifier is sufficient and is the IEEE-preferred form.
|
||||
|
||||
### Special cases
|
||||
|
||||
- **More than 6 authors**: IEEE allows listing the first author followed by `et al.`: `A. Vaswani et al., "Attention is all you need," arXiv:1706.03762, 2017.` Use this for papers with many authors to keep reference entries readable.
|
||||
- **If the paper has also been published at a venue**: prefer the venue citation format over arXiv. In this workflow we only have arXiv metadata, so always use the arXiv form.
|
||||
|
||||
## Report Structure
|
||||
|
||||
Follow this structure verbatim. Note that IEEE reports use **numeric citations throughout**, so you need to assign a number to each paper **in order of first appearance** in the Themes section, then use those numbers consistently in per-paper annotations and the reference list.
|
||||
|
||||
```markdown
|
||||
# Systematic Literature Review: <Topic>
|
||||
|
||||
**Date**: <YYYY-MM-DD>
|
||||
**Papers surveyed**: <N>
|
||||
**Scope**: <arXiv search query, category, time window>
|
||||
**Citation format**: IEEE
|
||||
|
||||
## Executive Summary
|
||||
|
||||
<3-5 sentences summarizing the state of the literature. Cite papers with bracketed numbers as you first introduce them, e.g. "Transformer architectures [1] have become the dominant approach, with extensions focusing on efficiency [2], [3] and long-context handling [4].">
|
||||
|
||||
## Methodology
|
||||
|
||||
This review surveyed <N> arXiv papers retrieved on <YYYY-MM-DD> using the query `<query>`<, filtered to category <cat>><, published between <start_date> and <end_date>>. Papers were sorted by <relevance | submission date> and the top <N> were included. Metadata extraction was performed by language-model agents, with cross-paper synthesis performed by the lead agent.
|
||||
|
||||
**Limitations of this review**: arXiv preprints are not peer-reviewed; coverage is limited to arXiv.
|
||||
|
||||
## Themes
|
||||
|
||||
<3-6 thematic sections. First appearance of each paper gets a bracketed number; subsequent mentions reuse the same number. The number assignment order is: first paper mentioned in Theme 1 gets [1], next new paper gets [2], etc.>
|
||||
|
||||
### Theme 1: <Theme name>
|
||||
|
||||
<Paragraphs describing the theme. Cite with bracketed numbers: "The original transformer architecture [1] introduced self-attention, which was later extended in [2] and [3]. Comparative analyses [4] show that...">
|
||||
|
||||
### Theme 2: <Theme name>
|
||||
|
||||
<...>
|
||||
|
||||
## Convergences and Disagreements
|
||||
|
||||
**Convergences**: <e.g. "Multiple papers [1], [3], [5] agree that X is necessary.">
|
||||
|
||||
**Disagreements**: <e.g. "While [1] argues X, [2] finds the opposite under condition Y.">
|
||||
|
||||
## Gaps and Open Questions
|
||||
|
||||
<What the collective literature does not yet address, with citations to papers that explicitly mention these gaps.>
|
||||
|
||||
## Per-Paper Annotations
|
||||
|
||||
<One subsection per paper, ordered by their assigned reference number.>
|
||||
|
||||
### [1] Vaswani et al., "Attention is all you need" (2017)
|
||||
|
||||
**Research question**: <1 sentence>
|
||||
**Methodology**: <1-2 sentences>
|
||||
**Key findings**:
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
- <bullet>
|
||||
**Limitations**: <1-2 sentences>
|
||||
|
||||
### [2] <Next paper>
|
||||
|
||||
<...>
|
||||
|
||||
## References
|
||||
|
||||
<Numbered list in order of first appearance in the text. The number must match the in-text citations above.>
|
||||
|
||||
[1] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, Ł. Kaiser, and I. Polosukhin, "Attention is all you need," arXiv:1706.03762, 2017.
|
||||
|
||||
[2] J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova, "BERT: Pre-training of deep bidirectional transformers for language understanding," arXiv:1810.04805, 2018.
|
||||
|
||||
<... more entries ...>
|
||||
```
|
||||
|
||||
## Quality checks before finalizing
|
||||
|
||||
Before saving the report, verify:
|
||||
|
||||
- [ ] Every paper in the surveyed set has a unique reference number.
|
||||
- [ ] Reference numbers are assigned in order of **first appearance in the text**, not alphabetically.
|
||||
- [ ] Every bracketed number in the text has a matching entry in the References section.
|
||||
- [ ] Every entry in References is cited at least once in the text.
|
||||
- [ ] Author names use `FirstInitial. LastName` format (initials before last name).
|
||||
- [ ] Titles are in double quotes and sentence case.
|
||||
- [ ] arXiv identifiers use the `arXiv:<bare_id>` form, not the full URL.
|
||||
- [ ] Per-paper annotations are ordered by reference number, matching the References section order.
|
||||
Reference in New Issue
Block a user