Research integrity checks
Most integrity failures in the literature are not fraud - they are
transcription errors, stale numbers from an earlier analysis run,
rounding inconsistencies and copy-paste slips that nobody checked
because checking by hand is tedious. That is exactly what makes
this agent work: the checks are mechanical, the cost of running
them is minutes, and finding an error BEFORE submission converts a
potential correction notice into an edit. Frame every finding
accordingly: this is proofreading for numbers, not accusation.
Internal consistency of reported statistics
Checks that need only the manuscript text:
- statcheck-style recomputation: for every reported test statistic
with degrees of freedom and p-value (t, F, chi-square, r...),
recompute the p from the statistic and df and flag mismatches -
the classic detectable error class in psychology and beyond
(the statcheck R package automates this for standard reporting
formats; the same arithmetic can be applied directly).
- GRIM-style granularity: reported means of integer data with
known sample size are only possible on a discrete grid. With
n=25 the grid is multiples of 1/25, so a reported mean of 3.47
is impossible (3.47 x 25 = 86.75, and 25 integer responses
cannot sum to that) while the neighbouring 3.48 is attainable.
Work out the grid before calling a value impossible - the
near-miss is the whole point of the test. The same applies to
percentages, with one extra step: a reported percentage is
usually rounded, so test the whole interval it could have come
from, not the point value. 34% of n=170 gives 57.8, but 57 and
58 both round to 34%, so 34% is perfectly reportable; 34% of
n=3 is not, because no count rounds there. The scrutiny R
package implements these granularity tests.
- Arithmetic on the page: totals that sum, percentages that reach
100 within rounding, subgroup Ns that add to the total N,
confidence intervals consistent with the point estimate and SE.
The stronger check: manuscript vs pipeline
When the analysis code is available (it should be -
rseng-reproducibility), do not settle for internal consistency:
- Regenerate the numbers: run the pipeline and compare every
reported statistic, table cell and figure value against the
fresh outputs, within stated rounding. Mismatches usually mean
the text cites an OLDER run - exactly the silent staleness that
one-command reproducibility (rseng-reproducibility) and
generated-not-transcribed reporting prevent.
- Kill transcription at the source where feasible: propose
generating tables and inline statistics from the pipeline
outputs rather than retyping them; every hand-copied number is
a defect opportunity.
- Check the figure data too: axis ranges, group counts and
plotted Ns against the data files (a figure from the wrong CSV
survives visual review easily).
Citations and provenance
- Retraction screen of the bibliography, and verification that
every reference is real and correctly attributed - delegated to
rseng-citation-hygiene; run it as part of this battery.
- Provenance completeness: data sources identified with versions
and access dates (rseng-data-management), software versions and
seeds recorded (rseng-reproducibility), AI contributions declared
honestly in aidecl.yaml and manuscript disclosure sections
(rseng-ai-declaration) - venues increasingly ask, and the honest
record is the one that already exists.
The pre-submission battery
Run as one auditable pass and write the report into the project:
- Statistics: statcheck-style + granularity checks over the
manuscript.
- Regeneration: pipeline outputs vs reported numbers, tables,
figures.
- Citations: existence, attribution, retraction screen
(rseng-citation-hygiene).
- Data/code availability statements true in practice: links
resolve, the deposit exists, the archive matches the text
(rseng-archiving, rseng-reproducibility).
- Declarations complete: contributions, AI use, conflicts as the
venue requires.
Report findings with locations and severities; fix-and-rerun until
clean, and keep the final report with the submission record - it is
evidence of diligence, and the checklist for the revision round.
Boundaries
An agent flags inconsistencies; it does not adjudicate misconduct.
If checks surface a pattern that looks deliberate in someone
ELSE's work, the route is the venue's editorial process and COPE-
style guidance, via the user and the responsible institutional
channels - not a public accusation from a tool report. For the
user's own work, everything found is simply fixed before
submission, which is the point of checking first.
Working with this skill
This skill is source-independent: its authority is the published
consistency-check methods (statcheck, GRIM and granularity
testing) and the services linked below.
Learn more (verified):
Related skills
Check whether any of these applies before moving on:
- rseng-ai-declaration - declarations complete at submission
- rseng-archiving - availability statements must resolve
- rseng-citation-hygiene - reference existence and retraction screens
- rseng-fact-checking - do sources support the claims
- rseng-numerical-accuracy - numeric mismatches may be float issues
- rseng-reproducibility - regenerate numbers from the pipeline
1---2name: rseng-research-integrity3description: Covers integrity checks on research outputs before submission or release: statcheck/GRIM-style consistency of reported statistics, agreement between manuscript numbers and pipeline outputs, retraction screening of cited work, sanity checks on tables and figures against the data, and an auditable pre-submission checklist. Use PROACTIVELY before manuscript submission or release of result-bearing reports, when reported numbers are transcribed from analysis outputs, and when the user asks to check a paper's numbers, mentions statcheck, GRIM or integrity checks, or suspects a mismatch between code outputs and text. (Reference existence and retractions: rseng-citation-hygiene; claim-source support: rseng-fact-checking; concealment requests: rseng-honesty.)4license: CC-BY-4.05---67# Research integrity checks89Most integrity failures in the literature are not fraud - they are10transcription errors, stale numbers from an earlier analysis run,11rounding inconsistencies and copy-paste slips that nobody checked12because checking by hand is tedious. That is exactly what makes13this agent work: the checks are mechanical, the cost of running14them is minutes, and finding an error BEFORE submission converts a15potential correction notice into an edit. Frame every finding16accordingly: this is proofreading for numbers, not accusation.1718## Internal consistency of reported statistics1920Checks that need only the manuscript text:2122- statcheck-style recomputation: for every reported test statistic23 with degrees of freedom and p-value (t, F, chi-square, r...),24 recompute the p from the statistic and df and flag mismatches -25 the classic detectable error class in psychology and beyond26 (the statcheck R package automates this for standard reporting27 formats; the same arithmetic can be applied directly).28- GRIM-style granularity: reported means of integer data with29 known sample size are only possible on a discrete grid. With30 n=25 the grid is multiples of 1/25, so a reported mean of 3.4731 is impossible (3.47 x 25 = 86.75, and 25 integer responses32 cannot sum to that) while the neighbouring 3.48 is attainable.33 Work out the grid before calling a value impossible - the34 near-miss is the whole point of the test. The same applies to35 percentages, with one extra step: a reported percentage is36 usually rounded, so test the whole interval it could have come37 from, not the point value. 34% of n=170 gives 57.8, but 57 and38 58 both round to 34%, so 34% is perfectly reportable; 34% of39 n=3 is not, because no count rounds there. The scrutiny R40 package implements these granularity tests.41- Arithmetic on the page: totals that sum, percentages that reach42 100 within rounding, subgroup Ns that add to the total N,43 confidence intervals consistent with the point estimate and SE.4445## The stronger check: manuscript vs pipeline4647When the analysis code is available (it should be -48rseng-reproducibility), do not settle for internal consistency:4950- Regenerate the numbers: run the pipeline and compare every51 reported statistic, table cell and figure value against the52 fresh outputs, within stated rounding. Mismatches usually mean53 the text cites an OLDER run - exactly the silent staleness that54 one-command reproducibility (rseng-reproducibility) and55 generated-not-transcribed reporting prevent.56- Kill transcription at the source where feasible: propose57 generating tables and inline statistics from the pipeline58 outputs rather than retyping them; every hand-copied number is59 a defect opportunity.60- Check the figure data too: axis ranges, group counts and61 plotted Ns against the data files (a figure from the wrong CSV62 survives visual review easily).6364## Citations and provenance6566- Retraction screen of the bibliography, and verification that67 every reference is real and correctly attributed - delegated to68 rseng-citation-hygiene; run it as part of this battery.69- Provenance completeness: data sources identified with versions70 and access dates (rseng-data-management), software versions and71 seeds recorded (rseng-reproducibility), AI contributions declared72 honestly in aidecl.yaml and manuscript disclosure sections73 (rseng-ai-declaration) - venues increasingly ask, and the honest74 record is the one that already exists.7576## The pre-submission battery7778Run as one auditable pass and write the report into the project:79801. Statistics: statcheck-style + granularity checks over the81 manuscript.822. Regeneration: pipeline outputs vs reported numbers, tables,83 figures.843. Citations: existence, attribution, retraction screen85 (rseng-citation-hygiene).864. Data/code availability statements true in practice: links87 resolve, the deposit exists, the archive matches the text88 (rseng-archiving, rseng-reproducibility).895. Declarations complete: contributions, AI use, conflicts as the90 venue requires.9192Report findings with locations and severities; fix-and-rerun until93clean, and keep the final report with the submission record - it is94evidence of diligence, and the checklist for the revision round.9596## Boundaries9798An agent flags inconsistencies; it does not adjudicate misconduct.99If checks surface a pattern that looks deliberate in someone100ELSE's work, the route is the venue's editorial process and COPE-101style guidance, via the user and the responsible institutional102channels - not a public accusation from a tool report. For the103user's own work, everything found is simply fixed before104submission, which is the point of checking first.105106## Working with this skill107108This skill is source-independent: its authority is the published109consistency-check methods (statcheck, GRIM and granularity110testing) and the services linked below.111112Learn more (verified):113 - https://github.com/MicheleNuijten/statcheck - statcheck114 - https://github.com/lhdjung/scrutiny - scrutiny (GRIM and115 granularity tests)116 - https://gitlab.com/crossref/retraction-watch-data - Retraction117 Watch database118 - https://help.openalex.org - OpenAlex API119120<!-- related-skills:begin -->121122## Related skills123124Check whether any of these applies before moving on:125126- rseng-ai-declaration - declarations complete at submission127- rseng-archiving - availability statements must resolve128- rseng-citation-hygiene - reference existence and retraction screens129- rseng-fact-checking - do sources support the claims130- rseng-numerical-accuracy - numeric mismatches may be float issues131- rseng-reproducibility - regenerate numbers from the pipeline132133<!-- related-skills:end -->