valent-pipeline 0.19.61 → 0.19.62
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/package.json +1 -1
- package/pipeline/prompts/pmcp.md +19 -1
package/package.json
CHANGED
package/pipeline/prompts/pmcp.md
CHANGED
|
@@ -63,7 +63,25 @@ Follow the on-missing-MCP behavior the orchestrator passed in your trigger:
|
|
|
63
63
|
`mcpAvailable: false`, and return — the story proceeds without visual evidence.
|
|
64
64
|
|
|
65
65
|
### Step 3: Execute checkpoints (MCP available)
|
|
66
|
-
Start the dev server.
|
|
66
|
+
Start the dev server.
|
|
67
|
+
|
|
68
|
+
**Pre-flight — assert an INTEGER `devicePixelRatio` before driving any interaction.** Once the server
|
|
69
|
+
is up and you have navigated to the app, evaluate `window.devicePixelRatio`. If it is NOT an integer
|
|
70
|
+
(commonly `1.5` when the host display runs Windows/macOS scaling at 150%), the browser's
|
|
71
|
+
coordinate-based `click()`/`fill()` land OFF-TARGET: Playwright reports the click succeeded but the
|
|
72
|
+
app's `onClick`/`onInput` handlers never fire, so you can screenshot STATIC renders yet can NEVER
|
|
73
|
+
drive an interaction or a multi-step / WS flow. **Do NOT misread this as "the browser MCP cannot drive
|
|
74
|
+
WS events," and do NOT FAIL or `na` the interaction checkpoints** — it is an infrastructure config
|
|
75
|
+
bug, not an app or reachability defect (the e2e test runner pins the scale factor, which is why an
|
|
76
|
+
acceptance e2e can drive the same flow the MCP cannot). STOP and record an **infrastructure blocker**
|
|
77
|
+
in `pmcp-evidence.md` (`verdict: fail`, `mcpAvailable: true`) naming the cause and the fix: the
|
|
78
|
+
browser MCP must launch with **`deviceScaleFactor: 1`** (passing a fixed `--viewport-size` defaults
|
|
79
|
+
the scale factor to 1), a project `.mcp.json` / browser-MCP-config change that needs an MCP/session
|
|
80
|
+
**RESTART** to take effect. Static render-only checkpoints may still be captured; mark every
|
|
81
|
+
interaction-dependent checkpoint blocked-by-DPR, not FAIL. A non-integer DPR is the single most common
|
|
82
|
+
cause of "PMCP can render but can't drive."
|
|
83
|
+
|
|
84
|
+
For each checkpoint: navigate to its route, establish the required state (seed
|
|
67
85
|
data, auth, form values), wait for the expected state using element/network conditions — **never hard
|
|
68
86
|
waits** — capture a screenshot into `{story_output_dir}` using the checklist's filename convention,
|
|
69
87
|
and evaluate it against the pass criteria. Record PASS or FAIL per checkpoint. Stop the server when done.
|