{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "qa-expert",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "execute_command",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "scripts/",
      "summary": "Executes local script or command: python3 scripts/init_qa_project.py <project-name> [output-directory] (writes directories and files)"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: creates tests/docs, tests/docs/templates, tests/e2e, and tests/fixtures 4-tier directory structure under the target directory (via mkdir)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 反查（不复用第一遍结论）：① 全目录 token 扫描（subprocess/requests/urllib/socket/http/os.system/eval/exec/os.environ/getenv）核对『无网络、无凭证读取』；② 逐条重读 init_qa_project.py 的六个 create_* 函数，把实际写入路径与 SKILL.md『What gets created』、README 模板内引用的文件名做差集比对；③ 重读 calculate_metrics.py 的 gates 字典与 SKILL.md 质量门禁表做条目级对账；④ 用 wc/grep 独立数 llm_prompts_library.md 的围栏块数与小节数，核验『30+ prompts』；⑤ 交叉核对 CSV 列名在 init 与 metrics 两侧是否一致（键名契约）；⑥ 核验 pin commit：git rev-parse HEAD 与提交时间是否等于任务给定值。",
    "second_pass": [
      {
        "item": "无网络/无凭证：脚本执行面反查",
        "status": "ok",
        "detail": "对 qa-expert/ 全目录 grep subprocess|requests|urllib|socket|http|os.system|os.environ|getenv|eval|exec：脚本侧零命中，仅参考文献里的 localhost 示例、文档外链与 docker ps 等示例命令。两脚本 import 仅 os/sys/csv/pathlib/datetime/collections。第一遍『无网络、无凭证』结论成立。"
      },
      {
        "item": "init 落盘清单 vs SKILL.md/生成文档的自我引用",
        "status": "discrepancy",
        "detail": "init 只创建 6 个文件：TESTS-EXECUTION-TRACKING.csv、BUG-TRACKING-TEMPLATE.csv、BASELINE-METRICS.md、WEEKLY-PROGRESS-REPORT.md、MASTER-QA-PROMPT.md、README.md（均在 tests/docs 或 tests/docs/templates 下）。但生成的 README 正文写『1. Read `QA-HANDOVER-INSTRUCTIONS.md`』并索引 QA-HANDOVER-INSTRUCTIONS.md、01-[CATEGORY]-TEST-CASES.md、02-SECURITY-TEST-CASES.md，MASTER-QA-PROMPT.md 也要求先读 tests/docs/QA-HANDOVER-INSTRUCTIONS.md——这些文件 init 一律不生成，第三方按模板走会在第一步中断。SKILL.md『What gets created』同样未提示该缺口。"
      },
      {
        "item": "质量门禁：SKILL.md 6 条 vs 脚本 3 条",
        "status": "discrepancy",
        "detail": "SKILL.md 门禁表列 Test Execution 100% / Pass Rate ≥80% / P0=0 / P1≤5 / Code Coverage ≥80% / Security 90% 六条并标注均为 Blocker；calculate_metrics.py 的 gates 字典只有前三条，且 P0 判定实现为『Bug ID 以 BUG 开头且 Notes 含 P0』这一启发式。P1≤5、覆盖率、OWASP 三项无任何自动判定。"
      },
      {
        "item": "指标口径与 CSV 键名契约",
        "status": "ok",
        "detail": "calculate_metrics 读取的键 Test Case ID/Status/Result/Bug ID/Priority/Notes 均存在于 init 写出的 13 列表头中，跨脚本契约自洽。但口径依赖精确字符串：Status=='Completed'、Result=='✅ PASSED'、Notes 含 'P0'，大小写或写法的任何偏差都会静默计 0（无校验、无告警）——这是口径脆弱性而非事实错误。"
      },
      {
        "item": "llm_prompts_library『30+ prompts』宣称",
        "status": "discrepancy",
        "detail": "SKILL.md 两处写『30+ ready-to-use prompts』/『30+ ready-to-use reporting prompts』。独立计数（grep '^```' = 36 行 → 18 个围栏代码块；'### ' 小节 29 个，其中含 Best Practices/Common Mistakes/Troubleshooting 等非 prompt 小节）→ 可粘贴 prompt 块实为 18 个，最宽口径（含故障排查内的短示例）也不足 30。宣称偏高。"
      },
      {
        "item": "关键方法论声明与实际内容一致性（AAA/5 小时/OWASP 90%/P0-P4）",
        "status": "ok",
        "detail": "day1_onboarding.md 首行即『**Time**: 5 hours (with breaks)』，与 SKILL.md 的 5 小时时间线一致；google_testing_standards.md 确实给出 AAA 三段结构、TC-[CATEGORY]-[NUMBER] 命名与 P0-P4 定义；SKILL.md 的 OWASP A01-A07 清单与『**Target**: 90% OWASP coverage (9/10 threats mitigated)』自洽；模板文件 TEST-CASE-TEMPLATE.md 含 AAA 字段与实例。无夸大。"
      },
      {
        "item": "Ground Truth 原则的双向核对",
        "status": "ok",
        "detail": "SKILL.md『Test case documents … = authoritative source for test steps』与 ground_truth_principle.md『Ground Truth: 02-CLI-TEST-CASES.md (detailed test specifications)』/『Lesson Learned: … 3.2% consistency rate』表述一致，纪律有事故依据，非泛泛口号。"
      },
      {
        "item": "pin commit 与目录资产面核对",
        "status": "ok",
        "detail": "git rev-parse HEAD = d5c4678cb5d4fd6acc9c922690df035dbd33d247，提交时间 2026-09-09T20:31:25+08:00（= UTC 12:31:25Z），与任务给定一致。glob 全量（含隐藏文件）确认 qa-expert/ 仅 SKILL.md + scripts/2 + references/5 + assets/templates/1，无隐藏脚本、无二进制、无 .env。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247",
    "sha256": "a79a23756c92216493420106c0be5d7edc8aaf4b4ddd906557d940b7ef3fab2f",
    "reviewed_by": null,
    "reviewed_at": null
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-09-15/qa-expert.tar.gz",
    "sha256": "a79a23756c92216493420106c0be5d7edc8aaf4b4ddd906557d940b7ef3fab2f",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  },
  "original": {
    "github": "https://github.com/daymade/claude-code-skills/tree/main/qa-expert",
    "path": "qa-expert",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  }
}