用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/hex-ci/othello-platform --skill regression命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | regression |
| description | 多账号 playwright-cli 功能回归向导,封装双玩家/三账号隔离测试模式。用 /regression 触发,需要场景描述作为参数。 |
| disable-model-invocation | true |
用 playwright-cli 命名会话做多账号功能回归测试。参数 $ARGUMENTS 描述要测的场景(如"好友挑战流程"、"观战+聊天"、"三账号房间满员")。
开始前确认(任一缺失则停止并提示用户先启动)。后端端口从 apps/server/.env 的 PORT 读取(默认 3000),前端端口从 apps/web/.env 的 VITE_PORT 读取(默认 5173):
# 动态解析本机端口(无 .env 时用默认值)
PORT=$(grep -E '^PORT=' apps/server/.env 2>/dev/null | cut -d= -f2 || echo 3000)
WEB_PORT=$(grep -E '^VITE_PORT=' apps/web/.env 2>/dev/null | cut -d= -f2 || echo 5173)
ss -ltnp | grep "$PORT" 应有 othello 进程;没有则提示 pnpm dev:servercurl -s -o /dev/null -w '%{http_code}' http://localhost:$WEB_PORT 应返回 200;没有则提示 pnpm dev:webdocker compose ps 应显示 postgres-othello running;没有则提示 docker compose up -d根据 $ARGUMENTS 场景决定需要几个账号、命名会话名(用真实用户名如 alice/bob,不用 session1):
优先用 UI 表单登录,不注入 token,避免 WS 鉴权时序问题(下例端口用前置确认解析出的 $WEB_PORT,默认 5173):
playwright-cli -s=alice open http://localhost:$WEB_PORT/login
playwright-cli -s=alice snapshot # 拿 input/button 的 ref
playwright-cli -s=alice fill <username-input-ref> "alice"
playwright-cli -s=alice fill <password-input-ref> "<password>"
playwright-cli -s=alice click <submit-button-ref>
playwright-cli -s=alice eval "() => location.href" # 确认离开 /login
对每个账号重复(串行登录,避免 429 限流;若触发 429 等 15s 恢复)。
只在需要快速复现特定账号状态时才注入 token:
playwright-cli -s=alice localstorage-set token "<jwtA>"
playwright-cli -s=alice eval "() => location.href" # 注入后确认 URL 稳定
按 $ARGUMENTS 描述的场景操作各会话。常用操作:
playwright-cli -s=alice snapshot # 拿最新 ref
playwright-cli -s=alice click <ref> # 点击
playwright-cli -s=alice fill <ref> "value" # 填表
playwright-cli -s=alice eval "() => location.href" # 读 URL 验证
playwright-cli -s=alice eval "() => document.querySelector('#app').__vue_app__.config.globalProperties.\$pinia._s.get('store-name')" # 读 Pinia store
落子定位:button[role="gridcell"][aria-label="D3"],合法手有 cursor-pointer class。
每个账号:
playwright-cli -s=<name> console error 确认无 console errorplaywright-cli -s=<name> eval "() => location.href" 确认 URL 符合预期测试结束逐个关闭:
playwright-cli -s=alice close
playwright-cli -s=bob close
或一次性:playwright-cli close-all