specweave 0.17.9 → 0.17.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuBH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAMrD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA4DrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,WAAW;IAsBzB;;OAEG;YACW,mBAAmB;IA2GjC;;;;OAIG;YACW,kBAAkB;IA2UhC;;OAEG;YACW,cAAc;IAQ5B;;OAEG;YACW,iBAAiB;IA4E/B;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiF1E;;OAEG;YACW,eAAe;IA8C7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFtE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC3E"}
1
+ {"version":3,"file":"repo-structure-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAuBH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/E,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAoB;gBAE5B,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAMrD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IA4DrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;YACW,WAAW;IAsBzB;;OAEG;YACW,mBAAmB;IA2GjC;;;;OAIG;YACW,kBAAkB;IAmVhC;;OAEG;YACW,cAAc;IAQ5B;;OAEG;YACW,iBAAiB;IA4E/B;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiF1E;;OAEG;YACW,eAAe;IA8C7B;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAmC9B;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiFtE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAyBhC;;;;;OAKG;IACG,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwC3E"}
@@ -302,7 +302,8 @@ export class RepoStructureManager {
302
302
  }
303
303
  else {
304
304
  // GitHub parent: Ask all questions including GitHub details
305
- parentAnswers = await inquirer.prompt([
305
+ // First, ask for owner (separate prompt to avoid validator issues)
306
+ const ownerPrompt = await inquirer.prompt([
306
307
  {
307
308
  type: 'input',
308
309
  name: 'owner',
@@ -319,20 +320,23 @@ export class RepoStructureManager {
319
320
  }
320
321
  return true;
321
322
  }
322
- },
323
+ }
324
+ ]);
325
+ // Now ask remaining questions, using the owner value
326
+ const remainingAnswers = await inquirer.prompt([
323
327
  {
324
328
  type: 'input',
325
329
  name: 'parentName',
326
330
  message: 'Parent repository name:',
327
331
  default: `${path.basename(this.projectPath)}-parent`,
328
- validate: async (input, answers) => {
332
+ validate: async (input) => {
329
333
  if (!input.trim())
330
334
  return 'Repository name is required';
331
335
  // Validate repository doesn't exist
332
- if (this.githubToken && answers.owner) {
333
- const result = await validateRepository(answers.owner, input, this.githubToken);
336
+ if (this.githubToken && ownerPrompt.owner) {
337
+ const result = await validateRepository(ownerPrompt.owner, input, this.githubToken);
334
338
  if (result.exists) {
335
- return `Repository ${answers.owner}/${input} already exists at ${result.url}`;
339
+ return `Repository ${ownerPrompt.owner}/${input} already exists at ${result.url}`;
336
340
  }
337
341
  }
338
342
  return true;
@@ -351,6 +355,8 @@ export class RepoStructureManager {
351
355
  default: true
352
356
  }
353
357
  ]);
358
+ // Merge the answers
359
+ parentAnswers = { ...ownerPrompt, ...remainingAnswers };
354
360
  }
355
361
  // Ask about visibility for parent repo (only if creating on GitHub)
356
362
  let parentVisibility = 'private';
@@ -1 +1 @@
1
- {"version":3,"file":"repo-structure-manager.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-structure-manager.js","sourceRoot":"","sources":["../../../../src/core/repo-structure/repo-structure-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "0.17.9",
3
+ "version": "0.17.11",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,5 +1,11 @@
1
1
  {
2
2
  "mcpServers": {
3
+ "playwright": {
4
+ "command": "npx",
5
+ "args": ["-y", "@playwright/mcp@latest"],
6
+ "description": "Local Playwright browser automation - PRIMARY choice for E2E testing and web interaction",
7
+ "optional": false
8
+ },
3
9
  "browserbase": {
4
10
  "command": "npx",
5
11
  "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
@@ -7,7 +13,7 @@
7
13
  "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
8
14
  "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
9
15
  },
10
- "description": "Cloud browser automation for running Playwright tests in scalable infrastructure",
16
+ "description": "Cloud browser automation for running Playwright tests in scalable infrastructure - FALLBACK option",
11
17
  "optional": true
12
18
  }
13
19
  }
@@ -199,14 +199,107 @@ AI: I'll create a comprehensive design system...
199
199
 
200
200
  ---
201
201
 
202
- ## MCP Integration (Optional)
202
+ ## MCP Integration
203
203
 
204
- ### Browserbase (Cloud Browser Automation)
204
+ ### Playwright MCP (PRIMARY - Local Browser Automation)
205
+
206
+ **✅ RECOMMENDED: Use Playwright MCP for local development**
207
+
208
+ **What it does**:
209
+ - Local browser automation (Chromium, Firefox, WebKit, Edge)
210
+ - E2E testing with accessibility-first selectors
211
+ - No API keys or credentials needed
212
+ - Fast, reliable, works offline
213
+
214
+ **Setup** (Automatic via `.mcp.json`):
215
+
216
+ The plugin auto-configures Playwright MCP. To verify:
217
+
218
+ ```bash
219
+ # Check MCP server status
220
+ claude mcp list
221
+
222
+ # Should show: playwright - ✓ Connected
223
+ ```
224
+
225
+ **Manual Installation** (if needed):
226
+ ```bash
227
+ # Install Playwright MCP globally
228
+ npm install -g @playwright/mcp
229
+
230
+ # Or use npx (recommended)
231
+ npx @playwright/mcp@latest
232
+ ```
233
+
234
+ **Configuration** (`.mcp.json`):
235
+ ```json
236
+ {
237
+ "mcpServers": {
238
+ "playwright": {
239
+ "command": "npx",
240
+ "args": ["-y", "@playwright/mcp@latest"], // ⚠️ -y flag is REQUIRED!
241
+ "description": "Local Playwright - PRIMARY"
242
+ }
243
+ }
244
+ }
245
+ ```
246
+
247
+ **⚠️ IMPORTANT**: The `-y` flag is **required**! Without it, npx waits for user confirmation and the MCP connection hangs.
248
+
249
+ **Advanced Options**:
250
+ ```json
251
+ {
252
+ "mcpServers": {
253
+ "playwright": {
254
+ "command": "npx",
255
+ "args": [
256
+ "-y", // ⚠️ REQUIRED for auto-install
257
+ "@playwright/mcp@latest",
258
+ "--browser", "chromium", // or firefox, webkit, msedge
259
+ "--headless", // run without UI
260
+ "--timeout-action", "5000", // ms
261
+ "--timeout-navigation", "60000" // ms
262
+ ]
263
+ }
264
+ }
265
+ }
266
+ ```
267
+
268
+ **Usage Example**:
269
+ ```javascript
270
+ // Navigate to page
271
+ mcp__plugin_specweave-ui_playwright__browser_goto({ url: "https://example.com" })
272
+
273
+ // Click button (accessibility-first)
274
+ mcp__plugin_specweave-ui_playwright__browser_click({
275
+ ref: "button[name='submit']",
276
+ element: "Submit button"
277
+ })
278
+
279
+ // Fill input
280
+ mcp__plugin_specweave-ui_playwright__browser_fill({
281
+ ref: "input[name='email']",
282
+ text: "user@example.com"
283
+ })
284
+ ```
285
+
286
+ **Benefits**:
287
+ - ✅ No API keys needed
288
+ - ✅ Works offline
289
+ - ✅ Fast local execution
290
+ - ✅ Full browser control
291
+ - ✅ Built-in debugging
292
+
293
+ ---
294
+
295
+ ### Browserbase (FALLBACK - Cloud Browser Automation)
296
+
297
+ **⚠️ Use only when Playwright MCP unavailable (CI/CD, cloud scenarios)**
205
298
 
206
299
  **What it does**:
207
300
  - Runs Playwright tests in cloud infrastructure
208
- - Parallel test execution (10x faster)
209
- - No local browser dependencies
301
+ - Parallel test execution (10x faster at scale)
302
+ - No local browser dependencies in CI
210
303
  - Automatic screenshots/videos
211
304
 
212
305
  **Setup**:
@@ -221,23 +314,36 @@ AI: I'll create a comprehensive design system...
221
314
 
222
315
  3. SpecWeave auto-configures MCP server (via `.mcp.json`)
223
316
 
224
- 4. Use in Playwright:
225
- ```typescript
226
- // playwright.config.ts
227
- export default {
228
- use: {
229
- connectOptions: {
230
- wsEndpoint: process.env.BROWSERBASE_WS_ENDPOINT
231
- }
232
- }
233
- }
234
- ```
317
+ 4. Use in CI/CD pipelines
318
+
319
+ **Configuration** (`.mcp.json`):
320
+ ```json
321
+ {
322
+ "mcpServers": {
323
+ "browserbase": {
324
+ "command": "npx",
325
+ "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
326
+ "env": {
327
+ "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
328
+ "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
329
+ },
330
+ "optional": true
331
+ }
332
+ }
333
+ }
334
+ ```
235
335
 
236
336
  **Benefits**:
237
- - ✅ 10x faster parallel execution
238
- - ✅ No local ChromeDriver installation
337
+ - ✅ Parallel execution (10x faster)
338
+ - ✅ No browser installation in CI
239
339
  - ✅ Automatic scaling
240
- - ✅ Works in CI/CD without setup
340
+ - ✅ Works in serverless environments
341
+
342
+ **When to Use**:
343
+ - ✅ CI/CD pipelines
344
+ - ✅ Cloud deployments
345
+ - ✅ High-scale parallel testing
346
+ - ❌ Local development (use Playwright MCP instead)
241
347
 
242
348
  ---
243
349
 
@@ -0,0 +1,663 @@
1
+ ---
2
+ name: browser-automation
3
+ description: |
4
+ Browser automation and E2E testing using Playwright MCP (primary) or Browserbase (fallback).
5
+ Auto-activates for: browser automation, web testing, E2E tests, Playwright, browser interaction,
6
+ scraping, testing flows, user journeys, accessibility testing, screenshot capture.
7
+
8
+ CRITICAL: ALWAYS use Playwright MCP (mcp__plugin_specweave-ui_playwright__*) as PRIMARY choice.
9
+ Only use Browserbase (mcp__plugin_specweave-ui_browserbase__*) as FALLBACK when Playwright unavailable.
10
+ allowed-tools:
11
+ - mcp__plugin_specweave-ui_playwright__*
12
+ - mcp__plugin_specweave-ui_browserbase__*
13
+ - Read
14
+ - Write
15
+ - Bash
16
+ ---
17
+
18
+ # Browser Automation Skill
19
+
20
+ **Expert in browser automation and E2E testing using Playwright MCP and Browserbase.**
21
+
22
+ ## Core Capabilities
23
+
24
+ ### 1. Playwright MCP Integration (PRIMARY - Local Testing)
25
+
26
+ **✅ ALWAYS TRY PLAYWRIGHT MCP FIRST!**
27
+
28
+ Playwright MCP provides local, fast, reliable browser automation:
29
+
30
+ #### Available Tools (mcp__plugin_specweave-ui_playwright__*)
31
+
32
+ - **browser_goto** - Navigate to URLs
33
+ - **browser_click** - Click elements (by role, text, test ID)
34
+ - **browser_fill** - Fill form inputs
35
+ - **browser_press** - Keyboard interactions
36
+ - **browser_evaluate** - Execute JavaScript
37
+ - **browser_snapshot** - Get accessibility tree (for element selection)
38
+ - **browser_console_messages** - Retrieve console logs
39
+ - **browser_close** - Close browser session
40
+
41
+ #### Best Practices (Microsoft Playwright MCP Guidelines)
42
+
43
+ **Element Selection Strategy** (in priority order):
44
+
45
+ 1. **getByRole** (PREFERRED) - Accessibility-first, semantic selection
46
+ ```javascript
47
+ // Example: Click a button
48
+ browser_click({ ref: "button[name='submit']", element: "Submit button" })
49
+ ```
50
+
51
+ 2. **getByText** - Text content selection
52
+ ```javascript
53
+ // Example: Find by visible text
54
+ browser_click({ ref: "text='Sign In'", element: "Sign In button" })
55
+ ```
56
+
57
+ 3. **getByTestId** - Test ID attributes (data-testid)
58
+ ```javascript
59
+ // Example: Use test IDs
60
+ browser_click({ ref: "[data-testid='login-btn']", element: "Login button" })
61
+ ```
62
+
63
+ 4. **Avoid .locator** - Only use when absolutely necessary with justification comment
64
+
65
+ **Session Management**:
66
+ - Default: Persistent profile (retains login state)
67
+ - Use `--isolated` flag for fresh sessions
68
+ - Use `--storage-state` for pre-authenticated scenarios
69
+
70
+ **Configuration Options**:
71
+ ```json
72
+ {
73
+ "playwright": {
74
+ "command": "npx",
75
+ "args": [
76
+ "@playwright/mcp@latest",
77
+ "--browser", "chromium", // or firefox, webkit, msedge
78
+ "--headless", // or omit for headed mode
79
+ "--timeout-action", "5000", // ms
80
+ "--timeout-navigation", "60000" // ms
81
+ ]
82
+ }
83
+ }
84
+ ```
85
+
86
+ #### Testing Workflow
87
+
88
+ **Step 1: Navigate**
89
+ ```javascript
90
+ browser_goto({ url: "https://example.com" })
91
+ ```
92
+
93
+ **Step 2: Get Snapshot (for element discovery)**
94
+ ```javascript
95
+ browser_snapshot({ fullPage: true })
96
+ // Returns accessibility tree with element refs
97
+ ```
98
+
99
+ **Step 3: Interact with Elements**
100
+ ```javascript
101
+ // Click button (by role)
102
+ browser_click({
103
+ ref: "button[name='login']",
104
+ element: "Login button"
105
+ })
106
+
107
+ // Fill input (by role)
108
+ browser_fill({
109
+ ref: "input[name='email']",
110
+ text: "user@example.com"
111
+ })
112
+
113
+ // Press Enter
114
+ browser_press({
115
+ ref: "input[name='email']",
116
+ key: "Enter"
117
+ })
118
+ ```
119
+
120
+ **Step 4: Verify Results**
121
+ ```javascript
122
+ // Execute JavaScript to check state
123
+ browser_evaluate({
124
+ code: "document.querySelector('.success-message').textContent"
125
+ })
126
+
127
+ // Get console messages
128
+ browser_console_messages()
129
+ ```
130
+
131
+ **Step 5: Clean Up**
132
+ ```javascript
133
+ browser_close()
134
+ ```
135
+
136
+ ### 2. Browserbase Integration (FALLBACK - Cloud Testing)
137
+
138
+ **⚠️ ONLY USE AS FALLBACK when Playwright MCP unavailable!**
139
+
140
+ Browserbase provides cloud-based browser automation:
141
+
142
+ #### When to Use Browserbase
143
+
144
+ - ✅ CI/CD pipelines without local browsers
145
+ - ✅ Parallel test execution (10x faster)
146
+ - ✅ Cross-browser testing at scale
147
+ - ❌ **NOT for local development** (use Playwright MCP!)
148
+
149
+ #### Available Tools (mcp__plugin_specweave-ui_browserbase__*)
150
+
151
+ - **browserbase_session_create** - Create cloud session
152
+ - **browserbase_session_close** - Close session
153
+ - **browserbase_stagehand_navigate** - Navigate to URL
154
+ - **browserbase_stagehand_act** - Perform action (click, type, etc.)
155
+ - **browserbase_stagehand_extract** - Extract data from page
156
+ - **browserbase_stagehand_observe** - Find elements
157
+ - **browserbase_screenshot** - Capture screenshot
158
+ - **browserbase_stagehand_get_url** - Get current URL
159
+ - **browserbase_stagehand_agent** - Run autonomous task
160
+
161
+ #### Setup Requirements
162
+
163
+ 1. Get API credentials from [Browserbase](https://www.browserbase.com/)
164
+ 2. Set environment variables:
165
+ ```bash
166
+ export BROWSERBASE_API_KEY="bb_xxx"
167
+ export BROWSERBASE_PROJECT_ID="proj_xxx"
168
+ ```
169
+ 3. Configuration is in `.mcp.json`
170
+
171
+ #### Testing Workflow (Browserbase)
172
+
173
+ **Step 1: Create Session**
174
+ ```javascript
175
+ browserbase_session_create()
176
+ ```
177
+
178
+ **Step 2: Navigate**
179
+ ```javascript
180
+ browserbase_stagehand_navigate({ url: "https://example.com" })
181
+ ```
182
+
183
+ **Step 3: Interact**
184
+ ```javascript
185
+ // Click button (natural language)
186
+ browserbase_stagehand_act({
187
+ action: "Click the login button"
188
+ })
189
+
190
+ // Fill form (natural language)
191
+ browserbase_stagehand_act({
192
+ action: "Type 'user@example.com' into the email field"
193
+ })
194
+ ```
195
+
196
+ **Step 4: Extract Data**
197
+ ```javascript
198
+ browserbase_stagehand_extract({
199
+ instruction: "Extract all product names and prices"
200
+ })
201
+ ```
202
+
203
+ **Step 5: Close Session**
204
+ ```javascript
205
+ browserbase_session_close()
206
+ ```
207
+
208
+ ### 3. E2E Test Writing Best Practices
209
+
210
+ #### Test Structure
211
+
212
+ ```typescript
213
+ import { test, expect } from '@playwright/test';
214
+
215
+ test.describe('User Login Flow', () => {
216
+ test('should login successfully with valid credentials', async ({ page }) => {
217
+ // ✅ Use accessibility-first selectors
218
+ await page.goto('https://example.com/login');
219
+
220
+ // ✅ getByRole (PREFERRED)
221
+ await page.getByRole('textbox', { name: 'Email' }).fill('user@example.com');
222
+ await page.getByRole('textbox', { name: 'Password' }).fill('password123');
223
+ await page.getByRole('button', { name: 'Sign In' }).click();
224
+
225
+ // ✅ Verify outcome
226
+ await expect(page.getByText('Welcome back!')).toBeVisible();
227
+ });
228
+
229
+ test('should show error with invalid credentials', async ({ page }) => {
230
+ await page.goto('https://example.com/login');
231
+
232
+ // ✅ getByTestId for stable selectors
233
+ await page.getByTestId('email-input').fill('invalid@example.com');
234
+ await page.getByTestId('password-input').fill('wrong');
235
+ await page.getByTestId('login-button').click();
236
+
237
+ // ✅ Verify error message
238
+ await expect(page.getByText('Invalid credentials')).toBeVisible();
239
+ });
240
+ });
241
+ ```
242
+
243
+ #### Selector Guidelines (Priority Order)
244
+
245
+ 1. **getByRole** - Accessibility-first (BEST)
246
+ - `getByRole('button', { name: 'Submit' })`
247
+ - `getByRole('textbox', { name: 'Email' })`
248
+ - `getByRole('link', { name: 'Home' })`
249
+
250
+ 2. **getByText** - Visible text (GOOD)
251
+ - `getByText('Sign In')`
252
+ - `getByText(/welcome/i)` (regex)
253
+
254
+ 3. **getByTestId** - Test attributes (OK)
255
+ - `getByTestId('login-form')`
256
+ - Requires: `<form data-testid="login-form">`
257
+
258
+ 4. **getByLabel** - Form labels (OK)
259
+ - `getByLabel('Email')`
260
+
261
+ 5. **.locator** - CSS/XPath (AVOID)
262
+ - Only use with clear justification comment
263
+ - Example: `// JUSTIFICATION: Complex table structure requires XPath`
264
+
265
+ #### Test Organization
266
+
267
+ ```typescript
268
+ // ✅ Use .serial for dependent tests
269
+ test.describe.serial('User Journey', () => {
270
+ test('step 1: register', async ({ page }) => {
271
+ // Registration flow
272
+ });
273
+
274
+ test('step 2: verify email', async ({ page }) => {
275
+ // Email verification (depends on step 1)
276
+ });
277
+
278
+ test('step 3: complete profile', async ({ page }) => {
279
+ // Profile completion (depends on step 2)
280
+ });
281
+ });
282
+
283
+ // ✅ Re-use auth state
284
+ test.use({ storageState: 'auth.json' });
285
+
286
+ test('authenticated action', async ({ page }) => {
287
+ // Already logged in via storageState
288
+ await page.goto('https://example.com/dashboard');
289
+ });
290
+ ```
291
+
292
+ ### 4. Common Patterns
293
+
294
+ #### Pattern: Form Submission
295
+ ```javascript
296
+ // Playwright MCP
297
+ browser_goto({ url: "https://example.com/contact" })
298
+ browser_fill({ ref: "input[name='email']", text: "user@example.com" })
299
+ browser_fill({ ref: "textarea[name='message']", text: "Hello!" })
300
+ browser_click({ ref: "button[type='submit']", element: "Submit button" })
301
+
302
+ // Browserbase (fallback)
303
+ browserbase_stagehand_act({ action: "Fill email with user@example.com" })
304
+ browserbase_stagehand_act({ action: "Fill message with Hello!" })
305
+ browserbase_stagehand_act({ action: "Click the Submit button" })
306
+ ```
307
+
308
+ #### Pattern: Data Extraction
309
+ ```javascript
310
+ // Playwright MCP
311
+ browser_snapshot() // Get page structure
312
+ browser_evaluate({
313
+ code: `
314
+ Array.from(document.querySelectorAll('.product')).map(el => ({
315
+ name: el.querySelector('.name').textContent,
316
+ price: el.querySelector('.price').textContent
317
+ }))
318
+ `
319
+ })
320
+
321
+ // Browserbase (fallback)
322
+ browserbase_stagehand_extract({
323
+ instruction: "Extract all product names and prices from the page"
324
+ })
325
+ ```
326
+
327
+ #### Pattern: Screenshot Capture
328
+ ```javascript
329
+ // Playwright MCP
330
+ browser_evaluate({
331
+ code: `
332
+ const canvas = await page.screenshot({ fullPage: true });
333
+ canvas.toDataURL('image/png')
334
+ `
335
+ })
336
+
337
+ // Browserbase (fallback)
338
+ browserbase_screenshot({ name: "page-capture" })
339
+ ```
340
+
341
+ ### 5. Debugging E2E Tests
342
+
343
+ #### Test Output Analysis
344
+
345
+ When tests fail, check `test-output/` for:
346
+ - **Error context** (.md files) - What went wrong
347
+ - **Screenshots** (.png files) - End state visualization
348
+ - **Traces** (.zip files) - Full execution trace
349
+
350
+ #### Common Issues
351
+
352
+ **Issue: Element not found**
353
+ ```javascript
354
+ // ❌ BAD: Fragile selector
355
+ await page.locator('.btn-primary').click()
356
+
357
+ // ✅ GOOD: Accessibility-first
358
+ await page.getByRole('button', { name: 'Submit' }).click()
359
+ ```
360
+
361
+ **Issue: Timing issues**
362
+ ```javascript
363
+ // ❌ BAD: Arbitrary wait
364
+ await page.waitForTimeout(5000)
365
+
366
+ // ✅ GOOD: Wait for specific condition
367
+ await page.waitForSelector('[data-testid="success-message"]')
368
+ await expect(page.getByText('Success')).toBeVisible()
369
+ ```
370
+
371
+ **Issue: Flaky tests**
372
+ ```javascript
373
+ // ✅ Use test-only API endpoints
374
+ await request.post('/api/test/seed', { data: testData })
375
+
376
+ // ✅ Re-use auth storage state
377
+ test.use({ storageState: 'auth.json' })
378
+
379
+ // ✅ Explicit waits
380
+ await page.waitForLoadState('networkidle')
381
+ ```
382
+
383
+ ## Decision Tree: Which Tool to Use?
384
+
385
+ ```
386
+ Are you running locally (dev machine or VM)?
387
+ ├─ YES → Use Playwright MCP (PRIMARY)
388
+ │ ├─ Tools: mcp__plugin_specweave-ui_playwright__*
389
+ │ ├─ Fast, reliable, local execution
390
+ │ └─ No API keys needed
391
+
392
+ └─ NO → Running in CI/CD or need cloud infrastructure?
393
+ └─ YES → Use Browserbase (FALLBACK)
394
+ ├─ Tools: mcp__plugin_specweave-ui_browserbase__*
395
+ ├─ Requires: BROWSERBASE_API_KEY, BROWSERBASE_PROJECT_ID
396
+ └─ Benefits: Parallel execution, no browser install
397
+ ```
398
+
399
+ ## Configuration Files
400
+
401
+ ### .mcp.json (Plugin-Level)
402
+ ```json
403
+ {
404
+ "mcpServers": {
405
+ "playwright": {
406
+ "command": "npx",
407
+ "args": ["@playwright/mcp@latest"],
408
+ "description": "Local Playwright - PRIMARY",
409
+ "optional": false
410
+ },
411
+ "browserbase": {
412
+ "command": "npx",
413
+ "args": ["-y", "@browserbasehq/mcp-server-browserbase"],
414
+ "env": {
415
+ "BROWSERBASE_API_KEY": "${BROWSERBASE_API_KEY}",
416
+ "BROWSERBASE_PROJECT_ID": "${BROWSERBASE_PROJECT_ID}"
417
+ },
418
+ "description": "Cloud Browserbase - FALLBACK",
419
+ "optional": true
420
+ }
421
+ }
422
+ }
423
+ ```
424
+
425
+ ### playwright.config.ts (Project-Level)
426
+ ```typescript
427
+ import { defineConfig } from '@playwright/test';
428
+
429
+ export default defineConfig({
430
+ testDir: './tests/e2e',
431
+ timeout: 30000,
432
+ expect: {
433
+ timeout: 5000
434
+ },
435
+ use: {
436
+ // ✅ Accessibility-first testing
437
+ actionTimeout: 5000,
438
+ navigationTimeout: 60000,
439
+
440
+ // ✅ Screenshots on failure
441
+ screenshot: 'only-on-failure',
442
+
443
+ // ✅ Traces for debugging
444
+ trace: 'retain-on-failure',
445
+ },
446
+ projects: [
447
+ {
448
+ name: 'chromium',
449
+ use: { browserName: 'chromium' }
450
+ },
451
+ {
452
+ name: 'firefox',
453
+ use: { browserName: 'firefox' }
454
+ },
455
+ {
456
+ name: 'webkit',
457
+ use: { browserName: 'webkit' }
458
+ }
459
+ ]
460
+ });
461
+ ```
462
+
463
+ ## Quick Reference
464
+
465
+ ### Playwright MCP Commands
466
+ ```bash
467
+ # Install MCP server
468
+ npx @playwright/mcp@latest
469
+
470
+ # Run with options
471
+ npx @playwright/mcp@latest --browser chromium --headless
472
+
473
+ # Run with config
474
+ npx @playwright/mcp@latest --config playwright-mcp.json
475
+ ```
476
+
477
+ ### Browserbase Setup
478
+ ```bash
479
+ # Get API keys
480
+ # 1. Sign up at https://www.browserbase.com/
481
+ # 2. Create project
482
+ # 3. Get API key and project ID
483
+
484
+ # Set environment
485
+ export BROWSERBASE_API_KEY="bb_xxx"
486
+ export BROWSERBASE_PROJECT_ID="proj_xxx"
487
+
488
+ # Test connection
489
+ npx -y @browserbasehq/mcp-server-browserbase
490
+ ```
491
+
492
+ ## Examples
493
+
494
+ ### Example 1: Login Flow (Playwright MCP)
495
+ ```javascript
496
+ // Step 1: Navigate
497
+ browser_goto({ url: "https://app.example.com/login" })
498
+
499
+ // Step 2: Fill form
500
+ browser_fill({ ref: "input[name='email']", text: "user@example.com" })
501
+ browser_fill({ ref: "input[name='password']", text: "secure123" })
502
+
503
+ // Step 3: Submit
504
+ browser_click({ ref: "button[type='submit']", element: "Login button" })
505
+
506
+ // Step 4: Verify
507
+ browser_evaluate({ code: "document.querySelector('.welcome').textContent" })
508
+ // Returns: "Welcome back, User!"
509
+ ```
510
+
511
+ ### Example 2: E2E Test Generation
512
+ ```typescript
513
+ import { test, expect } from '@playwright/test';
514
+
515
+ test('complete user registration flow', async ({ page }) => {
516
+ // Navigate
517
+ await page.goto('https://app.example.com/signup');
518
+
519
+ // ✅ MUST use getByRole (accessibility-first)
520
+ await page.getByRole('textbox', { name: 'Email' })
521
+ .fill('newuser@example.com');
522
+ await page.getByRole('textbox', { name: 'Password' })
523
+ .fill('secure123');
524
+ await page.getByRole('textbox', { name: 'Confirm Password' })
525
+ .fill('secure123');
526
+
527
+ // ✅ MUST use getByRole for button
528
+ await page.getByRole('button', { name: 'Create Account' }).click();
529
+
530
+ // ✅ Verify success
531
+ await expect(page.getByText('Account created successfully'))
532
+ .toBeVisible();
533
+ });
534
+ ```
535
+
536
+ ### Example 3: Data Extraction (Browserbase Fallback)
537
+ ```javascript
538
+ // Create session
539
+ browserbase_session_create()
540
+
541
+ // Navigate
542
+ browserbase_stagehand_navigate({ url: "https://products.example.com" })
543
+
544
+ // Extract products
545
+ browserbase_stagehand_extract({
546
+ instruction: "Extract all product names, prices, and availability status"
547
+ })
548
+ // Returns: [
549
+ // { name: "Product A", price: "$99", available: true },
550
+ // { name: "Product B", price: "$149", available: false }
551
+ // ]
552
+
553
+ // Close session
554
+ browserbase_session_close()
555
+ ```
556
+
557
+ ## Troubleshooting
558
+
559
+ ### Playwright MCP Issues
560
+
561
+ **Issue: MCP server not found**
562
+ ```bash
563
+ # Install globally
564
+ npm install -g @playwright/mcp
565
+
566
+ # Or use npx (recommended)
567
+ npx @playwright/mcp@latest
568
+ ```
569
+
570
+ **Issue: Browser not installed**
571
+ ```bash
572
+ # Install Playwright browsers
573
+ npx playwright install chromium
574
+ ```
575
+
576
+ **Issue: Timeout errors**
577
+ ```json
578
+ {
579
+ "args": [
580
+ "@playwright/mcp@latest",
581
+ "--timeout-action", "10000",
582
+ "--timeout-navigation", "120000"
583
+ ]
584
+ }
585
+ ```
586
+
587
+ ### Browserbase Issues
588
+
589
+ **Issue: Authentication failed**
590
+ ```bash
591
+ # Check environment variables
592
+ echo $BROWSERBASE_API_KEY
593
+ echo $BROWSERBASE_PROJECT_ID
594
+
595
+ # Re-set if missing
596
+ export BROWSERBASE_API_KEY="bb_xxx"
597
+ export BROWSERBASE_PROJECT_ID="proj_xxx"
598
+ ```
599
+
600
+ **Issue: Session creation timeout**
601
+ - Check Browserbase dashboard for quota limits
602
+ - Verify API key has correct permissions
603
+ - Try reducing parallel session count
604
+
605
+ ## Verification Steps
606
+
607
+ ### Quick Check: Is Playwright MCP Connected?
608
+
609
+ ```bash
610
+ # Check MCP server status
611
+ claude mcp list
612
+
613
+ # Should show:
614
+ # plugin:specweave-ui:playwright - ✓ Connected
615
+ ```
616
+
617
+ ### Test Playwright MCP (5-Second Test)
618
+
619
+ ```javascript
620
+ // 1. Navigate
621
+ mcp__plugin_specweave-ui_playwright__browser_goto({ url: "https://example.com" })
622
+
623
+ // 2. Get title
624
+ mcp__plugin_specweave-ui_playwright__browser_evaluate({ code: "document.title" })
625
+ // Expected: "Example Domain"
626
+
627
+ // 3. Close
628
+ mcp__plugin_specweave-ui_playwright__browser_close()
629
+ ```
630
+
631
+ ✅ **If this works**: Playwright MCP is properly configured!
632
+
633
+ ❌ **If this fails**: See troubleshooting section below.
634
+
635
+ ### Common Setup Issue: Missing `-y` Flag
636
+
637
+ **Problem**: Playwright MCP shows as not connected in `claude mcp list`
638
+
639
+ **Solution**: Check `.mcp.json` has the `-y` flag:
640
+
641
+ ```json
642
+ {
643
+ "playwright": {
644
+ "args": ["-y", "@playwright/mcp@latest"] // ✅ Has -y
645
+ }
646
+ }
647
+ ```
648
+
649
+ Without `-y`, npx waits for user confirmation and MCP connection hangs!
650
+
651
+ **After fixing**: Restart Claude Code for changes to take effect.
652
+
653
+ ## Resources
654
+
655
+ - **Playwright MCP**: https://github.com/microsoft/playwright-mcp
656
+ - **Browserbase**: https://www.browserbase.com/docs
657
+ - **Playwright Docs**: https://playwright.dev/
658
+ - **E2E Best Practices**: https://playwright.dev/docs/best-practices
659
+ - **Verification Guide**: See `.specweave/increments/0029-cicd-failure-detection-auto-fix/reports/MCP-PLAYWRIGHT-VERIFICATION-GUIDE.md`
660
+
661
+ ---
662
+
663
+ **Remember**: ALWAYS try Playwright MCP first! Only use Browserbase as fallback for cloud/CI scenarios.