openspec-playwright 0.3.18 → 0.3.20

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.
@@ -24,13 +24,15 @@ E2E 工作流前提(由用户确保,非 AI 操作):
24
24
 
25
25
  ## 2. 代码质量(强制执行)
26
26
 
27
- **动手前先思考**(适用于复杂任务):**不要妄下断言**。如有多种解释则都列出来,如有更简单的方案则提出来,必要时坚持己见。如有不清楚的地方则停下来,说出困惑,再提问。简单任务自行判断。
27
+ **动手前先思考**:列出假设,逐条验证。复杂任务如有多种解释则都列出来,如有更简单的方案则提出来,必要时坚持己见。有不清楚的地方则停下来,说出困惑,再提问。
28
28
 
29
- **目标-验证闭环**:多步骤任务先列计划(如 `1. [Step] → verify: [check]`),动手后循环验证直到成功。lint + typecheck 通过是最低验证标准。
29
+ **每步有可验证的退出条件**:多步骤任务先列计划(`1. [Step] → verify: [check]`),动手后循环验证直到成功。lint + typecheck 通过是最低验证标准。
30
30
 
31
- **拒绝"够用就行"**:架构缺陷、状态重复、模式不一致——必须说出来并修复。代码可疑时(200行可50行完成)应重写。
31
+ **只写被要求的东西**:不要加"灵活"、"可配置"、单次使用的抽象、没被要求的功能。200行能50行完成则重写。
32
32
 
33
- **lint + typecheck 后才能算成功**。动手前,先探索项目用什么工具:查看 `package.json` scripts、`Makefile`、`pyproject.toml`、`justfile` 等,找到该语言的 lint + typecheck 命令并执行。工具不存在时,明确告知用户,不得假装成功。
33
+ **精准改动**:只改必要的,改完清理自己造成的垃圾。匹配现有风格,不改进无关代码。每一行改动都应追溯到用户的请求。
34
+
35
+ **lint + typecheck 后才能算成功**。动手前查 `package.json` scripts、`Makefile` 等找工具链。工具不存在时,明确告知用户,不得假装成功。
34
36
 
35
37
  ## 3. 上下文管理
36
38
  **文件读取完整**:超过 500 行的文件,不要假设单次读取覆盖完整内容——根据需要分次读取或编辑前重新读取完整文件。超过 10 条消息后,编辑任何文件前强制重新读取。
@@ -43,7 +45,7 @@ E2E 工作流前提(由用户确保,非 AI 操作):
43
45
  **200 行以上修改必须走 OpenSpec**:代码改动超过 200 行时,禁止直接修改,必须通过 OpenSpec 工作流(/opsx:propose)。
44
46
 
45
47
  ## 5. 工具限制与编辑安全
46
- **搜索要全**:重命名时,用 Grep 覆盖调用、类型、字符串、`import`、barrel file、测试 mock,不得假设一次覆盖所有情况。
48
+ **搜索要全**:用 Grep 搜内容,用 Glob 搜文件名。两者缺一不可。搜项目/工作区时默认包含所有源码类型,搜子目录时按需缩小。重命名时覆盖调用、类型、字符串、`import`、barrel file、测试 mock,不得假设一次覆盖所有情况。
47
49
 
48
50
  **编辑要求**:编辑后重新读取文件确认变更正确应用。变更完成后,明确告知用户可能遗漏的区域(动态引用、测试 mock 等),提示人工复查。
49
51
 
@@ -77,12 +79,26 @@ E2E 工作流前提(由用户确保,非 AI 操作):
77
79
  **3. 设计审查**:在实现前进行设计评审,确保方案合理。评审通过后开始实现。
78
80
  - `/plan-design-review`:UI/UX 方案审查,评分各设计维度,确保用户体验达标
79
81
 
80
- **4. 实现**:执行 `/opsx:apply` 进行实现 → `lint + typecheck` 通过才算成功。
82
+ **4. 实现**:执行 `/opsx:apply` 进行实现。
83
+
84
+ **4.1 变更边界检查**:
85
+ - 实施前:对照 `changes/<name>/proposal.md` 确认范围
86
+ - 实施中:禁止修改其他 `changes/<name2>/` 目录下的文件
87
+ - 完成后:逐条对照 proposal.md 确认 scope 内的已交付,scope 外的未改动
88
+
89
+ **4.2 任务类型区分**:
90
+ - **构建任务**:创建文件/代码 → lint + typecheck 通过后可标记
91
+ - **验证任务**:需实际运行 → 必须验证后才能标记
92
+ - **依赖任务**:等前置完成 → 不提前标记
93
+
94
+ **4.3 依赖链检查**:标记依赖任务前,检查前置任务状态
95
+
96
+ **4.4 自动化 Gate**:lint + typecheck 自动执行,任一失败则停止
81
97
 
82
- **5. 自审**:`/opsx:verify` 自审实现代码,确保质量。
98
+ **4.5 Verify 强制化**:必须 verify 通过后才能标记完成,禁止跳过
83
99
 
84
- **6. E2E 测试**:`/opsx:e2e <change-name>` 生成 Playwright 测试 → `/browse` 探索真实 DOM → Healer 自动修复 → `/qa` 真实浏览器验证。E2E 通过后,由用户决定发布时机。
100
+ **5. E2E 测试**:`/opsx:e2e <change-name>` 生成 Playwright 测试 → `/browse` 探索真实 DOM → Healer 自动修复 → `/qa` 真实浏览器验证。E2E 通过后,由用户决定发布时机。
85
101
 
86
- **7. 发布**:由用户手动触发 `/ship`、`/land-and-deploy` 或 `/canary`。内部项目可能直接部署,无需走 PR 机制。
102
+ **6. 发布**:由用户手动触发 `/ship`、`/land-and-deploy` 或 `/canary`。内部项目可能直接部署,无需走 PR 机制。
87
103
 
88
- **8. 迭代回顾**:`/retro`
104
+ **7. 迭代回顾**:`/retro`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openspec-playwright",
3
- "version": "0.3.18",
3
+ "version": "0.3.20",
4
4
  "description": "OpenSpec + Playwright E2E verification setup tool for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,13 +0,0 @@
1
- <claude-mem-context>
2
- # Recent Activity
3
-
4
- <!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
5
-
6
- ### Apr 7, 2026
7
-
8
- | ID | Time | T | Title | Read |
9
- |----|------|---|-------|------|
10
- | #5756 | 11:10 AM | ✅ | BasePage Input Methods Enhanced with Framework Sync | ~226 |
11
- | #5747 | 10:58 AM | ⚖️ | Input Reactivity Fix Strategy | ~265 |
12
- | #5744 | 10:57 AM | 🔵 | BasePage Pattern for Playwright Testing | ~253 |
13
- </claude-mem-context>