| name | review-lifecycle |
| description | Skill for managing the full peer review lifecycle: intake validation, reviewer dispatch, review collection, editorial synthesis, revision cycles, re-review, and convergence determination.
|
Review Lifecycle
Use this skill when managing the end-to-end peer review process. The lifecycle
follows a strict state machine with well-defined transitions.
State Machine
SUBMITTED → INTAKE → (DESK_REJECT | IN_REVIEW)
IN_REVIEW → SYNTHESIS → (ACCEPTED | REVISION | REJECTED)
REVISION → RE_REVIEW → CONVERGENCE_CHECK → (ACCEPTED | REVISION | EXHAUSTED)
Phase Transitions
SUBMITTED → INTAKE
Triggered by: /review <folder>
Actions:
- Validate folder structure
- Parse metadata.yaml
- Run compilation check
- Hash all artifacts
- Initialize
.review/ workspace
State update:
phase: INTAKE
round: 0
INTAKE → DESK_REJECT
Triggered by: validation failure (missing required files, won't compile)
Actions:
- Produce desk reject report with specific failures
- List exactly what needs to be fixed
State update:
phase: DESK_REJECT
round: 0
terminal: true
reason: "<specific validation failures>"
INTAKE → IN_REVIEW
Triggered by: validation passes
Actions:
- Construct 3 reviewer profiles
- Create isolated worktrees
- Dispatch reviewer agents (blinded)
- Optionally dispatch Reproducibility Auditor
State update:
phase: IN_REVIEW
round: 1
reviewers_dispatched: [alpha, beta, gamma]
auditor_dispatched: true | false
IN_REVIEW → SYNTHESIS
Triggered by: all 3 reviews collected
Actions:
- Verify all review YAML files exist and are valid
- Dispatch Associate Editor
- AE produces meta-review and decision
State update:
phase: SYNTHESIS
round: 1
reviews_collected: [alpha, beta, gamma]
SYNTHESIS → ACCEPTED
Triggered by: AE decision = "accept"
Actions:
- Produce camera-ready package
- Generate review certificate
- Archive all review materials
SYNTHESIS → REJECTED
Triggered by: AE decision = "reject"
Actions:
- Produce detailed rejection report
- Include actionable guidance for resubmission
- Archive all review materials
SYNTHESIS → REVISION
Triggered by: AE decision = "major_revision" or "minor_revision"
Actions:
- Dispatch Revision Agent with action items
- Wait for revised submission
REVISION → RE_REVIEW
Triggered by: revision package complete
Actions:
- Send revision to all 3 reviewers
- Include response letter and meta-review (unblinding)
- Each reviewer produces re-review
RE_REVIEW → CONVERGENCE_CHECK
Triggered by: all 3 re-reviews collected
Actions:
- AE re-synthesizes
- Check convergence criteria:
- All reviewers recommend accept/accept_minor?
- No unresolved critical concerns?
- No new blocking concerns?
CONVERGENCE_CHECK → ACCEPTED / REVISION / EXHAUSTED
Decision:
- All pass → ACCEPTED
- Issues remain and round < max_rounds → REVISION (iterate)
- round ≥ max_rounds or diminishing returns → EXHAUSTED
Diminishing Returns Detection
Track mean score across rounds:
Round 1: mean = X.X
Round 2: mean = Y.Y (Δ = Y.Y - X.X)
Round 3: mean = Z.Z (Δ = Z.Z - Y.Y)
If Δ ≤ 0.3 for 2 consecutive rounds → EXHAUSTED
State File Format
The state file at .review/state.yaml tracks the full lifecycle:
phase: "<current phase>"
round: <current round number>
max_rounds: 3
created: "<ISO 8601>"
last_updated: "<ISO 8601>"
submission_hash: "<SHA-256>"
venue: "<venue_target>"
paper_type: "<paper_type>"
decisions:
- round: 1
decision: "major_revision"
timestamp: "<ISO 8601>"
- round: 2
decision: "accepted"
timestamp: "<ISO 8601>"
terminal: true | false
terminal_reason: "<reason if terminal>"