- 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…
Persistence is the journal of record: journal-article deposits with the open volume; author emails say online first
Every accepted paper is an article of Persistence from the day its DOI
registers; the paperback and ebook are the volume annual edition and print
inclusion stays not guaranteed. CROSSREF_CONTENT_TYPE defaults to
journal-article again; the deposit adds the journal_issue/journal_volume block
(schema order journal_metadata, journal_issue, journal_article; the issue block
carries the volume online year because the schema requires a date there) from
the new CROSSREF_JOURNAL_VOLUME / CROSSREF_JOURNAL_VOLUME_YEAR settings. The
DOI suffix is unchanged. Acceptance, published and follow-up emails describe
the online-first journal and the annual print edition.
No replies on automated mail; quote permission as a tick box; HF 402 alert; Crossref TEST watcher
Every author-facing email now offers links and buttons only. Where a reply was
the mechanism it is gone: support starts at help@icsacinstitute.org with the
submission ID in the subject line; the quote-permission ask moved to a tick box
on the response page (author_approval.record quote_ok -> response entry,
state.author_quote_ok, public_view, curator ping; intake_server passes it).
Scope-reject and received templates say "curation team", never "the curator".
review.run_hf_review: on HTTP 402 (monthly Inference Providers credits spent)
the curation team is told once per process; the model check cannot see it.
intake/scripts/crossref-test-probe.sh: hourly cron until test.crossref.org
accepts the reset password; one ping when green, one if still red after 48 h.
Post-publication asks: one reviewer invitation follow-up, one stay-involved paragraph; drafts only
intake/post_publication.py: FOLLOWUP_DAYS (14) after crossref_registered_at,
exactly ONE follow-up per paper, the Reviewer invitation
(templates/submission_followup.md), DRAFTED to Gmail by notify_author.send_followup
and pinged to the curation team; never sent, never repeated. Stop conditions are
mechanical and read the author's own response record first: never offered the
exclusion choices (pre-2026-09-27 accept), newsletter excluded, hold, withdrawal,
ORCID already on members.yaml / supporters.yaml, registries unreadable (skip and
say so), no email. Outcomes are written to state.json (followup_drafted_at /
followup_skipped_at + reason) and the audit log; a reservation is written before
the Gmail append and a lost attempt closes the record instead of drafting blind;
per-paper file lock; atomic state replace; three returned failures close the
record with one ping. Batch tick step 3b (production only; --include-test for
rehearsals). Test records are never delivered plain: T2 -> outbox,…