基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ci/persops --skill autoreview命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
Deploys persops configurations to aglaea and amalthea. Use when asked to build, apply, switch, or deploy persops locally or through an Amp runner.
Add or update agent skills in ~/p/persops, including vendoring upstream skills into modules/ai/skills, choosing the right propagation profile (`all`, `coding`, `claw`, `codex`), updating metadata, and applying local+remote Nix switches. Use when the user asks to add a skill, install a skill, update a skill, make a coding skill, make a Codex-only skill, or make a claw/openclaw/clawdbot-only skill in persops.
Install and configure the anti-slop Oxlint plugin in a local TypeScript or JavaScript repository. Use whenever a user asks to add anti-slop lint rules, copy the anti-slop plugin, configure opinionated Oxlint rules, or migrate an existing local anti-slop setup.
| name | autoreview |
| description | Auto Review closeout for Git and Jujutsu changes. Uses Amp by default in Amp orbs and Codex elsewhere. |
Run the bundled structured review helper as a closeout check. This is code review, not Guardian auto_review approval routing.
Amp is the default inside an Amp orb, detected by the documented AMP_ORB=1 environment variable. Codex is the default elsewhere and usually delivers the best local review results. An explicit --engine always wins; AUTOREVIEW_ENGINE overrides the environment-based default. Codex defaults to gpt-5.6-sol and retries once with gpt-5.6-terra only when the account cannot access Sol; thinking follows the Codex CLI config. Claude defaults to claude-fable-5. Amp defaults to openai/gpt-5.6-sol at high reasoning through a generated adapter plugin that reuses the existing amp login. Pi and opencode use the model their own CLI is configured for.
Use when:
Do not require autoreview for a change whose entire diff is prose-only internal notes or SKILL.md documentation. Still inspect the diff directly. This exception does not cover user-facing documentation, executable examples, configuration, scripts, generated files, or behavior changes.
--max-priority P0/P1 for a blockers-only pass, widen with --max-priority P3 only when the caller explicitly asks for a full-depth review.review still running: ... elapsed=... pid=... as healthy progress, not a hang. Let the helper continue while heartbeats are advancing. Pass --stream-engine-output when live engine text is useful; Codex and Claude filter tool/status chatter, other engines pass raw output through.codex review, nested reviewers, or reviewer panels from inside the review. The helper builds one bundle, calls one selected engine, validates one structured result, and stops.Autoreview is a closeout gate, not permission to change the task's product contract. Define scope by the authorized invariant and its architectural owner, not by the first patch.
Before patching a finding, classify it:
Stop patching and report the scope break instead of continuing when:
After the two-cycle pause, continue only when every remaining accepted finding is still an in-scope blocker. Otherwise preserve the useful analysis and open or request a follow-up for unrelated work. Do not land a symptom patch or keep committing speculative fixes just to satisfy the reviewer.
Critical exceptions must be explicit: active data loss, crash, broken install/upgrade, release blocker, or concrete security exposure. If the exception is not one of those, it is not critical enough to blow up scope.
Dirty local work:
<autoreview-helper> --mode local
Use this only when the patch is actually unstaged/staged/untracked in the
current checkout. For committed, pushed, or PR work, point the helper at the commit
or branch diff instead; do not force --mode local / --uncommitted just
because the helper docs mention dirty work first. A clean local review
only proves there is no local patch.
In a jj repo, the helper uses native jj diff/jj show, including in
non-colocated repos and additional workspaces. Run jj status first. Local mode
reviews the current workspace's @ diff.
Branch/PR work:
<autoreview-helper> --mode branch --base origin/main
For jj, use revsets/bookmarks and select the head explicitly when needed:
<autoreview-helper> --mode branch --base 'main@origin' --head '<bookmark>'
The jj defaults are trunk() for the base and @- for the head. Those are
appropriate for a normal empty @ above one finished change, but not enough to
identify an arbitrary stack. Use $jjpr to inspect the stack, then review each
PR-sized bookmark against its immediate lower bookmark, or review the whole
stack by passing its bottom base and explicit top bookmark. Branch mode diffs
from the base/head fork point, matching Git's three-dot review shape.
Optional review context is first-class:
<autoreview-helper> --mode branch --base origin/main --prompt-file /tmp/review-notes.md --dataset /tmp/evidence.json
If an open PR exists, use its actual base:
base=$(gh pr view --json baseRefName --jq .baseRefName)
<autoreview-helper> --mode branch --base "origin/$base"
Committed single change:
<autoreview-helper> --mode commit --commit HEAD
or with the helper:
~/.agents/skills/autoreview/scripts/autoreview --mode commit --commit HEAD
In jj mode, --head and --commit accept a jj change ID, bookmark, or revset;
prefer a concrete change ID when passing a revision through helper scripts.
Revsets are passed without a shell hop, but description("...") matches the
complete description and can miss because of description formatting. Use a
change ID, or deliberately use description(substring:"..."). When omitted,
--commit defaults to @-; Git defaults to HEAD.
Use commit review for already-landed or already-pushed work on main. Reviewing
clean main against origin/main is usually an empty diff after push. For a
small stack, review each commit explicitly or review the branch before merging
with --base.
Format first if formatting can change line locations. Then it is OK to run tests and review in parallel:
scripts/autoreview --parallel-tests "<focused test command>"
Tradeoff: tests may force code changes that stale the review. If tests or review lead to code edits, rerun the affected tests and rerun review until no accepted/actionable findings remain. Once that rerun exits cleanly, stop; do not spend another long review cycle on redundant confirmation.
Run multiple reviewers against one frozen bundle:
<autoreview-helper> --reviewers codex,claude
--panel is shorthand for Codex plus Claude unless --engine changes the first reviewer:
<autoreview-helper> --panel
Set reviewer models and thinking/effort explicitly:
<autoreview-helper> --reviewers codex,claude --model codex=gpt-5.6-sol --thinking codex=high --model claude=sonnet --thinking claude=max
Inline syntax is also supported:
<autoreview-helper> --reviewers codex:gpt-5.6-sol:high,claude:sonnet:max
AUTOREVIEW_MODEL and AUTOREVIEW_THINKING env vars accept the same keyed
syntax (codex=gpt-5.5,claude=sonnet or a bare global value) and sit between
CLI flags and built-in defaults.
Thinking per engine: Codex maps to model_reasoning_effort (low-max).
Claude maps to --effort (low-max). Amp maps to the adapter plugin's
reasoningEffort (none-max, default high) and its model must be a
provider/model id (default openai/gpt-5.6-sol). Pi maps to --thinking
(off-max). OpenCode maps to --variant (minimal-max). Engines
without a real thinking knob reject --thinking.
Run the helper directly so target selection, engine choice, structured validation, and exit status all stay in one path. If output is noisy, summarize the completed helper output after it returns; do not ask another agent or reviewer to rerun the review.
Bundled helper:
~/.agents/skills/autoreview/scripts/autoreview --help
Repo vendored helper:
modules/ai/skills/autoreview/scripts/autoreview --help
The helper:
@gh pr view workstrunk()/@- in jj or origin/main/HEAD in Git--base, --head, and --remote for explicit branch/stack targets--no-fetch only when intentionally reviewing local refs--engine codex, claude, amp, droid, copilot, pi, and opencode; default precedence is explicit --engine, AUTOREVIEW_ENGINE, Amp when AMP_ORB=1, then Codex--mode commit --commit <ref> for already-committed work, especially clean main after landing--mode auto or forced to --mode branch for PR/branch work; do not force --mode local after committing--output or --json-output is set--max-priority / AUTOREVIEW_MAX_PRIORITY (default P2; upstream defaults to P0); lower priorities are omitted from output and exit status--dry-run as a real preflight: builds the bundle, applies the same input validation as a live run, resolves each reviewer binary, and exits nonzero on a broken setup without invoking any engine--parallel-tests, --prompt, --prompt-file, --dataset, --no-tools, --no-web-search, and commit refs--panel / , plus per-engine and (also via / )Include:
Do not run another review solely to improve the final report wording. If the final helper run exited 0 and produced no accepted/actionable findings, report that exact run as clean.
--reviewers--model--thinkingAUTOREVIEW_MODELAUTOREVIEW_THINKINGcodex exec with read-only sandbox and structured output; amp reviews the bundle alone through a generated amp.ai.generate adapter plugin (temp config dir, so no personal plugins load; existing amp login credentials are reused); pi gets only its read tool; opencode runs its read-only plan agentreview still running: <engine> elapsed=<seconds>s pid=<pid> to stderr at long-running intervals while waiting for the selected review engine; --stream-engine-output streams live engine text insteadautoreview clean: no accepted/actionable findings reported when the selected review command exits 0