@weavetab/skills 2.5.0 → 2.5.2
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/LICENSE +1 -1
- package/README.md +108 -108
- package/ROUTER.md +43 -43
- package/bin/cli.js +232 -232
- package/browser/dom-strategy.md +121 -119
- package/browser/form-automation.md +84 -87
- package/browser/interaction-pipeline.md +242 -216
- package/browser/tab-and-window.md +136 -136
- package/desktop/desktop-targeting.md +85 -85
- package/desktop/electron-discovery.md +115 -115
- package/developer/github-forensics.md +89 -74
- package/dist/bundled/weavetab-all.md +1885 -1709
- package/dist/bundled/weavetab-browser.md +526 -501
- package/dist/bundled/weavetab-desktop.md +176 -176
- package/dist/bundled/weavetab-developer.md +84 -67
- package/dist/bundled/weavetab-documents.md +184 -142
- package/dist/bundled/weavetab-memory.md +259 -233
- package/dist/bundled/weavetab-network-and-perf.md +250 -223
- package/dist/bundled/weavetab-plugins.md +88 -83
- package/dist/bundled/weavetab-resilience.md +244 -216
- package/dist/bundled/weavetab-security.md +93 -87
- package/dist/granular/browser_dom-strategy.md +121 -119
- package/dist/granular/browser_form-automation.md +84 -87
- package/dist/granular/browser_interaction-pipeline.md +242 -216
- package/dist/granular/browser_tab-and-window.md +136 -136
- package/dist/granular/desktop_desktop-targeting.md +85 -85
- package/dist/granular/desktop_electron-discovery.md +115 -115
- package/dist/granular/developer_github-forensics.md +89 -74
- package/dist/granular/documents_canvas-and-visual-capture.md +117 -103
- package/dist/granular/documents_office-document-ingestion.md +91 -63
- package/dist/granular/memory_selector-memory-system.md +127 -127
- package/dist/granular/memory_session-trail.md +111 -95
- package/dist/granular/memory_site-learning.md +62 -53
- package/dist/granular/network-and-perf_device-and-environment.md +100 -87
- package/dist/granular/network-and-perf_network-intercept-and-mock.md +97 -84
- package/dist/granular/network-and-perf_performance-and-vitals.md +86 -84
- package/dist/granular/plugins_hooks-and-overrides.md +40 -35
- package/dist/granular/plugins_plugin-runtime.md +63 -63
- package/dist/granular/resilience_loop-breaker.md +72 -67
- package/dist/granular/resilience_session-time-travel.md +146 -131
- package/dist/granular/resilience_stale-ref-recovery.md +61 -53
- package/dist/granular/security_rbac-and-policies.md +50 -47
- package/dist/granular/security_secret-containment-protocol.md +62 -59
- package/documents/canvas-and-visual-capture.md +117 -103
- package/documents/office-document-ingestion.md +91 -63
- package/evals/evaluator.js +146 -146
- package/evals/scenarios.json +239 -239
- package/memory/selector-memory-system.md +127 -127
- package/memory/session-trail.md +111 -95
- package/memory/site-learning.md +61 -52
- package/network-and-perf/device-and-environment.md +100 -87
- package/network-and-perf/network-intercept-and-mock.md +97 -84
- package/network-and-perf/performance-and-vitals.md +86 -84
- package/package.json +74 -73
- package/plugins/hooks-and-overrides.md +40 -35
- package/plugins/plugin-runtime.md +63 -63
- package/resilience/loop-breaker.md +72 -67
- package/resilience/session-time-travel.md +146 -131
- package/resilience/stale-ref-recovery.md +61 -53
- package/security/rbac-and-policies.md +50 -47
- package/security/secret-containment-protocol.md +62 -59
- package/skills.json +425 -426
- package/src/api.js +239 -239
package/evals/scenarios.json
CHANGED
|
@@ -1,239 +1,239 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "2.5.
|
|
3
|
-
"scenarios": [
|
|
4
|
-
{
|
|
5
|
-
"id": "spa_stale_ref_recovery",
|
|
6
|
-
"description": "Agent encounters detached DOM node during Next.js hydration",
|
|
7
|
-
"intent": "Button ref w:14 became detached after client-side state update",
|
|
8
|
-
"expectedDomain": "resilience",
|
|
9
|
-
"expectedGuide": "stale-ref-recovery.md",
|
|
10
|
-
"expectedTools": [
|
|
11
|
-
"browser_find",
|
|
12
|
-
"browser_map"
|
|
13
|
-
],
|
|
14
|
-
"bannedTools": [
|
|
15
|
-
"scrape_page",
|
|
16
|
-
"browser_evaluate"
|
|
17
|
-
],
|
|
18
|
-
"assertion": "Must rely on
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "secret_containment_verification",
|
|
22
|
-
"description": "Agent enters user master password or OAuth secret",
|
|
23
|
-
"intent": "Enter user account password and security pin on auth page",
|
|
24
|
-
"expectedDomain": "security",
|
|
25
|
-
"expectedGuide": "secret-containment-protocol.md",
|
|
26
|
-
"expectedTools": [
|
|
27
|
-
"browser_type_secret"
|
|
28
|
-
],
|
|
29
|
-
"bannedTools": [
|
|
30
|
-
"scrape_page",
|
|
31
|
-
"browser_evaluate",
|
|
32
|
-
"browser_ask"
|
|
33
|
-
],
|
|
34
|
-
"assertion": "Must strictly use browser_type_secret to guarantee zero-bleed in logs and transcripts"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"id": "electron_app_switch",
|
|
38
|
-
"description": "Agent detects and sends message inside Slack desktop client",
|
|
39
|
-
"intent": "Find running Slack desktop app and post deployment confirmation",
|
|
40
|
-
"expectedDomain": "desktop",
|
|
41
|
-
"expectedGuide": "desktop-targeting.md",
|
|
42
|
-
"expectedTools": [
|
|
43
|
-
"browser_detect",
|
|
44
|
-
"browser_type"
|
|
45
|
-
],
|
|
46
|
-
"bannedTools": [
|
|
47
|
-
"click_element"
|
|
48
|
-
],
|
|
49
|
-
"assertion": "Must discover running Electron app and pass app: 'slack' parameter"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": "checkpoint_rollback_on_error",
|
|
53
|
-
"description": "Agent snapshots session before checkout and rolls back after card decline",
|
|
54
|
-
"intent": "Save browser checkpoint before payment submit; restore on failure",
|
|
55
|
-
"expectedDomain": "resilience",
|
|
56
|
-
"expectedGuide": "session-time-travel.md",
|
|
57
|
-
"expectedTools": [
|
|
58
|
-
"browser_checkpoint"
|
|
59
|
-
],
|
|
60
|
-
"bannedTools": [
|
|
61
|
-
"browser_evaluate"
|
|
62
|
-
],
|
|
63
|
-
"assertion": "Must execute browser_checkpoint with action save and restore to preserve cookies and storage"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"id": "token_conservation_dom_map",
|
|
67
|
-
"description": "Agent needs to inspect interactive buttons without burning 50k tokens",
|
|
68
|
-
"intent": "Inspect interactive controls on large documentation portal",
|
|
69
|
-
"expectedDomain": "browser",
|
|
70
|
-
"expectedGuide": "dom-strategy.md",
|
|
71
|
-
"expectedTools": [
|
|
72
|
-
"browser_map",
|
|
73
|
-
"browser_find"
|
|
74
|
-
],
|
|
75
|
-
"bannedTools": [
|
|
76
|
-
"browser_ask"
|
|
77
|
-
],
|
|
78
|
-
"assertion": "Must pass lite: true or use targeted browser_find for keyword jumps"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "office_document_parsing",
|
|
82
|
-
"description": "Agent downloads and parses quarterly revenue spreadsheet",
|
|
83
|
-
"intent": "Read quarterly_revenue.xlsx sheets and extract department budgets",
|
|
84
|
-
"expectedDomain": "documents",
|
|
85
|
-
"expectedGuide": "office-document-ingestion.md",
|
|
86
|
-
"expectedTools": [
|
|
87
|
-
"browser_office"
|
|
88
|
-
],
|
|
89
|
-
"bannedTools": [
|
|
90
|
-
"browser_evaluate"
|
|
91
|
-
],
|
|
92
|
-
"assertion": "Must use browser_office to ingest Excel spreadsheet data into structured JSON"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"id": "network_mock_and_intercept",
|
|
96
|
-
"description": "Agent mocks a failing billing endpoint to verify error state UI",
|
|
97
|
-
"intent": "Intercept /api/v1/billing and return HTTP 500 error",
|
|
98
|
-
"expectedDomain": "network-and-perf",
|
|
99
|
-
"expectedGuide": "network-intercept-and-mock.md",
|
|
100
|
-
"expectedTools": [
|
|
101
|
-
"browser_network_intercept"
|
|
102
|
-
],
|
|
103
|
-
"bannedTools": [
|
|
104
|
-
"scrape_page"
|
|
105
|
-
],
|
|
106
|
-
"assertion": "Must route request stubbing through browser_network_intercept"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"id": "macro_compilation_workflow",
|
|
110
|
-
"description": "Agent compiles multi-step report generation into deterministic pipeline",
|
|
111
|
-
"intent": "Compile recent search and export actions into parameterized macro",
|
|
112
|
-
"expectedDomain": "memory",
|
|
113
|
-
"expectedGuide": "session-trail.md",
|
|
114
|
-
"expectedTools": [
|
|
115
|
-
"browser_burst"
|
|
116
|
-
],
|
|
117
|
-
"bannedTools": [
|
|
118
|
-
"browser_evaluate"
|
|
119
|
-
],
|
|
120
|
-
"assertion": "Must compile trail using browser_burst with compile_from_history: true"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"id": "form_atomic_batch_fill",
|
|
124
|
-
"description": "Agent fills out 5-field customer registration form in one turn",
|
|
125
|
-
"intent": "Fill first name, last name, email, and agree to terms checkbox",
|
|
126
|
-
"expectedDomain": "browser",
|
|
127
|
-
"expectedGuide": "form-automation.md",
|
|
128
|
-
"expectedTools": [
|
|
129
|
-
"browser_fill"
|
|
130
|
-
],
|
|
131
|
-
"bannedTools": [
|
|
132
|
-
"fill_field"
|
|
133
|
-
],
|
|
134
|
-
"assertion": "Must pass array of fields to browser_fill rather than executing individual typing turns"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"id": "pointer_trajectory_drag_and_drop",
|
|
138
|
-
"description": "Agent drags kanban card from In Progress to Done",
|
|
139
|
-
"intent": "Move Kanban card element from coordinates (200,300) to (600,300)",
|
|
140
|
-
"expectedDomain": "browser",
|
|
141
|
-
"expectedGuide": "interaction-pipeline.md",
|
|
142
|
-
"expectedTools": [
|
|
143
|
-
"browser_pointer"
|
|
144
|
-
],
|
|
145
|
-
"bannedTools": [
|
|
146
|
-
"click_element"
|
|
147
|
-
],
|
|
148
|
-
"assertion": "Must
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
"id": "tab_switch_and_close",
|
|
152
|
-
"description": "Agent opens OAuth popup, completes flow, and switches back to main tab",
|
|
153
|
-
"intent": "Enumerate active page targets, switch focus to popup, and close on finish",
|
|
154
|
-
"expectedDomain": "browser",
|
|
155
|
-
"expectedGuide": "tab-and-window.md",
|
|
156
|
-
"expectedTools": [
|
|
157
|
-
"browser_tabs"
|
|
158
|
-
],
|
|
159
|
-
"bannedTools": [
|
|
160
|
-
"browser_evaluate"
|
|
161
|
-
],
|
|
162
|
-
"assertion": "Must use browser_tabs actions (list, switch, close)"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"id": "core_web_vitals_audit",
|
|
166
|
-
"description": "Agent measures LCP and CLS metrics on landing page",
|
|
167
|
-
"intent": "Measure Core Web Vitals and verify page render performance",
|
|
168
|
-
"expectedDomain": "network-and-perf",
|
|
169
|
-
"expectedGuide": "performance-and-vitals.md",
|
|
170
|
-
"expectedTools": [
|
|
171
|
-
"browser_performance",
|
|
172
|
-
"browser_wait"
|
|
173
|
-
],
|
|
174
|
-
"bannedTools": [
|
|
175
|
-
"browser_evaluate"
|
|
176
|
-
],
|
|
177
|
-
"assertion": "Must query browser_performance for vitals metrics"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
"id": "device_mobile_emulation",
|
|
181
|
-
"description": "Agent emulates iPhone 15 viewport and throttled 3G connectivity",
|
|
182
|
-
"intent": "Audit mobile layout on iPhone 15 with slow network profile",
|
|
183
|
-
"expectedDomain": "network-and-perf",
|
|
184
|
-
"expectedGuide": "device-and-environment.md",
|
|
185
|
-
"expectedTools": [
|
|
186
|
-
"browser_emulate"
|
|
187
|
-
],
|
|
188
|
-
"bannedTools": [
|
|
189
|
-
"scrape_page"
|
|
190
|
-
],
|
|
191
|
-
"assertion": "Must configure viewport and network throttling via browser_emulate"
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
"id": "plugin_dynamic_load",
|
|
195
|
-
"description": "Agent uses tools registered by an installed Weavetab plugin",
|
|
196
|
-
"intent": "Use plugin-provided tools that are automatically loaded at server startup",
|
|
197
|
-
"expectedDomain": "plugins",
|
|
198
|
-
"expectedGuide": "plugin-runtime.md",
|
|
199
|
-
"expectedTools": [
|
|
200
|
-
"browser_snapshot"
|
|
201
|
-
],
|
|
202
|
-
"bannedTools": [
|
|
203
|
-
"browser_ask",
|
|
204
|
-
"list_plugins",
|
|
205
|
-
"load_plugin"
|
|
206
|
-
],
|
|
207
|
-
"assertion": "Must NOT call list_plugins or load_plugin — plugin tools are available directly in the tool list"
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
"id": "github_repository_triage",
|
|
211
|
-
"description": "Agent inspects open pull requests on Weavetab/MCP repository",
|
|
212
|
-
"intent": "Examine PR diff and review comments without loading web browser UI",
|
|
213
|
-
"expectedDomain": "developer",
|
|
214
|
-
"expectedGuide": "github-forensics.md",
|
|
215
|
-
"expectedTools": [
|
|
216
|
-
"
|
|
217
|
-
],
|
|
218
|
-
"bannedTools": [
|
|
219
|
-
"browser_navigate",
|
|
220
|
-
"browser_map"
|
|
221
|
-
],
|
|
222
|
-
"assertion": "Must use
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
"id": "loop_breaker_reset",
|
|
226
|
-
"description": "Agent breaks out of repetitive click strike trap",
|
|
227
|
-
"intent": "Diagnose silent validation error and reset server loop strike counter",
|
|
228
|
-
"expectedDomain": "resilience",
|
|
229
|
-
"expectedGuide": "loop-breaker.md",
|
|
230
|
-
"expectedTools": [
|
|
231
|
-
"browser_map"
|
|
232
|
-
],
|
|
233
|
-
"bannedTools": [
|
|
234
|
-
"browser_ask"
|
|
235
|
-
],
|
|
236
|
-
"assertion": "Must reset loop strikes via browser_map({ force: true }) after diagnosing issue"
|
|
237
|
-
}
|
|
238
|
-
]
|
|
239
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"version": "2.5.2",
|
|
3
|
+
"scenarios": [
|
|
4
|
+
{
|
|
5
|
+
"id": "spa_stale_ref_recovery",
|
|
6
|
+
"description": "Agent encounters detached DOM node during Next.js hydration",
|
|
7
|
+
"intent": "Button ref w:14 became detached after client-side state update",
|
|
8
|
+
"expectedDomain": "resilience",
|
|
9
|
+
"expectedGuide": "stale-ref-recovery.md",
|
|
10
|
+
"expectedTools": [
|
|
11
|
+
"browser_find",
|
|
12
|
+
"browser_map"
|
|
13
|
+
],
|
|
14
|
+
"bannedTools": [
|
|
15
|
+
"scrape_page",
|
|
16
|
+
"browser_evaluate"
|
|
17
|
+
],
|
|
18
|
+
"assertion": "Must rely on multi-tier auto-recovery or targeted browser_find rather than repeating identical stale ref"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "secret_containment_verification",
|
|
22
|
+
"description": "Agent enters user master password or OAuth secret",
|
|
23
|
+
"intent": "Enter user account password and security pin on auth page",
|
|
24
|
+
"expectedDomain": "security",
|
|
25
|
+
"expectedGuide": "secret-containment-protocol.md",
|
|
26
|
+
"expectedTools": [
|
|
27
|
+
"browser_type_secret"
|
|
28
|
+
],
|
|
29
|
+
"bannedTools": [
|
|
30
|
+
"scrape_page",
|
|
31
|
+
"browser_evaluate",
|
|
32
|
+
"browser_ask"
|
|
33
|
+
],
|
|
34
|
+
"assertion": "Must strictly use browser_type_secret to guarantee zero-bleed in logs and transcripts"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "electron_app_switch",
|
|
38
|
+
"description": "Agent detects and sends message inside Slack desktop client",
|
|
39
|
+
"intent": "Find running Slack desktop app and post deployment confirmation",
|
|
40
|
+
"expectedDomain": "desktop",
|
|
41
|
+
"expectedGuide": "desktop-targeting.md",
|
|
42
|
+
"expectedTools": [
|
|
43
|
+
"browser_detect",
|
|
44
|
+
"browser_type"
|
|
45
|
+
],
|
|
46
|
+
"bannedTools": [
|
|
47
|
+
"click_element"
|
|
48
|
+
],
|
|
49
|
+
"assertion": "Must discover running Electron app and pass app: 'slack' parameter"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "checkpoint_rollback_on_error",
|
|
53
|
+
"description": "Agent snapshots session before checkout and rolls back after card decline",
|
|
54
|
+
"intent": "Save browser checkpoint before payment submit; restore on failure",
|
|
55
|
+
"expectedDomain": "resilience",
|
|
56
|
+
"expectedGuide": "session-time-travel.md",
|
|
57
|
+
"expectedTools": [
|
|
58
|
+
"browser_checkpoint"
|
|
59
|
+
],
|
|
60
|
+
"bannedTools": [
|
|
61
|
+
"browser_evaluate"
|
|
62
|
+
],
|
|
63
|
+
"assertion": "Must execute browser_checkpoint with action save and restore to preserve cookies and storage"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "token_conservation_dom_map",
|
|
67
|
+
"description": "Agent needs to inspect interactive buttons without burning 50k tokens",
|
|
68
|
+
"intent": "Inspect interactive controls on large documentation portal",
|
|
69
|
+
"expectedDomain": "browser",
|
|
70
|
+
"expectedGuide": "dom-strategy.md",
|
|
71
|
+
"expectedTools": [
|
|
72
|
+
"browser_map",
|
|
73
|
+
"browser_find"
|
|
74
|
+
],
|
|
75
|
+
"bannedTools": [
|
|
76
|
+
"browser_ask"
|
|
77
|
+
],
|
|
78
|
+
"assertion": "Must pass lite: true or use targeted browser_find for keyword jumps"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"id": "office_document_parsing",
|
|
82
|
+
"description": "Agent downloads and parses quarterly revenue spreadsheet",
|
|
83
|
+
"intent": "Read quarterly_revenue.xlsx sheets and extract department budgets",
|
|
84
|
+
"expectedDomain": "documents",
|
|
85
|
+
"expectedGuide": "office-document-ingestion.md",
|
|
86
|
+
"expectedTools": [
|
|
87
|
+
"browser_office"
|
|
88
|
+
],
|
|
89
|
+
"bannedTools": [
|
|
90
|
+
"browser_evaluate"
|
|
91
|
+
],
|
|
92
|
+
"assertion": "Must use browser_office to ingest Excel spreadsheet data into structured JSON"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "network_mock_and_intercept",
|
|
96
|
+
"description": "Agent mocks a failing billing endpoint to verify error state UI",
|
|
97
|
+
"intent": "Intercept /api/v1/billing and return HTTP 500 error",
|
|
98
|
+
"expectedDomain": "network-and-perf",
|
|
99
|
+
"expectedGuide": "network-intercept-and-mock.md",
|
|
100
|
+
"expectedTools": [
|
|
101
|
+
"browser_network_intercept"
|
|
102
|
+
],
|
|
103
|
+
"bannedTools": [
|
|
104
|
+
"scrape_page"
|
|
105
|
+
],
|
|
106
|
+
"assertion": "Must route request stubbing through browser_network_intercept"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"id": "macro_compilation_workflow",
|
|
110
|
+
"description": "Agent compiles multi-step report generation into deterministic pipeline",
|
|
111
|
+
"intent": "Compile recent search and export actions into parameterized macro",
|
|
112
|
+
"expectedDomain": "memory",
|
|
113
|
+
"expectedGuide": "session-trail.md",
|
|
114
|
+
"expectedTools": [
|
|
115
|
+
"browser_burst"
|
|
116
|
+
],
|
|
117
|
+
"bannedTools": [
|
|
118
|
+
"browser_evaluate"
|
|
119
|
+
],
|
|
120
|
+
"assertion": "Must compile trail using browser_burst with compile_from_history: true"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "form_atomic_batch_fill",
|
|
124
|
+
"description": "Agent fills out 5-field customer registration form in one turn",
|
|
125
|
+
"intent": "Fill first name, last name, email, and agree to terms checkbox",
|
|
126
|
+
"expectedDomain": "browser",
|
|
127
|
+
"expectedGuide": "form-automation.md",
|
|
128
|
+
"expectedTools": [
|
|
129
|
+
"browser_fill"
|
|
130
|
+
],
|
|
131
|
+
"bannedTools": [
|
|
132
|
+
"fill_field"
|
|
133
|
+
],
|
|
134
|
+
"assertion": "Must pass array of fields to browser_fill rather than executing individual typing turns"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"id": "pointer_trajectory_drag_and_drop",
|
|
138
|
+
"description": "Agent drags kanban card from In Progress to Done",
|
|
139
|
+
"intent": "Move Kanban card element from coordinates (200,300) to (600,300)",
|
|
140
|
+
"expectedDomain": "browser",
|
|
141
|
+
"expectedGuide": "interaction-pipeline.md",
|
|
142
|
+
"expectedTools": [
|
|
143
|
+
"browser_pointer"
|
|
144
|
+
],
|
|
145
|
+
"bannedTools": [
|
|
146
|
+
"click_element"
|
|
147
|
+
],
|
|
148
|
+
"assertion": "Must use the drag_and_drop action via browser_pointer (not manual down/move/up)"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "tab_switch_and_close",
|
|
152
|
+
"description": "Agent opens OAuth popup, completes flow, and switches back to main tab",
|
|
153
|
+
"intent": "Enumerate active page targets, switch focus to popup, and close on finish",
|
|
154
|
+
"expectedDomain": "browser",
|
|
155
|
+
"expectedGuide": "tab-and-window.md",
|
|
156
|
+
"expectedTools": [
|
|
157
|
+
"browser_tabs"
|
|
158
|
+
],
|
|
159
|
+
"bannedTools": [
|
|
160
|
+
"browser_evaluate"
|
|
161
|
+
],
|
|
162
|
+
"assertion": "Must use browser_tabs actions (list, switch, close)"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "core_web_vitals_audit",
|
|
166
|
+
"description": "Agent measures LCP and CLS metrics on landing page",
|
|
167
|
+
"intent": "Measure Core Web Vitals and verify page render performance",
|
|
168
|
+
"expectedDomain": "network-and-perf",
|
|
169
|
+
"expectedGuide": "performance-and-vitals.md",
|
|
170
|
+
"expectedTools": [
|
|
171
|
+
"browser_performance",
|
|
172
|
+
"browser_wait"
|
|
173
|
+
],
|
|
174
|
+
"bannedTools": [
|
|
175
|
+
"browser_evaluate"
|
|
176
|
+
],
|
|
177
|
+
"assertion": "Must query browser_performance for vitals metrics"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"id": "device_mobile_emulation",
|
|
181
|
+
"description": "Agent emulates iPhone 15 viewport and throttled 3G connectivity",
|
|
182
|
+
"intent": "Audit mobile layout on iPhone 15 with slow network profile",
|
|
183
|
+
"expectedDomain": "network-and-perf",
|
|
184
|
+
"expectedGuide": "device-and-environment.md",
|
|
185
|
+
"expectedTools": [
|
|
186
|
+
"browser_emulate"
|
|
187
|
+
],
|
|
188
|
+
"bannedTools": [
|
|
189
|
+
"scrape_page"
|
|
190
|
+
],
|
|
191
|
+
"assertion": "Must configure viewport and network throttling via browser_emulate"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"id": "plugin_dynamic_load",
|
|
195
|
+
"description": "Agent uses tools registered by an installed Weavetab plugin",
|
|
196
|
+
"intent": "Use plugin-provided tools that are automatically loaded at server startup",
|
|
197
|
+
"expectedDomain": "plugins",
|
|
198
|
+
"expectedGuide": "plugin-runtime.md",
|
|
199
|
+
"expectedTools": [
|
|
200
|
+
"browser_snapshot"
|
|
201
|
+
],
|
|
202
|
+
"bannedTools": [
|
|
203
|
+
"browser_ask",
|
|
204
|
+
"list_plugins",
|
|
205
|
+
"load_plugin"
|
|
206
|
+
],
|
|
207
|
+
"assertion": "Must NOT call list_plugins or load_plugin — plugin tools are available directly in the tool list"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "github_repository_triage",
|
|
211
|
+
"description": "Agent inspects open pull requests on Weavetab/MCP repository",
|
|
212
|
+
"intent": "Examine PR diff and review comments without loading web browser UI",
|
|
213
|
+
"expectedDomain": "developer",
|
|
214
|
+
"expectedGuide": "github-forensics.md",
|
|
215
|
+
"expectedTools": [
|
|
216
|
+
"github"
|
|
217
|
+
],
|
|
218
|
+
"bannedTools": [
|
|
219
|
+
"browser_navigate",
|
|
220
|
+
"browser_map"
|
|
221
|
+
],
|
|
222
|
+
"assertion": "Must use the github plugin tool to save browser turns"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"id": "loop_breaker_reset",
|
|
226
|
+
"description": "Agent breaks out of repetitive click strike trap",
|
|
227
|
+
"intent": "Diagnose silent validation error and reset server loop strike counter",
|
|
228
|
+
"expectedDomain": "resilience",
|
|
229
|
+
"expectedGuide": "loop-breaker.md",
|
|
230
|
+
"expectedTools": [
|
|
231
|
+
"browser_map"
|
|
232
|
+
],
|
|
233
|
+
"bannedTools": [
|
|
234
|
+
"browser_ask"
|
|
235
|
+
],
|
|
236
|
+
"assertion": "Must reset loop strikes via browser_map({ force: true }) after diagnosing issue"
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
}
|