Skip to content

Verify a paper

Once your draft has content, belico verify validates it against the validate_submission harness (strangler-fig). In this tutorial you will run verification, read the gates, and understand the exit codes.

Prerequisite

The paper must exist at articles/<paper-id>/paper.md (or draft.md as fallback). If you created it with belico create-paper, the paper-id is the slug that command returned.

Step 1 — Run verification

belico verify --paper-id continental-2026-05-shm-q1

The CLI resolves the paper path, invokes the validation adapter, and renders a gate table with each status.

Step 2 — Read the statuses

Each row is a gate or an issue. Possible statuses:

Status Meaning
PASS The gate passed cleanly
WARN Warning — non-blocking unless --strict
BLOCKER Critical issue — blocks submission

A summary at the bottom counts blockers, warnings, and passing gates.

Step 3 — Strict mode for CI

In a CI pipeline you usually want to escalate warnings to errors:

belico verify --paper-id my-paper --strict

With --strict, any WARN returns exit code 1.

Step 4 — JSON output for automation

To parse the result from a script:

belico verify --paper-id my-paper --json-output

Returns an object with paper_id, status, passed, blockers, warnings, issues[], and returncode.

Exit codes

Code Meaning
0 PASS — no blockers or warnings (or warnings without --strict)
1 WARN + --strict
2 BLOCKER — at least one critical issue
3 paper-id not found, or the adapter raised an exception

Step 5 — When the paper does not exist

If you pass a non-existent paper-id, the CLI lists the papers it detects under articles/. Check that you spelled the slug correctly.

What it validates under the hood

The command does not reimplement validation logic: it invokes ValidateSubmissionAdapter, which wraps the inherited harness and returns a canonical envelope. Issues are heuristically classified into three levels (BLOCKER / WARN / INFO) based on their text.

Anti-AI and citations

Anti-AI-prose gates, data traceability (RSN, manifest), and Q1/Q2 statistical rigor run inside the harness. See Pipeline → VERIFY and the stack rules.

See also