爱奇艺
将你的编码代理对准网络应用程序 。 找回你拥有的Playwright套房.
阿基里斯是一个QA团队 住在你的经纪人。 给它一个URL,然后它映射应用程序,写测试,打猎错误,并且有每件工作都由没有写的评论员检查. 您的repo中哪些是普通的 Playwright: 运行的光谱 npx playwright test,无需代理.
这也需要无人想要的工作:一个红套房在重构后, 一张需要证明的票才能关闭.
you /achilles onboard this project; the app runs at http://localhost:3000, login is in .env
RUNNING run 2026-11-01-a7c3 (you keep working, progress shows in the status line)
... inspector maps 9 journeys, author writes them, reviewer re-runs every one ...
DONE 41 specs across 9 journeys, all green on 3 consecutive runs
2 app bugs reported with reproductions (tests/e2e/docs/adversarial-findings.md)
secrets moved to .env, committed in 6 commits
流程的示例; 真实数取决于您的应用程序 .
快开始
您需要节点20+,一个具有可达到的URL的网络应用程序,以及克洛德代码 2.1.287+(或 毕) (中文(简体) ).
npm i -D @civitas-cerebrum/achilles # registers the Claude Code plugin in place, fetches Chromium
重新启动克洛德代码,然后问:
/achilles onboard this project; the app runs at http://localhost:3000
就是这样。 在 npm 11+ 上, 如果 npm 在被屏蔽的安装脚本下列出 Achilles, 运行 npm install-scripts approve @civitas-cerebrum/achilles 并再次安装。 其他安装方式有: 下级。 。 。 .
你可以问什么
| 说 | 爱奇艺跑 | 你会得到 |
|---|---|---|
/achilles onboard this project | 上载,分8个阶段为零至套房 | 脚手架 快乐的道路 旅行图 深度报道 猎虫 秘密扫荡 以及报告 |
/achilles write a test: a guest can't check out with an empty cart | 作者- 场景 | 一个经审查的持久测试 |
/achilles map the user journeys | 地图行程 | tests/e2e/docs/journey-map.md,按业务影响排列优先次序 |
/achilles expand coverage on checkout | 扩展覆盖 | 每趟旅行有5个通行证:变体、出错、边缘案件、对抗探测器 |
/achilles try to break the app | 猎虫 | 发现分类账和每个错误的复制光谱 |
/achilles the checkout suite is red since yesterday, repair it | 修理套装 | 有稳定证据的修复; 真正的应用错误报告, 从未被打印过 |
/achilles verify PROJ-123 on this branch | 校验更改 | Diff审查、证据捆绑、新的测试和负控制证明它们可能失败 |
当工作需要他们时,专家技能会加入进来:API合同测试,数据库断言,k6性能测试,红色团队AI功能,惰性测试属性选择器,测试数据生命周期,bug报告,以及针对利益攸关方的简易甲板.
收归你所有
普通播放版权规格 @civitas-cerebrum/element-interactions,选择器保存在一个页面存储器中,而不是分散在测试中:
// tests/e2e/checkout.spec.ts
import { test } from '../fixtures/base';
test('a signed-in shopper can check out a single item', async ({ steps }) => {
await steps.navigateTo('/products/veggie-wrap');
await steps.click('addToCart', 'ProductPage');
await steps.click('checkoutButton', 'CartPage');
await steps.verifyText('orderStatus', 'ConfirmationPage', 'Order placed');
});
// tests/e2e/page-repository.json
{ "pages": [{ "name": "CartPage", "elements": [
{ "elementName": "checkoutButton", "selector": { "role": "button", "name": "Checkout" } }
]}]}
测试像其他套房一样在CI进行. 阿喀琉斯只需要写作和修理.
如何运作
your session ──/achilles──▶ orchestrator ──brief──▶ inspector drives the live app, gathers evidence
▲ │ ▲ author writes specs and the page repository
│ │ └──report────── reviewer fresh instance, verifies, never edits
│ │ reproducer decides whether a suspected defect is a bug
└────── one verdict ──────┘ doc-writer maps, reports, decks
- 你的课还是你的. 作品在背景中以单独的管弦乐团代理进行. 你会得到
RUNNING和一次运行的id, 和一个回手在结尾:DONE, (中文(简体) ),DONE_WITH_CONCERNS, (中文(简体) ),NEEDS_CONTEXT或者说BLOCKED。 。 。 . - 没人会做自己的功课. 每个单位的工作在运行前都要由新审查员检查. 作者不能批准,审查者不能编辑.
- 无问中道. 如果阿喀琉斯需要你帮忙,它会做出自己所做的一切,写一个简历文件,并立即询问一切. 在聊天中回答,它接起它停止的地方;
/achilles resume <run-id>在坠机后工作. - 虫被报告,没有工作周围. 被怀疑的app bug 永远不会成为预期的结果: 测试保留正确的断言, 被标记
@known-defect并用它的证据指着结果. - 发现者不确认. 在疑似缺陷成为哨兵或入场券之前,新鲜的再生者会从标准,活生生的应用以及源头来决定它是否是虫子,只存在于源头中,一个 spec question 或 意图. 在克洛德代码上,没有判决的缺陷文件或签注被拒绝.
- 护栏 不是手铐. 在克洛德代码8钩 看阿基里斯特工。 他们默认建议,只阻止无法解除的东西: 强力推动,
rm -rf在项目之外,绕过承诺检查,在承诺文件中的证明,签收时没有审核员收据.
合同满了 skills/achilles-orchestrator/SKILL.md,以及设计思维 代理移动左。 。 。 .
随身携带的工具
| 命令 | 是为了什么 |
|---|---|
npx achilles-mutate | 证明你的测试会失败 输入破损状态 接受标准禁止和报告 CAUGHT, (中文(简体) ), WRONG-TEST, (中文(简体) ), SURVIVED, (中文(简体) ), VOID 或者说 UNCHECKED。 。 。 . --calibrate 检查每个探测器都可以双向回答; --repeat 3 控制弹片。 需要a noop 变异和变异 E2E_MUTATION_* 钩入 page 修补. |
npx achilles-show <spec> | 重放向下并减速的光谱( S)slowMo 1500),带有视频和跟踪,并保存了一个mp4到 show-recordings/<timestamp>/ (无网络 ffmpeg) (中文(简体) ). |
npx achilles-self-repair | 未审修行. 基线套房,分离出碎片 与真正的失败,发送一个 claude -p 每一个红光谱文件 并验证每个治愈。 脚手架的电线是 npm run test:repair。 。 。 . |
npx achilles-selector-evidence | 为一页存储器条目抓取活证据(计数,大纲,截图). |
npx achilles-video | 将 JSON 故事板放入字幕复制视频(.webm 财务报告和审定财务报表 .mp4:一个离相机登录,每个步骤一个可读取的字幕,一个证据页,上面有突出的、预期的和实际的决定性文本。 写一个带有步骤计时,期望和解码检查的明细表. |
npx achilles-scenario-lint | 林特斯语Name #### <ID> — <title> 假设区块 与你的工程的工厂规则. |
还有 剧作家记者 记得 每一次测试都有当地的历史,所以失败表现为 failed 6 of last 10 runs,它复制 每一次失败尝试的证据。 它从来没有失败一次运行.
reporter: [['list'], ['html', { open: 'never' }], ['@civitas-cerebrum/achilles/reporter']],
历史生活于 .achilles/history/tests.ndjson 和未遂证据 .achilles/runs/<runId>/设置 ACHILLES_REPORTER=off 来禁用它.
安装
| 何处 | 命令 | 页:1 |
|---|---|---|
| 任何项目, npm | npm i -D @civitas-cerebrum/achilles | 注册插件在 .claude/settings.local.json (单位:千美元)-g数字 : ~/.claude/settings.json从 node_modules; 没有复制。 带克米姆去现场检查. |
| Claude Code,市场 | claude plugin marketplace add civitas-cerebrum/achilles 接下来 claude plugin install achilles@achilles | 每个工程的用户级插件 。 CLI和记者仍然来自npm包. |
| 毕 | pi install npm:@civitas-cerebrum/achilles | 技能加 Pi 扩展 : delegate_qa, (中文(简体) ), /achilles 和专家模式,每个专家自行 pi 进程。 见 文件/档案/p.md。 。 。 . |
安装后重新启动 Claude 代码 。 要卸载, 运行 claude plugin uninstall achilles 或删除 achilles 输入后添加到设置文件中.
开关
| 切换 | 效果 |
|---|---|
ACHILLES_DISABLE=1 在壳中 | 适配器为新会话通过每场活动; 工具表示关闭 |
ACHILLES_SKIP_CLAUDE_REGISTRATION=1 安装时 | 不要用 Claude 代码注册插件 |
ACHILLES_SKIP_PI_REGISTRATION=1 安装时 | 别把包装入Pi |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 安装时 | 跳过铬获取 |
achilles-factory-rules.json 在项目根中 | 选择工厂内容规则; 没有文件, 没有规则 |
安装步骤失败打印出警告, 安装仍然成功 。 包括记者和CLI变量在内的完整表格位于 文献/档案/密码。 。 。 .
在 CI 中运行套房
脚手架上写着 playwright.config.ts、规格、固定装置、设置文件和 test:repair 脚本,但没有CI工作流程,因为CI不需要Achilles. 一个起点:
# .github/workflows/e2e.yml
name: e2e
on: [pull_request]
jobs:
e2e:
runs-on: ubuntu-latest
env:
ACHILLES_SKIP_CLAUDE_REGISTRATION: "1"
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npm ci
- run: npx playwright install --with-deps chromium
- run: npx playwright test --reporter=junit
env:
# the secrets sweep moved credentials into .env (gitignored); pass them here
E2E_USER: ${{ secrets.E2E_USER }}
重命名变量以匹配您的 .env. 命令是 Playwright 自己的; 这个食谱没有被运行在这个发行的上载项目上.
在车盖下
16个技能:1名管弦乐手,7个工作流程,15名专家技能
| 技能 | 作用 | 它会做什么 |
|---|---|---|
achilles-orchestrator | 控制器 | 排队、飞行前、发送和交接合同、核查栏、说明和遵守纪律 |
↳ workflows/author-scenario.md | 一种情况 | 从情景、 URL、 捆绑或固定请求中进行一个持久测试 |
↳ workflows/onboard.md | 零到套间 | 脚手架 地基 快乐道路 旅行地图 报道 猎虫 秘密搜索 报告 |
↳ workflows/map-journeys.md | 发现 | tests/e2e/docs/journey-map.md 从检查官 驾驶应用程序一节 |
↳ workflows/expand-coverage.md | 覆盖范围 | 每趟旅行有5个通行证standard, (中文(简体) ), breadth, (中文(简体) ), depth;对抗性分类账,剩余风险 |
↳ workflows/hunt-bugs.md | 对抗 | 探测每一次出行live 或者说 static);结果分类账和复制规格 |
↳ workflows/repair-suite.md | 修理 | 一个测试失败,一个批次,或者无人看管 npm run test:repair; 稳定性证据、检疫分类账 |
↳ workflows/verify-change.md | 更改质量保证 | 罚单、公关或分支: diff审查、证据捆绑、耐用测试、负控制、核实注释 |
test-composer | 作者 | 一个旅程的完整变体 |
bug-discovery | 作者 | 一段旅程或页面集的横向测试 |
failure-diagnosis | 作者 | 当地或来自CI的基于证据的测试失败分类 |
evidence-capture | 作者 | 一个带每步截图,视频,追踪,HAR和控制台的光谱被冷冻为被编辑的捆绑 |
contract-testing | 作者 | 现况、计划、错误信封和标题 steps.api* 调用 |
database-testing | 作者 | 列、单元格、列和交易断言 steps.sql* |
performance-testing | 作者 | k6 负载、应力、悬索、浸泡和断点试验,加 SLO 阈值 |
agents-vs-agents | 作者 | 人工智能特征的红色小组、护栏、偏差和快速注射测试 |
selector-development | 作者 | 每个元素有一个惰性测试属性,有八步惰性证明 |
secrets-sweep | 作者 | 证书、密钥、 PII 和 URL 搬出套间 .env |
test-data-conventions | 作者(伴侣) | 一个情景的数据来自哪里,是谁创造的,是谁清理的 |
journey-mapping | 医生撰稿员 | 每节检查简报和地图作者规则 |
review | 审查者 | 组成法官、即时审查员和相机门 |
defect-confirmation | 复制器 | 一个疑似缺陷 独立复制; 判决是标准缺陷证据 |
qa-reporting | 医生写作员 | 工作摘要和试验目录 |
bug-report | 医生写作员 | 预先填入的追踪证票和复制票 |
框架引用(步骤 API、 阶段协议、 组成标准、 选择证据、 浏览器协议) 运行在 skills/achilles-orchestrator/references/。 。 。 .
这六个特工 和每个人可以触摸的
| 探员 | 作用 | 范围 |
|---|---|---|
achilles-orchestrator | 控制器 | 路由任务, 编写简报和运行状态 .achilles/runs/<run>/派出专家 阅读他们的报告 完成落地工作 从不打开浏览器,从不写光谱 |
achilles-inspector | 先来看 | 在自己的浏览器会话中驱动活应用程序; 写出证据和建议, 绝不是光谱或页面寄存器 |
achilles-author | 写入测试 | 拥有 tests/** 和页面存储器; 证明其与运行器的工作 |
achilles-reviewer | 新鲜的眼睛 | 在磁盘和运行中的应用程序中验证,写一个判决,永远不要编辑它审查的内容;每个审查一个新实例 |
achilles-reproducer | 确认缺陷 | 复制一个疑似缺陷而不阅读套件或更早的报告;返回 bug, (中文(简体) ), real-in-source, (中文(简体) ), spec-ambiguity 或者说 not-a-bug; 每个缺陷新建实例 |
achilles-doc-writer | 文档 | 将报告和证据转换为下面的文件 docs/** 财务报告和审定财务报表 tests/e2e/docs/**; 没有代码, 没有承诺 |
尼斯廷是主会 ~ 管弦乐 ~ 专家, 并在那里停留。 精确工具列表在下面的代理文件中 agents/ 内 文献/档案/密码。 。 。 .
八钩 (简体中文)
一个TypeScript模块只作用于六个Achilles代理. 它默认地提供建议;拒绝保留用于不可逆或危险的行动,并总是指定要采取的行动.
- 巴什评事. 否认者使用绕行旗帜, AI归属于承诺, 公关, 问题和评论,
k6* 跨越紫外线、持续时间、许可清单或生产限制,git push --force, (中文(简体) ),rm -rf在工程之外, 以及已承诺文件中的证书形状 。 执行语法和受保护路径的咨询,并填入缺失的playwright-cli -s=<slug>。 。 。 . - 管道分类账模型. 就阶段跳过、无信封的批准和缺失的可交付品提供咨询;保持完整性散列.
- 签收,缺陷备案及出站文本. 拒绝在罚单、评论、页面或聊天信息中签名(代理帧收到一张纸条)。 在没有审查者的收据和证据捆绑的情况下,就追踪器向完成的过渡或公布的公关提供咨询;在捆绑持有活的证书时否认,或者在它报告的缺陷没有复制人的判决时否认。 拒绝在运行前对追踪器进行搜索以获取已有的出票, 或未引用复制人确认为出票人的缺陷 .
- 调度纪律. 对不新鲜的形状、货币和审查员提供咨询.
- 复检出. 验证每个专家的回报 与其计划.
- 斯谱卫生. 否认大赦国际在报告文件中签字。 咨询测试ID,导入边界,诊断编辑的证据底片,以及项目选入时的工厂规则.
- 选择器开发. 除一个新增的惰性测试属性外, 拒绝在选取者简介上编辑任何前端 .
- 文汇报. 档案会跑出文物,会关闭每位专家的浏览器会话,并给回放增加一个运行摘要.
合同 模块工具是 文献/档案/密码。 。 。 .
爱奇艺不是
- 不是主机服务. 没有跑道,没有仪表板,一切运行在你的机器或线人.
- 不是本地移动. "Mobile变体"是Playwright的取景器仿真.
- 不是运行时间自我康复. 修复在代理会话中进行或通过
achilles-self-repair;一个CI跑从不要求模型重试一步. - 克劳德法典外没有执行. 在Pi上,技能是相同的规则;保持这些是操作员的工作.
- 尚未确定基准. 检测率,成本和持续时间还没有被测量和公布. 登机调度许多子剂,并使用一个计划使用窗口的一大部分.
从0.1.7或0.2.0分机安装升级
早期版本将钩子、技能和代理复制到 .claude/0.1.8 无副本,和 旧的拷贝一直在运行,直到取出数字 :
- 随着旧软件包的安装,运行
npx achilles-uninstall --project(和--global如果你用过-g.0.1.x没有未安装;跳到第2步. - 删去手留下的东西,取出
hooks输入.claude/settings.json说到这里.claude/hooks/。 。 。 . - 安装0.1.8, 重新启动 Claude 代码, 并放下
ACHILLES_PROTOCOL, (中文(简体) ),KERNEL_MANDATE, (中文(简体) ),CIVITAS_SKIP_HOOK_INSTALL财务报告和审定财务报表CIVITAS_SKIP_JQ_INSTALL从贝壳和CI. - 替换旧的斜线命令( E)
/onboarding, (中文(简体) ),/coverage-expansion, (中文(简体) ),/test-repair,与(.)/achilles <task>。 。 。 .
步骤2的确切文件列表在 变化。 。 。 .
捐款
见 捐款额 方法/适应器的分拆、约定公约(无AI归属拖车)、文件说明和PR清单. npm test 运行每套套房:chemas, doc lint,CLIs,记者和适配器.