openspec-playwright 0.3.77 → 0.3.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -32,8 +32,6 @@ openspec-pw init # Install Playwright E2E integration (--tools to pick
32
32
 
33
33
  **Oh My Pi (omp)** — E2E workflow is driven by the `/opsx-e2e` command (installed as `.omp/commands/opsx-e2e.md`). Playwright MCP is configured in `.omp/mcp.json` under `mcpServers["playwright-test"]` (omp also inherits `.claude/`/`.cursor/`/opencode MCP configs when present). omp auto-detects `AGENTS.md` — no wrapper file needed. Detected via a project `.omp/` dir or the global `~/.omp/agent/` config dir.
34
34
 
35
- **DeepSeek Harness (dsh)** — E2E workflow is driven by the `/opsx-e2e` skill (installed as `.dsh/skills/opsx-e2e/SKILL.md`, the highest-priority `project-dsh` skill root). dsh configures MCP via `cordis.yml` plugin config rather than a simple file, so Playwright MCP is **not** auto-installed — configure `@deepseek-ai/dsh-mcp-client` manually and use `openspec-pw explore` for browser exploration. dsh reads `AGENTS.md` natively — no wrapper file needed. Detected via a project `.dsh/` dir or the global `~/.dsh/` (DSH_HOME) dir.
36
-
37
35
  ## Usage
38
36
 
39
37
  ### In Claude Code
@@ -82,14 +80,6 @@ Installed as `.pi/prompts/opsx-e2e.md` — a prompt template whose filename is t
82
80
 
83
81
  Installed as `.omp/commands/opsx-e2e.md` (native omp command with `name` + `description` frontmatter). Playwright MCP is configured in `.omp/mcp.json`; omp also inherits MCP servers from `.claude/` / `.cursor/` / `opencode.json` when those are present.
84
82
 
85
- ### In DeepSeek Harness
86
-
87
- ```bash
88
- /opsx-e2e <change-name>
89
- ```
90
-
91
- Installed as `.dsh/skills/opsx-e2e/SKILL.md` — a project-dsh skill (rank 100, the highest local priority) with `name` + `description` frontmatter, invoked via the `skill` tool. dsh has no simple MCP config file, so Playwright MCP is configured manually in `cordis.yml` (`@deepseek-ai/dsh-mcp-client`); browser exploration runs through `openspec-pw explore`.
92
-
93
83
  ### Selecting Editors on Init
94
84
 
95
85
  `openspec-pw init` normally auto-detects the editors in your project and
@@ -102,7 +92,7 @@ openspec-pw init --tools all # every supported editor
102
92
  openspec-pw init --tools none # no editors; scaffold only
103
93
  ```
104
94
 
105
- Supported ids: `claude`, `opencode`, `cline`, `cursor`, `pi`, `omp`, `dsh`
95
+ Supported ids: `claude`, `opencode`, `cline`, `cursor`, `pi`, `omp`
106
96
  (`oh-my-pi` is accepted as an alias for `omp`). Ids are case-insensitive,
107
97
  repeats are de-duplicated, and `all`/`none` cannot be mixed with specific
108
98
  ids. A `--tools` id is configured even when the editor is not detected
@@ -110,7 +100,7 @@ ids. A `--tools` id is configured even when the editor is not detected
110
100
 
111
101
  Without `--tools`, an interactive multi-select is shown on TTY terminals
112
102
  (pre-selecting detected editors — including global-config-dir signals for
113
- Pi, Oh My Pi, and DeepSeek Harness); on non-interactive terminals the
103
+ Pi and Oh My Pi); on non-interactive terminals the
114
104
  configured editors fall back to **project-level detection only** (global
115
105
  config dirs are a pre-select suggestion, never a write authorization).
116
106
  `--tools` is documented as orthogonal to `--no-mcp`: the former picks
@@ -140,7 +130,7 @@ openspec-pw uninstall # Remove integration from the project
140
130
 
141
131
  ```
142
132
  /opsx:e2e <change-name> # Claude Code
143
- /opsx-e2e <change-name> # OpenCode / Cline / Cursor / Pi / Oh My Pi / DeepSeek Harness
133
+ /opsx-e2e <change-name> # OpenCode / Cline / Cursor / Pi / Oh My Pi
144
134
 
145
135
  ├── 1. Select change → read openspec/changes/<name>/specs/
146
136
 
@@ -176,7 +166,7 @@ openspec-pw uninstall # Remove integration from the project
176
166
  **Required:**
177
167
 
178
168
  1. **Node.js >= 20**
