This release is a pre-release and may not be stable for production use.
PaperCI
Continuous integration for evidence-backed scientific stories and hypotheses.
PaperCI helps researchers answer two linked questions:
Given the results we actually have, what is the strongest scientific story we can responsibly tell?
Which ambitious, falsifiable mechanisms are worth testing next without pretending they are already established?
It converts experimental results into traceable evidence cards, proposes competing paper arcs, tests every claim against its evidence, and makes the most important remaining uncertainties explicit for human review. A separate frontier track turns those boundaries into speculative Hypothesis Cards with competing explanations, predictions, falsifiers, decisive tests, and evidence-upgrade paths.
PaperCI is designed to improve when foundation models improve. Models may propose better interpretations and stories; the project owns the stable evidence format, claim rules, provenance, evaluation cases, and human review workflow.
Try it in two minutes
PaperCI is pre-alpha and is distributed through PyPI pre-releases. Install the latest verified pre-release, then create a complete synthetic project without an API key or network call.
$ python -m venv .venv
$ source .venv/bin/activate
$ python -m pip install --pre paperci
$ paperci demo
$ cd paperci-demo
$ paperci lint --fail-on never
$ paperci compare
$ paperci compare-hypotheses
The demo creates two synthetic result files, traceable evidence and claims, three
competing stories, three frontier hypotheses, generation manifests, and
paperci-report.md. It intentionally contains an overstated mechanism claim.
paperci lint flags PCI-MECH-001; the frontier track retains ambitious mechanisms
as explicitly speculative and falsifiable research directions.
See the ten-minute pilot to evaluate PaperCI with a safe synthetic case and report first-run friction.
Build a project manually
From a source checkout installed with python -m pip install -e .:
$ paperci init demo --id demo-study --title "Demo study"
$ paperci import-table demo results.csv --statement-column finding --unit-column unit
$ paperci add demo --statement "Target expression was higher after exposure." \
--source notes://pilot --locator result-1
$ paperci claim demo --text "Exposure is associated with higher target expression." \
--type association --strength supports --support E001
$ paperci claim demo --text "Exposure directly activates the target mechanism." \
--type mechanism --strength demonstrates --support E001 --depends-on C001
$ paperci propose demo --arcs 3
$ paperci lint demo --fail-on never
$ paperci compare demo
$ paperci hypothesize demo --count 3
$ paperci compare-hypotheses demo
$ paperci explain PCI-MECH-001
$ paperci report demo -o demo/paperci-report.md
For a non-interactive smoke test from this repository:
paperci doctor examples/minimal-project.yaml
paperci validate examples/minimal-project.yaml
paperci propose examples/minimal-project.yaml --arcs 3 --dry-run
paperci lint examples/minimal-project.yaml --fail-on never
paperci compare examples/minimal-project.yaml
paperci hypothesize examples/minimal-project.yaml --count 3 --dry-run
paperci report examples/minimal-project.yaml -o paperci-report.md
The repository example also intentionally contains the same overstated mechanism
claim, so paperci lint should flag PCI-MECH-001.
The report contains:
- distinct candidate arcs when the claim register supports different commitments;
- the evidence path behind every major claim;
- unsupported, overstated, or contradictory claims;
- a figure-question sequence linked to existing evidence and claims;
- alternative explanations that remain open;
- explicit gaps, run provenance, and human-review boundaries.
ProjectSpec 0.4 also records claim prerequisites with depends_on. The built-in
provider follows this acyclic graph to recover long story chains instead of selecting
only isolated claims. Nested outcomes can record parent_unit and per-group
clusters, so tumour-, organoid-, well-, or cell-level counts do not silently stand
in for independent animals or donors.
Three adoption modes
| Mode | Input | Promise |
|---|---|---|
sketch |
Short result notes | Fast story exploration; everything remains unverified |
verified |
Notes plus source locators and review | Traceable claims suitable for team discussion |
connected |
Analysis-pipeline adapters | Re-runnable evidence updates and CI checks |
The user can start in sketch and progressively add provenance. A perfect data
model is not a prerequisite for receiving value.
What PaperCI is not
- not a journal acceptance predictor;
- not a replacement for domain experts, statisticians, or reviewers;
- not an autonomous manuscript factory;
- not permission to promote association, motif enrichment, or prediction into causality;
- not a system that silently uploads unpublished results.
Design principles
- Evidence before eloquence. A fluent claim with weak support still fails.
- Competing stories, not one confident answer. The system exposes trade-offs.
- Hard gates before taste. Validity is pass/fail; editorial appeal is comparative.
- Local first. Core inspection and linting work without a network or model API.
- Model agnostic. Model adapters are replaceable and all runs are recorded.
- Git friendly. Canonical YAML/JSON is readable, diffable, and reviewable.
- Human promotion. Generated evidence and claims never self-verify.
- Dual-track reasoning. Current claims and frontier hypotheses remain separate records.
- No journal score. Ambition is multidimensional; novelty and publication fit require review.
Repository design package
- Product contract
- Technical architecture
- Open specification
- Core lint rules
- Story evaluation
- Table import
- Mechanistic-biology profile
- Ecosystem and differentiation
- MVP and roadmap
- Release process
- Community and governance
- Combined JSON Schema
- Minimal example
The repository contains the local evidence-bound story workflow plus an offline frontier-hypothesis baseline. The built-in hypothesis provider creates transparent research scaffolds; it does not search literature, nominate a named molecular actor that is absent from the input, or predict journal acceptance. Remote and local foundation-model adapters remain future work.
Commands
| Command | Purpose | Network |
|---|---|---|
paperci demo |
Create and run a complete synthetic example | Never |
paperci init |
Create a readable paperci.yaml |
Never |
paperci import-table |
Import explicitly mapped rows as draft, unverified evidence | Never |
paperci add |
Add a draft evidence card | Never |
paperci claim |
Add an evidence-linked candidate claim | Never |
paperci propose |
Generate bounded candidate arcs with the built-in provider | Never |
paperci compare |
Compare active arcs by gates and coverage signals | Never |
paperci hypothesize |
Generate evidence-anchored, falsifiable frontier hypotheses | Never |
paperci compare-hypotheses |
Compare ambition dimensions without a journal score | Never |
paperci explain |
Explain a rule's trigger, rationale, limits, and remediation | Never |
paperci validate |
Check schema, references, sources, hashes, and promotion | Never |
paperci lint |
Apply deterministic scientific-story rules | Never |
paperci report |
Render a Markdown decision report | Never |
paperci doctor |
Check installation and project health | Never |
paperci lint --format sarif can feed findings into GitHub or another SARIF-aware
code-review system. CI may use --fail-on error; exploratory work may use
--fail-on never while retaining every finding.
Project status
Pre-alpha. The offline CLI separates evidence-bound claims from frontier
hypotheses, validates explicit reasoning dependencies, and includes the first
benchmark-derived semantic and nested-unit rules. Hypothesis novelty remains
unchecked unless a dated, traceable literature assessment is recorded. The perfect
score on the single constructed Nature fixture is a regression result, not a general
performance estimate. No output should be used in a submission or experimental
decision without independent scientific review.
License
Code, schemas, tests, and repository documentation are licensed under Apache-2.0. Imported benchmark artifacts retain their source-specific licenses and must include a case manifest before public redistribution. See LICENSE.
Contributing
Start with CONTRIBUTING.md. Scientific rules require failing and passing fixtures, an actionable remediation, known exceptions, and review ownership. Security or privacy concerns should follow SECURITY.md, not a public issue containing unpublished data.
Repository: github.com/XiaofengZhou16/PaperCI
Citation
If PaperCI contributes to published work, cite the exact release or commit used so
the scientific rules and ProjectSpec behavior remain reproducible. GitHub can export
the repository citation from CITATION.cff; release-specific citation
metadata will be attached to public releases when archival deposition is available.
Metadata
Release files for paperci 0.5.0a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| paperci-0.5.0a2.tar.gz | 100.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paperci-0.5.0a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 162.5 kB
Release files / paperci-0.5.0a2.tar.gz
| Download URL | paperci-0.5.0a2.tar.gz |
|---|---|
| Size | 100.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d3c31c57748886a923ac4adb8948556020e568b3ea92e38f4fee98732f06bc5f
|
|
BLAKE2b-256 checksum How to use checksums |
9327ff79603a9c70b1866af18d48e41ee8235b883b3ee9ed32b9b6fe8f48e67c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / paperci-0.5.0a2-py3-none-any.whl
| Download URL | paperci-0.5.0a2-py3-none-any.whl |
|---|---|
| Size | 61.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc797ecde404528ab1f4d336797daca0c9dfd36243dd27d3692499e7d1073ca4
|
|
BLAKE2b-256 checksum How to use checksums |
14aefb9d82b68644ce5720ed450ec54f0ff88af3292c1ce56bb7fe23b140631c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log