@rune-kit/rune 2.10.0 → 2.12.0

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.
Files changed (240) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -6
  3. package/commands/rune.md +168 -168
  4. package/compiler/__tests__/detect-invariants.test.js +136 -0
  5. package/compiler/__tests__/doctor-mesh.test.js +229 -0
  6. package/compiler/__tests__/hook-dispatch.test.js +91 -0
  7. package/compiler/__tests__/hooks-antigravity.test.js +118 -0
  8. package/compiler/__tests__/hooks-cursor.test.js +139 -0
  9. package/compiler/__tests__/hooks-install.test.js +305 -0
  10. package/compiler/__tests__/hooks-merge.test.js +204 -0
  11. package/compiler/__tests__/hooks-tiers.test.js +519 -0
  12. package/compiler/__tests__/hooks-windsurf.test.js +115 -0
  13. package/compiler/__tests__/inject-claude-md.test.js +152 -0
  14. package/compiler/__tests__/load-invariants.test.js +408 -0
  15. package/compiler/__tests__/onboard-invariants.test.js +240 -0
  16. package/compiler/adapters/hooks/antigravity.js +140 -0
  17. package/compiler/adapters/hooks/claude.js +166 -0
  18. package/compiler/adapters/hooks/cursor.js +191 -0
  19. package/compiler/adapters/hooks/index.js +82 -0
  20. package/compiler/adapters/hooks/tier-emitter.js +182 -0
  21. package/compiler/adapters/hooks/windsurf.js +202 -0
  22. package/compiler/bin/rune.js +196 -6
  23. package/compiler/commands/hook-dispatch.js +87 -0
  24. package/compiler/commands/hooks/install.js +120 -0
  25. package/compiler/commands/hooks/merge.js +211 -0
  26. package/compiler/commands/hooks/presets.js +116 -0
  27. package/compiler/commands/hooks/status.js +112 -0
  28. package/compiler/commands/hooks/tiers.js +221 -0
  29. package/compiler/commands/hooks/uninstall.js +94 -0
  30. package/compiler/doctor.js +236 -0
  31. package/contexts/dev.md +34 -34
  32. package/contexts/research.md +43 -43
  33. package/contexts/review.md +55 -55
  34. package/extensions/ai-ml/PACK.md +88 -88
  35. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  36. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  37. package/extensions/ai-ml/skills/deep-research.md +146 -146
  38. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  39. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  40. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  41. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  42. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  43. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  44. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  45. package/extensions/analytics/PACK.md +92 -92
  46. package/extensions/analytics/skills/ab-testing.md +72 -72
  47. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  48. package/extensions/analytics/skills/data-validation.md +68 -68
  49. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  50. package/extensions/analytics/skills/sql-patterns.md +57 -57
  51. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  52. package/extensions/analytics/skills/tracking-setup.md +71 -71
  53. package/extensions/backend/PACK.md +104 -104
  54. package/extensions/backend/skills/api-patterns.md +84 -84
  55. package/extensions/backend/skills/async-pipeline.md +193 -193
  56. package/extensions/backend/skills/auth-patterns.md +97 -97
  57. package/extensions/backend/skills/background-jobs.md +133 -133
  58. package/extensions/backend/skills/caching-patterns.md +108 -108
  59. package/extensions/backend/skills/cli-generation.md +133 -133
  60. package/extensions/backend/skills/database-patterns.md +87 -87
  61. package/extensions/backend/skills/middleware-patterns.md +104 -104
  62. package/extensions/chrome-ext/PACK.md +93 -93
  63. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  64. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  65. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  66. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  67. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  68. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  69. package/extensions/content/PACK.md +96 -96
  70. package/extensions/content/skills/blog-patterns.md +88 -88
  71. package/extensions/content/skills/cms-integration.md +131 -131
  72. package/extensions/content/skills/content-scoring.md +107 -107
  73. package/extensions/content/skills/i18n.md +83 -83
  74. package/extensions/content/skills/mdx-authoring.md +137 -137
  75. package/extensions/content/skills/reference.md +1014 -1014
  76. package/extensions/content/skills/seo-patterns.md +67 -67
  77. package/extensions/content/skills/video-repurpose.md +153 -153
  78. package/extensions/devops/PACK.md +101 -101
  79. package/extensions/devops/skills/chaos-testing.md +67 -67
  80. package/extensions/devops/skills/ci-cd.md +75 -75
  81. package/extensions/devops/skills/docker.md +58 -58
  82. package/extensions/devops/skills/edge-serverless.md +163 -163
  83. package/extensions/devops/skills/infra-as-code.md +158 -158
  84. package/extensions/devops/skills/kubernetes.md +110 -110
  85. package/extensions/devops/skills/monitoring.md +57 -57
  86. package/extensions/devops/skills/server-setup.md +64 -64
  87. package/extensions/devops/skills/ssl-domain.md +42 -42
  88. package/extensions/ecommerce/PACK.md +116 -116
  89. package/extensions/ecommerce/skills/cart-system.md +79 -79
  90. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  91. package/extensions/ecommerce/skills/order-management.md +126 -126
  92. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  93. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  94. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  95. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  96. package/extensions/gamedev/PACK.md +142 -142
  97. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  98. package/extensions/gamedev/skills/audio-system.md +129 -129
  99. package/extensions/gamedev/skills/camera-system.md +87 -87
  100. package/extensions/gamedev/skills/ecs.md +98 -98
  101. package/extensions/gamedev/skills/game-loops.md +72 -72
  102. package/extensions/gamedev/skills/input-system.md +199 -199
  103. package/extensions/gamedev/skills/multiplayer.md +180 -180
  104. package/extensions/gamedev/skills/particles.md +105 -105
  105. package/extensions/gamedev/skills/physics-engine.md +89 -89
  106. package/extensions/gamedev/skills/scene-management.md +146 -146
  107. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  108. package/extensions/gamedev/skills/webgl.md +71 -71
  109. package/extensions/mobile/PACK.md +106 -106
  110. package/extensions/mobile/skills/app-store-connect.md +152 -152
  111. package/extensions/mobile/skills/app-store-prep.md +66 -66
  112. package/extensions/mobile/skills/deep-linking.md +109 -109
  113. package/extensions/mobile/skills/flutter.md +60 -60
  114. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  115. package/extensions/mobile/skills/native-bridge.md +66 -66
  116. package/extensions/mobile/skills/ota-updates.md +97 -97
  117. package/extensions/mobile/skills/push-notifications.md +111 -111
  118. package/extensions/mobile/skills/react-native.md +82 -82
  119. package/extensions/saas/PACK.md +116 -116
  120. package/extensions/saas/skills/billing-integration.md +200 -200
  121. package/extensions/saas/skills/feature-flags.md +130 -130
  122. package/extensions/saas/skills/multi-tenant.md +103 -103
  123. package/extensions/saas/skills/onboarding-flow.md +139 -139
  124. package/extensions/saas/skills/subscription-flow.md +95 -95
  125. package/extensions/saas/skills/team-management.md +144 -144
  126. package/extensions/security/PACK.md +99 -99
  127. package/extensions/security/skills/api-security.md +140 -140
  128. package/extensions/security/skills/compliance.md +68 -68
  129. package/extensions/security/skills/owasp-audit.md +64 -64
  130. package/extensions/security/skills/pentest-patterns.md +77 -77
  131. package/extensions/security/skills/secret-mgmt.md +65 -65
  132. package/extensions/security/skills/supply-chain.md +65 -65
  133. package/extensions/trading/PACK.md +80 -80
  134. package/extensions/trading/skills/chart-components.md +55 -55
  135. package/extensions/trading/skills/experiment-loop.md +125 -125
  136. package/extensions/trading/skills/fintech-patterns.md +47 -47
  137. package/extensions/trading/skills/indicator-library.md +58 -58
  138. package/extensions/trading/skills/quant-analysis.md +111 -111
  139. package/extensions/trading/skills/realtime-data.md +58 -58
  140. package/extensions/trading/skills/trade-logic.md +104 -104
  141. package/extensions/ui/PACK.md +130 -130
  142. package/extensions/ui/skills/a11y-audit.md +91 -91
  143. package/extensions/ui/skills/animation-patterns.md +127 -127
  144. package/extensions/ui/skills/component-patterns.md +100 -100
  145. package/extensions/ui/skills/design-decision.md +108 -108
  146. package/extensions/ui/skills/design-system.md +68 -68
  147. package/extensions/ui/skills/landing-patterns.md +155 -155
  148. package/extensions/ui/skills/palette-picker.md +173 -173
  149. package/extensions/ui/skills/react-health.md +90 -90
  150. package/extensions/ui/skills/type-system.md +125 -125
  151. package/extensions/ui/skills/web-vitals.md +153 -153
  152. package/extensions/zalo/PACK.md +145 -145
  153. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  154. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  155. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  156. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  157. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  158. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  159. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  160. package/hooks/auto-format/index.cjs +48 -48
  161. package/hooks/hooks.json +111 -111
  162. package/hooks/post-session-reflect/index.cjs +189 -189
  163. package/hooks/pre-compact/index.cjs +95 -95
  164. package/hooks/run-hook.cmd +1 -1
  165. package/hooks/secrets-scan/index.cjs +100 -100
  166. package/hooks/session-start/index.cjs +71 -71
  167. package/hooks/typecheck/index.cjs +65 -65
  168. package/package.json +63 -63
  169. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  170. package/references/ui-pro-max-data/charts.csv +26 -26
  171. package/references/ui-pro-max-data/colors.csv +161 -161
  172. package/references/ui-pro-max-data/styles.csv +68 -68
  173. package/references/ui-pro-max-data/typography.csv +74 -74
  174. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  175. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  176. package/skills/adversary/SKILL.md +283 -283
  177. package/skills/asset-creator/SKILL.md +157 -157
  178. package/skills/audit/SKILL.md +147 -2
  179. package/skills/autopsy/SKILL.md +335 -335
  180. package/skills/ba/SKILL.md +85 -1
  181. package/skills/brainstorm/SKILL.md +380 -342
  182. package/skills/browser-pilot/SKILL.md +169 -168
  183. package/skills/constraint-check/SKILL.md +165 -165
  184. package/skills/context-engine/SKILL.md +408 -404
  185. package/skills/cook/SKILL.md +917 -863
  186. package/skills/db/SKILL.md +273 -273
  187. package/skills/debug/SKILL.md +465 -465
  188. package/skills/dependency-doctor/SKILL.md +265 -235
  189. package/skills/deploy/SKILL.md +274 -231
  190. package/skills/design/DESIGN-REFERENCE.md +365 -365
  191. package/skills/design/SKILL.md +590 -589
  192. package/skills/doc-processor/SKILL.md +254 -254
  193. package/skills/docs/SKILL.md +374 -374
  194. package/skills/docs-seeker/SKILL.md +178 -177
  195. package/skills/fix/SKILL.md +332 -330
  196. package/skills/git/SKILL.md +339 -339
  197. package/skills/hallucination-guard/SKILL.md +220 -219
  198. package/skills/incident/SKILL.md +254 -253
  199. package/skills/integrity-check/SKILL.md +169 -169
  200. package/skills/journal/SKILL.md +241 -240
  201. package/skills/launch/SKILL.md +344 -344
  202. package/skills/logic-guardian/SKILL.md +269 -251
  203. package/skills/marketing/SKILL.md +351 -289
  204. package/skills/mcp-builder/SKILL.md +425 -425
  205. package/skills/neural-memory/SKILL.md +359 -362
  206. package/skills/onboard/SKILL.md +432 -403
  207. package/skills/onboard/references/invariants-template.md +76 -0
  208. package/skills/onboard/scripts/detect-invariants.js +439 -0
  209. package/skills/onboard/scripts/inject-claude-md.js +150 -0
  210. package/skills/onboard/scripts/onboard-invariants.js +194 -0
  211. package/skills/perf/SKILL.md +347 -346
  212. package/skills/plan/SKILL.md +435 -428
  213. package/skills/preflight/SKILL.md +415 -415
  214. package/skills/problem-solver/SKILL.md +380 -284
  215. package/skills/rescue/SKILL.md +474 -474
  216. package/skills/research/SKILL.md +4 -0
  217. package/skills/retro/SKILL.md +3 -1
  218. package/skills/review/SKILL.md +614 -588
  219. package/skills/review-intake/SKILL.md +249 -249
  220. package/skills/safeguard/SKILL.md +200 -200
  221. package/skills/sast/SKILL.md +190 -190
  222. package/skills/scaffold/SKILL.md +328 -287
  223. package/skills/scope-guard/SKILL.md +183 -180
  224. package/skills/scout/SKILL.md +269 -263
  225. package/skills/sentinel/SKILL.md +384 -381
  226. package/skills/sentinel-env/SKILL.md +254 -254
  227. package/skills/sequential-thinking/SKILL.md +234 -234
  228. package/skills/session-bridge/SKILL.md +595 -543
  229. package/skills/session-bridge/scripts/load-invariants.js +397 -0
  230. package/skills/skill-forge/SKILL.md +581 -581
  231. package/skills/skill-router/SKILL.md +3 -0
  232. package/skills/slides/SKILL.md +19 -0
  233. package/skills/surgeon/SKILL.md +215 -215
  234. package/skills/team/SKILL.md +557 -537
  235. package/skills/test/SKILL.md +620 -614
  236. package/skills/trend-scout/SKILL.md +145 -145
  237. package/skills/verification/SKILL.md +334 -326
  238. package/skills/video-creator/SKILL.md +201 -201
  239. package/skills/watchdog/SKILL.md +168 -168
  240. package/skills/worktree/SKILL.md +140 -140