179
- 2. **Claude Code** (with `.claude/` directory) and/or **OpenCode** (with `.opencode/` directory) and/or **Cline** (with `.cline/` or `.clinerules/` directory) and/or **Cursor** (with `.cursor/` directory) and/or **Pi** (project `.pi/` or global `~/.pi/agent/`) and/or **Oh My Pi** (project `.omp/` or global `~/.omp/agent/`) and/or **DeepSeek Harness** (project `.dsh/` or global `~/.dsh/`)
169
+ 2. **Claude Code** (with `.claude/` directory) and/or **OpenCode** (with `.opencode/` directory) and/or **Cline** (with `.cline/` or `.clinerules/` directory) and/or **Cursor** (with `.cursor/` directory) and/or **Pi** (project `.pi/` or global `~/.pi/agent/`) and/or **Oh My Pi** (project `.omp/` or global `~/.omp/agent/`)
180
170
  3. **OpenSpec** initialized: `npm install -g @fission-ai/openspec@latest && openspec init`
181
171
  4. **Playwright MCP** (for test execution + Healer) — installed automatically by `openspec-pw init` when a frontend signal is detected (skipped for API-only projects — API tests use the `request` fixture), **project-scoped** (written to a project file; Claude Code uses `--scope project` → project-root `.mcp.json`, never your global `~/.claude.json`). A single server matching the official `playwright init-agents` layout:
182
172
  - `playwright-test` — official test-runner server (`npx playwright run-test-mcp-server`, bundled with the `playwright` package). Superset of `@playwright/mcp`: one entry exposes both `browser_*` tools (exploration + Healer page inspection) and the structured `test_run` / `test_debug` / `test_list` workflow tools for the Healer loop.
