pre-submission-triage
When running the pre-submission gate (check_pre_submission.py) or when WARN/FAIL output needs interpretation before submission, classify each finding against known patterns into "must-fix / needs-revi
SKILL.mdskills/en/pre-submission-triage/SKILL.md
GitHubPre-Submission Triage Skill
Purpose
The pre-submission gate scripts/check_pre_submission.py mechanically emits PASS/WARN/FAIL, but cannot judge which WARNs are acceptable and which must not be ignored. This skill cross-references gate output against known patterns, classifies each finding as "must-fix / needs-review / acceptable", presents a judgment summary to the author, and records approved judgments with rationale in a log. The goal is to prevent ad-hoc, person-dependent WARN handling and overlooked judgments.
Trigger Conditions
- When
check_pre_submission.pyis run before submission or manuscript build - When the author asks how to handle WARN/FAIL output from the gate
- When reviewing results of chapter-completion or periodic quality checks
Principles
- FAIL always blocks: never classify a FAIL as "acceptable"; fix and re-run the gate
- "Acceptable" WARNs require rationale: a WARN that matches no known pattern below falls to "needs-review"
- Record only after author approval: present the classification and obtain approval before logging. The agent must never silently dismiss a WARN on its own
Workflow
[Step 1: Run gate] -> [Step 2: Match known patterns] -> [Step 3: Present judgment summary] -> [Step 4: Author approval -> Log]
Step 1: Run the Gate
python3 scripts/check_pre_submission.py <paper-id> --repo-root <paper-repo-root>
If every check is PASS with no WARN, report "gate passed" and stop. Otherwise proceed to Step 2.
Step 2: Match Findings Against Known Patterns
literature-grounding
| Output pattern | Classification | Criterion |
|---|---|---|
no matching literature/papers/*.md artifact (FAIL) |
must-fix | No artifact for the citation; create papers/*.md |
status=manual-stub |
acceptable | Legitimate grounding form for books/theses where PDF auto-fetch is impossible (fact-grounding-rule §2-B-3). Condition: the papers/*.md records page-anchored excerpts (page-verified excerpts); without excerpts, treat as needs-review |
status=abstract-only |
needs-review | Visually confirm whether the manuscript claim depends only on abstract-level content; if dependence is strong, upgrade to full-text or manual-stub with page excerpts |
status=full-text but no PDF at _downloads/ |
must-fix | The Markdown note is a transcription, not the original. Place the PDF at _downloads/{slug}.pdf and re-audit. If there is no redistribution right, drop to manual-stub |
bot-challenge … human handoff required (download script) |
must-fix (human task) | Automated fetch blocked by reCAPTCHA/Cloudflare. Wait until the user saves the PDF to _downloads/{slug}.pdf via browser. Do not retry the same URL or hunt unofficial mirrors (pdf-paper-ingestion Step 1b) |
fact-grounding
| Output pattern | Classification | Criterion |
|---|---|---|
| Paragraphs containing only headings, section numbers, version numbers, or publication years | acceptable | Numeric-pattern false positive |
| Count mentions in qualitative text (e.g., "four mechanisms") | acceptable | Design constants, not quantitative claims |
Quantitative claims (statistics, ratios, multipliers) with no Harvard citation, footnote, docs/data/ reference, or table reference |
must-fix | Add an evidence anchor |
output-boundary
| Output pattern | Classification | Criterion |
|---|---|---|
| Internal workflow terms (TDD, test cases, internal file paths) leaking into chapters | must-fix | Never ship internal process vocabulary in the public manuscript; do not treat as WARN |
citation-format
| Output pattern | Classification | Criterion |
|---|---|---|
| In-text citation not registered in the matrix | must-fix | Register in literature-matrix.md and ground via papers/*.md |
| Undefined footnotes / orphan references | must-fix | Restore 1-to-1 consistency between text and references |
Step 3: Present the Judgment Summary
Present in chat using this format:
## Triage Result (<paper-id>, YYYY-MM-DD)
- Gate totals: PASS=n / WARN=n / FAIL=n
- Classification: must-fix n / needs-review n / acceptable n
| Check | Target | Classification | Rationale | Action |
| :--- | :--- | :--- | :--- | :--- |
| literature-grounding | Wood et al. (1976) | acceptable | manual-stub + page-verified excerpts at p.90/98 | none |
| fact-grounding | ch3 §3.2 heading | acceptable | section-number false positive | none |
| fact-grounding | ch5 paragraph X | must-fix | quantitative claim without anchor | add citation footnote |
Step 4: Author Approval and Logging
- Present the summary and obtain the author's approval for the classifications (especially "acceptable" and "needs-review")
- After approval, append the judgments to
docs/<paper-id>/design/logs/pre-submission-triage-log.md:
## YYYY-MM-DD — pre-submission triage (<paper-id>)
- Gate: PASS=n WARN=n FAIL=n / Classification: must-fix n, needs-review n, acceptable n
| Check | Target | Classification | Rationale | Action |
| :--- | :--- | :--- | :--- | :--- |
- After completing must-fix items, re-run the gate and append the result to the same log
Outputs
- Triage judgment summary (presented in chat)
docs/<paper-id>/design/logs/pre-submission-triage-log.md(audit trail of judgments)