From c90fb05333e9063469690870f585c74e5596a49e Mon Sep 17 00:00:00 2001 From: xiaoxing0135 <706015750@qq.com> Date: Tue, 2 Jun 2026 23:37:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20address=20code=20review=20findings=20?= =?UTF-8?q?=E2=80=94=20version=20sync,=20CLAUDE.md,=20install.py=20gaps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ROADMAP: V1.42.0 → V1.43.0 to match VERSION - CLAUDE.md: new entry-point doc with directory map, design limitations - README: replace /smoke-test pseudo-command with correct workflow reference - install.py: add FULL_GUIDE.md + tagent.yml.example to copy_top_level_docs - install.py: fix finish() to remove /smoke-test, reference skill doc instead - install.py: add memory/ to create_dirs - memory/.gitkeep: initialize required directory Closes code review issues #1 #2 #3 #5 #7 #9 #11 --- CLAUDE.md | 43 +++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- ROADMAP.md | 2 +- install.py | 6 ++++-- memory/.gitkeep | 0 5 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 CLAUDE.md create mode 100644 memory/.gitkeep diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e524e1a --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,43 @@ +# CLAUDE.md + +## Entry Point + +This project uses **Skill workflow documents → manual Agent calls** pattern. Slash commands like `/smoke-test` are **not registered** as Claude Code commands — they are workflow documents in `skills/` that describe step-by-step processes. The main thread reads the Skill doc, then calls `Agent(subagent_type="xxx")` sequentially. + +There is **no auto-orchestration engine**. The main thread reads Skill docs and calls Agents sequentially. Agents may invoke utils but often implement equivalent logic themselves. + +## Directory Map + +| What | Where | +|------|-------| +| Agent definitions | `agents/` (16 agents) | +| Skill workflow docs | `skills/` (35 skills) | +| Python utils | `utils/` (78 modules) | +| Config templates | `config/` (incl. `.env.example`) | +| Test outputs | `workspace/` | +| Runtime / MCP | `runtime/` | +| CI pipelines | `ci/` | +| Docs | `docs/` | +| Marketplace | `marketplace/` | + +## How to Run + +1. Copy `config/.env.example` to `.env` and fill in required values +2. Read the relevant Skill doc in `skills/` to understand the workflow +3. Call agents manually via `Agent(subagent_type="xxx")` following the Skill flow +4. Outputs land in `workspace/` + +## Architecture + +``` +Skill docs (skills/*.md) → define workflows +Agent defs (agents/*.md) → define roles + tool access +Utils (utils/*.py) → executable implementations +``` + +## Design Limitations + +- `/smoke-test` etc. are **not** registered slash commands. They are workflow documents. +- Agent definitions contain Python import hints (e.g. `from utils.prd_loader import load_prd`) as prompts for AI agents, not actual executable code. +- `test-lead` cannot recursively spawn sub-agents (Claude Code architecture limitation). +- Pentest workflows require `tagent.yml` with `pentest.authorized: true` — see `tagent.yml.example`. diff --git a/README.md b/README.md index 400b9ac..c026b32 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ python install.py ~/test-agent-project # macOS / Linux example, any folder After deployment, outputs under `workspace/`: test cases (Excel + xmind + markmap + opml) + Word report + decision logs. -**Next**: edit `.env` → `claude /login` → `cd project-dir && claude` → `/smoke-test` +**Next**: `cp config/.env.example .env` → edit `.env` → `cd project-dir && claude` → read `skills/smoke-test.md` workflow, run agents per the flow ## 🖥 Desktop App diff --git a/ROADMAP.md b/ROADMAP.md index 57f5ce4..e495698 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,7 +1,7 @@ # Test-Agent V1.x ROADMAP > 项目终态目标:每个 expert / skill 真 LLM-driven / script-backed 实装,**绝不输出 mock 数据**。 -> 当前状态:V1.42.0 (**expert rollout 收尾 + skill rollout 完成(16/16)+ Phase 3 完成 + Phase 4 完成 + Phase 5 完成**) +> 当前状态:V1.43.0 (**expert rollout 收尾 + skill rollout 完成(16/16)+ Phase 3 完成 + Phase 4 完成 + Phase 5 完成**) > - **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/install.py b/install.py index 5c4e442..d4c6d66 100644 --- a/install.py +++ b/install.py @@ -299,6 +299,7 @@ def create_dirs(project_root): os.path.join("workspace", "执行日志", "baselines"), os.path.join("workspace", "执行日志", "history"), os.path.join("workspace", "执行日志", "截图"), + "memory", ] for d in dirs: os.makedirs(os.path.join(project_root, d), exist_ok=True) @@ -409,7 +410,7 @@ def copy_top_level_docs(template_dir, project_root): docs = [ "LICENSE", "NOTICE.md", "SECURITY.md", "CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "ROADMAP.md", "README.md", "README.zh-CN.md", - "CHANGELOG.md", "VERSION", + "CHANGELOG.md", "VERSION", "FULL_GUIDE.md", "tagent.yml.example", ] for f in docs: src = os.path.join(template_dir, f) @@ -503,7 +504,8 @@ def finish(project_root): 2. 安装 Java JRE 17 + JMeter 5.6.3 + Allure CLI(详见 部署说明.md) 3. claude /login # 首次登录 Claude Code 4. cd {project_root} && claude # 启动 - 5. 在 Claude 提示符内: > /smoke-test # 第一次冒烟验证 + 5. cd {project_root} && claude # 进入项目 + 6. 阅读 skills/smoke-test.md 工作流 # 第一次冒烟验证 {'=' * 50} """ diff --git a/memory/.gitkeep b/memory/.gitkeep new file mode 100644 index 0000000..e69de29