@@ -191,8 +181,8 @@ Browser exploration is provided out of the box by Playwright MCP and `openspec-p
191
181
 
192
182
  ## What `openspec-pw init` Does
193
183
 
194
- 1. Detects supported editors in the project (Claude Code and/or OpenCode and/or Cline and/or Cursor and/or Pi and/or Oh My Pi and/or DeepSeek Harness; Pi, Oh My Pi, and DeepSeek Harness are also detected via their global config dirs `~/.pi/agent/` / `~/.omp/agent/` / `~/.dsh/`)
195
- 2. Installs the E2E command for each detected editor (`/opsx:e2e` for Claude Code, `/opsx-e2e` for OpenCode, Cline, Cursor, Pi, Oh My Pi, and DeepSeek Harness; Cursor also gets an Agent Skill)
184
+ 1. Detects supported editors in the project (Claude Code and/or OpenCode and/or Cline and/or Cursor and/or Pi and/or Oh My Pi; Pi and Oh My Pi are also detected via their global config dirs `~/.pi/agent/` / `~/.omp/agent/`)
185
+ 2. Installs the E2E command for each detected editor (`/opsx:e2e` for Claude Code, `/opsx-e2e` for OpenCode, Cline, Cursor, Pi, and Oh My Pi; Cursor also gets an Agent Skill)
196
186
  3. Generates `tests/playwright/seed.spec.ts`, `auth.setup.ts`, `credentials.yaml`, `app-knowledge.md`, `pages/BasePage.ts`
197
187
  4. Generates `playwright.config.ts` with automatic dev script and port detection (Vite/Next/Nuxt/Astro, `.env`, and `--port`)
198
188
  5. Detects a frontend signal (layered detection: framework config files → framework dependencies → frontend dev commands, plus monorepo workspace member detection so a pnpm/npm workspace with the frontend in `apps/*` is recognized); with none found, prints guidance in the Summary — run `openspec-pw init` in the app directory (monorepo), or use Playwright's `request` fixture for API-only projects
@@ -213,7 +203,7 @@ Run through these steps in order when using the E2E workflow for the first time:
213
203
  | 6. Start dev server | `npm run dev` (in a separate terminal) | Confirm port, set `BASE_URL` if non-standard |
214
204
  | 7. Validate env | `npx playwright test tests/playwright/seed.spec.ts` | Check `webServer` in `playwright.config.ts` |
215
205
  | 8. Configure auth (if needed) | See "Authentication" below | Debug with `npx playwright test --project=setup` |
216
- | 9. Run first E2E | `/opsx:e2e <change-name>` (Claude) or `/opsx-e2e <change-name>` (OpenCode / Cline / Cursor / Pi / Oh My Pi / DeepSeek Harness) | Check `openspec/reports/` for the report |
206
+ | 9. Run first E2E | `/opsx:e2e <change-name>` (Claude) or `/opsx-e2e <change-name>` (OpenCode / Cline / Cursor / Pi / Oh My Pi) | Check `openspec/reports/` for the report |
217
207
 
218
208
  ### What `openspec-pw doctor` checks
219
209
 
@@ -281,7 +271,7 @@ npx playwright test --project=setup
281
271
  /opsx:e2e my-feature
282
272
  ```
283
273
 
284
- Supports **API login** (preferred) and **UI login** (fallback). For multi-user tests (admin vs user), add multiple users in `credentials.yaml` and run `/opsx:e2e` (or `/opsx-e2e` in OpenCode/Cline/Cursor/Pi/Oh My Pi/DeepSeek Harness) — it auto-detects roles from specs.
274
+ Supports **API login** (preferred) and **UI login** (fallback). For multi-user tests (admin vs user), add multiple users in `credentials.yaml` and run `/opsx:e2e` (or `/opsx-e2e` in OpenCode/Cline/Cursor/Pi/Oh My Pi) — it auto-detects roles from specs.
285
275
 
286
276
  ## Customization
287
277
 
@@ -342,21 +332,24 @@ Editors (auto-detected by openspec-pw init)
342
332
  ├── .omp/commands/opsx-e2e.md → Command file (name + description frontmatter)
343
333
  ├── .omp/mcp.json → Playwright MCP (mcpServers["playwright-test"])
344
334
  └── AGENTS.md → Employee-grade standards (auto-detected by omp)
345
- └── DeepSeek Harness (/opsx-e2e)
346
- ├── .dsh/skills/opsx-e2e/SKILL.md → Skill file (name + description frontmatter)
347
- └── AGENTS.md → Employee-grade standards (auto-detected by dsh)
348
- (no simple MCP file — configure @deepseek-ai/dsh-mcp-client in cordis.yml)
349
335
 
350
336
  Employee-grade standards live in **AGENTS.md** as the single source of truth. Claude Code
351
337
  loads them via a CLAUDE.md that carries a CodeGraph-first block and an OpenSpec-workflow
352
338
  hint up front, followed by an `@AGENTS.md` import — Claude Code's documented mechanism for
353
339
  reusing AGENTS.md, which it does not read by default. Import position is unconstrained
354
340
  ("anywhere in your CLAUDE.md"); the only rule is the `@` line must not sit inside backticks
355
- or a code block. The import line sits outside the OPENSPEC:START/END comments (stripped
341
+ or a code block. The import line sits outside the OPENSPEC-PW:START/END comments (stripped
356
342
  before context injection), so the markers act as the tool-owned boundary while the import is
357
343
  honored. OpenCode registers AGENTS.md in `opencode.jsonc` under `instructions`. Cline and
358
344
  Cursor auto-detect `AGENTS.md` natively — no wrapper file needed.
359
345
 
346
+ > **Coexisting with the official `@fission-ai/openspec` CLI**: its `openspec update` runs a
347
+ > "legacy cleanup" that deletes any root AGENTS.md/CLAUDE.md block wrapped in plain
348
+ > `OPENSPEC:START/END` markers. openspec-pw blocks use the exclusive `OPENSPEC-PW:` namespace,
349
+ > which the official matcher cannot see (verified against v1.11.0). Projects installed before
350
+ > this change are migrated automatically on the next `openspec-pw update`/`init`; if the block
351
+ > was already wiped, `openspec-pw update` warns loudly and `openspec-pw init` restores it.
352
+
360
353
  Test Assets (tests/playwright/)
361
354
  ├── seed.spec.ts → Env validation
362
355
  ├── auth.setup.ts → Session recording
package/README.zh-CN.md CHANGED
@@ -15,7 +15,7 @@ npm install -g openspec-playwright@latest
15
15
  **必需:**
16
16
 
17
17
  1. **Node.js >= 20**
18
- 2. **Claude Code**(带 `.claude/` 目录)和/或 **OpenCode**(带 `.opencode/` 目录)和/或 **Cline**(带 `.cline/` 或 `.clinerules/` 目录)和/或 **Cursor**(带 `.cursor/` 目录)和/或 **Pi**(项目 `.pi/` 或全局 `~/.pi/agent/`)和/或 **Oh My Pi**(项目 `.omp/` 或全局 `~/.omp/agent/`)和/或 **DeepSeek Harness**(项目 `.dsh/` 或全局 `~/.dsh/`)
18
+ 2. **Claude Code**(带 `.claude/` 目录)和/或 **OpenCode**(带 `.opencode/` 目录)和/或 **Cline**(带 `.cline/` 或 `.clinerules/` 目录)和/或 **Cursor**(带 `.cursor/` 目录)和/或 **Pi**(项目 `.pi/` 或全局 `~/.pi/agent/`)和/或 **Oh My Pi**(项目 `.omp/` 或全局 `~/.omp/agent/`)
19
19
  3. **OpenSpec** 已初始化:`npm install -g @fission-ai/openspec@latest && openspec init`
20
20
  4. **Playwright MCP**(用于测试执行 + Healer)— `openspec-pw init` 会在检测到前端信号时按编辑器自动安装(纯 API 项目跳过——API 测试用 `request` fixture),**全部项目级**(写入项目内文件;Claude Code 用 `--scope project` 写项目根 `.mcp.json`,不碰全局 `~/.claude.json`)。安装**单个** server,与 Playwright 官方 `playwright init-agents` 布局一致:
21
21
  - `playwright-test` — 官方 test-runner server(`npx playwright run-test-mcp-server`,`playwright` 包自带)。是 `@playwright/mcp` 的**超集**:一个条目同时暴露 `browser_*` 浏览器工具(探索 + Healer 页面检查)和结构化的 `test_run` / `test_debug` / `test_list` 工作流工具(Healer 闭环)。
@@ -27,7 +27,6 @@ npm install -g openspec-playwright@latest
27
27
  - **Pi**:无 MCP 客户端,跳过安装 — 浏览器探索改用 `openspec-pw explore`
28
28
 
29
29
  > **旧版本迁移**:早期版本把 Claude Code 的 Playwright MCP 装到全局 user 域(`~/.claude.json`)。若你用旧版 `openspec-pw` 初始化过,全局残留仍会对所有项目生效,清理一次即可:`claude mcp remove playwright`(user 域)。注意:项目级 server 首次交互使用时 Claude Code 会弹出批准提示(`claude mcp reset-project-choices` 可重置选择)。
30
- - **DeepSeek Harness**:无简单 MCP 配置文件,跳过安装 — 在 `cordis.yml` 中手动配置 `@deepseek-ai/dsh-mcp-client`,浏览器探索改用 `openspec-pw explore`
31
30
 
32
31
  浏览器探索能力由 Playwright MCP 和 `openspec-pw explore` 内置提供,无需额外工具。
33
32
 
@@ -55,7 +54,7 @@ openspec-pw init # 安装 Playwright E2E 集成(--tools 可选编辑
55
54
 
56
55
  **Oh My Pi(omp)** — E2E 工作流由 `/opsx-e2e` 命令驱动(安装为 `.omp/commands/opsx-e2e.md`)。Playwright MCP 配置在 `.omp/mcp.json` 的 `mcpServers["playwright-test"]`(omp 也会继承 `.claude/` / `.cursor/` / opencode 的 MCP 配置)。omp 原生识别 `AGENTS.md` — 无需包装文件。检测信号:项目 `.omp/` 目录或全局 `~/.omp/agent/` 配置目录。
57
56
 
58
- **DeepSeek Harnessdsh)** — E2E 工作流由 `/opsx-e2e` skill 驱动(安装为 `.dsh/skills/opsx-e2e/SKILL.md`,即最高优先级的 `project-dsh` skill 根)。dsh 通过 `cordis.yml` 插件配置而非简单文件来配置 MCP,因此 **不自动安装** Playwright MCP 需手动配置 `@deepseek-ai/dsh-mcp-client`,浏览器探索改用 `openspec-pw explore`。dsh 原生读取 `AGENTS.md` — 无需包装文件。检测信号:项目 `.dsh/` 目录或全局 `~/.dsh/`(DSH_HOME)目录。
57
+ **Oh My Piomp)** — E2E 工作流由 `/opsx-e2e` 命令驱动(安装为 `.omp/commands/opsx-e2e.md`)。Playwright MCP 配置在 `.omp/mcp.json` `mcpServers["playwright-test"]`(omp 也会继承 `.claude/` / `.cursor/` / opencode 已有 MCP 配置)。omp 原生自动识别 `AGENTS.md` — 无需包装文件。检测信号:项目 `.omp/` 目录或全局 `~/.omp/agent/` 配置目录。
59
58
 
60
59
  ## 使用
61
60
 
@@ -105,14 +104,6 @@ Skill 安装在 `.cline/skills/opsx-e2e/SKILL.md`,通过 `/opsx-e2e` 斜杠命
105
104
 
106
105
  安装为 `.omp/commands/opsx-e2e.md`(omp 原生命令,含 `name` + `description` frontmatter)。Playwright MCP 配置在 `.omp/mcp.json`;omp 也会继承 `.claude/` / `.cursor/` / `opencode.json` 中已有的 MCP 配置。
107
106
 
108
- ### 在 DeepSeek Harness 中
109
-
110
- ```bash
111
- /opsx-e2e <change-name>
112
- ```
113
-
114
- 安装为 `.dsh/skills/opsx-e2e/SKILL.md` — 一个 project-dsh skill(rank 100,本地最高优先级),含 `name` + `description` frontmatter,通过 `skill` 工具调用。dsh 没有简单的 MCP 配置文件,因此 Playwright MCP 需在 `cordis.yml` 中手动配置(`@deepseek-ai/dsh-mcp-client`);浏览器探索改用 `openspec-pw explore`。
115
-
116
107
  ### 初始化时选择编辑器
117
108
 
118
109
  `openspec-pw init` 默认自动检测项目中的编辑器并全部配置。如需只装一部分(或不装),用 `--tools` —— 语义与 `openspec init --tools` 一致:
@@ -123,9 +114,9 @@ openspec-pw init --tools all # 配置所有受支持编辑器
123
114
  openspec-pw init --tools none # 不配置编辑器,只生成脚手架
124
115
  ```
125
116
 
126
- 受支持 id:`claude`、`opencode`、`cline`、`cursor`、`pi`、`omp`、`dsh`(`oh-my-pi` 是 `omp` 的别名)。id 大小写不敏感、重复自动去重、`all`/`none` 不能与具体 id 混用。被 `--tools` 指定的编辑器即使未被检测到也会配置(会自动创建其配置目录)。
117
+ 受支持 id:`claude`、`opencode`、`cline`、`cursor`、`pi`、`omp`(`oh-my-pi` 是 `omp` 的别名)。id 大小写不敏感、重复自动去重、`all`/`none` 不能与具体 id 混用。被 `--tools` 指定的编辑器即使未被检测到也会配置(会自动创建其配置目录)。
127
118
 
128
- 未提供 `--tools` 时:TTY 终端弹出交互式多选(预选已检测的编辑器——含 Pi / Oh My Pi / DeepSeek Harness 的全局配置目录信号);非交互终端回退到**仅项目内检测**(全局配置目录只是预选建议,不构成写入授权)。`--tools` 与 `--no-mcp` 正交:前者选择*哪些*编辑器,后者决定*是否*为它们安装 Playwright MCP。
119
+ 未提供 `--tools` 时:TTY 终端弹出交互式多选(预选已检测的编辑器——含 Pi / Oh My Pi 的全局配置目录信号);非交互终端回退到**仅项目内检测**(全局配置目录只是预选建议,不构成写入授权)。`--tools` 与 `--no-mcp` 正交:前者选择*哪些*编辑器,后者决定*是否*为它们安装 Playwright MCP。
129
120
 
130
121
  **编辑器领土**:`update` 只维护项目内已有 openspec-pw 命令工件的编辑器——不会新增编辑器(全局配置目录或手建的 `.cursor/` 不构成写入授权)。给已初始化项目新增编辑器请重跑 `openspec-pw init --tools <id>`(幂等)。
131
122
 
@@ -146,7 +137,7 @@ openspec-pw uninstall # 移除项目中的集成
146
137
  ## 工作原理
147
138
 
148
139
  ```
149
- # 由 /opsx:e2e <change-name>(Claude Code)或 /opsx-e2e <change-name>(OpenCode/Cline/Cursor/Pi/Oh My Pi/DeepSeek Harness)触发
140
+ # 由 /opsx:e2e <change-name>(Claude Code)或 /opsx-e2e <change-name>(OpenCode/Cline/Cursor/Pi/Oh My Pi)触发
150
141
  /opsx:e2e <change-name>
151
142
 
152
143
  ├── 1. 选择 change → 读取 openspec/changes/<name>/specs/
@@ -180,8 +171,8 @@ openspec-pw uninstall # 移除项目中的集成
180
171
 
181
172
  ## `openspec-pw init` 做了什么
182
173
 
183
- 1. 检测项目中的受支持编辑器(Claude Code 和/或 OpenCode 和/或 Cline 和/或 Cursor 和/或 Pi 和/或 Oh My Pi 和/或 DeepSeek Harness;Pi、Oh My Pi 与 DeepSeek Harness 也会通过全局配置目录 `~/.pi/agent/` / `~/.omp/agent/` / `~/.dsh/` 检测)
184
- 2. 为每个检测到的编辑器安装 E2E 命令(Claude Code 用 `/opsx:e2e`,OpenCode / Cline / Cursor / Pi / Oh My Pi / DeepSeek Harness 用 `/opsx-e2e`;Cursor 另装 Agent Skill)
174
+ 1. 检测项目中的受支持编辑器(Claude Code 和/或 OpenCode 和/或 Cline 和/或 Cursor 和/或 Pi 和/或 Oh My Pi;Pi Oh My Pi 也会通过全局配置目录 `~/.pi/agent/` / `~/.omp/agent/` 检测)
175
+ 2. 为每个检测到的编辑器安装 E2E 命令(Claude Code 用 `/opsx:e2e`,OpenCode / Cline / Cursor / Pi / Oh My Pi 用 `/opsx-e2e`;Cursor 另装 Agent Skill)
185
176
  3. 生成 `tests/playwright/seed.spec.ts`、`auth.setup.ts`、`credentials.yaml`、`app-knowledge.md`、`pages/BasePage.ts`
186
177
  4. 检测前端信号(分层检测:框架配置文件 → 前端框架依赖 → dev 命令关键词,含 monorepo workspace 成员检测——前端在 `apps/*` 的 pnpm/npm workspace 也能识别);未检测到时在 Summary 打印引导提示——monorepo 去应用目录运行 `openspec-pw init`,纯 API 项目用 Playwright `request` fixture
187
178
 
@@ -194,12 +185,12 @@ openspec-pw uninstall # 移除项目中的集成
194
185
  | 1. 安装 CLI | `npm install -g openspec-playwright@latest` | 检查 Node.js 版本 `node -v`(需 >= 20) |
195
186
  | 2. 安装 OpenSpec | `npm install -g @fission-ai/openspec@latest && openspec init` | `npm cache clean -f && npm install -g @fission-ai/openspec@latest` |
196
187
  | 3. 初始化 E2E | `openspec-pw init` | 运行 `openspec-pw doctor` 查看具体缺失项 |
197
- | 4. 安装 Playwright MCP | `claude mcp add --scope project playwright-test npx playwright run-test-mcp-server`(Claude,写入项目根 `.mcp.json`),或将 `mcp["playwright-test"]` 加入 `opencode.jsonc`(OpenCode),或将 `mcpServers["playwright-test"]` 加入 `.cline/mcp.json`(Cline)/ `.cursor/mcp.json`(Cursor)/ `.omp/mcp.json`(Oh My Pi);Pi 与 DeepSeek Harness 无简单 MCP 配置文件,跳过 | `cat .mcp.json`(Claude,检查 `mcpServers["playwright-test"]`)/ `cat opencode.jsonc`(OpenCode)/ `cat .cline/mcp.json`(Cline)/ `cat .cursor/mcp.json`(Cursor)/ `cat .omp/mcp.json`(Oh My Pi)确认安装成功 |
188
+ | 4. 安装 Playwright MCP | `claude mcp add --scope project playwright-test npx playwright run-test-mcp-server`(Claude,写入项目根 `.mcp.json`),或将 `mcp["playwright-test"]` 加入 `opencode.jsonc`(OpenCode),或将 `mcpServers["playwright-test"]` 加入 `.cline/mcp.json`(Cline)/ `.cursor/mcp.json`(Cursor)/ `.omp/mcp.json`(Oh My Pi);Pi 无简单 MCP 配置文件,跳过 | `cat .mcp.json`(Claude,检查 `mcpServers["playwright-test"]`)/ `cat opencode.jsonc`(OpenCode)/ `cat .cline/mcp.json`(Cline)/ `cat .cursor/mcp.json`(Cursor)/ `cat .omp/mcp.json`(Oh My Pi)确认安装成功 |
198
189
  | 5. 安装浏览器 | `npx playwright install --with-deps` | macOS 可能需先运行 `xcode-select --install` |
199
190
  | 6. 启动开发服务器 | `npm run dev`(在另一个终端) | 确认端口,配置 `BASE_URL` |
200
191
  | 7. 验证环境 | `npx playwright test tests/playwright/seed.spec.ts` | 检查 `playwright.config.ts` 中的 `webServer` 配置 |
201
192
  | 8. 配置认证(如需要) | 见下方"认证配置" | `npx playwright test --project=setup` 调试 |
202
- | 9. 运行第一个 E2E | `/opsx:e2e <change-name>`(Claude)或 `/opsx-e2e <change-name>`(OpenCode/Cline/Cursor/Pi/Oh My Pi/DeepSeek Harness) | 查看 `openspec/reports/` 中的报告 |
193
+ | 9. 运行第一个 E2E | `/opsx:e2e <change-name>`(Claude)或 `/opsx-e2e <change-name>`(OpenCode/Cline/Cursor/Pi/Oh My Pi) | 查看 `openspec/reports/` 中的报告 |
203
194
 
204
195
  ### `openspec-pw doctor` 检查清单
205
196
 
@@ -241,7 +232,7 @@ npx playwright test --project=setup
241
232
  /opsx:e2e my-feature
242
233
  ```
243
234
 
244
- 支持 **API 登录**(推荐)和 **UI 登录**(备选)。多用户测试(管理员 vs 普通用户)在 `credentials.yaml` 中添加多个用户,运行 `/opsx:e2e`(OpenCode/Cline/Cursor/Pi/Oh My Pi/DeepSeek Harness 中用 `/opsx-e2e`)— 会从 specs 自动检测角色。
235
+ 支持 **API 登录**(推荐)和 **UI 登录**(备选)。多用户测试(管理员 vs 普通用户)在 `credentials.yaml` 中添加多个用户,运行 `/opsx:e2e`(OpenCode/Cline/Cursor/Pi/Oh My Pi 中用 `/opsx-e2e`)— 会从 specs 自动检测角色。
245
236
 
246
237
  ## 自定义
247
238
 
@@ -302,18 +293,20 @@ CLI (openspec-pw)
302
293
  ├── .omp/commands/opsx-e2e.md → 命令文件(name + description frontmatter)
303
294
  ├── .omp/mcp.json → Playwright MCP (mcpServers["playwright-test"])
304
295
  └── AGENTS.md → 员工级规范(omp 原生自动识别)
305
- └── DeepSeek Harness (/opsx-e2e)
306
- ├── .dsh/skills/opsx-e2e/SKILL.md → Skill 文件(name + description frontmatter)
307
- └── AGENTS.md → 员工级规范(dsh 原生自动识别)
308
- (无简单 MCP 文件 — 在 cordis.yml 中配置 @deepseek-ai/dsh-mcp-client)
309
296
 
310
297
  员工级规范统一存放在 **AGENTS.md** 中。Claude Code 通过 CLAUDE.md 加载——前置 CodeGraph 优先节与
311
298
  OpenSpec 工作流提示,后接 `@AGENTS.md` 导入(Claude Code 官方记载的复用 AGENTS.md 机制,默认并不读取 AGENTS.md)。
312
299
  导入位置无约束(官方原文 "anywhere in your CLAUDE.md"),唯一要求是 `@` 行不能放在反引号或代码块内。
313
- 导入行位于 OPENSPEC:START/END 注释之外(注释在注入上下文前被剥离),marker 作为工具领地边界、
300
+ 导入行位于 OPENSPEC-PW:START/END 注释之外(注释在注入上下文前被剥离),marker 作为工具领地边界、
314
301
  导入仍生效;OpenCode 在 `opencode.jsonc` 的 `instructions` 中注册 AGENTS.md;
315
302
  Cline 与 Cursor 原生自动识别 `AGENTS.md`,无需包装文件。
316
303
 
304
+ > **与官方 `@fission-ai/openspec` CLI 共存**:官方 `openspec update` 内置「legacy 清理」,会删除根
305
+ > AGENTS.md/CLAUDE.md 中以普通 `OPENSPEC:START/END` 包裹的块(2026-08-28 曾因此误删本工具的规范块)。
306
+ > openspec-pw 的块使用专属 `OPENSPEC-PW:` 命名空间,官方匹配器不可见(已对照官方 v1.11.0 实测)。
307
+ > 本 change 之前安装的项目会在下次 `openspec-pw update`/`init` 时自动迁移标记;若块已被官方清掉,
308
+ > `openspec-pw update` 会黄色警告,跑 `openspec-pw init` 即可恢复。
309
+
317
310
  测试资产 (tests/playwright/)
318
311
  ├── seed.spec.ts → 环境验证
319
312
  ├── auth.setup.ts → 会话录制
@@ -6,7 +6,7 @@ import { execFileSync } from "child_process";
6
6
  import chalk from "chalk";
7
7
  import { detectAdapters, hasCommandArtifacts, slashCommandForAdapter, claudeAdapter, claudeWrapperStandardsContent, } from "../commands/editors.js";
8
8
  import { detectAppServer, isTestRunnerMcpInstalled, needsShell, detectCodeGraphStatus } from "../shared/index.js";
9
- import { bundledStandardsPath, compareBlock, OPENSPEC_START } from "../shared/drift.js";
9
+ import { bundledStandardsPath, compareBlock, OPENSPEC_START, hasLegacyTerritoryStart } from "../shared/drift.js";
10
10
  const OPTIONAL_NAMES = new Set([
11
11
  "engines",
12
12
  "specs",
@@ -207,7 +207,7 @@ export async function doctor(options = {}) {
207
207
  category: "Playwright MCP",
208
208
  name: "playwright-mcp",
209
209
  ok: false,
210
- message: "no editors detected (configure .claude/, .opencode/, .cline/, .cursor/, .pi/, .omp/, or .dsh/)",
210
+ message: "no editors detected (configure .claude/, .opencode/, .cline/, .cursor/, .pi/, or .omp/)",
211
211
  });
212
212
  }
213
213
  else {
@@ -327,8 +327,7 @@ export async function doctor(options = {}) {
327
327
  existsSync(join(projectRoot, ".cursor", "commands", "opsx-e2e.md")) ||
328
328
  existsSync(join(projectRoot, ".cursor", "skills", "opsx-e2e", "SKILL.md")) ||
329
329
  existsSync(join(projectRoot, ".pi", "prompts", "opsx-e2e.md")) ||
330
- existsSync(join(projectRoot, ".omp", "commands", "opsx-e2e.md")) ||
331
- existsSync(join(projectRoot, ".dsh", "skills", "opsx-e2e", "SKILL.md"));
330
+ existsSync(join(projectRoot, ".omp", "commands", "opsx-e2e.md"));
332
331
  const initialized = hasCommand || hasOpenSpec;
333
332
  if (!initialized) {
334
333
  checks.push({
@@ -344,10 +343,13 @@ export async function doctor(options = {}) {
344
343
  ? readFileSync(standardsPath, "utf-8")
345
344
  : "";
346
345
  // AGENTS.md — 标记即领土: only the tool-owned block is maintained
347
- // (update repairs it when present). A missing file or one without
348
- // markers is NOT repairable by updatereport ok:true with a message
349
- // pointing at init, never at update (avoids the doctor-nags
350
- // update-can't-fix loop).
346
+ // (update repairs it when present). A wiped block IS a failure when pw
347
+ // command artifacts exist (authorized territory was removed possibly
348
+ // by the official `openspec update` legacy cleanup); the message points
349
+ // at INIT, whose append branch repairs it (环闭合 — never at update,
350
+ // avoiding the 0.3.76 doctor-nags → update-can't-fix loop). A surviving
351
+ // legacy OPENSPEC block is still ours (signature-gated migration
352
+ // converges on the next update) → ok:true info line.
351
353
  const agentsPath = join(projectRoot, "AGENTS.md");
352
354
  if (!existsSync(agentsPath)) {
353
355
  checks.push({
@@ -363,21 +365,24 @@ export async function doctor(options = {}) {
363
365
  else {
364
366
  const fileContent = readFileSync(agentsPath, "utf-8");
365
367
  const noMarkers = !fileContent.includes(OPENSPEC_START);
368
+ const missing = noMarkers && !hasLegacyTerritoryStart(fileContent);
366
369
  const drift = noMarkers
367
370
  ? { stale: false }
368
371
  : compareBlock(fileContent, standardsExpected);
369
372
  checks.push({
370
373
  category: "Sync",
371
374
  name: "standards-agents",
372
- ok: noMarkers ? true : !drift.stale,
373
- authorized: noMarkers ? hasCommand : true,
374
- message: noMarkers
375
+ ok: missing ? !hasCommand : !drift.stale,
376
+ authorized: missing ? hasCommand : true,
377
+ message: missing
375
378
  ? hasCommand
376
- ? 'AGENTS.md has no OPENSPEC block (removed) — restore via "openspec-pw init --tools <id>"'
379
+ ? 'AGENTS.md has no OPENSPEC-PW block (removed — possibly by the official `openspec update` legacy cleanup) — restore via "openspec-pw init --tools <id>"'
377
380
  : "not initialized (run openspec-pw init first)"
378
- : drift.stale
379
- ? "AGENTS.md differs from bundled version — run openspec-pw update"
380
- : "standards in sync",
381
+ : noMarkers
382
+ ? "AGENTS.md carries a legacy OPENSPEC block — run openspec-pw update to migrate markers"
383
+ : drift.stale
384
+ ? "AGENTS.md differs from bundled version — run openspec-pw update"
385
+ : "standards in sync",
381
386
  });
382
387
  }
383
388
  // CLAUDE.md wrapper is only checked when the claude editor is authorized
@@ -583,7 +588,7 @@ export async function doctor(options = {}) {
583
588
  ? detected.map((a) => {
584
589
  return `${slashCommandForAdapter(a)} (in ${a.displayName})`;
585
590
  })
586
- : ["/opsx:e2e (in Claude Code, OpenCode, Cline, Cursor, Pi, Oh My Pi, or DeepSeek Harness)"];
591
+ : ["/opsx:e2e (in Claude Code, OpenCode, Cline, Cursor, Pi, or Oh My Pi)"];
587
592
  console.log(chalk.gray(` Run: ${hints.join(" or ")} <change-name>\n`));
588
593
  }
589
594
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare function blockMatchesExpected(projectRoot: string, adapter: Edito
14
14
  /**
15
15
  * Install employee-grade standards into the editor's rules file
16
16
  * (CLAUDE.md for Claude, AGENTS.md for OpenCode, Cline, and Cursor). Wraps content in
17
- * `<!-- OPENSPEC:START -->` / `<!-- OPENSPEC:END -->` markers so future
17
+ * `<!-- OPENSPEC-PW:START -->` / `<!-- OPENSPEC-PW:END -->` markers so future
18
18
  * updates can replace the block without touching the rest of the file.
19
19
  */
