ce-code-review
everyinc/compound-engineering-plugin
對程式碼進行結構化審查,涵蓋錯誤、迴歸測試、測試用例及規範標準。在提交 PR 前或收到審查請求時使用;互動模式可在本地修復問題,而 mode:agent 模式僅向管道呼叫者報告結果。
...展開全部關於 ce-code-review
一種結構化的程式碼審查技能,使用動態選擇的評審員角色來評估程式碼變更。它生成並行子代理,返回結構化的 JSON,然後將這些發現合併並去重,生成單一報告。該技能旨在建立拉取請求之前、迭代實現過程中完成任務之後,或任何需要變更反饋時執行;它可以獨立呼叫,也可以嵌入更大的工作流中。
兩種操作模式共享相同的審查管道。在預設互動模式下,它會生成帶有管道分隔符發現表格和操作發現摘要的 Markdown 報告,並在預審查工作樹幹淨時應用安全、經過驗證的修復並提交它們。在 mode:agent 模式下(mode:headless 為已棄用的別名),它僅生成報告:作為面向程式和跨框架呼叫者的確定性契約,它返回一個 JSON 物件,且從不修改工作樹,由呼叫者負責應用。核心操作原則是“本地應用;絕不推送”——它在任何模式下都不會推送、開啟拉取請求或提交工單。它還避免阻塞式提示,且從不切換分支;傳遞 PR 編號、URL 或分支名稱僅選擇審查範圍,而不授予修改樹的許可權。引數解析包含 base:
發現結果使用 P0-P3 嚴重性等級來回答緊急程度,而 autofix_class(gated_auto、manual、advisory)和 owner 描述後續操作的形態,而非授予應用許可權。綜合處理負責最終路由,在意見不一致時選擇更保守的路徑,並拒絕 unsafe_auto 等不安全類別。快速審查短路機制可以將輕量、快速的審查委託給框架內建的審查,但 mode:agent 始終執行完整的多代理管道並返回 JSON。
常見問題解答
預設模式和 mode:agent 有什麼區別?
預設互動模式返回 Markdown 報告,並應用安全、經過驗證的修復(當樹幹淨時提交它們)。mode:agent 僅生成報告:它返回單個 JSON 物件,且從不修改工作樹,由呼叫者負責應用。
該技能是否會推送我的更改或開啟拉取請求?
不會。核心原則是“本地應用;絕不推送”——它在任何模式下都不會推送、開啟拉取請求或提交工單,因為推送是使用者擁有的外部步驟。
如果我傳遞 PR 編號或分支名稱,它會檢出該分支嗎?
不會。傳遞 PR 編號、URL 或分支名稱僅選擇審查範圍。它從不執行 gh pr checkout、git checkout 或 git switch;若要審查分支上的本地工作,你必須自行檢出。
嚴重性等級是什麼意思,它與自動修復有何關係?
嚴重性等級從 P0(關鍵,合併前必須修復)到 P3(次要,由使用者決定)執行,用於回答緊急程度。autofix_class 和 owner 欄位描述後續操作的形態,而非應用許可權——應用決策是在綜合處理過程中做出的判斷。
我可以獲得快速審查而不是完整的多代理管道嗎?
可以,當引數指示快速、輕量或簡短審查且 mode:agent 未啟用時,它會執行框架內建的程式碼審查並停止。mode:agent 始終繞過此短路機制並執行完整管道。
所有檔案
24 個檔案references/personas/julik-frontend-races-reviewer.md3.2 KBViewreferences/personas/maintainability-reviewer.md4.8 KBViewreferences/personas/previous-comments-reviewer.md3.3 KBViewreferences/personas/reliability-reviewer.md3.3 KBViewreferences/personas/swift-ios-reviewer.md10.5 KBViewreferences/review-output-template.md12.6 KBViewreferences/validator-template.md5.1 KBViewreferences/action-class-rubric.md1.5 KBViewreferences/findings-schema.json8.4 KBViewreferences/personas/adversarial-reviewer.md7.8 KBViewreferences/personas/api-contract-reviewer.md3.3 KBViewreferences/personas/data-migration-reviewer.md4.8 KBViewreferences/diff-scope.md2.4 KBViewreferences/persona-catalog.md5.4 KBViewreferences/personas/agent-native-reviewer.md9.1 KBViewreferences/personas/correctness-reviewer.md3.5 KBViewreferences/personas/deployment-verification-agent.md4.9 KBViewreferences/personas/learnings-researcher.md16.1 KBViewreferences/personas/performance-reviewer.md3.5 KBViewreferences/personas/project-standards-reviewer.md6.6 KBViewreferences/personas/security-reviewer.md3.7 KBViewreferences/personas/testing-reviewer.md3.8 KBViewreferences/subagent-template.md20.5 KBViewSKILL.md67.0 KBView
Setup
Run this once at the start of this invocation, before any subagent dispatch, and follow the directives it prints — except where one conflicts with this skill's own rules on asking the user questions, whether those rules are scoped to a non-interactive mode or apply in every mode, in which case this skill's rules win and no blocking question is asked. Run the fence exactly as written, as its own command: do not pipe or filter it (no head, tail, or grep), do not truncate its output, and do not bundle it into a batch with other commands. Its output opens with a === skill context header and ends with CE_CONTEXT_END; if you received one of those lines without the other, the output was truncated — rerun the fence verbatim once. That recovery is the only rerun: otherwise do not rerun it within the same invocation; a later invocation of this or any other skill runs its own. If no Node runtime is available the skill proceeds unchanged.
SKILL_DIR="<absolute path of the directory containing the SKILL.md you just read>";NODE="$(for c in node nodejs; do command -v "$c" >/dev/null 2>&1 && "$c" -e '' >/dev/null 2>&1 && { echo "$c"; break; }; done)";if [ -n "$NODE" ]; then"$NODE" "$SKILL_DIR/scripts/context.mjs" || echo "context script failed; continue with the skill's normal behavior";elseecho "no Node runtime; continue with the skill's normal behavior";fi
Artifact Root
Resolve the CE artifact root <root> before composing any artifact path.
- Read
docs_rootfrom<repo-root>/.compound-engineering/config.yamlonly (<repo-root>=git rev-parse --show-toplevel). Do not read it fromconfig.local.yaml. Unset -><root>isdocs, exactly as before. - Validate a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under
.git/. Otherwise stop with an error namingdocs_rootand the value -- never fall back todocs. - Use
<root>as the sole artifact location: create it if absent, compose each path as<root>/<subdir>with this skill's own subdirectory, and never also readdocs.
Execution spine
Follow these steps in order; the references supply the detail but never change the order. Each reference named below is a required read for its step: load it before doing that step's work.
- Read
references/modes-and-output.mdfirst. It settles what the arguments mean, which argument conflicts stop the run before any reviewer is dispatched, whether the quick-review short-circuit applies, and what this invocation returns. - Stage 1. Read
references/scope.mdand resolve the reviewed diff, the scope mode, and the deterministic scope signals. - Stage 2. Read
references/intent-and-plan.md, write the intent summary every reviewer receives, and discover the plan Stage 6 verifies requirements against. - Stage 3. Read
references/persona-catalog.mdandreferences/select-and-route.md, then select the risk-driven reviewer roster, discover applicable standards paths, and bind the adversarial route. - Stage 3d. When adversarial is selected for a local reviewed tree, start and persist the sanctioned cross-model job that
references/cross-model-review.mddefines, before any local persona dispatch. Invoking this skill is itself the authorization for its configured or allowlisted peer route, once you have made the required disclosure of the recipient and of the code that leaves the machine. Do not ask the user to confirm a second time, and do not skip the peer because the user did not repeat that authorization. An explicit user prohibition on external review overrides it, as does a checkout that setscross_model_review_mode: offwith no live opt-in; both are resolved before you bind a route. A started peer replaces the local adversarial persona at this stage, and only a real failure to scope, allowlist, reach, authenticate, or start it leaves the local fallback in the roster; a later stage may still restore the local reviewer under the conditions that reference states. - Stage 4. Read
references/dispatch-reviewers.md. Dispatch the materialized local roster as one foreground concurrent batch sized to the host's active-agent cap, and collect every reviewer before synthesis however this host returns them: one blocking wait where same-message calls run concurrently, repeated non-polling collection waits where the subagent primitive is asynchronous, and serial dispatch where neither applies. Detaching local review into a polled background job is forbidden. The cross-model peer is the only detached work, and it may overlap this batch. - Stages 5 and 6. Once the reviewer returns are ready, read
references/finish-review.md. Fold in the peer once, run the documented findings mechanics, and run every validator the reference selects; only then return the report. Never synthesize directly from raw reviewer artifacts. In the multi-agent path, emit only this skill's report: do not also invoke a harness-native findings or reporting tool, which belongs to the quick-review short-circuit alone.
Operating principles
- Report-only by default; never push. A bare
ce-code-reviewinvocation produces findings and does not apply them. Entering the apply stage requiresapply:local, or an explicit user request in the invoking prompt to apply or fix this review's findings; a deprecatedmode:autofixtoken is neither.mode:agentnever mutates the tree, even when nested inside a workflow that later applies findings. Never push, open PRs, or file tickets in any mode. - No blocking prompts. Never use
AskUserQuestion,request_user_input,ask_user, or other blocking question tools. Infer intent, plan, and scope from explicit tokens, git state, PR metadata, and conversation. Note uncertainty in Coverage or the verdict — do not stop to ask. - Explicit mutations only. Never run
gh pr checkout,git checkout,git switch, or similar branch-switch commands. Passing a PR number, URL, or branch name selects review scope, not permission to mutate the working tree. Uncommitted work can only be reviewed from the checkout that holds it, so to review it on a feature branch, stay on that branch (or check it out yourself) and passbase:or no target. - Report outcomes, not machinery. What you show the user is about the review: what is being examined, which coverage is included and the one-line reason for each conditional lens, the independent cross-model pass, and the findings. Name what the user would recognize — a PR number, a reviewer's concern, a peer model — rather than this skill's plumbing, whose internal labels, dispatch bookkeeping, and setup narration stay out of user-facing text. Never claim more about the peer than its receipt attests. This governs what you surface and suppress, not the wording; use your own voice.
Task Visibility
For the multi-agent path, once the review scope is resolved, use the platform's task-tracking capability when available to show a short user-facing view derived from the execution spine. Track review outcomes, not individual personas, setup mechanics, or tool calls; add conditional work only when its gate fires, and update the view at meaningful transitions. If no task-tracking capability is available, continue with the normal progress and final report without simulating a task list in chat.





首頁
