skills/peer-review/references/tool_reference.md
All bundled tools are deterministic Python 3.11+ standard-library CLIs. They make no network, model, image, subprocess, environment-variable, dynamic-code, or pickle calls.
--force is explicitExit codes:
0: structurally valid or completed1: a validly parsed audit is blocked or has rule errors2: malformed input, unsafe path, unsupported field, or CLI validation errorRun tools from the skill directory or use absolute script paths.
python3 scripts/validate_review_intake.py \
assets/review_intake_template.json
Purpose:
The bundled template is intentionally blocked until the human completes the controls.
Top-level JSON fields:
schema_version: 2.0review_id: safe local identifier, not a manuscript titlematerial: status and sensitive-data flagauthorization: basis and documented permissionsreviewer: capacity, accountability, competence, and conflictsvenue_policy: checked status, review model, confidential-note channelai_use: policy, plan, permission, disclosurehandling: local-only, external-service, reuse, retention controlsscope: manuscript type, requested focus, limits, specialist needsThe report validates declarations, not their truth.
Selection only:
python3 scripts/select_reporting_guidelines.py \
assets/study_profile_template.json
Selection plus coverage:
python3 scripts/select_reporting_guidelines.py \
assets/study_profile_template.json \
--coverage assets/reporting_checklist_template.csv
Profile fields:
schema_version: 2.0profile_idstudy_types: identifiers such as randomized_trialreport_kind: results, protocol, abstract, or data_releasefeatures: for example ai_based, ai_intervention, large_language_modeldomains: for example health, genomics, proteomicsCoverage columns:
guideline_iditem_id: aggregate main item number for guidelines with a known main countstatus: reported, partly_reported, not_reported, not_applicable, not_assessedlocation: required for reported or partly reported itemsrationale: required for not-applicable itemsThe catalog is assets/reporting_guidelines.json, verified on the date embedded in that file. It does not fetch live updates. The output deliberately has no percentage or quality score.
python3 scripts/validate_claim_evidence.py \
assets/claim_evidence_matrix_template.csv
Columns:
claim_idlocationclaim_typeclaim_summary: input-only; never echoedevidence_ids: semicolon-delimited local IDssupport_level: supported, partly_supported, unsupported, not_assessedalignment_issue: direction, magnitude, population, outcome, timepoint, causal language, scope, uncertainty, selective reporting, other, or nonelimitation: input-only; never echoedrequested_action: input-only; never echoedRules include:
The tool does not determine whether evidence is true or sufficient.
python3 scripts/audit_statistics_reproducibility.py \
assets/statistical_reproducibility_template.json
The JSON contains:
Core areas:
The tool requires the core item IDs but permits additional safe IDs. It reports gaps and specialist-review triggers without a score.
The Markdown must use Pandoc-style citation keys:
The synthetic method is described elsewhere [@ref-synthetic-2026].
Several sources may be grouped [@ref-one; @ref-two].
Run:
python3 scripts/audit_citations.py \
local-manuscript.md \
assets/citation_references_template.csv
Reference CSV columns:
reference_idtitleauthorsyeardoiurlverification_status: verified_primary, verified_secondary, or not_verifiedThe audit finds:
It validates DOI/URL shape only. It does not resolve identifiers, search the web, verify existence, or determine whether a reference supports a claim.
The intake must pass first:
python3 scripts/generate_review_scaffold.py \
completed-intake.json \
-o private-review.md
The generator:
assets/review_scaffold_template.mdIt refuses unresolved intake controls and implicit overwrite.
python3 scripts/lint_review.py private-review.md
Required headings:
# Comments to authors# Confidential comments to editorStructured comment headings:
### Major comment M1### Minor comment m1Each comment must contain non-placeholder values for:
LocationObservationEvidence or criterionWhy it mattersRequested actionThe linter flags:
Lexical lint has false positives and false negatives. Human review remains required.
All JSON-reporting CLIs accept:
-o local-report.json
To replace an existing output deliberately:
--force
Do not place outputs in a synced or shared directory unless the authorization and venue policy permit it. Delete or retain inputs, drafts, and reports according to the documented review policy.