20
20
  export declare function installOpenSpecBlock(projectRoot: string, standardsContent: string, adapter?: EditorAdapter): void;
@@ -42,12 +42,12 @@ export declare function claudeWrapperStandardsContent(): string;
42
42
  /**
43
43
  * Install a thin CLAUDE.md that imports AGENTS.md.
44
44
  *
45
- * Uses the same OPENSPEC:START/END markers as the full standards block so
45
+ * Uses the same OPENSPEC-PW:START/END markers as the full standards block so
46
46
  * `cleanProjectRules` can remove it uniformly. The CodeGraph-first block is
47
47
  * written directly into CLAUDE.md (before the @AGENTS.md import) so Claude
48
48
  * Code picks it up without depending on the import.
49
49
  *
50
- * Also handles migration: if CLAUDE.md has an existing OPENSPEC:START block
50
+ * Also handles migration: if CLAUDE.md has an existing legacy OPENSPEC:START block
51
51
  * (old format that wrote standards directly to CLAUDE.md), calling
52
52
  * `installOpenSpecBlock` replaces the content with the CodeGraph block +
53
53
  * `@AGENTS.md` import.
@@ -67,3 +67,13 @@ export declare function installProjectRules(projectRoot: string, standardsConten
67
67
  export declare function cleanProjectRules(adapter: EditorAdapter, projectRoot: string): void;
68
68
  /** Read the employee-grade standards source file (empty string if missing). */
69
69
  export declare function readEmployeeStandards(srcPath: string): string;
70
+ /**
71
+ * Migrate legacy OPENSPEC markers in AGENTS.md (and CLAUDE.md wrapper) to the
72
+ * OPENSPEC-PW namespace. Gates:
73
+ * - hasPwArtifacts: without openspec-pw command artifacts the legacy block
74
+ * is an official relic, not our territory — untouched (uninstall removes it).
75
+ * - claudeAuthorized: the CLAUDE.md wrapper is only touched for claude.
76
+ * - signature: block content must match ours (see signatures above).
77
+ * Returns true when any file was migrated.
78
+ */
79
+ export declare function migrateLegacyMarkers(projectRoot: string, hasPwArtifacts: boolean, claudeAuthorized: boolean): boolean;