SuperAPI AI 工具集

flutter-mcp-toolkit-dogfood-iterations

测试与质量

查看项目

更新于 10-16 10:52

技能介绍

用途

本技能用于运行并记录 mcp_flutter 仓库中 flutter_test_app 的 dogfood(自用试用)迭代,为 MCP / intentcall 相关工具的质量打分、追踪与回归提供流程支持。

主要能力与文件

  • 评分量规:docs/superpowers/evals/tool_quality_rubric.yaml
  • 迭代记录:docs/evidence/dogfood/dogfood_web_eval.yaml
  • 总览说明:docs/superpowers/evals/README.md
  • 运行脚本:tool/evals/run_dogfood_eval.sh
  • Makefile 目标:make dogfood-eval(需在环境变量中提供 WS_URI)、make dogfood-eval-static

通过阈值

加权总分 ≥80/100;达到 ≥90 或接受 pass_with_warnings 才可发布。

评分维度与权重:

  • connectivity:20
  • schema_validity:10
  • handler_correctness:20
  • capture_quality:10
  • visual_fidelity:10
  • webmcp_parity:10
  • intentcall_authoring:10
  • docs_truth:10

迭代工作流

任务进度清单:

  • 启动应用(web-showcase 或 make showcase)
  • 从日志中获取新鲜的 WS_URI(热重载后不要使用过期值)
  • 运行测试组(battery)
  • 在记录文件中记录分数与警告
  • 若某模式重复出现 ≥2 次,则将其提升为通用模式

Web 迭代命令示例:

make web-showcase
export WS_URI="$(grep -Eo 'ws://127\.0\.0\.1:[0-9]+/[A-Za-z0-9_=-]+/ws' .showcase/web_app.log | tail -1)"
bash tool/evals/run_dogfood_eval.sh --ws-uri "$WS_URI" --merge --skip-visual   # yq 或 dart 回退
# 或不用 merge:
bash tool/evals/run_dogfood_eval.sh --ws-uri "$WS_URI"

该脚本会自动运行:静态门禁(static gates)+ validate-runtime + webmcp 校验。

仅静态(用于 CI / PR):

make dogfood-eval-static

Makefile 目标:

make dogfood-eval          # 需要在环境变量中提供 WS_URI
make dogfood-eval-static

产物

  • 每次运行:.showcase/eval_runs/<timestamp>/eval_run.yaml
  • 快照:.showcase/eval_run_<timestamp>.yaml
  • 使用 --merge 时:更新 docs/evidence/dogfood/dogfood_web_eval.yaml(通过 yq 或 dart run mcp_server_dart/tool/merge_dogfood_tracker.dart)

判定结果

  • pass:分数 ≥80,无阻塞性警告
  • pass_with_warnings:分数 ≥80,例如 visual_capture_truth_mode
  • fail:分数 <80
  • blocked_no_runtime:仅使用 --skip-runtime 时

Exec 与 MCP 名称

测试 invoke 时需在迭代笔记中记录:

  • exec:使用裸名称(get_recent_logs、dogfood_ping)——同时接受 fmt_* 别名
  • MCP:使用 fmt_ 前缀(fmt_get_recent_logs、fmt_client_tool + listing name)

连接方式:使用全局 --vm-service-uri(而非 exec 的 --target)

dart run mcp_server_dart/bin/flutter_mcp_toolkit.dart \
  --vm-service-uri "$WS_URI" exec --name get_recent_logs --args '{}'

Chrome 测试组注意事项

  • 除非 HARNESS_ROOT 指向 flutter_harness,否则跳过重型视觉测试框架:添加 --skip-visual
  • validate-runtime --save-images 在 Chrome 上可能挂起超过 5 分钟;除非设置 DOGFOOD_SAVE_IMAGES=1,否则测试组会省略该步骤

CI(分支)

  • .github/workflows/intentcall_eval.yml —— PR:dogfood-eval-static;每周/main:intentcall 包测试 + 静态检查
  • 完整的 Chrome 运行时 dogfood 保持在本地运行,直至无头 WebMCP 具备成本效益

每次迭代之后

  • 在记录文件中对比 dimension_scores 与上一次迭代的差异
  • 当警告或错误重复出现时,添加到 recurring_warnings / recurring_errors
  • 用可操作的文档/代码增量更新 fix_recommendations
  • 若无全新的测试组运行,不要把记录 YAML 当作门禁

相关技能

  • flutter-mcp-toolkit-maintain-web —— WebMCP 启动 + 校验
  • flutter-mcp-toolkit-maintain-macos —— macOS showcase
  • flutter-mcp-toolkit-repo-maintainer —— 编辑本技能后执行 make sync-skills

限制

资料中未提供价格、收费、平台支持范围或自动化程度的完整说明,相关细节暂未提供。