- Citation verification treats a reference cited by URL as a web source, not
a registry match. Only an identity-confirmed reference can ground an
integrity finding, and an empty citation-results block tells the panel
that nothing was checked.
- Workers AI runs as an OpenAI-compatible panel provider, metered against its
free daily allocation, with a usage guard per provider. The panel roster
and its fallback routes are updated, and the example config matches the
live roster.
- A replay harness runs real submissions through intake up to the panel and
grades each stage against an answer key.
- Keywords reach the public record through every registry writer.
- Curator notifications go out without link previews, and test fixtures use
Crossref's test prefix.
- Decision letters name the removed references list by its size and name the
earlier submission a revision answers. The HTML part keeps the templates'
line breaks, and revise letters describe what a resubmission's revi…
27 days ago
Before the next submission: a revised version links only under the same verified ORCID; a DOI is dead only when doi.org has no such DOI (an outage or another registration agency is "unchecked", never a finding); the authors' surnames are blinded wherever the panel reads them; the per-reference citation lines sit inside the untrusted submission block and the RQC evidence block is declared untrusted; "unanimous" names the reviewers' shared vote; the code digest fetches at most 60 files in 180 s; a forced re-draft keeps the first decision time and the audit log records a draft, never a send.
New dimension evidence_use (public): the RQC prompt now carries an
EVIDENCE_SUPPLIED block built from the citation verification JSON (the
counts and every DOI MISMATCH / DOI DEAD / UNVERIFIABLE / text-matched
line) and the code package digest (the shipped code's definitions and the
lines defining the paper's constructs), blinded with the panel's
compaction spans. A slot that says "citations verified" against mismatch
or dead lines, or "implements the measure as described" when the digest
shows another definition, scores 1 and trips the flag.
The scale is re-anchored: 5 exemplary, 4 clean, 3 adequate with gaps, 2 a
defect the curator must see, 1 fatal. Before, 83 of the 90 scored slots on
record were 5s and no audit had ever flagged.
Calibrated against earlier review records (written to an audit folder, never
the live record): reviews that had called dead or mismatched references
clean now score low on evidence_use and trip the flag.
Two defects found by the calibration and fixed her…
28 days ago
Citation identity, code package digest, rubric depth, and the revise letter
A citation that carries a DOI is now judged by that DOI: it is resolved on
Crossref, then DataCite, and the record title is compared with the cited
title (authors and year when no title was cited). A DOI that resolves
nowhere is DOI DEAD; one that resolves to another work is DOI MISMATCH;
neither is ever verified, whatever a title or author-year search finds
afterwards. The search only names the probable intended record for the
panel and the letter. An author-year match with a different title is no
longer verified when the citation has a title. The verification report
carries an evidence level per line (confirmed / matched / mismatch /
dead / unverifiable) and no longer calls itself ground truth; the panel
prompt scores identifier disagreement under citation integrity. The
cited title survives verification as cited_title. A confirmed DOI that
CiteStamp does not know is appended to reviews/citestamp_coverage_gaps.jsonl.
code_digest.py fetches the author's declared Zenodo or GitHub arch…
30 days ago
Redaction: a vendor tied to a panel seat is fatal in prose too and the RQC's "Claude-position" reads "first-seat"; the boilerplate says human curators, not human editors
The RQC on the first external paper called one seat "the Claude-position
reviewers"; the jargon rewrite covered "slot" but not that, and reviewer
prose sits outside the fatal vendor scan by design (a paper's own AI-use
disclosure is legitimate content there). A vendor or model name tied to a
seat is never a disclosure, so it is now fatal wherever it appears, and the
observed phrasing is rewritten before the gate. "Rest with human editors"
and its siblings in the review boilerplate, the RQC status line, the rubric,
the legacy templates and the README now say human curators or the curation
team.
Add HF Space frontmatter, landing page; generalize notify channel docs
Single-commit consolidation of the work between the initial commit
and public release. Folds in:
- The FastAPI submission front-end as the intake/ subpackage,
removing the prior sibling-import indirection in favor of normal
Python imports.
- Module renames to the public-facing identifiers
(editorial_workflow, submission_intake, redaction,
repository_deposit) and matching systemd unit names.
- Migration of deployment URLs and the monitoring push token to
environment variables sourced from /etc/icsac/editorial.env.
- Verdict refactor: accept, revise-and-resubmit (default decline),
scope-reject (reserved for submissions outside the institutes
editorial remit). The reviewer prompt and decision aggregator
match the calibration rubric line-by-line.
- AI Provenance Signal as the canonical name for the AI-style
detection dimension across the rubric, reviewer prompt, JSON
schema, and author-facing copy.
- README, rubrics, templates, and config.example.py aligned with
the …
Open-source release of the AI editorial system that reviews every
submission to icsacinstitute.org/submit.
Includes: intake, citation verification, five-reviewer panel, review
quality control, redaction layer, decision dispatch, author
correspondence, and post-acceptance publication.
Worked examples of the system reviewing real accepted ICSAC papers
are included in reviews/.