원클릭으로
pre-submission-report
Use when you need all quality checks run before submission, producing a single dated report.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when you need all quality checks run before submission, producing a single dated report.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when you need to compare a project .bib against a Paperpile project/topic folder to find uncited papers or unfiled entries.
Use when you need to extract citations from a PDF and generate a validated .bib file. Reads the PDF, identifies all referenced works, constructs BibTeX entries with metadata verification, then runs bib-validate.
Use when you need to check a LaTeX submission against a PDF assessment brief.
Use when you need to replicate a quantitative analysis in a second language (R↔Python↔Stata↔Julia) to verify correctness. Level 1 of the verification hierarchy.
Use when you need to challenge research assumptions or stress-test arguments.
Review user-facing documentation for accuracy, consistency, and completeness across private, public, nested repos, and the user manual. Use when docs feel stale, after major changes, or before sharing. (Replaces `repo-doc-audit`)
| name | pre-submission-report |
| description | Use when you need all quality checks run before submission, producing a single dated report. |
| allowed-tools | Bash(latexmk*, mkdir*, ls*, wc*), Read, Write, Edit, Glob, Grep, Task, Skill |
| argument-hint | [path/to/main.tex or no arguments to auto-detect] |
| agent-dependencies | ["artifact-coherence-auditor","blindspot","claim-verify","code-paper-auditor","domain-reviewer","paper-critic","referee2-reviewer","reproducibility-auditor"] |
| skill-dependencies | ["ai-detect","bib-validate","latex","verify-math"] |
Aggregates all quality checks into one dated report. Run before submitting to a journal/conference or sharing with collaborators.
Per rules/review-artefact-routing.md (auto-loads in research projects (path-scoped to paper-*/ and paper/)):
pre-submission-reportreviews/<paper-slug>/pre-submission-report/<YYYY-MM-DD-HHMM>.md inside the project, where <paper-slug> is the paper directory name being reviewed (e.g., paper-jtp if reviewing paper-jtp/main.tex). Path is relative to the research project root, not the Task-Management repo../CRITIC-REPORT.md-style filenames are forbidden — pre-rule layout).{timestamp}-r2.md, {timestamp}-revision.md) — never overwrite.reviews/INDEX.md exists, write a one-line entry under "Latest per source" pointing at the new file. Otherwise review-recap will rebuild the index next time it runs..tex file path, or auto-detect paper/main.tex in the current projectPython: Always use uv run python or uv pip install. Never bare python, python3, pip, or pip3. Include this in any sub-agent prompts.
If no argument provided, search for the main .tex file:
paper/main.texpaper/*.tex for a file containing \begin{document}Run these checks first. If any fail, stop and report — do not proceed to quality checks.
.tex file(s) for TODO, FIXME, XXX, TBD, [INSERT, PLACEHOLDER, Lorem ipsum. Any match is a FAIL.bib-validate in verify mode. Every \cite{} key must resolve to a .bib entry. Any missing key is a FAIL.?? in the compiled PDF output or .log file (undefined \ref{} or \cite{}). Any ?? in output is a FAIL._shared/double-blind-anonymity-checklist.md and run all P1–P8 paper-side checks. Any FAIL is a hard stop. In particular: P4 (self-citation bib must be blinded if cited paper's author list overlaps the submission's) and P5 (body text must not name authors of self-cited works) — these are the CCS 2026 #1328 desk-reject triggers and require the submission's author list to be loaded from the vault submission frontmatter or prompted from the user. If the artifact has been minted via anonymous-artifact, also confirm A1–A9 ran clean for that artifact (state file at <project>/.anonymous-artifact-state.json). Skip this entire step only when the user explicitly says "single-blind" or "non-blind".If any check fails:
INTEGRITY GATE: FAIL
Blockers (must fix before quality checks):
- [ ] 3 TODO placeholders found (lines 47, 112, 289)
- [ ] 2 undefined references (\ref{fig:missing}, \cite{nonexistent2024})
- [ ] Abstract section is empty
Fix these and re-run pre-submission-report.
If all pass: proceed to Step 3.
Two modes:
Run these in order — each depends on a clean state from the previous:
latex on the main .tex file. Record pass/fail and any remaining warnings.bib-validate --verify-doi (DOI resolution mode catches fabricated entries). Record missing, unused, suspect, and unresolved-DOI keys.paper-critic agent (via fresh-context sub-agent mechanism). Capture the CRITIC-REPORT.md score and findings.--parallel flag)Use when (a) the paper is near submission and you want a comprehensive scan, or (b) the user explicitly asks for the "full pre-submission swarm". Dispatches 7 read-only sub-agents in parallel via the fresh-context sub-agent mechanism, then consolidates findings.
Hard rules for parallel mode:
subagent-write-guard.md rule. They do NOT modify the paper, bib, code, or any other artefact under review; the orchestrator (this skill) decides what to fix. They DO write their own per-agent reports to reviews/<paper-slug>/<check>/<YYYY-MM-DD-HHMM>.md per each agent's "Log to REVIEW-STATE.md (final step)" instruction (where <paper-slug> is the paper being reviewed and <check> is the agent name, e.g., paper-critic, referee2-reviewer) — this is the durable record + the INDEX.md stamp that review-recap reads. The "read-only" scope is the artefact under review, NOT a prohibition on writing the review report itself.reviews/<paper-slug>/<check>/ path as a permitted write target (the agent's logging step needs it), where <paper-slug> is the paper being reviewed (passed in the dispatch) and <check> is the agent name._shared/audit-integrity.md Rule 2). Each sub-agent's dispatch prompt MUST require every finding to cite path:line (or §) AND quote the exact text/code verbatim — unanchored findings are inadmissible. Before consolidating (rule 3), the orchestrator spot-verifies a random sample of returned findings (≥3, or 20%, weighted to P0/P1): open the cited location, confirm the quote is there and the claim follows. Any miss ⇒ widen to that agent's full set and drop what can't be grounded. Record Integrity: N sampled, M dropped in the consolidated report.The 7 sub-agents:
Always dispatched (13 sub-agents):
| # | Agent | Scope | Output |
|---|---|---|---|
| 1 | bib-verifier | DOI resolution + Crossref/S2 verification of every bib entry via bib-validate --verify-doi mode; flag fabricated/unresolvable | List of unverified keys + suggested fixes |
| 2 | claim-verifier | Launch claim-verify agent — checks every cited claim against the source paper (citation fidelity, not just key existence) | Per-claim verdicts |
| 3 | novelty-reviewer | Run scholarly scholarly-search "<paper title>" --source openalex; report score + threats not yet cited | Novelty score + missing-related-work list |
| 4 | paper-critic | Launch paper-critic agent — general adversarial CRITIC-REPORT (specialist mode for venue-calibrated review) | Scored CRITIC-REPORT.md |
| 5 | domain-reviewer | Launch domain-reviewer agent — math/derivations/assumptions/code-theory alignment | DOMAIN-REVIEW.md |
| 6 | referee2-reviewer | Launch referee2-reviewer agent — Reviewer 2 hostile read; top reviewer-attack-surface concerns | Adversarial concerns |
| 7 | blindspot | Launch blindspot agent — peripheral-vision audit (vices in plain sight + virtues being overlooked) | Blindspot report |
| 8 | code-paper-auditor | Launch code-paper-auditor agent — cross-check quantitative claims against source code outputs | Mismatch table |
| 9 | artifact-coherence-auditor | Launch artifact-coherence-auditor agent — paper prose vs replication outputs (catches hallucinated results) | Coherence report |
| 10 | reproducibility-auditor | Launch reproducibility-auditor agent — workflow rerunnability (hidden deps, absolute paths, env assumptions) | Reproducibility report |
| 11 | anonymity / double-blind checker | Apply paper-side checks P1-P8 from _shared/double-blind-anonymity-checklist.md; verify [review] mode if double-blind venue | Pass/fail + leak list |
| 12 | page-limit + LaTeX validator | Verify page count under venue limit; check for compile warnings; check out/ is current | Page count + warning summary |
Conditional — math verification (theory papers):
If the paper contains formal environments (grep -lE '\\begin\{(theorem|proposition|lemma|corollary)\}' matches), run verify-math (via the skill-routing mechanism) on the model section(s) in addition to the domain-reviewer agent (#5). The two are complementary, not redundant: domain-reviewer (#5) reads the conceptual layer (rung R0), while verify-math machine-checks the algebra/analytics across the rest of the spectrum (R1 numerical falsification · R2 symbolic/CAS · R3 Lean). This runs as an orchestrator skill, not a sub-agent — the computational rungs need Bash + sympy/lean, which sub-agents can't reliably get at runtime (same Bash-grant fragility that motivates orchestrator-side stamping below); the orchestrator always has Bash. It is read-only with respect to project files (writes only its own report) and self-stamps its INDEX.md row. Fold its aggregate verdict into consolidation: any FALSIFIED obligation is a P0 blocker (a machine-falsified theorem outranks any reviewer concern); an INCONCLUSIVE obligation is P1. When both run, tell domain-reviewer (#5) in its prompt that the algebra is being verified separately so it focuses on assumption completeness / citation fidelity / backward logic — see the domain-reviewer "Math R0 Mode" preset.
Conditional follow-ups (run after parallel fan-out, opt-in):
| Trigger | Skill |
|---|---|
| Paper has code (detect: non-tex/non-bib files in project) AND venue is double-blind | anonymous-artifact — assemble + sanitize + push to anonymous repo, mint URL |
| Strategic-revision context (paper has referee comments) | strategic-revision — revision plan after the swarm flags issues |
The conditional follow-ups are NOT in the parallel batch — they're sequential because they may modify files (and so violate the read-only invariant of the parallel sub-agents).
Dispatch protocol:
# Pseudocode for orchestration — see fresh-context sub-agent mechanism docs for actual API
parallel_tasks = [
Agent("bib-verifier", subagent_type="general-purpose",
prompt=f"Read {paper_path}/references.bib. Run scholarly scholarly-verify-dois on all DOI-bearing entries (batch ≤50). Report unresolvable DOIs, missing DOIs, suspected fabricated entries. READ-ONLY. {forbid_list}"),
Agent("novelty-reviewer", ...),
# ... 5 more
]
# Wait all → consolidate
findings = consolidate_p0_p1_p2(parallel_tasks)
Sub-agents run concurrently — total wall-clock is bounded by the slowest (typically novelty-reviewer at ~2-3 min via OpenAlex).
Consolidation: the orchestrator merges findings from all 13 sub-agents into a single P0/P1/P2 fix list:
FALSIFIED math obligation (verify-math, theory papers)INCONCLUSIVE math obligations (verify-math)Code-bearing detection: if the project has non-tex / non-bib files outside paper-*/ and notes/ (typical signal: code/, data/, scripts/, analysis/, src/ directories), enable code-side sub-agents (#8 code-paper-auditor, #9 artifact-coherence-auditor, #10 reproducibility-auditor) and queue anonymous-artifact as a conditional follow-up.
Edit phase (separate, opt-in): if the user approves any P0/P1 fixes, dispatch a second round of edit-agents with explicit scoped permissions per file — see subagent-write-guard.md for the forbid-list pattern. The orchestrator confirms each edit-agent's scope before dispatch.
Why parallel: the 13 audits are independent — sequential is ~10x slower for the same coverage. Reviewer-pool collision risk is zero (read-only sub-agents).
Skip parallel mode if: paper is in early drafting (use the sequential 3-audit instead — faster feedback for incomplete drafts), or sub-agents fail repeatedly (fall back to sequential).
Save to log/audits/quality-reports/YYYY-MM-DD_<project-name>.md:
# Pre-Submission Quality Report
**Project:** <project name>
**Date:** YYYY-MM-DD
**File:** <path to main.tex>
**Target:** <venue from project CLAUDE.md, or "not specified">
---
## Integrity Gate: PASS / FAIL
- **Placeholders:** 0 found
- **Citation integrity:** all keys resolved
- **Section completeness:** all sections present
- **Broken references:** none
---
## Overall Score: XX/100 — [Verdict]
Verdict uses the quality scoring framework:
- 90-100: Publication-ready
- 80-89: Minor revisions needed
- 70-79: Significant revisions needed
- Below 70: Not ready
---
## Compilation
- **Status:** PASS / FAIL
- **Warnings:** <count>
- **Details:** <brief summary of any issues>
## Citations
- **Missing keys:** <count> — <list>
- **Unused keys:** <count> — <list>
- **Suspect entries:** <count> — <list>
## Adversarial Review
- **Score:** XX/100
- **Key findings:**
- <finding 1>
- <finding 2>
- ...
## Research Quality Score
Load `skills/shared/research-quality-rubric.md` and report the weighted aggregate (X.X / 5.0) with verdict.
## Remaining Issues
| # | Severity | Category | Issue |
|---|----------|----------|-------|
| 1 | High/Medium/Low | Compilation/Citation/Content | <description> |
## Recommendation
**[Submit / Revise / Not ready]**
<1-2 sentence summary of what needs to happen before submission>
Display the report path and the summary table to the user. If the recommendation is "Submit", congratulate. If "Revise", list the top 3 issues to fix first.
latex, still run the remaining checks. Mark compilation as FAIL in the report.paper-critic agent fails, note it in the report and base the overall score on compilation + citations only.| Skill/Agent | Role in this workflow |
|---|---|
latex | Compilation + auto-fix |
bib-validate | Citation cross-reference + self-citation deanonymization scan |
paper-critic agent | Adversarial content review |
quality-scoring.md | Verdict thresholds |
_shared/double-blind-anonymity-checklist.md | P1–P8 / A1–A9 anonymity gate (double-blind venues only) |
_shared/audit-integrity.md | Fan-out integrity contract — each of the 13 review agents must cite path:line + verbatim evidence (Rule 2); the orchestrator spot-verifies before including a finding in the report |
This skill is an orchestrator in the REVIEW-STATE.md schema. As of the 2026-05-19 architecture change, the orchestrator handles all stamping; sub-agents emit directives but do not call the helper themselves.
When constructing prompts for any sub-agent that is a logging tool (paper-critic, referee2-reviewer, peer-reviewer, domain-reviewer, claim-verify, blindspot, fatal-error-check, code-paper-auditor, artifact-coherence-auditor, reproducibility-auditor, code-review), include this line in the sub-agent prompt:
Emit a
review-state-stampdirective at the end of your final response per the installed shared resource_shared/stamp-directive-spec.md. Settrigger: pre-submission-report(or omit — this orchestrator overrides). Do not call the stamping helper yourself.
For each agent's return:
/tmp/pre-submission-<agent>.md).ARGS=$(bash <skills-root>/_shared/parse-stamp-directive.sh /tmp/pre-submission-<agent>.md)
If parse-stamp-directive.sh exits non-zero, log a warning ("Agent X return did not contain a review-state-stamp directive — INDEX.md not updated for this run") and continue..md report file exists; reconstruct from return content if missing:
VERIFY=$(bash <skills-root>/_shared/post-dispatch-verify.sh \
--return-file /tmp/pre-submission-<agent>.md \
--project "$PROJECT_ROOT" \
--agent <agent>)
If VERIFY starts with RECONSTRUCTED, append (report reconstructed by orchestrator — agent skipped Write) to the --notes value before stamping. Guards against the blindspot-class failure mode. See log/2026-05-21-blindspot-write-fix.md.--trigger override:
eval bash <skills-root>/_shared/review-state-log.sh "$ARGS" \
--trigger pre-submission-report \
--source agent \
--project "$PROJECT_ROOT"
All sub-agent stamps land in <project>/reviews/INDEX.md with Trigger=pre-submission-report and roughly the same Last Run timestamp.
Agents have inconsistent Bash tool grants at runtime (the 2026-05-19 harness investigation). The orchestrator always has Bash and always runs after the agents return. Moving stamping here decouples it from agent tool-surface uncertainty and fixes the burying problem (referee2-reviewer's stamping section used to live at line ~475 of a 518-line agent definition; agents reliably forgot to reach it).
Schema: the installed shared resource shared/review-state-schema.md.
Stamp directive format: the installed shared resource _shared/stamp-directive-spec.md.