docs/design/web-shell-review-result.md
/review produces canonical structured findings and a composed verdict, but Web Shell only receives the final conversational prose. The existing right-panel “Review” view displays files changed by a turn; it is not a code-review result. This makes findings difficult to scan, filter, and revisit, and creates an ambiguous UI label.
qwen review findings writes the canonical findings report under .qwen/tmp/.qwen review compose-review writes the authoritative composed verdict under .qwen/tmp/..qwen/reviews/.Add qwen review save-artifact, which reads:
It writes a versioned JSON document under .qwen/reviews/ containing:
The command copies structured inputs without recalculating the verdict or rewriting findings. It fails closed on unreadable or malformed inputs and refuses output inside .qwen/tmp/.
After Step 8 creates the JSON document and before Step 9 cleanup, the /review skill calls record_artifact with:
kind: other;storage: workspace;mimeType: application/vnd.qwen.code-review+json;artifactType: code_review and schemaVersion: 1.The skill owns registration because it runs in the active session and turn. The CLI command owns document construction so the model does not transcribe findings or verdict fields.
Web Shell detects metadata.artifactType === 'code_review' and renders a dedicated review-result view. It reads and validates the JSON document at runtime and displays:
assetFiles) as inline images;The renderer never parses transcript prose and never computes a verdict. Malformed documents display an artifact error rather than falling back to a misleading source-code preview, and the error view offers the durable Markdown report derived from the artifact path so a truncated or unparsable document is not a dead end.
Change only the user-visible label from “Review / 审核” to “Changes / 文件更改”. Internal review discriminants and public customization values remain unchanged to avoid an unrelated API migration.
packages/cli/src/commands/review/save-artifact.tspackages/cli/src/commands/review/save-artifact.test.tspackages/cli/src/commands/review.tspackages/core/src/skills/bundled/review/SKILL.mdpackages/web-shell/client/components/artifacts/CodeReviewArtifactDetail.tsxpackages/web-shell/client/components/artifacts/CodeReviewArtifactDetail.test.tsxpackages/web-shell/client/components/artifacts/ArtifactPanel.tsxpackages/web-shell/client/components/artifacts/ArtifactPanel.module.csspackages/web-shell/client/i18n.tsxIncluded:
Excluded:
review types..qwen/tmp/.metadata.artifactType is sufficient for renderer dispatch; no new artifact kind is introduced.