@@ -1,168 +1,169 @@
1
- ---
2
- name: browser-pilot
3
- description: Playwright browser automation. Navigates URLs, takes screenshots, checks accessibility tree, interacts with UI elements, and reports findings.
4
- metadata:
5
- author: runedev
6
- version: "0.2.0"
7
- layer: L3
8
- model: sonnet
9
- group: media
10
- tools: "Read, Bash, Glob, Grep"
11
- ---
12
-
13
- # browser-pilot
14
-
15
- ## Purpose
16
-
17
- Browser automation for testing and verification using MCP Playwright tools. Navigates to URLs, captures accessibility snapshots and screenshots, interacts with UI elements (click, type, fill form), and reports findings with visual evidence.
18
-
19
- ## Called By (inbound)
20
-
21
- - `test` (L2): e2e and visual testing
22
- - `deploy` (L2): verify live deployment
23
- - `debug` (L2): capture browser console errors
24
- - `marketing` (L2): screenshot for assets
25
- - `launch` (L1): verify live site after deployment
26
- - `perf` (L2): Lighthouse / Core Web Vitals measurement
27
-
28
- ## Calls (outbound)
29
-
30
- None — pure L3 utility using Playwright MCP tools.
31
-
32
- ## Executable Instructions
33
-
34
- ### Step 1: Receive Task
35
-
36
- Accept input from calling skill:
37
- - `url` target URL to open
38
- - `task` — what to do: `screenshot` | `check_elements` | `fill_form` | `test_flow` | `console_errors`
39
- - `interactions` — optional list of actions (click X, type Y into Z, etc.)
40
-
41
- ### Step 2: Navigate
42
-
43
- Open the target URL using the Playwright MCP navigate tool:
44
-
45
- ```
46
- mcp__plugin_playwright_playwright__browser_navigate({ url: "<url>" })
47
- ```
48
-
49
- Wait for the page to load. If navigation fails (timeout or error), report UNREACHABLE and stop.
50
-
51
- ### Step 3: Snapshot
52
-
53
- Capture the accessibility tree to understand page structure:
54
-
55
- ```
56
- mcp__plugin_playwright_playwright__browser_snapshot()
57
- ```
58
-
59
- Use the snapshot to:
60
- - Identify interactive elements (buttons, inputs, links)
61
- - Find specific elements referenced in the task
62
- - Detect accessibility issues (missing labels, roles)
63
-
64
- ### Step 4: Interact
65
-
66
- Based on the task, perform interactions using Playwright MCP tools:
67
-
68
- - **Click**: `mcp__plugin_playwright_playwright__browser_click({ ref: "<ref>", element: "<description>" })`
69
- - **Type**: `mcp__plugin_playwright_playwright__browser_type({ ref: "<ref>", text: "<value>" })`
70
- - **Fill form**: `mcp__plugin_playwright_playwright__browser_fill_form({ fields: [...] })`
71
- - **Navigate back**: `mcp__plugin_playwright_playwright__browser_navigate_back()`
72
- - **Select option**: `mcp__plugin_playwright_playwright__browser_select_option({ ref: "<ref>", values: [...] })`
73
-
74
- Limit: max 20 interactions per session. If the task requires more, stop and report partial results.
75
-
76
- After each interaction, take a new snapshot to verify the result before proceeding.
77
-
78
- ### Step 5: Screenshot
79
-
80
- Capture visual evidence:
81
-
82
- ```
83
- mcp__plugin_playwright_playwright__browser_take_screenshot({ type: "png" })
84
- ```
85
-
86
- For full-page capture (landing pages, long content):
87
-
88
- ```
89
- mcp__plugin_playwright_playwright__browser_take_screenshot({ type: "png", fullPage: true })
90
- ```
91
-
92
- Save with a descriptive filename if the `filename` param is supported.
93
-
94
- ### Step 6: Report
95
-
96
- Compile findings into a structured report:
97
-
98
- ```
99
- ## Browser Report: [url]
100
-
101
- - **Task**: [task description]
102
- - **Status**: SUCCESS | PARTIAL | FAILED
103
-
104
- ### Page Info
105
- - HTTP Status: [status]
106
- - Load outcome: [loaded | timeout | error]
107
-
108
- ### Accessibility Findings
109
- - [finding from snapshot — missing labels, broken roles, etc.]
110
-
111
- ### Interaction Log
112
- - [action taken] → [result: success | element not found | error]
113
-
114
- ### Console Errors
115
- - [error message — source]
116
-
117
- ### Screenshots
118
- - [screenshot path or description]
119
-
120
- ### Summary
121
- - [overall assessment — what works, what failed, any critical issues]
122
- ```
123
-
124
- ### Step 7: Close
125
-
126
- Always close the browser when done:
127
-
128
- ```
129
- mcp__plugin_playwright_playwright__browser_close()
130
- ```
131
-
132
- This step is mandatory even if earlier steps fail. Use a try-finally pattern in your reasoning.
133
-
134
- ## Output Format
135
-
136
- Structured Browser Report with task status, page info, accessibility findings, interaction log, console errors, screenshots, and summary. See Step 6 Report above for full template.
137
-
138
- ## Constraints
139
-
140
- 1. MUST close browser when done — Step 7 is non-optional even if earlier steps fail
141
- 2. MUST NOT exceed 20 interactions per session
142
- 3. MUST NOT store credentials or sensitive data in interaction logs
143
- 4. MUST take screenshot evidence before reporting visual findings
144
-
145
- ## Sharp Edges
146
-
147
- Known failure modes for this skill. Check these before declaring done.
148
-
149
- | Failure Mode | Severity | Mitigation |
150
- |---|---|---|
151
- | Not closing browser when done (including on error) | CRITICAL | Constraint 1: Step 7 browser_close() is mandatory — treat as try-finally |
152
- | Storing credentials or tokens in interaction logs | HIGH | Constraint 3: redact all sensitive values before logging |
153
- | Exceeding 20 interactions without stopping and reporting partial | MEDIUM | Constraint 2: stop at 20, report what was tested and what remains |
154
- | Reporting visual findings without screenshot evidence | MEDIUM | Constraint 4: screenshot before reporting "looks broken" without screenshot is invalid |
155
-
156
- ## Done When
157
-
158
- - URL navigated successfully (or UNREACHABLE reported)
159
- - Page snapshot captured for accessibility context
160
- - All requested interactions completed (or partial with reason if >20)
161
- - Screenshot taken as visual evidence
162
- - Console errors captured if task requested them
163
- - Browser closed (Step 7 executed)
164
- - Browser Report emitted with status, findings, and screenshot reference
165
-
166
- ## Cost Profile
167
-
168
- ~500-1500 tokens input, ~300-800 tokens output. Sonnet for interaction logic.
1
+ ---
2
+ name: browser-pilot
3
+ description: Playwright browser automation. Navigates URLs, takes screenshots, checks accessibility tree, interacts with UI elements, and reports findings.
4
+ metadata:
5
+ author: runedev
6
+ version: "0.2.0"
7
+ layer: L3
8
+ model: sonnet
9
+ group: media
10
+ tools: "Read, Bash, Glob, Grep"
11
+ ---
12
+
13
+ # browser-pilot
14
+
15
+ ## Purpose
16
+
17
+ Browser automation for testing and verification using MCP Playwright tools. Navigates to URLs, captures accessibility snapshots and screenshots, interacts with UI elements (click, type, fill form), and reports findings with visual evidence.
18
+
19
+ ## Called By (inbound)
20
+
21
+ - `test` (L2): e2e and visual testing
22
+ - `deploy` (L2): verify live deployment
23
+ - `debug` (L2): capture browser console errors
24
+ - `marketing` (L2): screenshot for assets
25
+ - `launch` (L1): verify live site after deployment
26
+ - `perf` (L2): Lighthouse / Core Web Vitals measurement
27
+ - `audit` (L2): visual verification during quality assessment
28
+
29
+ ## Calls (outbound)
30
+
31
+ None — pure L3 utility using Playwright MCP tools.
32
+
33
+ ## Executable Instructions
34
+
35
+ ### Step 1: Receive Task
36
+
37
+ Accept input from calling skill:
38
+ - `url` — target URL to open
39
+ - `task` — what to do: `screenshot` | `check_elements` | `fill_form` | `test_flow` | `console_errors`
40
+ - `interactions` — optional list of actions (click X, type Y into Z, etc.)
41
+
42
+ ### Step 2: Navigate
43
+
44
+ Open the target URL using the Playwright MCP navigate tool:
45
+
46
+ ```
47
+ mcp__plugin_playwright_playwright__browser_navigate({ url: "<url>" })
48
+ ```
49
+
50
+ Wait for the page to load. If navigation fails (timeout or error), report UNREACHABLE and stop.
51
+
52
+ ### Step 3: Snapshot
53
+
54
+ Capture the accessibility tree to understand page structure:
55
+
56
+ ```
57
+ mcp__plugin_playwright_playwright__browser_snapshot()
58
+ ```
59
+
60
+ Use the snapshot to:
61
+ - Identify interactive elements (buttons, inputs, links)
62
+ - Find specific elements referenced in the task
63
+ - Detect accessibility issues (missing labels, roles)
64
+
65
+ ### Step 4: Interact
66
+
67
+ Based on the task, perform interactions using Playwright MCP tools:
68
+
69
+ - **Click**: `mcp__plugin_playwright_playwright__browser_click({ ref: "<ref>", element: "<description>" })`
70
+ - **Type**: `mcp__plugin_playwright_playwright__browser_type({ ref: "<ref>", text: "<value>" })`
71
+ - **Fill form**: `mcp__plugin_playwright_playwright__browser_fill_form({ fields: [...] })`
72
+ - **Navigate back**: `mcp__plugin_playwright_playwright__browser_navigate_back()`
73
+ - **Select option**: `mcp__plugin_playwright_playwright__browser_select_option({ ref: "<ref>", values: [...] })`
74
+
75
+ Limit: max 20 interactions per session. If the task requires more, stop and report partial results.
76
+
77
+ After each interaction, take a new snapshot to verify the result before proceeding.
78
+
79
+ ### Step 5: Screenshot
80
+
81
+ Capture visual evidence:
82
+
83
+ ```
84
+ mcp__plugin_playwright_playwright__browser_take_screenshot({ type: "png" })
85
+ ```
86
+
87
+ For full-page capture (landing pages, long content):
88
+
89
+ ```
90
+ mcp__plugin_playwright_playwright__browser_take_screenshot({ type: "png", fullPage: true })
91
+ ```
92
+
93
+ Save with a descriptive filename if the `filename` param is supported.
94
+
95
+ ### Step 6: Report
96
+
97
+ Compile findings into a structured report:
98
+
99
+ ```
100
+ ## Browser Report: [url]
101
+
102
+ - **Task**: [task description]
103
+ - **Status**: SUCCESS | PARTIAL | FAILED
104
+
105
+ ### Page Info
106
+ - HTTP Status: [status]
107
+ - Load outcome: [loaded | timeout | error]
108
+
109
+ ### Accessibility Findings
110
+ - [finding from snapshot — missing labels, broken roles, etc.]
111
+
112
+ ### Interaction Log
113
+ - [action taken] → [result: success | element not found | error]
114
+
115
+ ### Console Errors
116
+ - [error message — source]
117
+
118
+ ### Screenshots
119
+ - [screenshot path or description]
120
+
121
+ ### Summary
122
+ - [overall assessment — what works, what failed, any critical issues]
123
+ ```
124
+
125
+ ### Step 7: Close
126
+
127
+ Always close the browser when done:
128
+
129
+ ```
130
+ mcp__plugin_playwright_playwright__browser_close()
131
+ ```
132
+
133
+ This step is mandatory even if earlier steps fail. Use a try-finally pattern in your reasoning.
134
+
135
+ ## Output Format
136
+
137
+ Structured Browser Report with task status, page info, accessibility findings, interaction log, console errors, screenshots, and summary. See Step 6 Report above for full template.
138
+
139
+ ## Constraints
140
+
141
+ 1. MUST close browser when done Step 7 is non-optional even if earlier steps fail
142
+ 2. MUST NOT exceed 20 interactions per session
143
+ 3. MUST NOT store credentials or sensitive data in interaction logs
144
+ 4. MUST take screenshot evidence before reporting visual findings
145
+
146
+ ## Sharp Edges
147
+
148
+ Known failure modes for this skill. Check these before declaring done.
149
+
150
+ | Failure Mode | Severity | Mitigation |
151
+ |---|---|---|
152
+ | Not closing browser when done (including on error) | CRITICAL | Constraint 1: Step 7 browser_close() is mandatory treat as try-finally |
153
+ | Storing credentials or tokens in interaction logs | HIGH | Constraint 3: redact all sensitive values before logging |
154
+ | Exceeding 20 interactions without stopping and reporting partial | MEDIUM | Constraint 2: stop at 20, report what was tested and what remains |
155
+ | Reporting visual findings without screenshot evidence | MEDIUM | Constraint 4: screenshot before reporting — "looks broken" without screenshot is invalid |
156
+
157
+ ## Done When
158
+
159
+ - URL navigated successfully (or UNREACHABLE reported)
160
+ - Page snapshot captured for accessibility context
161
+ - All requested interactions completed (or partial with reason if >20)
162
+ - Screenshot taken as visual evidence
163
+ - Console errors captured if task requested them
164
+ - Browser closed (Step 7 executed)
165
+ - Browser Report emitted with status, findings, and screenshot reference
166
+
167
+ ## Cost Profile
168
+
169
+ ~500-1500 tokens input, ~300-800 tokens output. Sonnet for interaction logic.