원클릭으로
berdl-review
Run an independent AI review of a project or research plan. Use when you want feedback without the full /submit checklist.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run an independent AI review of a project or research plan. Use when you want feedback without the full /submit checklist.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Approve a project and upload it to the lakehouse. Use when the author is ready to stand behind the report and submit the project for archival.
Read analysis outputs, compare against literature, and draft findings for a project REPORT.md. Use when notebooks have been run and the user wants to interpret results and write up findings.
Get started with the BERIL Research Observatory. Use when a user is new, wants orientation, or asks what they can do.
Run arbitrary scripts on KBase compute nodes via the CDM Task Service (CTS). Use when the user needs to move compute off their notebook or local machine — e.g., running bioinformatics tools, heavy data processing, or anything that benefits from dedicated CPU/memory on a remote node.
Use when searching BERIL project/docs context through OpenViking or refreshing the indexed context layer before research, synthesis, or pitfall work.
Search and review biological literature using MCP tools (PubMed, arXiv, bioRxiv, Google Scholar) with full-text reading, citation snowballing, and PaperBLAST integration. Use when the user wants to find papers, review existing research on a topic, check what's known about an organism or pathway, or support a hypothesis with citations.
| name | berdl-review |
| description | Run an independent AI review of a project or research plan. Use when you want feedback without the full /submit checklist. |
| allowed-tools | Bash, Read, Write |
Run an independent AI review of a BERDL analysis project or research plan. /berdl-review is the canonical review tool: every artifact identifies the exact subject reviewed. Project reviews preserve the report-hash footer contract that /submit consumes; plan reviews carry a plan hash. Use it to iterate on feedback during development before approving the project via /submit.
The reviewer hunts evaluation-integrity failures (selection bias, metric misuse, and — when a model or threshold is fit — train/test leakage and baseline selection) and reads the numeric cell outputs (metrics, split sizes, class balances), not just the source. For an adversarial red-team that actively tries to break each Key Finding, run /berdl-refute after the review.
/berdl-review <project_id> [--type project|plan] [--reviewer claude|codex] [--model <model_id>]
Options:
--type project|plan — Review type (default: project)--reviewer claude|codex — Reviewer backend (default: claude)--model <model_id> — Model override (default: claude-sonnet-4-20250514 for claude, gpt-5.4 for codex)If no <project_id> argument is provided, detect from the current working directory (if inside projects/{id}/).
<project_id> from the argument, or detect from cwd if inside a projects/ subdirectoryprojects/{project_id}/ exists in the repository rootRead projects/{project_id}/beril.yaml (skip silently if missing — pre-manifest projects bypass this check). For --type project reviews:
Allowed starting statuses: analysis, reviewed, complete. Earlier statuses are rejected — there's no REPORT.md to review yet.
exploration / proposed / active → FAIL No REPORT.md to review yet — run /synthesize first (resume via /berdl_start).complete precondition: recompute sha256sum projects/{project_id}/REPORT.md and compare to approval.report_hash in beril.yaml. The stored hash uses the sha256:<hex> prefix convention (see /submit); apply unprefixed() to the stored value before comparing to the bare hex from sha256sum, otherwise every approved project will look changed and trigger an unnecessary demote prompt. If mismatch:
"REPORT.md has changed since this project was approved ({approval.at}). Producing a review against the new report will leave the project in a confusing state:
completewith a fresh review for an unapproved report. Demote toanalysisfirst (the previous approval will be archived underprevious_approvals) before running the new review? (y/n)"
approval to previous_approvals: [] (append) with an added archived_at: "<now>" field, set status: analysis, update README.md ## Status to "Analysis — report drafted, awaiting /berdl-review and /submit.", delete projects/{project_id}/REVIEW.md (the canonical copy of the now-archived review), and delete both SUBMITTED.md and SUBMISSION_FAILED.md if present (audit lives in beril.yaml). Then continue to Step 3.For --type plan reviews this precondition does not apply (plans are reviewed independent of the lifecycle).
Run tools/review.sh — the script automatically numbers the output file and appends exactly one canonical subject footer: report_hash for project reviews and plan_hash for plan reviews. It hashes before and after the reviewer and discards output if the subject changes:
bash tools/review.sh {project_id} --type {type} --reviewer {reviewer} --model {model}
--type if reviewing the project (default).--reviewer and --model if using defaults.REPORT.md changed during review, the output file is discarded and the script aborts.Run this command from the repository root directory.
After the reviewer subprocess completes:
<!-- report_hash: sha256:... --> for a project review or <!-- plan_hash: sha256:... --> for a plan review.For --type project reviews against a project at status: analysis (or coming out of the complete-with-mismatch demote in Step 2), flip status to reviewed after the new review writes successfully:
projects/{project_id}/beril.yaml:
status: reviewedartifacts.review: true (a review file now exists; this flag tracks the existence of any REVIEW_N.md, set here so it's true as soon as the first review lands rather than only after /submit writes the canonical REVIEW.md).last_session_at: current ISO 8601 timestamp.projects/{project_id}/README.md ## Status to:
## Status
Reviewed — REVIEW_N.md drafted; awaiting /submit.
(Replace N with the numbered review just produced.) This keeps the README's user-facing status in sync with beril.yaml.status. Without this, the demote-then-review path leaves README stuck on the analysis wording even though beril.yaml advances to reviewed.For reviewed starting status, refresh README.md ## Status similarly (the N updates) and ensure artifacts.review: true is still set; leave beril.yaml.status unchanged. For complete (matching hash) starting status, leave both beril.yaml and README.md unchanged — re-running /berdl-review against an approved project only adds another opinion file; the project remains complete. Plan reviews never touch beril.yaml or README.md.
Read the review file and present a brief summary to the user:
Based on the review outcome:
If the review has no critical or important issues:
/submit./submit will use the latest review (selected by numeric N order) as the canonical record; the user's explicit approval and lakehouse upload turn it into the formal submission.If the review has critical or important issues:
REPORT.md, re-run /synthesize first (which silently demotes to analysis); existing REVIEW_N.md files become stale via hash mismatch./berdl-review again after fixes to produce a current review.REVIEW_1.md, REVIEW_2.md, REVIEW_3.md, … and are preserved across /submit runs (they form the review history). The latest by numeric N is what /submit consults.PLAN_REVIEW_N.md; they end with <!-- plan_hash: sha256:... --> and have no effect on the project lifecycle.<!-- report_hash: sha256:... -->, proving which REPORT.md it covered..claude/reviewer/SYSTEM_PROMPT.md (project) or .claude/reviewer/PLAN_REVIEW_PROMPT.md (plan) and is not controlled by the author.Anything that produces or modifies REVIEW_N.md must preserve exactly one final <!-- report_hash: sha256:[0-9a-f]{64} -->; /submit rejects any deviation. PLAN_REVIEW_N.md similarly preserves exactly one final <!-- plan_hash: sha256:[0-9a-f]{64} -->.
When you encounter errors, unexpected results, retry cycles, performance issues, or data surprises during this task, follow the pitfall-capture protocol. Read .claude/skills/pitfall-capture/SKILL.md and follow its instructions to determine whether the issue should be added to the active project's projects/<id>/memories/pitfalls.md.