The editorial workflow
The state machine every submission moves through, from draft to published.
The state machine#
Every submission holds exactly one status, and exactly one path exists between any two of them. Nothing in OAJEA writes a new status directly — every change goes through the workflow service, which checks the move is legal before it happens. A transition not declared in the workflow configuration cannot occur, no matter who is asking.
DRAFT ──submit──▶ SUBMITTED ──send_to_review──▶ IN_REVIEW (round n)
│
┌──accept──────────────────────────────────────┤
│ minor/major_revisions ▶ REVISIONS_REQUESTED │
│ └─upload_revision─▶ IN_REVIEW (n+1) │
│ resubmit ▶ SUBMITTED │
│ decline ▶ DECLINED (terminal) │
▼
ACCEPTED ─▶ COPYEDITING ─▶ PRODUCTION ─▶ SCHEDULED ─▶ PUBLISHED
The statuses#
Draft — the author is still assembling the submission; nobody else can see it. Submitted — complete and waiting to be sent to review. In review — reviewers are assigned and one review round is open. Revisions requested — a decision has gone back to the author asking for changes. Accepted — the science is settled; what remains is production. Copyediting, then production — the manuscript is being turned into a published article. Scheduled — production is finished and the article is queued for a publish date. Published — live on the public site. Declined is terminal and sits outside this chain: nothing moves out of it.
The actions#
An editor moves a submission from submitted or revisions_requested
into review with send_to_review, which is the only action that opens a review round. From
in_review an editor records one of five decisions: accept moves straight
to copyediting; minor_revisions or major_revisions both land on
revisions_requested — the distinction is a label for the author's expectations, not a
different destination; resubmit sends the manuscript back to the unassigned queue as a
fresh submitted item; decline ends it. An author responds to a revision
request with upload_revision, which is the other action that opens a new round. Once
accepted, send_to_copyediting and send_to_production move the
piece through production, schedule queues a publish date, and publish —
reversible with unpublish — puts it on the public site.
Rounds#
A submission's current_round increments only on send_to_review and
upload_revision — the two actions that put a manuscript back in front of reviewers. All
other actions leave the round number where it is. Reviewer assignments, review forms and reviewer
comments are all recorded against a specific round, which is how the system keeps a second round's
reviews from mixing with the first's, and how an author's revision history stays intact even after
several rounds.
The audit trail#
Every transition — legal by definition, since illegal ones are refused before anything is written — appends a row recording who acted, the status before and after, the round, and any note attached to the decision. Nothing is overwritten and nothing is deleted; the audit trail is the permanent record of how a submission reached its current state, and it is what the self-test suite checks after driving a submission through the whole machine.
Decline is terminal
There is no transition out of declined. A declined submission cannot be revived, resubmitted in place, or moved to any other status — an author who wants another attempt must start a new submission. Decline it only when you mean it.