用途
grading-backend 是一个给 AI 培训项目后端实现打分的技能。场景为:50 名学员分成约 12 组,按 spec-driven 方式实现本地部署的后端服务。本技能让 Claude(或 Qoder / Cursor / Claude Code agent)按统一 rubric 给某一组的后端打分,产出可给学员的 markdown 报告 + 可汇总 leaderboard 的 JSON。
主要能力
- 按 9 个加权维度打分,维度与权重为:Spec 一致性(20)、健壮性(15)、API 设计(12)、测试(12)、数据建模(10)、代码分层(10)、性能(8)、可观测性(7)、文档(6),权重合计 100。
- 采用 0–10 标尺,锚点为 0、3、5、7、9、10,允许在证据支持时使用 1/2/4/6/8,不允许小数。
- 总分计算公式:total = Σ(score_i × weight_i) / Σ(weight_i for dim_i where score_i != null) × 100 / 10。N/A 维度不计入分母。总分映射到档位:S(≥90)、A(80–89)、B(70–79)、C(60–69)、D(<60)。
- evidence-first 的强制约束:score ≥ 7 或 ≤ 4 至少 2 条证据,5–6 至少 1 条,9–10 至少 3 条,0 至少 1 条,N/A 至少 1 条。证据只能取四类合法形式之一:代码引用(path/to/file.ext:Lstart-Lend)、截图(.grading/shots/)、命令日志(.grading/probes/)、spec 引用。证据不足时 score 置为 null 并标注 EVIDENCE_MISSING。
- 产出 .grading/reports/<team>-backend.md(按统一模板填充)与 .grading/reports/<team>-backend.json(通过 score-schema.json 校验)。
- 附带资源:anti-patterns.md(后端反模式清单,打健壮性、代码分层、性能三个维度时必读)、examples/good-report.md 与 examples/mediocre-report.md(标定样例)、probes/probe-robustness.sh(8 个健壮性探针场景:空 body / 错类型 / 超长字段 / 缺必填 / 越权 / 幂等重放 / 并发冲突 / 未登录)、probes/probe-performance.sh(基于 npx autocannon 的 p50/p95/p99 压测)。
使用方式
前置依赖:本地可跑的后端服务,默认 http://localhost:8080(按项目 README 调整),有 health check 端点;spec 文档位于 <project>/docs/spec.md 或 <project>/README.md 或 <project>/spec/*,找不到需先向用户确认路径;Node ≥ 18;curl;输出目录为待评项目根目录下的 .grading/。
评分流程为 5 步:
- 定位与启动:确认 spec 路径并记录 spec_sha,读 spec 列出接口清单、数据模型、权限角色、关键写操作,识别技术栈并记录 project_sha,启动后端确认健康端点可访问。
- 收集证据:静态(grep/rg 扫关键词、看 package.json/schema/migration)+ spec 对齐 + 运行期(跑 probe 脚本)+ 交互(走主业务流)+ 测试(跑 test suite)。
- 按 9 维度逐条打分,每条打分附证据,取证不足时按约束置 null 并标注 EVIDENCE_MISSING。
- 产出 report.md + summary.json。
- 自检:用 npx ajv-cli 校验 JSON schema,用 grep 统计证据引用数量,自检不过则补证据。
约定工作目录:cd 到被评项目后,用绝对路径调用 probe,例如:bash $WORKSHOP_ROOT/skills/grading-backend/probes/probe-robustness.sh team-2 http://localhost:8080 /api/items。
适用场景
适用于 AI 培训项目中按统一标准批量评估多个团队的后端交付物,需要产出可对比的分数与证据化反馈。
限制
- 前置依赖中列出的环境(本地可跑后端、spec 文档、Node ≥ 18、curl)未满足时,评分可信度受影响,需在报告中记录说明。
- 启动失败时不硬给 0 分,但会在 Spec 一致性维度扣分。
- 证据条数不达标的维度视为打分无效,需按规则处理。
- 资料未提供该技能的安装命令、收费、平台支持范围等信息,暂未提供。