- 前端存在性硬规则:detectFrontend 源码级判定,web形态无真实前端/不可访问 → 实现完整度封顶50%(CLI/插件豁免) - verify 多态:build_status 支持 done/failed/done_no_ui,前端按钮新增「无前端」 - 人工启动方案:评审环境自动启动失败 → awaiting_browse 暂停,评委手动启动后填 service_url 走 /verify-browse 恢复(SSRF 信任评委确认地址) - Gitea 稳定性:clone 自动重试×3(525抖动)+ 每队独立 token 回退(全局账号失效兜底) - A 阶段报告备份:feature_inventory.__stageA_report 防 B 阶段维度重复累积/A维度丢失 - tryTest 依赖预装:Python 项目自动 pip install(测试不再因缺依赖误判失败) - 运行验证压缩静态维度:前端缺失+测试失败 → 静态纸面维度封顶50%(防原型拿高分) - 文档-实现三级校验:claim-consistency 注入运行时证据(构建/测试/前端),识别「代码有但跑不起来」的虚报(逸飞冲天 61%→25%) - 赛事文档:中期20%+最终80%(AI=人工总分)、评审表/评审规则/赛事说明/07设计同步 - 清空 review_snapshots 测试污染数据,保留当前正式分(零号158/逸飞冲天126) - 测试 446 全通过(后端435+前端11)
5.7 KiB
AI-Review 用户故事与验收用例
来源:
config/teams.json(2026年技术大赛报名表 14 支真实队伍) 覆盖机制:评审管线(3阶段)、按时提交(§3.3.9 增强)、空仓库影响、硬规则、校准、L2/L3 认定 用途:驱动验收测试server/src/__tests__/user-stories.test.ts
1. 参赛选手(Primary Actor)
US-01 按时提交的参赛者
作为 一名按时完成开发并在截止日前提交代码的参赛者, 我希望 我的作品被完整评审且不受迟交扣分, 以便 我得到与作品质量相匹配的分数。
验收标准:
- US-01-1 评审管线完整运行(clone → 构建 → 维度 → 校准 → 硬规则 → 出分)
- US-01-2 提交时间 = git 最后 commit 时间,且早于 project.deadline →
late_days ≤ 0,penalty = 0 - US-01-3 最终得分 = 原始总分(无迟交扣分)
US-02 迟交的参赛者
作为 一名错过截止日期后才提交代码的参赛者, 我希望 系统明确记录我的迟交天数并扣除相应分数, 以便 公平地与其他按时提交的队伍竞争。
验收标准:
- US-02-1 commit 时间晚于 deadline →
late_days > 0 - US-02-2 penalty =
min(总分, late_days × late_penalty),默认 late_penalty=5 - US-02-3 迟交超过 7 天 → 扣光总分
- US-02-4 前端展示「迟交 N 天」标识
US-03 空仓库/未上传代码的参赛者
作为 一名建了条目但仓库内容为空的参赛者, 我希望 系统不因 git 异常而逃逸扣分,同时如实反映空仓库的评分影响, 以便 评审结果公平反映"没有交付内容"的事实。
验收标准:
- US-03-1 空仓库(可 clone,无文件)→ 走正常评审,不出逃逸
- US-03-2 空仓库文件数 = 0,代码统计全 0 注入 AI context
- US-03-3 Agent核心维度门槛 4 项全失败 → 判定 0 分
- US-03-4 演示与文档维度无 README → 硬规则封顶 ≤2 分
- US-03-5 迟交判定:无 git commit → 用条目创建时间兜底,若创建晚于 deadline 则正常扣分
US-04 自拟选题的参赛者(A0/B0)
作为 一名选择"自拟选题"并把自己的实际选题写在备注栏的参赛者, 我希望 系统按我上传的标准维度进行评审, 以便 我的自拟项目得到合理评估。
验收标准:
- US-04-1 带 track 创建项目 → 自动导入对应赛道默认标准
- US-04-2 赛道一/赛道二 标准维度数与总分符合模板(赛道一 12维/200、赛道二 8维/100)
US-05 选择官方选题的参赛者(A1-A6/B1-B6)
作为 一名选择官方给定选题的参赛者, 我希望 系统按赛道标准评审而不受选题编号影响, 以便 官方选题与自拟选题公平竞争。
验收标准:
- US-05-1 标准快照在评审时被锁定(
standard_snapshot),后续改标准不影响已评审结果 - US-05-2 评审依据维度优先使用标准快照内容(
dim.content优先于内置兜底指南)
2. 项目管理员(Admin)
US-06 创建比赛项目
作为 项目管理员, 我希望 创建项目时必须指定赛道并设置截止时间, 以便 系统能自动导入对应标准并支持迟交判定。
验收标准:
- US-06-1 创建项目缺 track → 400
赛道为必选项 - US-06-2 带 track 创建 → 自动导入默认标准
- US-06-3 可设置
deadline与late_penalty
US-07 批量导入参赛队伍
作为 项目管理员, 我希望 从报名表批量导入队伍(含 gittea 凭据与选题), 以便 快速录入 14 支队伍。
验收标准:
- US-07-1 批量导入合法条目成功
- US-07-2 重复 repo_url 被唯一约束拒绝
- US-07-3 非法 service_url(内网/本机)被拒绝
US-08 人工修正评审结果
作为 项目管理员, 我希望 人工修正维度分数后系统重新计算总分与最终分(含迟交扣分), 以便 纠正 AI 评分偏差。
验收标准:
- US-08-1 修正后重算 totalScore,应用 max_score_cap 再扣迟交
- US-08-2 迟交扣分复用已存的 late_days(不重新判定提交时间)
3. 评审系统自身(System)
US-09 评审管线按阶段推进
作为 评审系统, 我希望 评审按固定管线执行并能被诊断, 以便 任何阶段失败都不会静默挂起。
验收标准:
- US-09-1 管线日志
[pipe:entryId]覆盖 START/CLONE/ANALYZE/GATES/TEST/BROWSE/OVERVIEW/SUBAGENT/DONE/FAIL - US-09-2 任一步骤抛错 → FAIL 兜底,状态不静默卡死
US-10 维度独立评分
作为 评审系统, 我希望 每个维度独立评分,互不因其他维度判定而扣分, 以便 例如非 Agent 项目只要测试真实通过就应给效果与数据分。
验收标准:
- US-10-1 效果与数据维度有真实测试证据时据实给分,不因"非 Agent"否决
用户故事 → 测试映射
| 用户故事 | 验收用例 | 测试文件位置 |
|---|---|---|
| US-01 按时提交 | US-01-1 ~ US-01-3 |
user-stories.test.ts TC-US01 |
| US-02 迟交 | US-02-1 ~ US-02-4 |
user-stories.test.ts TC-US02 |
| US-03 空仓库 | US-03-1 ~ US-03-5 |
user-stories.test.ts TC-US03 |
| US-04 自拟选题 | US-04-1 ~ US-04-2 |
user-stories.test.ts TC-US04 |
| US-05 官方选题 | US-05-1 ~ US-05-2 |
user-stories.test.ts TC-US05 |
| US-06 创建项目 | US-06-1 ~ US-06-3 |
user-stories.test.ts TC-US06 |
| US-07 批量导入 | US-07-1 ~ US-07-3 |
user-stories.test.ts TC-US07 |
| US-08 人工修正 | US-08-1 ~ US-08-2 |
user-stories.test.ts TC-US08 |
| US-09 管线诊断 | US-09-1 ~ US-09-2 |
user-stories.test.ts TC-US09 |
| US-10 维度独立 | US-10-1 |
user-stories.test.ts TC-US10 |