openspec-playwright 0.3.74 → 0.3.76
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 +32 -22
- package/README.zh-CN.md +23 -20
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.js +112 -47
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/editors/adapters/dsh.js +3 -0
- package/dist/commands/editors/adapters/dsh.js.map +1 -1
- package/dist/commands/editors/adapters/omp.js +3 -0
- package/dist/commands/editors/adapters/omp.js.map +1 -1
- package/dist/commands/editors/adapters/pi.js +3 -0
- package/dist/commands/editors/adapters/pi.js.map +1 -1
- package/dist/commands/editors/project-rules.js +1 -1
- package/dist/commands/editors/project-rules.js.map +1 -1
- package/dist/commands/editors/registry.d.ts +15 -0
- package/dist/commands/editors/registry.js +22 -1
- package/dist/commands/editors/registry.js.map +1 -1
- package/dist/commands/editors/types.d.ts +17 -0
- package/dist/commands/editors/types.js +5 -0
- package/dist/commands/editors/types.js.map +1 -1
- package/dist/commands/editors.d.ts +1 -1
- package/dist/commands/editors.js +1 -1
- package/dist/commands/editors.js.map +1 -1
- package/dist/commands/explore.d.ts +2 -0
- package/dist/commands/explore.js +2 -2
- package/dist/commands/explore.js.map +1 -1
- package/dist/commands/init.js +23 -32
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.js +4 -2
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +1 -2
- package/dist/commands/update.js +109 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/mcp.d.ts +5 -2
- package/dist/shared/mcp.js +15 -7
- package/dist/shared/mcp.js.map +1 -1
- package/employee-standards.md +28 -49
- package/package.json +1 -1
- package/templates/e2e-command.md +6 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { detectAdapters } from "./editors.js";
|
|
2
1
|
export interface UpdateOptions {
|
|
3
2
|
cli?: boolean;
|
|
4
3
|
skill?: boolean;
|
|
@@ -11,7 +10,7 @@ export declare function update(options: UpdateOptions): Promise<void>;
|
|
|
11
10
|
* under `--no-skill` — standards sync is not a skill install and must not be
|
|
12
11
|
* silently skipped by that flag.
|
|
13
12
|
*/
|
|
14
|
-
export declare function syncEmployeeStandards(tmpDir: string, projectRoot: string,
|
|
13
|
+
export declare function syncEmployeeStandards(tmpDir: string, projectRoot: string, claudeAuthorized: boolean): void;
|
|
15
14
|
export declare function syncProjectTemplates(tmpDir: string, projectRoot: string): void;
|
|
16
15
|
/**
|
|
17
16
|
* Sync credentials.yaml — update template structure while preserving user data.
|
package/dist/commands/update.js
CHANGED
|
@@ -6,8 +6,8 @@ import { tmpdir } from "os";
|
|
|
6
6
|
import { promisify } from "util";
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
import * as tar from "tar";
|
|
9
|
-
import { buildCommandMeta,
|
|
10
|
-
import {
|
|
9
|
+
import { buildCommandMeta, getAllAdapters, hasCommandArtifacts, installCommand, installOpenSpecBlock, installClaudeWrapper, claudeAdapter, claudeWrapperStandardsContent, opencodeAdapter, } from "./editors.js";
|
|
10
|
+
import { ensureTestRunnerMcp, isTestRunnerMcpInstalled, hasFrontendSignal, needsShell, detectCodeGraphStatus, codegraphHintLines, } from "../shared/index.js";
|
|
11
11
|
import { compareBlock, OPENSPEC_START } from "../shared/drift.js";
|
|
12
12
|
const execFileAsync = promisify(execFile);
|
|
13
13
|
export async function update(options) {
|
|
@@ -33,7 +33,12 @@ export async function update(options) {
|
|
|
33
33
|
console.log(chalk.blue("─── Updating CLI ───"));
|
|
34
34
|
let cliUpdated = false;
|
|
35
35
|
try {
|
|
36
|
-
await execFileAsync("npm", ["install", "-g", "openspec-playwright@latest"], {
|
|
36
|
+
await execFileAsync("npm", ["install", "-g", "openspec-playwright@latest"], {
|
|
37
|
+
timeout: 120000,
|
|
38
|
+
cwd: projectRoot,
|
|
39
|
+
stdio: "inherit",
|
|
40
|
+
shell: needsShell,
|
|
41
|
+
});
|
|
37
42
|
console.log(chalk.green(" ✓ CLI updated via npm"));
|
|
38
43
|
cliUpdated = true;
|
|
39
44
|
}
|
|
@@ -88,7 +93,12 @@ export async function update(options) {
|
|
|
88
93
|
console.log(chalk.gray(" Node module resolution will use local version, not global CLI."));
|
|
89
94
|
console.log(chalk.gray(" Syncing local devDependency to latest..."));
|
|
90
95
|
try {
|
|
91
|
-
await execFileAsync("npm", ["install", "-D", "openspec-playwright@latest"], {
|
|
96
|
+
await execFileAsync("npm", ["install", "-D", "openspec-playwright@latest"], {
|
|
97
|
+
timeout: 120000,
|
|
98
|
+
cwd: projectRoot,
|
|
99
|
+
stdio: "inherit",
|
|
100
|
+
shell: needsShell,
|
|
101
|
+
});
|
|
92
102
|
console.log(chalk.green(" ✓ devDependency synced to latest"));
|
|
93
103
|
}
|
|
94
104
|
catch (err) {
|
|
@@ -109,13 +119,21 @@ export async function update(options) {
|
|
|
109
119
|
if (existsSync(commandSrc)) {
|
|
110
120
|
body = readFileSync(commandSrc, "utf-8");
|
|
111
121
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
// Write authorization = tool-owned artifacts exist ("existing artifacts
|
|
123
|
+
// are the manifest") — never detect(): a global config dir or a
|
|
124
|
+
// hand-created marker directory does not authorize writes. update
|
|
125
|
+
// maintains territory; it never expands it.
|
|
126
|
+
const authorized = getAllAdapters().filter((a) => hasCommandArtifacts(projectRoot, a));
|
|
127
|
+
if (authorized.length === 0) {
|
|
128
|
+
console.log(chalk.gray(' - No openspec-pw artifacts in this project — run "openspec-pw init" to set up editor integrations'));
|
|
115
129
|
}
|
|
116
130
|
else if (body) {
|
|
117
131
|
const meta = buildCommandMeta(body);
|
|
118
|
-
for (const adapter of
|
|
132
|
+
for (const adapter of getAllAdapters()) {
|
|
133
|
+
if (!hasCommandArtifacts(projectRoot, adapter)) {
|
|
134
|
+
console.log(chalk.gray(` - ${adapter.label}: not configured in this project (run "openspec-pw init --tools ${adapter.id}" to add)`));
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
119
137
|
// Drift-aware: only rewrite a command file when its content differs
|
|
120
138
|
// from the formatted template. Untouched files keep their mtime.
|
|
121
139
|
const relPath = adapter.commandFilePath(meta.id);
|
|
@@ -149,8 +167,9 @@ export async function update(options) {
|
|
|
149
167
|
syncProjectTemplates(tmpDir, projectRoot);
|
|
150
168
|
// Standards sync (drift-aware). Under --no-skill this phase still runs
|
|
151
169
|
// via the else branch below — the flag only scopes command/template
|
|
152
|
-
// installation, not standards.
|
|
153
|
-
|
|
170
|
+
// installation, not standards. CLAUDE.md wrapper is gated on the
|
|
171
|
+
// claude editor's command-artifact authorization.
|
|
172
|
+
syncEmployeeStandards(tmpDir, projectRoot, hasCommandArtifacts(projectRoot, claudeAdapter));
|
|
154
173
|
rmSync(tmpDir, { recursive: true, force: true });
|
|
155
174
|
console.log(chalk.green(" ✓ Commands & templates updated to latest"));
|
|
156
175
|
}
|
|
@@ -159,7 +178,12 @@ export async function update(options) {
|
|
|
159
178
|
console.log(chalk.yellow(` ⚠ Failed to update from npm: ${msg}`));
|
|
160
179
|
console.log(chalk.gray(" Trying npm install to pull latest version..."));
|
|
161
180
|
try {
|
|
162
|
-
await execFileAsync("npm", ["install", "-g", "openspec-playwright@latest"], {
|
|
181
|
+
await execFileAsync("npm", ["install", "-g", "openspec-playwright@latest"], {
|
|
182
|
+
timeout: 120000,
|
|
183
|
+
cwd: projectRoot,
|
|
184
|
+
stdio: "inherit",
|
|
185
|
+
shell: needsShell,
|
|
186
|
+
});
|
|
163
187
|
console.log(chalk.green(" ✓ Updated via npm install"));
|
|
164
188
|
}
|
|
165
189
|
catch (err2) {
|
|
@@ -176,7 +200,7 @@ export async function update(options) {
|
|
|
176
200
|
console.log(chalk.blue("\n─── Standards Sync ───"));
|
|
177
201
|
try {
|
|
178
202
|
const tmpDir = await fetchLatestBundle();
|
|
179
|
-
syncEmployeeStandards(tmpDir, projectRoot,
|
|
203
|
+
syncEmployeeStandards(tmpDir, projectRoot, hasCommandArtifacts(projectRoot, claudeAdapter));
|
|
180
204
|
rmSync(tmpDir, { recursive: true, force: true });
|
|
181
205
|
}
|
|
182
206
|
catch (err) {
|
|
@@ -184,25 +208,44 @@ export async function update(options) {
|
|
|
184
208
|
console.log(chalk.yellow(` ⚠ Standards sync failed: ${msg}`));
|
|
185
209
|
}
|
|
186
210
|
}
|
|
187
|
-
// 2b. Install Playwright MCP
|
|
211
|
+
// 2b. Install the Playwright test-runner MCP for each authorized editor
|
|
212
|
+
// (tool-owned command artifacts exist). Single project-scoped server
|
|
213
|
+
// matching the official `playwright init-agents` layout: `playwright-test`
|
|
214
|
+
// exposes both browser_* tools and the test_run/test_debug/test_list
|
|
215
|
+
// workflow tools. Frontend gate mirrors init — API-only projects don't
|
|
216
|
+
// need the browser MCP (the skip is announced, not silent). Unauthorized
|
|
217
|
+
// editors are skipped: MCP config files (e.g. .omp/mcp.json) are never
|
|
218
|
+
// created out of thin air.
|
|
188
219
|
if (options.mcp !== false) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
220
|
+
if (hasFrontendSignal(projectRoot) !== true) {
|
|
221
|
+
console.log(chalk.gray(" - No frontend signal detected — skipping Playwright MCP (API tests use the request fixture)"));
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
const authorized = getAllAdapters().filter((a) => hasCommandArtifacts(projectRoot, a));
|
|
225
|
+
if (authorized.length === 0) {
|
|
226
|
+
console.log(chalk.gray(' - No openspec-pw artifacts in this project — run "openspec-pw init" to set up the Playwright MCP'));
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
console.log(chalk.blue("\n─── Installing Playwright MCP ───"));
|
|
230
|
+
for (const adapter of getAllAdapters()) {
|
|
231
|
+
if (!hasCommandArtifacts(projectRoot, adapter)) {
|
|
232
|
+
console.log(chalk.gray(` - ${adapter.label}: not configured in this project (run "openspec-pw init --tools ${adapter.id}" to add)`));
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
if (isTestRunnerMcpInstalled(adapter)) {
|
|
236
|
+
console.log(chalk.green(` ✓ ${adapter.label}: Test-runner MCP already installed`));
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
try {
|
|
240
|
+
ensureTestRunnerMcp(adapter);
|
|
241
|
+
if (adapter.supportsMcp !== false) {
|
|
242
|
+
console.log(chalk.gray(` (Restart ${adapter.label} to activate)`));
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
console.log(chalk.yellow(` ⚠ ${adapter.label}: Failed to install Test-runner MCP`));
|
|
247
|
+
console.log(chalk.gray(` Install manually (see ${adapter.label} docs).`));
|
|
201
248
|
}
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
console.log(chalk.yellow(` ⚠ ${adapter.label}: Failed to install Playwright MCP`));
|
|
205
|
-
console.log(chalk.gray(` Install manually (see ${adapter.label} docs).`));
|
|
206
249
|
}
|
|
207
250
|
}
|
|
208
251
|
}
|
|
@@ -216,7 +259,7 @@ export async function update(options) {
|
|
|
216
259
|
// devDependency in the user's package.json shadowing the global
|
|
217
260
|
// CLI binary. See Node module resolution rules.
|
|
218
261
|
await checkVersionShadow();
|
|
219
|
-
const editorsForHint =
|
|
262
|
+
const editorsForHint = getAllAdapters().filter((a) => hasCommandArtifacts(projectRoot, a));
|
|
220
263
|
if (editorsForHint.length > 0) {
|
|
221
264
|
const labels = editorsForHint.map((a) => a.displayName).join(" + ");
|
|
222
265
|
console.log(chalk.bold(`\n Restart ${labels} to use the updated commands.`));
|
|
@@ -295,7 +338,11 @@ async function fetchLatestBundle() {
|
|
|
295
338
|
.sort((a, b) => b.mtime - a.mtime);
|
|
296
339
|
if (tgzFiles.length === 0)
|
|
297
340
|
throw new Error("No tarball found");
|
|
298
|
-
await tar.extract({
|
|
341
|
+
await tar.extract({
|
|
342
|
+
file: join(tmpDir, tgzFiles[0].name),
|
|
343
|
+
cwd: tmpDir,
|
|
344
|
+
strip: 1,
|
|
345
|
+
});
|
|
299
346
|
return tmpDir;
|
|
300
347
|
}
|
|
301
348
|
/**
|
|
@@ -304,37 +351,40 @@ async function fetchLatestBundle() {
|
|
|
304
351
|
* under `--no-skill` — standards sync is not a skill install and must not be
|
|
305
352
|
* silently skipped by that flag.
|
|
306
353
|
*/
|
|
307
|
-
export function syncEmployeeStandards(tmpDir, projectRoot,
|
|
354
|
+
export function syncEmployeeStandards(tmpDir, projectRoot, claudeAuthorized) {
|
|
308
355
|
// Update employee-grade standards in project rules files (AGENTS.md + CLAUDE.md).
|
|
309
356
|
// Drift-aware: only rewrite a rules file when its OPENSPEC block differs
|
|
310
357
|
// from the bundled template; matching content is left untouched (no mtime
|
|
311
|
-
// change). AGENTS.md is
|
|
312
|
-
//
|
|
358
|
+
// change). 标记即领土, judged per artifact: AGENTS.md is only maintained
|
|
359
|
+
// when it already carries the tool-owned OPENSPEC block — a missing file
|
|
360
|
+
// or one without markers is NOT created/appended here (run
|
|
361
|
+
// `openspec-pw init` to install). The CLAUDE.md wrapper is gated on the
|
|
362
|
+
// claude editor's command-artifact authorization, not its own markers.
|
|
313
363
|
const standardsSrc = join(tmpDir, "employee-standards.md");
|
|
314
364
|
if (!existsSync(standardsSrc))
|
|
315
365
|
return;
|
|
316
366
|
const standards = readFileSync(standardsSrc, "utf-8");
|
|
317
|
-
if (detected.length === 0) {
|
|
318
|
-
console.log(chalk.gray(" - No supported editor (.claude, .opencode, .cline, .cursor, .pi, .omp, or .dsh) found, skipping standards sync"));
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
// AGENTS.md is the single source of truth and is always written by
|
|
322
|
-
// installProjectRules regardless of which editors are detected — so it
|
|
323
|
-
// is always checked here (covers claude-only projects). A present file
|
|
324
|
-
// with no OPENSPEC marker needs the block appended (tool-owned).
|
|
325
367
|
const agentsPath = join(projectRoot, "AGENTS.md");
|
|
326
|
-
let agentsStale =
|
|
327
|
-
|
|
368
|
+
let agentsStale = false;
|
|
369
|
+
let agentsInTerritory = false;
|
|
370
|
+
if (!existsSync(agentsPath)) {
|
|
371
|
+
console.log(chalk.gray(' - AGENTS.md not found — run "openspec-pw init" to install employee standards'));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
328
374
|
const fileContent = readFileSync(agentsPath, "utf-8");
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
375
|
+
if (!fileContent.includes(OPENSPEC_START)) {
|
|
376
|
+
console.log(chalk.gray(' - AGENTS.md has no OPENSPEC block — run "openspec-pw init" to install employee standards'));
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
agentsInTerritory = true;
|
|
380
|
+
agentsStale = compareBlock(fileContent, standards).stale;
|
|
381
|
+
}
|
|
332
382
|
}
|
|
333
|
-
// CLAUDE.md wrapper is only
|
|
334
|
-
// `@AGENTS.md` import without markers is left
|
|
335
|
-
// openspec CLI or the user) — not stale.
|
|
383
|
+
// CLAUDE.md wrapper is only maintained when the claude editor is
|
|
384
|
+
// authorized. A bare `@AGENTS.md` import without markers is left
|
|
385
|
+
// untouched (added by the openspec CLI or the user) — not stale.
|
|
336
386
|
let claudeStale = false;
|
|
337
|
-
if (
|
|
387
|
+
if (claudeAuthorized) {
|
|
338
388
|
const claudePath = join(projectRoot, "CLAUDE.md");
|
|
339
389
|
// A symlinked CLAUDE.md (→ AGENTS.md, the official reuse pattern)
|
|
340
390
|
// is what Claude Code reads; the AGENTS.md check above already
|
|
@@ -359,12 +409,16 @@ export function syncEmployeeStandards(tmpDir, projectRoot, detected) {
|
|
|
359
409
|
}
|
|
360
410
|
}
|
|
361
411
|
}
|
|
362
|
-
|
|
363
|
-
if (anyStale) {
|
|
412
|
+
if (agentsStale || claudeStale) {
|
|
364
413
|
console.log(chalk.gray(" 检测到非模板内容将被覆盖 — OPENSPEC block differs from bundled version"));
|
|
365
|
-
|
|
414
|
+
if (agentsStale) {
|
|
415
|
+
installOpenSpecBlock(projectRoot, standards, opencodeAdapter);
|
|
416
|
+
}
|
|
417
|
+
if (claudeStale) {
|
|
418
|
+
installClaudeWrapper(projectRoot);
|
|
419
|
+
}
|
|
366
420
|
}
|
|
367
|
-
else {
|
|
421
|
+
else if (agentsInTerritory) {
|
|
368
422
|
console.log(chalk.green(" ✓ employee-grade standards already in sync"));
|
|
369
423
|
}
|
|
370
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { SHARED_FILE_NAMES, TIMEOUT } from "./constants.js";
|
|
2
|
-
export {
|
|
2
|
+
export { removePlaywrightMcp, TEST_RUNNER_MCP_SERVER, isTestRunnerMcpInstalled, ensureTestRunnerMcp, removeTestRunnerMcp, } from "./mcp.js";
|
|
3
3
|
export { needsShell } from "./platform.js";
|
|
4
4
|
export { detectCodeGraphStatus, codegraphHintLines } from "./codegraph.js";
|
|
5
5
|
export type { CodeGraphStatus } from "./codegraph.js";
|
package/dist/shared/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { SHARED_FILE_NAMES, TIMEOUT } from "./constants.js";
|
|
2
|
-
export {
|
|
2
|
+
export { removePlaywrightMcp, TEST_RUNNER_MCP_SERVER, isTestRunnerMcpInstalled, ensureTestRunnerMcp, removeTestRunnerMcp, } from "./mcp.js";
|
|
3
3
|
export { needsShell } from "./platform.js";
|
|
4
4
|
export { detectCodeGraphStatus, codegraphHintLines } from "./codegraph.js";
|
|
5
5
|
export { detectAppServer, findNpmRoot, chooseDevScript, parsePort, hasFrontendSignal, } from "./app-detect.js";
|
package/dist/shared/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,SAAS,EACT,iBAAiB,GAClB,MAAM,iBAAiB,CAAC"}
|
package/dist/shared/mcp.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export declare function isMcpInstalled(adapter: EditorAdapter, serverName: strin
|
|
|
13
13
|
export declare function ensureMcp(adapter: EditorAdapter, serverName: string, command: string[]): void;
|
|
14
14
|
/** Remove an MCP server from this editor. Does not throw if missing. */
|
|
15
15
|
export declare function removeMcp(adapter: EditorAdapter, serverName: string): void;
|
|
16
|
-
|
|
17
|
-
export declare
|
|
16
|
+
/** Official test-runner MCP server — bundled `playwright` CLI subcommand. */
|
|
17
|
+
export declare const TEST_RUNNER_MCP_SERVER = "playwright-test";
|
|
18
18
|
export declare function removePlaywrightMcp(adapter: EditorAdapter): void;
|
|
19
|
+
export declare function isTestRunnerMcpInstalled(adapter: EditorAdapter): boolean;
|
|
20
|
+
export declare function ensureTestRunnerMcp(adapter: EditorAdapter): void;
|
|
21
|
+
export declare function removeTestRunnerMcp(adapter: EditorAdapter): void;
|
package/dist/shared/mcp.js
CHANGED
|
@@ -42,14 +42,22 @@ export function removeMcp(adapter, serverName) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
// ─── Playwright MCP conveniences ────────────────────────────────────────
|
|
45
|
-
|
|
46
|
-
export
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
45
|
+
/** Official test-runner MCP server — bundled `playwright` CLI subcommand. */
|
|
46
|
+
export const TEST_RUNNER_MCP_SERVER = "playwright-test";
|
|
47
|
+
const TEST_RUNNER_MCP_COMMAND = ["npx", "playwright", "run-test-mcp-server"];
|
|
48
|
+
// Kept for backward compatibility with projects that still have a
|
|
49
|
+
// legacy `@playwright/mcp` entry from older openspec-pw versions — uninstall
|
|
50
|
+
// uses this to clean the stale entry out of the project's mcp config.
|
|
52
51
|
export function removePlaywrightMcp(adapter) {
|
|
53
52
|
removeMcp(adapter, "playwright");
|
|
54
53
|
}
|
|
54
|
+
export function isTestRunnerMcpInstalled(adapter) {
|
|
55
|
+
return isMcpInstalled(adapter, TEST_RUNNER_MCP_SERVER);
|
|
56
|
+
}
|
|
57
|
+
export function ensureTestRunnerMcp(adapter) {
|
|
58
|
+
ensureMcp(adapter, TEST_RUNNER_MCP_SERVER, TEST_RUNNER_MCP_COMMAND);
|
|
59
|
+
}
|
|
60
|
+
export function removeTestRunnerMcp(adapter) {
|
|
61
|
+
removeMcp(adapter, TEST_RUNNER_MCP_SERVER);
|
|
62
|
+
}
|
|
55
63
|
//# sourceMappingURL=mcp.js.map
|
package/dist/shared/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/shared/mcp.ts"],"names":[],"mappings":"AAUA,iEAAiE;AACjE,MAAM,UAAU,cAAc,CAAC,OAAsB,EAAE,UAAkB;IACvE,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CACvB,OAAsB,EACtB,UAAkB,EAClB,OAAiB;IAEjB,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,uFAAuF,CAC3H,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,wBAAwB,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,gBAAgB,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,uBAAuB,UAAU,MAAM,CAAC,CAAC;QAC1E,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,OAAsB,EAAE,UAAkB;IAClE,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,wCAAwC,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,wCAAwC,CAAC,CAAC;QACzF,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,cAAc,CAAC,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,KAAK,sBAAsB,UAAU,MAAM,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/shared/mcp.ts"],"names":[],"mappings":"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"}
|
package/employee-standards.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**约定**:动手前先读 `openspec/config.yaml`(技术栈、结构、约定、约束等),无内容则忽略。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**OpenSpec 命令**:跑 `npx openspec --help` 查看可用命令。
|
|
10
10
|
|
|
11
11
|
**优先级决策规则**:🔴 CRITICAL(违反→静默 bug / 安全漏洞,必须修正)→ **停下确认后再执行**|🟡 IMPORTANT(偏离需说明理由)→ **谨慎执行,偏离说明原因**|⚪ STANDARD(标准实践,可调整)→ 按标准执行
|
|
12
12
|
|
|
@@ -14,25 +14,20 @@
|
|
|
14
14
|
|
|
15
15
|
## 1. 代码质量
|
|
16
16
|
|
|
17
|
-
> WHY:AI
|
|
17
|
+
> WHY:AI 默认倾向多写、快写、猜写——本节把倾向转化为可验证的生产代码。
|
|
18
18
|
|
|
19
19
|
**DO**
|
|
20
|
-
- 🔴 **lint + typecheck 每次编辑后自动执行,通过才算成功**。扫源码扩展名判断主语言:.ts/.tsx→ESLint+tsc、.py→ruff+mypy、.go→gofmt+vet
|
|
20
|
+
- 🔴 **lint + typecheck 每次编辑后自动执行,通过才算成功**。扫源码扩展名判断主语言:.ts/.tsx→ESLint+tsc、.py→ruff+mypy、.go→gofmt+vet 等;失败时先跑对应语言 auto-fix(如 `npm run lint:fix`)再重跑 gate。工具不存在时告知用户,不假装跑过
|
|
21
21
|
- 🟡 不隐藏任何 gate 失败结果——lint / typecheck / test 任一失败时,完整输出错误日志并停止,不继续后续步骤
|
|
22
|
-
-
|
|
23
|
-
- 🟡
|
|
24
|
-
- 🟡 动手前列假设 → 逐条验证。有不清→停下来,说出困惑,再提问
|
|
22
|
+
- 🟡 未执行的检查步骤明确标注「未运行」,不暗示已通过
|
|
23
|
+
- 🟡 需求理解不清或存在可见风险时,先停下来提问,不直接执行;动手前列假设 → 逐条验证,有不清再提问
|
|
25
24
|
- 🟡 多解释则全列,更简单方案则提出并坚持
|
|
26
25
|
- 🟡 多步任务先列计划(`1. [Step] → verify: [check]`),循环验证直到成功
|
|
27
|
-
- 🟡 lint 失败时优先运行对应语言的 auto-fix(如 `npm run lint:fix` / `ruff format .` / `go fmt ./...`)
|
|
28
26
|
- 🟡 只写被要求的:不加"灵活"、"可配置"、单次使用抽象、未要求功能。200行能50行则重写
|
|
29
27
|
- 🔴 过时的直接删:删除/修改时不留兼容层、不写迁移、不留 fallback
|
|
30
|
-
-
|
|
31
|
-
- 🟡
|
|
32
|
-
- 🟡 同类问题先用成熟产品验证过的模式解决,不从零发明
|
|
33
|
-
- 🟡 精准改动:只改必要的,改完清理自己造成的垃圾。匹配现有风格
|
|
28
|
+
- 🔴 方案选型按优先级链:项目已有依赖 → 成熟有人维护的库 → 自己实现(没有明确理由不从零发明);同类问题先用成熟产品验证过的模式解决
|
|
29
|
+
- 🟡 精准改动:只改必要的,改完清理自己造成的垃圾(未使用的 import/export/prop/console.log 等;清理与重构分开提交)。匹配现有风格
|
|
34
30
|
- 🟡 代码文件行数上限 1500:超过即违例,必须按职责拆分,不得继续堆叠
|
|
35
|
-
- ⚪ 重构前清理未使用的 import/export/prop/console.log 等,单独提交再做重构
|
|
36
31
|
|
|
37
32
|
**DO NOT**
|
|
38
33
|
- 不写只适配特定输入值的逻辑 → 上游格式变化即失效
|
|
@@ -53,24 +48,20 @@
|
|
|
53
48
|
|
|
54
49
|
## 2. 工具使用
|
|
55
50
|
|
|
56
|
-
> WHY:工具使用方式直接影响搜索覆盖面和结果准确性。
|
|
57
|
-
|
|
58
51
|
**工具调用纪律(防循环)🔴**
|
|
59
52
|
- 🔴 一次只发一个工具调用,等结果再决定下一步;等待/轮询用单个调用内部的循环实现
|
|
60
53
|
- 🔴 单条消息并行只用于真正独立的调用,禁止复制相同调用
|
|
61
54
|
- 🔴 发现自己正在重复生成相同调用 → 立即停止,重新评估
|
|
62
|
-
- 🟡
|
|
55
|
+
- 🟡 长会话接近上下文上限时,复杂任务前先压缩上下文
|
|
63
56
|
|
|
64
57
|
**DO**
|
|
65
58
|
- 🟡 搜索分层:结构性问题(定义/调用/影响/流)优先用 CodeGraph;字面文本用全文搜索;文件名模式用文件名匹配。跳过依赖目录和缓存目录(调试依赖时除外),搜子目录时按需缩小
|
|
66
59
|
- 🟡 重命名覆盖:调用、类型、字符串、import、barrel file、测试 mock,不得假设一次覆盖
|
|
67
|
-
- 🟡 联网调研优先 agent-reach skill
|
|
68
|
-
- 🟡 涉及前端 UI 设计时,按序使用:frontend-design skill 定方向 → ui-ux-pro-max skill 选风格 → web-design-guidelines skill 审查,三步组合避免"千篇一律 AI 风"
|
|
69
60
|
- 🟡 编辑 → 重新读取确认 → 跑 §1 的 lint+typecheck → 任一失败则回退
|
|
70
61
|
- 🟡 变更完成告知用户可能遗漏区域,提示人工复查
|
|
71
62
|
|
|
72
63
|
**DO NOT**
|
|
73
|
-
- 🔴 禁止用 sed/awk/node -e/python -c
|
|
64
|
+
- 🔴 禁止用 sed/awk/node -e/python -c 等管道命令改写项目内已有文件——源码/文档/测试/配置同算(跳过编辑工具验证层);确需批量改写,先征得用户同意
|
|
74
65
|
- 不主动推送,除非用户明确要求
|
|
75
66
|
|
|
76
67
|
**REQUIRE**
|
|
@@ -81,23 +72,12 @@
|
|
|
81
72
|
|
|
82
73
|
## 3. 大规模任务
|
|
83
74
|
|
|
84
|
-
> WHY:200+
|
|
75
|
+
> WHY:200+ 行直接修改缺乏评审。
|
|
85
76
|
|
|
86
77
|
- 🔴 200+ 行修改或架构变更(新增服务/API 契约/数据模型重构)必须走 OpenSpec(`/opsx:propose`),禁止直接修改
|
|
87
78
|
- 🟡 新功能先跑通最小端到端路径,再增量扩展;不为未完成的复杂度拆掉能跑的代码
|
|
88
79
|
- 🟡 架构决策往长了做:不接受"先这样以后再换"的临时方案
|
|
89
|
-
|
|
90
|
-
### 工作流参考
|
|
91
|
-
|
|
92
|
-
| 阶段 | 命令 | 退出条件 |
|
|
93
|
-
|------|------|---------|
|
|
94
|
-
| 提案 | `/opsx:propose` | proposal + scenarios 生成 |
|
|
95
|
-
| 实现 | `/opsx:apply` | lint + typecheck 通过 |
|
|
96
|
-
| 自审 | `/opsx:verify` | 实现匹配 design,无遗漏 |
|
|
97
|
-
| E2E | `/opsx:e2e` / `/opsx-e2e` | 测试生成 + Healer 验证通过 |
|
|
98
|
-
| 归档 | `/opsx:archive` | specs 更新,归档完成 |
|
|
99
|
-
|
|
100
|
-
所有阶段由用户手动触发,**AI 不自动进入下一阶段**。
|
|
80
|
+
- 🔴 所有阶段由用户手动触发,**AI 不自动进入下一阶段**(提案 `/opsx:propose` → 实现 `/opsx:apply` → 自审 `/opsx:verify` → E2E `/opsx:e2e` → 归档 `/opsx:archive`)
|
|
101
81
|
|
|
102
82
|
---
|
|
103
83
|
|
|
@@ -122,30 +102,29 @@
|
|
|
122
102
|
|
|
123
103
|
## 5. 临时文件管理
|
|
124
104
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
**DO**
|
|
128
|
-
- 🟡 非源码临时文件(截图、日志、heapdump 等)放项目根 `tmp/` 下
|
|
129
|
-
- 🟡 文件名含时间戳(如 `screenshot-20260721T143000.png`)以避免冲突和重复
|
|
130
|
-
- ⚪ 平铺存放,不分子目录,简化清理脚本
|
|
131
|
-
|
|
132
|
-
**DO NOT**
|
|
133
|
-
- 🔴 禁止将临时文件提交到版本控制(确保 `.gitignore` 包含 `tmp/`)
|
|
134
|
-
|
|
135
|
-
**REQUIRE**
|
|
136
|
-
- 🟡 超 24 小时的文件应在 commit 前删除
|
|
137
|
-
- ⚪ 文件命名遵循项目所在语言/框架的约定(如 JS/Go 用 kebab-case,Python/Rust 用 snake_case,Java 用 PascalCase),避免空格和特殊字符
|
|
105
|
+
- 🟡 非源码临时文件(截图、日志、heapdump 等)放项目根 `tmp/` 下,文件名含时间戳(如 `screenshot-20260721T143000.png`)
|
|
106
|
+
- 🔴 禁止将临时文件提交到版本控制(确保 `.gitignore` 包含 `tmp/`);超 24 小时的临时文件在 commit 前删除
|
|
138
107
|
|
|
139
108
|
---
|
|
140
109
|
|
|
141
|
-
## 6.
|
|
110
|
+
## 6. 测试与验证策略
|
|
142
111
|
|
|
143
|
-
> WHY
|
|
112
|
+
> WHY:测试的价值在验证行为,不在覆盖率数字;截图证明像素,不证明行为。AI 用琐碎单测堆数量冒充完成度——生成烧 token、套件拖慢反馈,验收结果才决定能否交付。
|
|
144
113
|
|
|
145
114
|
**触发:改了用户可见可交互的东西,就必须在浏览器里证明**
|
|
146
|
-
- 🔴 改 DOM/交互/跳转/异步渲染/样式/响应式,或守卫/权限/多角色可见性 → 浏览器验证(权限类必须真实登录态);纯逻辑 →
|
|
115
|
+
- 🔴 改 DOM/交互/跳转/异步渲染/样式/响应式,或守卫/权限/多角色可见性 → 浏览器验证(权限类必须真实登录态);纯逻辑 → 按下方单测取舍,不开浏览器
|
|
116
|
+
|
|
117
|
+
**单测——命中才测,宁缺毋滥**
|
|
118
|
+
- 🟡 值得单测:业务核心计算/状态转换、含分支的纯函数、边界与错误处理路径、被多处复用的工具、修过 bug 的回归。不值得:纯透传、getter/装饰器/样板、类型系统已保证的行为、框架自带行为;模糊地带默认测(漏测代价 > 多测代价),一个行为一组断言,不拆场景凑数
|
|
119
|
+
- 🔴 验收标准点名的行为与业务核心逻辑必须被某层测试覆盖(单测或验收测试,一层即可,不重复堆);不以本条为由跳过/删除既有测试
|
|
120
|
+
- 🟡 分层反馈预期:单测改完随手跑(秒级量级);验收测试提交前实跑(见下方交付,分钟级可接受)
|
|
121
|
+
|
|
122
|
+
**验收——对照 spec 验收标准的真实行为验证,层级由被验对象决定**
|
|
123
|
+
- 🔴 后端/服务 → 对真实运行的服务发真实请求验证契约与端到端行为,不以全 mock 的单测链冒充验收;验收落成集成测试,提交前实跑
|
|
124
|
+
- 🔴 前端/用户可见 → 浏览器自检 + Playwright 交付测试(见下方 A/B)
|
|
125
|
+
- 🟡 集成测试用真实数据/依赖(seed/fixture,遵守 §4);期望锚定 spec 写「预期 X,实测 Y」(同下方自检 A),不自定期望
|
|
147
126
|
|
|
148
|
-
**A.
|
|
127
|
+
**A. 自检(浏览器,开发中 AI 验证,不留测试代码)**
|
|
149
128
|
- 🔴 截图 ≠ 行为验证:交互必须验证结果(点击后的状态/跳转/渲染),仅截图不算通过
|
|
150
129
|
- 🟡 验证前核对加载的是本次产物(清缓存/停用 SW/核 hash)——跑旧包验证作废
|
|
151
130
|
- 🟡 权限类禁止注入 token(守卫未执行,验证作废);多角色各角色单独登录验证
|
|
@@ -158,4 +137,4 @@
|
|
|
158
137
|
- 🟡 提交前实跑测试,通过才算完成;未运行不视为完成
|
|
159
138
|
- 🟡 无法覆盖的路径说明理由;skip/fixme 必附理由
|
|
160
139
|
- 🟡 稳定选择器(data-testid/role);Healer 只消 flaky,不得掩盖断言失败
|
|
161
|
-
- 🔴
|
|
140
|
+
- 🔴 含断言的临时脚本转正为对应层级的测试(浏览器→Playwright、服务→API 集成测试)或删除
|