Files
L2keka/docs/user-stories.md
hangshuo652 1b89743d77 评审真实性增强:前端硬规则+人工启动方案+文档-实现三级校验
- 前端存在性硬规则: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)
2026-09-01 08:44:56 +08:00

5.7 KiB
Raw Permalink Blame History

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 ≤ 0penalty = 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 可设置 deadlinelate_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