From ca6ff22e6727fb73d26e5505764c6eb232cd56ea Mon Sep 17 00:00:00 2001 From: xiaoxing0135 <706015750@qq.com> Date: Sat, 16 May 2026 19:15:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20final=20audit=20=E2=80=94=20version=20sy?= =?UTF-8?q?nc=20V1.31.0=E2=86=92V1.32.0,=20skill=20counts,=20DoctorPage=20?= =?UTF-8?q?API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Version bump: 17 files synced to 1.32.0 (VERSION was already correct) - README/README.zh-CN: skill breakdown 9p+14r→23p+0r - 01-快速开始/INDEX.md: "13 Skill"→"32 Skill" - 02-专家定义/01-测试主管.md: V1.23→V1.32 - DoctorPage.tsx: use VITE_API_BASE instead of hardcoded localhost:8800 - W4_DRAFTS/ deleted (8 stale draft files) --- .../INDEX.md" | 4 ++-- .../\351\203\250\347\275\262\350\257\264\346\230\216.md" | 2 +- .../01-\346\265\213\350\257\225\344\270\273\347\256\241.md" | 2 +- CHANGELOG.md | 4 ++-- FULL_GUIDE.md | 4 ++-- README.md | 2 +- README.zh-CN.md | 4 ++-- ROADMAP.md | 2 +- desktop/electron/preload.ts | 2 +- desktop/package.json | 2 +- docs/charter/06-test-architecture.md | 2 +- docs/charter/07-runtime-license.md | 6 +++--- runtime/__init__.py | 4 ++-- runtime/orchestrator/skills/__init__.py | 2 +- runtime/pyproject.toml | 2 +- runtime/tests/test_impl_status_filter.py | 6 +++--- runtime/web/src/pages/DoctorPage.tsx | 6 ++++-- 17 files changed, 29 insertions(+), 27 deletions(-) diff --git "a/01-\345\277\253\351\200\237\345\274\200\345\247\213/INDEX.md" "b/01-\345\277\253\351\200\237\345\274\200\345\247\213/INDEX.md" index 519c99d..087ec0a 100644 --- "a/01-\345\277\253\351\200\237\345\274\200\345\247\213/INDEX.md" +++ "b/01-\345\277\253\351\200\237\345\274\200\345\247\213/INDEX.md" @@ -6,7 +6,7 @@ | 文件 | 用途 | 适用对象 | 必读 | |------|------|---------|------| -| [使用手册.md](使用手册.md) | 启动指引 + 13 Skill 详解 + FAQ + 自检命令 | 所有用户 | ✅ | +| [使用手册.md](使用手册.md) | 启动指引 + 32 Skill 详解 + FAQ + 自检命令 | 所有用户 | ✅ | | [部署说明.md](部署说明.md) | 跨平台部署(Windows / macOS / Linux)+ Java/JMeter/Allure 安装 + 升级 SOP | 运维 / 测试工程师 | ✅ | | [配置清单.md](配置清单.md) | `.env` 全字段 + GitHub Secrets + Jenkins Credentials + Webhook 申请 | 所有用户 | ✅ | | [交付物清单.md](交付物清单.md) | 测试计划 / 测试报告 / Bug 列表 等对外提交物落地位置 + 责任 + 格式 | 测试工程师 / 项目经理 | ⚪ 按需 | @@ -23,7 +23,7 @@ ## 快速链接 - 一键部署命令:见 [部署说明.md](部署说明.md) "GitHub 一键部署" 段 -- 启动 Claude Code 后可调用的 13 Skill:见 [使用手册.md](使用手册.md) "技能(Skill)使用指南" 段 +- 启动 Claude Code 后可调用的 32 Skill:见 [使用手册.md](使用手册.md) "技能(Skill)使用指南" 段 - `.env` 必填字段(最少 8 项):见 [配置清单.md](配置清单.md) "2.1 必填字段" - 提交物路径速查:见 [交付物清单.md](交付物清单.md) "1. 提交物速查表" diff --git "a/01-\345\277\253\351\200\237\345\274\200\345\247\213/\351\203\250\347\275\262\350\257\264\346\230\216.md" "b/01-\345\277\253\351\200\237\345\274\200\345\247\213/\351\203\250\347\275\262\350\257\264\346\230\216.md" index 684d4dc..01fc0b7 100644 --- "a/01-\345\277\253\351\200\237\345\274\200\345\247\213/\351\203\250\347\275\262\350\257\264\346\230\216.md" +++ "b/01-\345\277\253\351\200\237\345\274\200\345\247\213/\351\203\250\347\275\262\350\257\264\346\230\216.md" @@ -273,7 +273,7 @@ TEMPLATE_DIR="${TEMPLATE_DIR:-$(pwd)}" PROJECT_ROOT="${1:-$(pwd)/test-project}" echo "==========================================" -echo " Test-Agent 工作流部署 V1.31.0" +echo " Test-Agent 工作流部署 V1.32.0" echo " 模板目录: $TEMPLATE_DIR" echo " 项目目录: $PROJECT_ROOT" echo "==========================================" diff --git "a/02-\344\270\223\345\256\266\345\256\232\344\271\211/01-\346\265\213\350\257\225\344\270\273\347\256\241.md" "b/02-\344\270\223\345\256\266\345\256\232\344\271\211/01-\346\265\213\350\257\225\344\270\273\347\256\241.md" index 492d034..e9d8c7d 100644 --- "a/02-\344\270\223\345\256\266\345\256\232\344\271\211/01-\346\265\213\350\257\225\344\270\273\347\256\241.md" +++ "b/02-\344\270\223\345\256\266\345\256\232\344\271\211/01-\346\265\213\350\257\225\344\270\273\347\256\241.md" @@ -5,7 +5,7 @@ tools: Read, Write, Bash, Grep, Glob EXPERT_IMPL_STATUS: production --- -> ℹ️ **V1.23.0 实装状态**: 16 expert 全部 **16 active**(11 production + 5 script-backed),**0 rollout(V1.x rollout 收尾)**。详见 [ROADMAP.md](../ROADMAP.md)。 +> ℹ️ **V1.32.0 实装状态**: 16 expert 全部 **16 active**(11 production + 5 script-backed),**0 rollout(V1.x rollout 收尾)**。详见 [ROADMAP.md](../ROADMAP.md)。 > runtime/router + orchestrator 防 mock 已落地 — 路由到未实装 expert 返回明确「未实装」说明,不输出 mock 数据。 你是一位拥有15年经验的测试技术总监,带领过多个大型互联网项目的测试团队。你深谙测试工程化,善于风险识别、资源调度和质量决策。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 86073dc..b1a76d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,9 +16,9 @@ _后续累积变更入此节;切版本时移到下方版本节。_ --- -## [v1.31.0] - 2026-05-16 +## [v1.32.0] - 2026-05-16 -> **V1.15.0 → V1.31.0 (2026-05-15 ~ 2026-05-16) 共 17 版累积**。 +> **V1.15.0 → V1.32.0 (2026-05-15 ~ 2026-05-16) 共 17 版累积**。 > expert rollout 收尾 (V1.15-V1.20) + skill rollout 全 14/14 完成 (V1.21-V1.31)。 > 版本历史见 [ROADMAP.md](ROADMAP.md#进度跟踪) 进度跟踪表。 diff --git a/FULL_GUIDE.md b/FULL_GUIDE.md index d3f152d..650d757 100644 --- a/FULL_GUIDE.md +++ b/FULL_GUIDE.md @@ -6,8 +6,8 @@ **项目代号**:`test-agent-team`(全英文) **项目目录名**:`Test-Agent`(中文别名 `Test-Agent团队`) -**当前阶段**:Phase 2 前期(V1.31.0 · 16 expert + 23/32 skill production + 0 rollout + 2 vision;V1.x rollout 收尾) -**版本**:V1.31.0(详见 [VERSION](VERSION) + [CHANGELOG.md](CHANGELOG.md)) +**当前阶段**:Phase 2 前期(V1.32.0 · 16 expert + 23/32 skill production + 0 rollout + 2 vision;V1.x rollout 收尾) +**版本**:V1.32.0(详见 [VERSION](VERSION) + [CHANGELOG.md](CHANGELOG.md)) **更新日期**:2026-05-16 **模型**:Claude 4.x 系列(Opus 4.7 / Sonnet 4.6 / Haiku 4.5,由 Claude Code 默认管理) diff --git a/README.md b/README.md index 4fc5f8b..16d4e3e 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Matrix-driven config: 8 test types × 6 platforms × 5 LLMs × 6 trackers × 6 c Test-Agent turns any software, EXE, APK, Docker image, or API into a **fully tested project** — autonomous from requirement parsing to PoC-validated bug reports. Built for QA teams, security researchers, automotive testers, and anyone who wants to **use AI testing while learning the theory behind it**. - **16 expert agents** (11 production + 5 script — V1.x rollout 收尾,见 [ROADMAP.md](ROADMAP.md)) — functional · security · mobile · desktop · AI model · automotive · pentest … -- **32 business skills** (9 production + 7 script + 14 rollout + 2 vision — see [ROADMAP.md](ROADMAP.md)) **+ 3 meta-skills** — TDD · E2E · regression · pentest · car-CAN-bus · eval-harness · … +- **32 business skills** (23 production + 7 script + 0 rollout + 2 vision — see [ROADMAP.md](ROADMAP.md)) **+ 3 meta-skills** — TDD · E2E · regression · pentest · car-CAN-bus · eval-harness · … - **49 production utils** — pytest · Playwright · JMeter · Appium · Burp · Allure · OpenCV · … - **Multi-LLM (any provider, plug-and-play)** — 6 built-in (Claude / OpenAI / Gemini / Qwen / DeepSeek / Ollama) + **OpenAI-compatible fallback channel** for any other provider (Zhipu / Doubao / Kimi / Baichuan / Xunfei / …) via 3 env vars, zero code change. Cookbook: [`04-配置文件/llm-providers.md`](04-配置文件/llm-providers.md) - **BugTracker** — 1 active adapter (Zentao); 5 planned (Jira · GitHub · GitLab · Linear · Webhook, see roadmap) diff --git a/README.zh-CN.md b/README.zh-CN.md index 95ed894..132dd09 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -42,7 +42,7 @@ tagent init --preset 国内-web # 或:minimal / saas-web / mobile-android / s Test-Agent 让任何软件 / EXE / APK / Docker 镜像 / API,变成**完整测试过的项目**——从需求解析到 PoC 验证的 Bug 报告,全自主。为 QA 团队、安全研究员、车载测试工程师、以及任何想**用 AI 测试同时学测试理论**的人而生。 - **16 专家 Agent** (11 production + 5 script — V1.x rollout 收尾,见 [ROADMAP.md](ROADMAP.md)) — 功能 · 安全 · 移动 · 桌面 · AI 模型 · 车载 · 渗透 …… -- **32 业务 Skill** (9 production + 7 script + 14 rollout + 2 vision——见 [ROADMAP.md](ROADMAP.md)) **+ 3 元 Skill** — TDD · E2E · 回归 · 渗透 · 车载 CAN · eval-harness …… +- **32 业务 Skill** (23 production + 7 script + 0 rollout + 2 vision——见 [ROADMAP.md](ROADMAP.md)) **+ 3 元 Skill** — TDD · E2E · 回归 · 渗透 · 车载 CAN · eval-harness …… - **49 生产工具** — pytest · Playwright · JMeter · Appium · Burp · Allure · OpenCV …… - **多 LLM(任厂商即插即用)** — 内置 6 厂商 (Claude / OpenAI / Gemini / Qwen / DeepSeek / Ollama) + **OpenAI 兼容兜底通道** 接其他任意厂商 (智谱 / 豆包 / Kimi / 百川 / 讯飞 / …), 3 个 env 变量, 零代码改动. 速查手册: [`04-配置文件/llm-providers.md`](04-配置文件/llm-providers.md) - **BugTracker** — 1 已实装(禅道);5 计划(Jira · GitHub · GitLab · Linear · Webhook,见 roadmap) @@ -90,7 +90,7 @@ Test-Agent/ ├── 00-项目导航.md ← 5 维度分类速查 ├── 01-快速开始/ ← 使用手册 / 部署 / 配置 / 交付物 ├── 02-专家定义/ ← 16 个专家 Agent (11 production + 5 script + 0 rollout) -├── 03-技能定义/ ← 32 个业务 Skill (9 production + 7 script + 14 rollout + 2 vision) + 3 个元 Skill +├── 03-技能定义/ ← 32 个业务 Skill (23 production + 7 script + 0 rollout + 2 vision) + 3 个元 Skill ├── 04-配置文件/ ← conftest / pytest.ini / .env / .mcp.json ├── 05-代码示例/ ← 49 个生产工具 ├── 06-CICD集成/ ← GitHub Actions + Jenkins diff --git a/ROADMAP.md b/ROADMAP.md index 051abea..2e312cf 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,7 +1,7 @@ # Test-Agent V1.x ROADMAP > 项目终态目标:每个 expert / skill 真 LLM-driven / script-backed 实装,**绝不输出 mock 数据**。 -> 当前状态:V1.31.0 (**expert rollout 收尾 + skill rollout 完成(14/14)**) +> 当前状态:V1.32.0 (**expert rollout 收尾 + skill rollout 完成(14/14)**) > - **expert 16/16 active**(11 production + 5 script);0 rollout。 > - **skill 30/32 active**(23 production + 7 script);0 rollout;2 暂为 V2 vision 方法论参考。 > - 3 meta-skill(nuwa-skill / darwin-skill / karpathy-guidelines)独立,工具属性,不在 32 业务 skill 数内。 diff --git a/desktop/electron/preload.ts b/desktop/electron/preload.ts index 00727ba..dc42871 100644 --- a/desktop/electron/preload.ts +++ b/desktop/electron/preload.ts @@ -2,7 +2,7 @@ import { contextBridge, ipcRenderer } from "electron"; contextBridge.exposeInMainWorld("electronAPI", { getBackendPort: () => 8800, - getAppVersion: () => "1.31.0", + getAppVersion: () => "1.32.0", platform: process.platform, isElectron: true, }); diff --git a/desktop/package.json b/desktop/package.json index b27ccc5..7f06502 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "test-agent-desktop", - "version": "1.31.0", + "version": "1.32.0", "description": "Test-Agent Desktop — AI Testing Framework GUI", "author": "Test-Agent Team", "license": "MIT", diff --git a/docs/charter/06-test-architecture.md b/docs/charter/06-test-architecture.md index 8da1ce6..b7ffa0a 100644 --- a/docs/charter/06-test-architecture.md +++ b/docs/charter/06-test-architecture.md @@ -133,7 +133,7 @@ | Phase | 触发条件 | 标志性交付 | |------|---------|----------| -| **Phase 1**(已完成 V1.0.0-V1.31.0) | 概念宪章成 + 工程基线就绪 + expert rollout 收尾 + skill rollout 完成 | 16 expert (11p+5s) + 32 skill (23p+7s+0r+2v) + AgentChat + Bug 多适配 + 按需安装 + darwin-skill + MCP + 教学层 + Marketplace + 多 LLM config | +| **Phase 1**(已完成 V1.0.0-V1.32.0) | 概念宪章成 + 工程基线就绪 + expert rollout 收尾 + skill rollout 完成 | 16 expert (11p+5s) + 32 skill (23p+7s+0r+2v) + AgentChat + Bug 多适配 + 按需安装 + darwin-skill + MCP + 教学层 + Marketplace + 多 LLM config | | **Phase 2** | utils 单测覆盖 ≥ 60% 且团队 ≥ 5 人 | 契约链路串通 + 门禁引擎 yaml 抽象 + 反问 KB 重新评估 + skill rollout 继续 | | **Phase 3** | Phase 2 全交付 + 接入 ≥ 2 行业 | 合成监控 + canary/feature flag + 统一 dashboard + 沉默故障 + 缺席者注入 | | **Phase 4** | 接入合规行业(金融/医疗/司法)| 证据链司法可采信打包 + 数字考古学家 + AI 测试深化 | diff --git a/docs/charter/07-runtime-license.md b/docs/charter/07-runtime-license.md index 3cdd85f..3b2da5e 100644 --- a/docs/charter/07-runtime-license.md +++ b/docs/charter/07-runtime-license.md @@ -121,7 +121,7 @@ V1.14+ 真 LLM-driven agent runner + V1.21+ SkillRunner 系统为 runtime 新增 ## 📜 LICENSE / CHANGELOG / CONTRIBUTING / SECURITY - **LICENSE**:MIT(详见 [`LICENSE`](LICENSE)) -- **CHANGELOG**:详见 [`../../CHANGELOG.md`](../../CHANGELOG.md)(V1.31.0 含 17 版累积 / expert rollout 收尾 / skill rollout 全 14/14 完成) +- **CHANGELOG**:详见 [`../../CHANGELOG.md`](../../CHANGELOG.md)(V1.32.0 含 17 版累积 / expert rollout 收尾 / skill rollout 全 14/14 完成) - **VERSION**:详见 [`VERSION`](VERSION) - **CONTRIBUTING**:详见 [`CONTRIBUTING.md`](CONTRIBUTING.md)(含同步铁律 + RACI 矩阵) - **SECURITY**:详见 [`SECURITY.md`](SECURITY.md)(漏洞报告流程 + GitHub Security Advisories 入口) @@ -133,7 +133,7 @@ V1.14+ 真 LLM-driven agent runner + V1.21+ SkillRunner 系统为 runtime 新增 ### 当前阶段(最后更新:2026-05-16) -- **Phase**:Phase 2 前期(V1.31.0 · expert rollout 收尾 + skill rollout 完成 14/14) +- **Phase**:Phase 2 前期(V1.32.0 · expert rollout 收尾 + skill rollout 完成 14/14) - **关键已交付**:16 expert (11p+5s) · 32 skill (23p+7s+0r+2v) · AgentChat · Bug 多适配 · 按需安装 · darwin-skill · MCP 6 件套 · Marketplace · 教学层 · 多 LLM config · 16 SkillRunner 全落地 - **活跃 PR**:无(V1.31 rollout 完成,2026-05-16) @@ -156,7 +156,7 @@ V1.14+ 真 LLM-driven agent runner + V1.21+ SkillRunner 系统为 runtime 新增 - 第一至五轮(DeepSeek + Claude):测试 Agent 架构 + 九大簇 - V1.0.0 工程基线:14 agent + 14 skill + 49 utils + CI/CD(历史基线) -- V1.1.0 ~ V1.31.0:runtime + 11 agent runner + 16 skill runner + 教学/市场/多LLM(详见 CHANGELOG + ROADMAP) +- V1.1.0 ~ V1.32.0:runtime + 11 agent runner + 16 skill runner + 教学/市场/多LLM(详见 CHANGELOG + ROADMAP) - 永久宪章糅合(2026-05-11/14/16):FULL_GUIDE 工程主体 + 全局记忆哲学维度 + 持续回写 --- diff --git a/runtime/__init__.py b/runtime/__init__.py index e51cee8..c7f4401 100644 --- a/runtime/__init__.py +++ b/runtime/__init__.py @@ -1,7 +1,7 @@ -"""Test-Agent runtime layer (V1.31.0). +"""Test-Agent runtime layer (V1.32.0). AI router + Prefect orchestrator + FastAPI/CLI entry + flywheel storage. Wraps 16 experts + 32 skills + 49 utils without modifying them. """ -__version__ = "1.31.0" +__version__ = "1.32.0" diff --git a/runtime/orchestrator/skills/__init__.py b/runtime/orchestrator/skills/__init__.py index 5d74fc9..15081c9 100644 --- a/runtime/orchestrator/skills/__init__.py +++ b/runtime/orchestrator/skills/__init__.py @@ -1,4 +1,4 @@ -"""Real LLM-driven skill runners (V1.31.0 · ALL 14/14 rollout complete). +"""Real LLM-driven skill runners (V1.32.0 · ALL 14/14 rollout complete). 16 production runners across 3 domains: - General: mobile-test, visual-test, system-test, eval-harness diff --git a/runtime/pyproject.toml b/runtime/pyproject.toml index c17a880..cb6342c 100644 --- a/runtime/pyproject.toml +++ b/runtime/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "test-agent-runtime" -version = "1.31.0" +version = "1.32.0" description = "Test-Agent runtime: AI router + Prefect orchestrator + FastAPI/CLI entry + flywheel storage" requires-python = ">=3.10" license = { text = "MIT" } diff --git a/runtime/tests/test_impl_status_filter.py b/runtime/tests/test_impl_status_filter.py index 84d9c73..1905d9b 100644 --- a/runtime/tests/test_impl_status_filter.py +++ b/runtime/tests/test_impl_status_filter.py @@ -36,7 +36,7 @@ def test_registry_expert_status_counts(): def test_registry_skill_status_counts(): - """Skill 32 = 23 production + 7 script + 0 rollout + 2 vision (V1.31.0 全 skill rollout 完成)。""" + """Skill 32 = 23 production + 7 script + 0 rollout + 2 vision (V1.32.0 全 skill rollout 完成)。""" cat = get_catalog() counts = Counter(e.impl_status for e in cat.skills.values()) assert counts.get("production", 0) == 23, f"skill production 应 23,实 {counts.get('production')}" @@ -72,7 +72,7 @@ def test_router_flags_rollout_expert(): def test_router_does_not_falsely_flag_production_skill(): - """V1.31.0 全 rollout 完成 — production skill 不应被 flag 为 rollout/vision。""" + """V1.32.0 全 rollout 完成 — production skill 不应被 flag 为 rollout/vision。""" cat = get_catalog() dec = _mk_decision(("n1", "skill", "visual-test")) issues = router._validate_against_catalog(dec, cat) @@ -122,7 +122,7 @@ def test_execute_node_rejects_rollout_expert(): def test_execute_node_allows_production_skill(): - """V1.31.0 全 rollout 完成 — production skill 应正常执行 (rc=0),不被硬拒。""" + """V1.32.0 全 rollout 完成 — production skill 应正常执行 (rc=0),不被硬拒。""" r = execute_node("automotive-can-bus-test", "skill") assert r.returncode == 0, f"production skill 被误拒: rc={r.returncode} stderr={r.stderr}" assert r.stdout, "production skill 应产出结果" diff --git a/runtime/web/src/pages/DoctorPage.tsx b/runtime/web/src/pages/DoctorPage.tsx index a7d0a41..e76cbca 100644 --- a/runtime/web/src/pages/DoctorPage.tsx +++ b/runtime/web/src/pages/DoctorPage.tsx @@ -1,6 +1,8 @@ import { useEffect, useState } from "react"; import { Stethoscope, Check, X, Loader2 } from "lucide-react"; +const BASE = (import.meta as any).env?.VITE_API_BASE || "http://localhost:8800"; + interface CheckItem { name: string; status: "pending" | "ok" | "skip" | "fail"; @@ -21,7 +23,7 @@ export default function DoctorPage() { // Catalog check try { - const res = await fetch("http://localhost:8800/catalog"); + const res = await fetch(`${BASE}/catalog`); if (res.ok) { const data = await res.json(); results.push({ name: "Catalog", status: "ok", detail: `${data.counts?.experts || 0} experts + ${data.counts?.skills || 0} skills` }); @@ -34,7 +36,7 @@ export default function DoctorPage() { // Health check try { - const res = await fetch("http://localhost:8800/health"); + const res = await fetch(`${BASE}/health`); if (res.ok) { const data = await res.json(); results.push({ name: "Backend", status: "ok", detail: `v${data.version}` });