| name | final-review |
| description | 投稿前最终审阅编排器。每轮加载 paper 与 SCIPAPER_STANDARD 作为框架,并在独立 worktree 中运行 paper-review(A–R 全维度,含叙事主线与对抗升级)、figure-review、de-ai(--audit-only 结构 tell 审计)和 parent-level modern-physics-review。合并 sci-paper.feedback.v1 typed findings:科学完整性 blocker 必须解决,L0 target 必须清零,strong advisory 必须 disposition,ordinary advisory 与 unavailable axes 保留报告。连续多轮验证该状态稳定,不把所有 editorial feedback 强行清零,也不输出通用 paper PASS/FAIL。Use for final-review、投稿前总审、submission-readiness evidence gathering 和所有审查 skill 的隔离编排。 |
| disable-model-invocation | false |
| argument-hint | <file_path> [--max-rounds N] [--skip <skill>[,<skill>...]] [--field <name>] [--out <dir>] [--require-consecutive N] |
final-review — isolated typed-review orchestrator
Normative authority: docs/SCIPAPER_STANDARD.md.
This skill verifies a stable, disposition-complete review state. It does not certify
journal acceptance, authorship, aesthetic perfection or a universal paper PASS.
The required review components are:
/sci-paper:paper as the writing and L0 framework;
/sci-paper:paper-review for A–R source-traced scientific review, including
the narrative-spine protocol (dimension E) and adversarial escalation (dimension M);
/sci-paper:figure-review for compiled-page figure evidence;
/sci-paper:de-ai in --audit-only mode for the structural-tell and de-AI
measurement audit;
- host-level modern-physics-review, launched by the parent orchestrator to avoid nested agents.
/sci-paper:condense is an action skill, not a reviewer: redundancy findings
surface through paper-review dimension I, and the parent routes their fixes to
condense during §3.7. Keeping detection in one lane avoids duplicate review surfaces.
0. Hard orchestration rules
- Run, do not remember. Every round launches fresh isolated reviewers for all non-skipped
components. Prior reports are comparison artifacts, not substitutes for current review.
- Isolation is mandatory. paper-review, figure-review, de-ai and MPR run
in separate
isolation: worktree agents. The parent loads paper and the standard, merges
reports and applies authorized fixes.
- No nested agents. paper-review receives
--no-isolated-mpr; the parent launches MPR at
the same level as the other reviewers. paper-review's M.2 escalation is in-process by design.
Any child attempt to spawn an agent is a prompt error.
- Preserve evidence, not verdict authority. The parent may not discard a child finding,
but must verify/deduplicate it and type its consequence. A CONFIRMED critique is not
automatically an integrity blocker.
- Merge by structured contract. Each child returns or is normalized to
sci-paper.feedback.v1; text and JSON derive from the same findings.
- Scientific blockers are non-waivable. Incorrect math/physics/statistics, source or
citation mismatch, leakage, contradiction, broken required build and missing required
artifacts must be resolved or verified false positives.
- L0 target is zero. Tier A, em-dash and Tier B excess must be removed.
- Advisories use dispositions. Strong advisories must be acted, accepted, rejected as
false positives, or pending with a stated reason. Ordinary advisories remain visible and
do not have to disappear.
- Measurement states remain explicit. A skipped, failed or unavailable axis is
unmeasured/degraded, not clean.
- Minimum effective fixes only. Every edit maps to a finding ID; no opportunistic
rewriting or unrelated refactor.
- Stable rounds verify state, not zero suggestions.
--require-consecutive rounds must
reproduce a disposition-complete state with no new blockers/L0 and no unexplained change
in strong advisories.
- Do not expand budget silently.
--max-rounds exhaustion returns
BREAK_WITH_USER_DECISION with the exact unresolved state.
1. Invocation and states
/sci-paper:final-review <file_path> [flags]
Defaults:
--max-rounds 10
--require-consecutive 2
- no skipped reviewers
- output under
final-review-out/<date>__<slug>/
Valid skips: paper-review, figure-review, de-ai, mpr.
A skip must be user-explicit, remains visible as unmeasured, and cannot be described as
reviewed. A figure-less document normally yields not_applicable, not PASS.
Workflow states:
IN_PROGRESS
DISPOSITION_COMPLETE
BREAK_WITH_USER_DECISION
SUBAGENT_FAILURE
PROMPT_VIOLATION
USER_INTERRUPTED
2. Preparation
- Read the current target manuscript completely.
- Read
docs/SCIPAPER_STANDARD.md and the current SKILL.md files for paper, paper-review,
figure-review and de-ai.
- Resolve field evidence; missing assets remain explicit.
- Create the output root and round directory.
- Initialize a finding registry keyed by stable finding ID plus semantic deduplication key
(rule, location, evidence).
- Record target path, current revision/hash, build system and selected field.
3. Each review round
3.1 Load the framework
In the parent context, invoke /sci-paper:paper and read the normative standard. Record their
current versions/paths in paper-baseline.md. This provides policy, not a child verdict.
3.2 Isolated paper-review
Launch a worktree agent with a self-contained prompt:
- cold-read the current target and all sources;
- invoke
/sci-paper:paper-review <target> --no-isolated-mpr --field <field>;
- do not spawn any child agent (M.2 escalation runs in-process);
- return the complete typed report, including A–R coverage (dimension E narrative-spine
answers and dimension M record included), measurement states, blockers, L0 targets,
strong/ordinary advisories, dispositions and build evidence;
- set isolated MPR state to
SKIPPED_FOR_ORCHESTRATOR.
If it attempts nesting, return NESTED_AGENT_REJECTED; the round becomes
PROMPT_VIOLATION and must be reissued with the corrected prompt.
3.3 Isolated figure-review
Launch a separate worktree agent to invoke /sci-paper:figure-review on the current compiled
paper. It must return:
- render/build measurement state;
- figure inventory and source provenance;
- typed blockers and advisories (including canvas-balance measurements);
- explicit
not_applicable if no figures exist.
It must not return literal PASS/WARN as the merge interface.
3.4 Isolated de-ai audit
Launch a separate worktree agent to invoke /sci-paper:de-ai <target> --audit-only --field <field>. Audit-only runs Pass 1 (subsystem measurement) and Pass 2
(humanizer structural-tell audit) with no rewrite. It must return:
- the full
sci-paper.feedback.v1 measurement report with every axis state;
- L0 targets (Tier A / em-dash / Tier B excess) as
l0_target findings;
- structural-tell and distribution findings as ranked advisories;
- document-shape findings with their fidelity-free partition suggestions,
clearly marked apply-by-hand.
The parent applies L0 fixes and selected strong-advisory rewrites itself in §3.7
(or runs de-ai Pass 3 in the parent context); the auditor never edits.
3.5 Parent-level isolated modern-physics-review
Launch a sibling worktree agent, never from inside paper-review. The prompt must instruct it to:
- cold-read all current sources;
- load and execute the host-level modern-physics-review protocol;
- avoid spawning sub-agents;
- return each scientific issue with evidence and a proposed consequence class;
- report disagreements with other reviewers without assuming the other reviewers are wrong;
- state unavailable checks explicitly.
Normalize its output to the shared finding schema. A disagreement is a finding candidate, not
an automatic blocker; verify the evidence and assign consequence.
3.6 Merge and verify
Combine all child reports into one registry:
registry = merge_by_stable_id_and_semantic_key(
paper_review,
figure_review,
de_ai_audit,
mpr,
)
For overlaps:
- retain every source trace and detector;
- keep the most severe consequence only when evidence supports it;
- record reviewer disagreement rather than silently choosing one;
- do not parse JSON from human-readable prose;
- totals come from the merged structured findings.
The parent verifies any finding before editing its target. A child's REFUTED result remains a
positive evidence record; a CONFIRMED editorial critique remains an advisory.
3.7 Apply fixes and dispositions
Order work by the unified priority key:
- integrity blockers;
- L0 targets;
- strong advisories;
- ordinary advisories only when authorized or clearly part of a blocker/L0 repair.
For each action:
- map it to finding IDs;
- read the target and source evidence;
- apply the minimum effective edit (dimension-I redundancy findings route to
/sci-paper:condense; structural-tell rewrites follow de-ai Pass 3 discipline);
- re-read affected context;
- rerun the relevant build, scientific check, figure render, linter or claim-fidelity check;
- record
acted, accepted, rejected_as_false_positive or pending.
Subjective strong advisories that require author preference may remain pending with a precise
question. Do not erase them merely to make counts zero.
4. Stable-round criterion
A round is disposition-complete when:
- pending integrity blockers = 0;
- pending L0 targets = 0;
- critical derivations under scrutiny = 0;
- required build/artifacts are valid;
- every strong advisory has a disposition or stated pending reason;
- ordinary advisories and unmeasured/degraded axes are reported;
- skipped reviewers are labeled unmeasured;
- no child report or merge failed.
A stable round additionally requires:
- no new blocker or L0 target relative to the previous complete round;
- no previously resolved blocker/L0 reappears;
- strong-advisory set and dispositions are unchanged or the change is explained by new evidence;
- scientific anchors and build outputs remain current.
Increment consecutive_stable_rounds only for stable disposition-complete rounds. Reset it when
new blockers/L0 targets appear, a required measurement fails, or a disposition changes without
new evidence. When it reaches --require-consecutive, return DISPOSITION_COMPLETE.
The de-ai audit may continue to report ordinary distribution advisories; those do not reset
stability unless they expose a new blocker/L0 or a new strong advisory requiring disposition.
5. Failure and budget handling
- Child failure/timeout: retry only after diagnosing the cause; repeated failure returns
SUBAGENT_FAILURE with that axis unmeasured.
- Nested-agent attempt or wrong MPR ownership:
PROMPT_VIOLATION.
- User skip: record
unmeasured and continue under explicit limitation.
--max-rounds exhausted: BREAK_WITH_USER_DECISION; list pending blockers, L0 targets,
strong advisories, failed/unmeasured axes and options. Do not increase the budget or claim
completion.
- User interruption: preserve all current reports and registry.
6. Final report contract
# Final Review — Disposition-Complete Report
Target: <file> | Revision: <hash> | Field: <field or none>
Workflow state: DISPOSITION_COMPLETE | BREAK_WITH_USER_DECISION | SUBAGENT_FAILURE
Rounds: K | Consecutive stable rounds: N
## Measurement coverage
| reviewer/axis | status | provenance / limitation |
## Merged summary
- integrity blockers: resolved / pending
- L0 targets: resolved / pending
- strong advisories: acted / accepted / false-positive / pending
- ordinary advisories: total / reported
- M derivations: verified / under scrutiny
- build and figure render status
## Ranked merged findings
| id | source reviewers | kind | layer | rule | location | evidence | action | disposition |
## Scientific anchors
| claim/quantity | manuscript | source | verification |
## Reviewer disagreements
<evidence from each side and final consequence/disposition>
## Residual feedback
- pending strong advisories and author questions
- ordinary advisories
- degraded/unmeasured/not_applicable axes
- explicit skips
## Fix trace by round
<finding IDs, before/after, verification>
## Per-reviewer reports
<links or verbatim reports; preserve structured JSON beside them>
Do not show a per-skill PASS table. "No findings under measured axes" is not proof about
unmeasured axes.
7. Completion meaning
DISPOSITION_COMPLETE means the mandated review workflow reached a stable state in which:
- scientific blockers were resolved or disproved;
- L0 targets are zero;
- strong advisories have explicit author/process dispositions;
- ordinary residuals and limitations are visible;
- independent reviewers reproduced that state for the required consecutive rounds.
It does not mean the paper is guaranteed correct, accepted, human-authored, aesthetically
unique or free of every possible reviewer objection.
8. Anti-patterns
- Reusing last round's report without rerunning isolated reviewers.
- Allowing paper-review to spawn nested MPR.
- Treating every child CONFIRMED critique as a blocker.
- Treating every advisory or reviewer disagreement as mandatory prose change.
- Requiring figure-review to return PASS.
- Requiring the narrative-spine protocol (paper-review dimension E) to find exactly one
contribution thread.
- Letting the de-ai auditor edit the manuscript instead of returning findings.
- Adding condense as a fifth review lane (its detection surface is paper-review dimension I).
- Calling missing calibration a clean result.
- Resetting or dropping inconvenient findings during deduplication.
- Declaring completion because all numeric issue counts are zero while axes were skipped.
- Forcing subjective advisories to disappear instead of recording author disposition.
- Increasing iteration budget silently.