Loading...
Loading...
Compare original and translation side by side
rootspec/review-status.jsonSTARTED_AT=$(date -u +"%Y-%m-%dT%H:%M:%SZ")rootspec/review-status.jsonSTARTED_AT=$(date -u +"%Y-%m-%dT%H:%M:%SZ")rootspec/01.PHILOSOPHY.mdrootspec/02.TRUTHS.mdrootspec/03.INTERACTIONS.mdrootspec/CONVENTIONS/visual.mdrootspec/CONVENTIONS/technical.mdfind cypress/screenshots -name "*.png" 2>/dev/null | sort
find src -type f \( -name "*.tsx" -o -name "*.astro" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.html" \) 2>/dev/null | sortfind rootspec/05.IMPLEMENTATION/USER_STORIES -name "*.yaml" -o -name "*.yml" 2>/dev/null | sortrootspec/01.PHILOSOPHY.mdrootspec/02.TRUTHS.mdrootspec/03.INTERACTIONS.mdrootspec/CONVENTIONS/visual.mdrootspec/CONVENTIONS/technical.mdfind cypress/screenshots -name "*.png" 2>/dev/null | sort
find src -type f \( -name "*.tsx" -o -name "*.astro" -o -name "*.jsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.html" \) 2>/dev/null | sortfind rootspec/05.IMPLEMENTATION/USER_STORIES -name "*.yaml" -o -name "*.yml" 2>/dev/null | sortcypress/screenshots/**/US-101--*.pngcypress/screenshots/**/US-101--*.png{{variable}}{slot}$ARGUMENTS{{variable}}{slot}$ARGUMENTShrefsrcactionvisitalthrefsrcactionvisitaltrootspec/review-status.json{
"lastReview": "<ISO timestamp>",
"status": "pass|fail",
"summary": { "blockers": 0, "warnings": 0, "nitpicks": 0 },
"issues": [
{
"id": "REV-001",
"severity": "blocker|warning|nitpick",
"category": "placeholder_text|visual_quality|impl_error|broken_links|accessibility",
"story": "US-103",
"file": "src/components/Wizard.tsx",
"line": 42,
"screenshot": "cypress/screenshots/mvp.cy.ts/US-103--AC-103-1.png",
"description": "What is wrong",
"expected": "What spec/story says it should be",
"actual": "What it currently is",
"suggestion": "How to fix"
}
]
}"pass""fail"rootspec/review-status.json{
"lastReview": "<ISO timestamp>",
"status": "pass|fail",
"summary": { "blockers": 0, "warnings": 0, "nitpicks": 0 },
"issues": [
{
"id": "REV-001",
"severity": "blocker|warning|nitpick",
"category": "placeholder_text|visual_quality|impl_error|broken_links|accessibility",
"story": "US-103",
"file": "src/components/Wizard.tsx",
"line": 42,
"screenshot": "cypress/screenshots/mvp.cy.ts/US-103--AC-103-1.png",
"description": "问题描述",
"expected": "规范/故事要求的内容",
"actual": "当前实际内容",
"suggestion": "修复建议"
}
]
}"pass""fail"| Category | Max Points | Deductions |
|---|---|---|
| Content accuracy | 30 | -10 per broken link, -5 per wrong copy |
| Visual fidelity | 25 | -15 per literal icon text, -10 per visible placeholder |
| Spec alignment | 25 | -10 per story where screenshot contradicts acceptance criteria |
| Accessibility | 10 | -5 per missing alt text, -5 per non-semantic interactive element |
| Polish | 10 | -5 per visible template syntax/TODO/artifact |
review-status.json{
"qualityScore": {
"score": 82,
"breakdown": {
"content": 25,
"visual": 25,
"alignment": 20,
"accessibility": 7,
"polish": 5
}
}
}| 类别 | 最高分 | 扣分规则 |
|---|---|---|
| 内容准确性 | 30 | 每断链扣10分,每处文案错误扣5分 |
| 视觉还原度 | 25 | 每处图标文字化扣15分,每处可见占位符扣10分 |
| 规范对齐度 | 25 | 每处截图与验收标准不符的故事扣10分 |
| 可访问性 | 10 | 每处缺失alt文本扣5分,每处非语义化交互元素扣5分 |
| 细节打磨 | 10 | 每处可见模板语法/TODO/遗留产物扣5分 |
review-status.json{
"qualityScore": {
"score": 82,
"breakdown": {
"content": 25,
"visual": 25,
"alignment": 20,
"accessibility": 7,
"polish": 5
}
}
}COMPLETED_AT=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
bash "$SHARED_DIR/scripts/write-stats.sh" rootspec/stats.json rs-review "$STARTED_AT" "$COMPLETED_AT"COMPLETED_AT=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
bash "$SHARED_DIR/scripts/write-stats.sh" rootspec/stats.json rs-review "$STARTED_AT" "$COMPLETED_AT""US-101""links""visual""US-101""links""visual"rootspec/review-status.jsonrootspec/stats.jsonrootspec/review-status.jsonrootspec/stats.json