screenhand 0.1.1 → 0.3.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 (241) hide show
  1. package/README.md +193 -109
  2. package/bin/darwin-arm64/macos-bridge +0 -0
  3. package/dist/mcp-desktop.js +5876 -0
  4. package/dist/scripts/codex-monitor-daemon.js +335 -0
  5. package/dist/scripts/export-help-center.js +112 -0
  6. package/dist/scripts/marketing-loop.js +117 -0
  7. package/dist/scripts/observer-daemon.js +288 -0
  8. package/dist/scripts/orchestrator-daemon.js +399 -0
  9. package/dist/scripts/supervisor-daemon.js +272 -0
  10. package/dist/scripts/threads-campaign.js +208 -0
  11. package/dist/scripts/worker-daemon.js +228 -0
  12. package/dist/src/agent/cli.js +82 -0
  13. package/dist/src/agent/loop.js +274 -0
  14. package/dist/src/community/fetcher.js +109 -0
  15. package/dist/src/community/index.js +6 -0
  16. package/dist/src/community/publisher.js +191 -0
  17. package/dist/src/community/remote-api.js +121 -0
  18. package/dist/src/community/types.js +3 -0
  19. package/dist/src/community/validator.js +95 -0
  20. package/{src/config.ts → dist/src/config.js} +5 -10
  21. package/dist/src/context-tracker.js +489 -0
  22. package/{src/index.ts → dist/src/index.js} +32 -52
  23. package/dist/src/ingestion/coverage-auditor.js +233 -0
  24. package/dist/src/ingestion/doc-parser.js +164 -0
  25. package/dist/src/ingestion/index.js +8 -0
  26. package/dist/src/ingestion/menu-scanner.js +152 -0
  27. package/dist/src/ingestion/reference-merger.js +186 -0
  28. package/dist/src/ingestion/shortcut-extractor.js +180 -0
  29. package/dist/src/ingestion/tutorial-extractor.js +170 -0
  30. package/dist/src/ingestion/types.js +3 -0
  31. package/dist/src/jobs/manager.js +305 -0
  32. package/dist/src/jobs/runner.js +806 -0
  33. package/dist/src/jobs/store.js +102 -0
  34. package/dist/src/jobs/types.js +30 -0
  35. package/dist/src/jobs/worker.js +97 -0
  36. package/dist/src/learning/engine.js +356 -0
  37. package/dist/src/learning/index.js +9 -0
  38. package/dist/src/learning/locator-policy.js +120 -0
  39. package/dist/src/learning/pattern-policy.js +89 -0
  40. package/dist/src/learning/recovery-policy.js +116 -0
  41. package/dist/src/learning/sensor-policy.js +115 -0
  42. package/dist/src/learning/timing-model.js +204 -0
  43. package/dist/src/learning/topology-policy.js +90 -0
  44. package/dist/src/learning/types.js +9 -0
  45. package/dist/src/logging/timeline-logger.js +48 -0
  46. package/dist/src/mcp/mcp-stdio-server.js +464 -0
  47. package/dist/src/mcp/server.js +363 -0
  48. package/dist/src/mcp-entry.js +60 -0
  49. package/dist/src/memory/playbook-seeds.js +200 -0
  50. package/dist/src/memory/recall.js +222 -0
  51. package/dist/src/memory/research.js +104 -0
  52. package/dist/src/memory/seeds.js +101 -0
  53. package/dist/src/memory/service.js +446 -0
  54. package/dist/src/memory/session.js +169 -0
  55. package/dist/src/memory/store.js +451 -0
  56. package/{src/runtime/locator-cache.ts → dist/src/memory/types.js} +1 -17
  57. package/dist/src/monitor/codex-monitor.js +382 -0
  58. package/dist/src/monitor/task-queue.js +97 -0
  59. package/dist/src/monitor/types.js +62 -0
  60. package/dist/src/native/bridge-client.js +412 -0
  61. package/{src/native/macos-bridge-client.ts → dist/src/native/macos-bridge-client.js} +0 -1
  62. package/dist/src/observer/state.js +199 -0
  63. package/dist/src/observer/types.js +43 -0
  64. package/dist/src/orchestrator/state.js +68 -0
  65. package/dist/src/orchestrator/types.js +22 -0
  66. package/dist/src/perception/ax-source.js +162 -0
  67. package/dist/src/perception/cdp-source.js +162 -0
  68. package/dist/src/perception/coordinator.js +771 -0
  69. package/dist/src/perception/frame-differ.js +287 -0
  70. package/dist/src/perception/index.js +22 -0
  71. package/dist/src/perception/manager.js +199 -0
  72. package/dist/src/perception/types.js +47 -0
  73. package/dist/src/perception/vision-source.js +399 -0
  74. package/dist/src/planner/deterministic.js +298 -0
  75. package/dist/src/planner/executor.js +870 -0
  76. package/dist/src/planner/goal-store.js +92 -0
  77. package/dist/src/planner/index.js +21 -0
  78. package/dist/src/planner/planner.js +520 -0
  79. package/dist/src/planner/tool-registry.js +71 -0
  80. package/dist/src/planner/types.js +22 -0
  81. package/dist/src/platform/explorer.js +213 -0
  82. package/dist/src/platform/help-center-markdown.js +527 -0
  83. package/dist/src/platform/learner.js +257 -0
  84. package/dist/src/playbook/engine.js +486 -0
  85. package/dist/src/playbook/index.js +20 -0
  86. package/dist/src/playbook/mcp-recorder.js +204 -0
  87. package/dist/src/playbook/recorder.js +536 -0
  88. package/dist/src/playbook/runner.js +408 -0
  89. package/dist/src/playbook/store.js +312 -0
  90. package/dist/src/playbook/types.js +17 -0
  91. package/dist/src/recovery/detectors.js +156 -0
  92. package/dist/src/recovery/engine.js +327 -0
  93. package/dist/src/recovery/index.js +20 -0
  94. package/dist/src/recovery/strategies.js +274 -0
  95. package/dist/src/recovery/types.js +20 -0
  96. package/dist/src/runtime/accessibility-adapter.js +430 -0
  97. package/dist/src/runtime/app-adapter.js +64 -0
  98. package/dist/src/runtime/applescript-adapter.js +305 -0
  99. package/dist/src/runtime/ax-role-map.js +96 -0
  100. package/dist/src/runtime/browser-adapter.js +52 -0
  101. package/dist/src/runtime/cdp-chrome-adapter.js +521 -0
  102. package/dist/src/runtime/composite-adapter.js +221 -0
  103. package/dist/src/runtime/execution-contract.js +159 -0
  104. package/dist/src/runtime/executor.js +286 -0
  105. package/dist/src/runtime/locator-cache.js +50 -0
  106. package/dist/src/runtime/planning-loop.js +63 -0
  107. package/dist/src/runtime/service.js +432 -0
  108. package/dist/src/runtime/session-manager.js +63 -0
  109. package/dist/src/runtime/state-observer.js +121 -0
  110. package/dist/src/runtime/vision-adapter.js +225 -0
  111. package/dist/src/state/app-map-types.js +72 -0
  112. package/dist/src/state/app-map.js +1974 -0
  113. package/dist/src/state/entity-tracker.js +108 -0
  114. package/dist/src/state/fusion.js +96 -0
  115. package/dist/src/state/index.js +21 -0
  116. package/dist/src/state/ladder-generator.js +236 -0
  117. package/dist/src/state/persistence.js +156 -0
  118. package/dist/src/state/types.js +17 -0
  119. package/dist/src/state/world-model.js +1456 -0
  120. package/dist/src/supervisor/locks.js +186 -0
  121. package/dist/src/supervisor/supervisor.js +403 -0
  122. package/dist/src/supervisor/types.js +30 -0
  123. package/dist/src/test-mcp-protocol.js +154 -0
  124. package/dist/src/types.js +17 -0
  125. package/dist/src/util/atomic-write.js +133 -0
  126. package/dist/src/util/sanitize.js +146 -0
  127. package/dist-app-maps/com.figma.Desktop.json +959 -0
  128. package/dist-app-maps/com.hnc.Discord.json +1146 -0
  129. package/dist-app-maps/notion.id.json +2831 -0
  130. package/dist-playbooks/canva-screenhand-carousel.json +445 -0
  131. package/dist-playbooks/codex-desktop.json +76 -0
  132. package/dist-playbooks/competitor-research-stack.json +122 -0
  133. package/dist-playbooks/davinci-color-grade.json +153 -0
  134. package/dist-playbooks/davinci-edit-timeline.json +162 -0
  135. package/dist-playbooks/davinci-render.json +114 -0
  136. package/dist-playbooks/devto.json +52 -0
  137. package/dist-playbooks/discord.json +41 -0
  138. package/dist-playbooks/google-flow-create-project.json +59 -0
  139. package/dist-playbooks/google-flow-edit-image.json +90 -0
  140. package/dist-playbooks/google-flow-edit-video.json +90 -0
  141. package/dist-playbooks/google-flow-generate-image.json +68 -0
  142. package/dist-playbooks/google-flow-generate-video.json +191 -0
  143. package/dist-playbooks/google-flow-open-project.json +48 -0
  144. package/dist-playbooks/google-flow-open-scenebuilder.json +64 -0
  145. package/dist-playbooks/google-flow-search-assets.json +64 -0
  146. package/dist-playbooks/instagram.json +57 -0
  147. package/dist-playbooks/linkedin.json +52 -0
  148. package/dist-playbooks/n8n.json +43 -0
  149. package/dist-playbooks/reddit.json +52 -0
  150. package/dist-playbooks/threads.json +59 -0
  151. package/dist-playbooks/x-twitter.json +59 -0
  152. package/dist-playbooks/youtube.json +59 -0
  153. package/dist-references/canva.json +646 -0
  154. package/dist-references/codex-desktop.json +305 -0
  155. package/dist-references/davinci-resolve-keyboard.json +594 -0
  156. package/dist-references/davinci-resolve-menu-map.json +1139 -0
  157. package/dist-references/davinci-resolve-menus-batch1.json +116 -0
  158. package/dist-references/davinci-resolve-menus-batch2.json +372 -0
  159. package/dist-references/davinci-resolve-menus-batch3.json +330 -0
  160. package/dist-references/davinci-resolve-menus-batch4.json +297 -0
  161. package/dist-references/davinci-resolve-shortcuts.json +333 -0
  162. package/dist-references/devto.json +317 -0
  163. package/dist-references/discord.json +549 -0
  164. package/dist-references/figma.json +1186 -0
  165. package/dist-references/finder.json +146 -0
  166. package/dist-references/google-ads-transparency.json +95 -0
  167. package/dist-references/google-flow.json +649 -0
  168. package/dist-references/instagram.json +341 -0
  169. package/dist-references/linkedin.json +324 -0
  170. package/dist-references/meta-ad-library.json +86 -0
  171. package/dist-references/n8n.json +387 -0
  172. package/dist-references/notes.json +27 -0
  173. package/dist-references/notion.json +163 -0
  174. package/dist-references/reddit.json +341 -0
  175. package/dist-references/threads.json +337 -0
  176. package/dist-references/x-twitter.json +403 -0
  177. package/dist-references/youtube.json +373 -0
  178. package/native/macos-bridge/Package.swift +1 -0
  179. package/native/macos-bridge/Sources/AccessibilityBridge.swift +257 -36
  180. package/native/macos-bridge/Sources/AppManagement.swift +212 -2
  181. package/native/macos-bridge/Sources/CoreGraphicsBridge.swift +348 -53
  182. package/native/macos-bridge/Sources/StreamCapture.swift +136 -0
  183. package/native/macos-bridge/Sources/VisionBridge.swift +165 -7
  184. package/native/macos-bridge/Sources/main.swift +169 -16
  185. package/native/windows-bridge/Program.cs +5 -0
  186. package/native/windows-bridge/ScreenCapture.cs +124 -0
  187. package/package.json +29 -4
  188. package/scripts/postinstall.cjs +127 -0
  189. package/.claude/commands/automate.md +0 -28
  190. package/.claude/commands/debug-ui.md +0 -19
  191. package/.claude/commands/screenshot.md +0 -15
  192. package/.github/FUNDING.yml +0 -1
  193. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -27
  194. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  195. package/.mcp.json +0 -8
  196. package/DESKTOP_MCP_GUIDE.md +0 -92
  197. package/SECURITY.md +0 -44
  198. package/docs/architecture.md +0 -47
  199. package/install-skills.sh +0 -19
  200. package/mcp-bridge.ts +0 -271
  201. package/mcp-desktop.ts +0 -1221
  202. package/playbooks/instagram.json +0 -41
  203. package/playbooks/instagram_v2.json +0 -201
  204. package/playbooks/x_v1.json +0 -211
  205. package/scripts/devpost-live-loop.mjs +0 -421
  206. package/src/logging/timeline-logger.ts +0 -55
  207. package/src/mcp/server.ts +0 -449
  208. package/src/memory/recall.ts +0 -191
  209. package/src/memory/research.ts +0 -146
  210. package/src/memory/seeds.ts +0 -123
  211. package/src/memory/session.ts +0 -201
  212. package/src/memory/store.ts +0 -434
  213. package/src/memory/types.ts +0 -69
  214. package/src/native/bridge-client.ts +0 -239
  215. package/src/runtime/accessibility-adapter.ts +0 -487
  216. package/src/runtime/app-adapter.ts +0 -169
  217. package/src/runtime/applescript-adapter.ts +0 -376
  218. package/src/runtime/ax-role-map.ts +0 -102
  219. package/src/runtime/browser-adapter.ts +0 -129
  220. package/src/runtime/cdp-chrome-adapter.ts +0 -676
  221. package/src/runtime/composite-adapter.ts +0 -274
  222. package/src/runtime/executor.ts +0 -396
  223. package/src/runtime/planning-loop.ts +0 -81
  224. package/src/runtime/service.ts +0 -448
  225. package/src/runtime/session-manager.ts +0 -50
  226. package/src/runtime/state-observer.ts +0 -136
  227. package/src/runtime/vision-adapter.ts +0 -297
  228. package/src/types.ts +0 -297
  229. package/tests/bridge-client.test.ts +0 -176
  230. package/tests/browser-stealth.test.ts +0 -210
  231. package/tests/composite-adapter.test.ts +0 -64
  232. package/tests/mcp-server.test.ts +0 -151
  233. package/tests/memory-recall.test.ts +0 -339
  234. package/tests/memory-research.test.ts +0 -159
  235. package/tests/memory-seeds.test.ts +0 -120
  236. package/tests/memory-store.test.ts +0 -392
  237. package/tests/types.test.ts +0 -92
  238. package/tsconfig.check.json +0 -17
  239. package/tsconfig.json +0 -19
  240. package/vitest.config.ts +0 -8
  241. /package/{playbooks → dist-references}/devpost.json +0 -0
@@ -0,0 +1,959 @@
1
+ {
2
+ "app": "com.figma.Desktop",
3
+ "appName": "Figma",
4
+ "version": "unknown",
5
+ "masteryLevel": "beginner",
6
+ "rating": {
7
+ "grade": "C",
8
+ "subTier": 3
9
+ },
10
+ "ratingFactors": {
11
+ "featureCoverage": 7,
12
+ "workflowDepth": 6,
13
+ "outcomeVerification": 3,
14
+ "errorRecovery": 100,
15
+ "speedEfficiency": 6,
16
+ "crossFeatureChains": 38,
17
+ "edgeCaseHandling": 100,
18
+ "teachingAbility": 100,
19
+ "platformKnowledge": 100,
20
+ "consistency": 4
21
+ },
22
+ "confidence": 0.5977525543349871,
23
+ "lastValidated": "2026-03-20T19:51:35.409Z",
24
+ "mapVersion": 1,
25
+ "uiArchitecture": {
26
+ "type": "other",
27
+ "rendering": "native",
28
+ "axSupport": "partial",
29
+ "bestMethod": "ax",
30
+ "menuStyle": "standard",
31
+ "dragDropHeavy": false,
32
+ "hasCanvas": false
33
+ },
34
+ "zones": {
35
+ "auto_discovered": {
36
+ "relativePosition": {
37
+ "top": 0,
38
+ "left": 0,
39
+ "width": 1,
40
+ "height": 1
41
+ },
42
+ "type": "other",
43
+ "elements": [
44
+ {
45
+ "label": "Layers",
46
+ "relativeX": 0.05374149659863946,
47
+ "relativeY": 0.3252032520325203,
48
+ "anchor": "top-left",
49
+ "ocrBackup": "Layers",
50
+ "successCount": 2,
51
+ "failCount": 0,
52
+ "lastInteracted": "2026-03-20T14:07:48.790Z",
53
+ "sessionsSinceUse": 1
54
+ },
55
+ {
56
+ "label": "Prototype",
57
+ "relativeX": 0.9047619047619048,
58
+ "relativeY": 0.11382113821138211,
59
+ "anchor": "top-left",
60
+ "ocrBackup": "Prototype",
61
+ "successCount": 1,
62
+ "failCount": 0,
63
+ "lastInteracted": "2026-03-20T14:01:45.921Z",
64
+ "sessionsSinceUse": 1
65
+ },
66
+ {
67
+ "label": "Design",
68
+ "relativeX": 0.8598639455782313,
69
+ "relativeY": 0.11498257839721254,
70
+ "anchor": "top-left",
71
+ "ocrBackup": "Design",
72
+ "successCount": 1,
73
+ "failCount": 0,
74
+ "lastInteracted": "2026-03-20T14:01:46.924Z",
75
+ "sessionsSinceUse": 1
76
+ },
77
+ {
78
+ "label": "Variables",
79
+ "relativeX": 0.8639455782312925,
80
+ "relativeY": 0.2590011614401858,
81
+ "anchor": "top-left",
82
+ "ocrBackup": "Variables",
83
+ "successCount": 1,
84
+ "failCount": 0,
85
+ "lastInteracted": "2026-03-20T14:01:53.347Z",
86
+ "sessionsSinceUse": 1
87
+ },
88
+ {
89
+ "label": "Styles",
90
+ "relativeX": 0.21768707482993196,
91
+ "relativeY": 0.289198606271777,
92
+ "anchor": "top-left",
93
+ "ocrBackup": "Styles",
94
+ "successCount": 1,
95
+ "failCount": 0,
96
+ "lastInteracted": "2026-03-20T14:01:53.844Z",
97
+ "sessionsSinceUse": 1
98
+ },
99
+ {
100
+ "label": "Export",
101
+ "relativeX": 0.8591836734693877,
102
+ "relativeY": 0.35656213704994194,
103
+ "anchor": "top-left",
104
+ "ocrBackup": "Export",
105
+ "successCount": 1,
106
+ "failCount": 0,
107
+ "lastInteracted": "2026-03-20T14:01:54.513Z",
108
+ "sessionsSinceUse": 1
109
+ },
110
+ {
111
+ "label": "File",
112
+ "relativeX": 0.017687074829931974,
113
+ "relativeY": 0.1800232288037166,
114
+ "anchor": "top-left",
115
+ "ocrBackup": "File",
116
+ "successCount": 2,
117
+ "failCount": 0,
118
+ "lastInteracted": "2026-03-20T14:03:07.084Z",
119
+ "sessionsSinceUse": 1
120
+ },
121
+ {
122
+ "label": "Assets",
123
+ "relativeX": 0.050340136054421766,
124
+ "relativeY": 0.1800232288037166,
125
+ "anchor": "top-left",
126
+ "ocrBackup": "Assets",
127
+ "successCount": 1,
128
+ "failCount": 0,
129
+ "lastInteracted": "2026-03-20T14:02:37.039Z",
130
+ "sessionsSinceUse": 1
131
+ },
132
+ {
133
+ "label": "Product page",
134
+ "relativeX": 0,
135
+ "relativeY": 0,
136
+ "anchor": "top-left",
137
+ "ocrBackup": "Product page",
138
+ "successCount": 0,
139
+ "failCount": 1,
140
+ "lastInteracted": "2026-03-20T14:03:00.826Z",
141
+ "sessionsSinceUse": 1
142
+ },
143
+ {
144
+ "label": "Figma Basics",
145
+ "relativeX": 0.03537414965986395,
146
+ "relativeY": 0.2706155632984901,
147
+ "anchor": "top-left",
148
+ "ocrBackup": "Figma Basics",
149
+ "successCount": 1,
150
+ "failCount": 0,
151
+ "lastInteracted": "2026-03-20T14:03:20.453Z",
152
+ "sessionsSinceUse": 1
153
+ },
154
+ {
155
+ "label": "Community",
156
+ "relativeX": 0.04965986394557823,
157
+ "relativeY": 0.2032520325203252,
158
+ "anchor": "top-left",
159
+ "ocrBackup": "Community",
160
+ "successCount": 1,
161
+ "failCount": 0,
162
+ "lastInteracted": "2026-03-20T14:04:05.523Z",
163
+ "sessionsSinceUse": 1
164
+ },
165
+ {
166
+ "label": "Drafts",
167
+ "relativeX": 0.04149659863945578,
168
+ "relativeY": 0.30197444831591175,
169
+ "anchor": "top-left",
170
+ "ocrBackup": "Drafts",
171
+ "successCount": 1,
172
+ "failCount": 0,
173
+ "lastInteracted": "2026-03-20T14:04:11.312Z",
174
+ "sessionsSinceUse": 1
175
+ },
176
+ {
177
+ "label": "Recents",
178
+ "relativeX": 0.06870748299319727,
179
+ "relativeY": 0.18488372093023256,
180
+ "anchor": "top-left",
181
+ "ocrBackup": "Recents",
182
+ "successCount": 3,
183
+ "failCount": 0,
184
+ "lastInteracted": "2026-03-20T14:08:22.289Z",
185
+ "sessionsSinceUse": 1
186
+ },
187
+ {
188
+ "label": "Trash",
189
+ "relativeX": 0.04081632653061224,
190
+ "relativeY": 0.413472706155633,
191
+ "anchor": "top-left",
192
+ "ocrBackup": "Trash",
193
+ "successCount": 1,
194
+ "failCount": 0,
195
+ "lastInteracted": "2026-03-20T14:04:12.396Z",
196
+ "sessionsSinceUse": 1
197
+ },
198
+ {
199
+ "label": "Figma basics",
200
+ "relativeX": 0.24149659863945577,
201
+ "relativeY": 0.6074332171893148,
202
+ "anchor": "top-left",
203
+ "ocrBackup": "Figma basics",
204
+ "successCount": 1,
205
+ "failCount": 0,
206
+ "lastInteracted": "2026-03-20T14:04:25.385Z",
207
+ "sessionsSinceUse": 1
208
+ },
209
+ {
210
+ "label": "All projects",
211
+ "relativeX": 0.08231292517006802,
212
+ "relativeY": 0.3395348837209302,
213
+ "anchor": "top-left",
214
+ "ocrBackup": "All projects",
215
+ "successCount": 1,
216
+ "failCount": 0,
217
+ "lastInteracted": "2026-03-20T14:08:20.990Z",
218
+ "sessionsSinceUse": 1
219
+ },
220
+ {
221
+ "label": "Resources",
222
+ "relativeX": 0.07891156462585033,
223
+ "relativeY": 0.37093023255813956,
224
+ "anchor": "top-left",
225
+ "ocrBackup": "Resources",
226
+ "successCount": 1,
227
+ "failCount": 0,
228
+ "lastInteracted": "2026-03-20T14:08:21.624Z",
229
+ "sessionsSinceUse": 1
230
+ }
231
+ ],
232
+ "verified": false,
233
+ "lastSeen": "2026-03-20T14:01:41.281Z"
234
+ }
235
+ },
236
+ "navigationGraph": {
237
+ "nodes": {
238
+ "Figma basics": {
239
+ "type": "window",
240
+ "description": "Figma basics"
241
+ },
242
+ "Home": {
243
+ "type": "window",
244
+ "description": "Home"
245
+ },
246
+ "Community": {
247
+ "type": "window",
248
+ "description": "Community"
249
+ },
250
+ "Drafts": {
251
+ "type": "window",
252
+ "description": "Drafts"
253
+ },
254
+ "Untitled": {
255
+ "type": "window",
256
+ "description": "Untitled"
257
+ },
258
+ "New File": {
259
+ "type": "window",
260
+ "description": "New File"
261
+ }
262
+ },
263
+ "edges": [
264
+ {
265
+ "from": "Figma basics",
266
+ "action": "key",
267
+ "to": "Home",
268
+ "verified": false,
269
+ "successCount": 1,
270
+ "failCount": 0,
271
+ "lastUsed": "2026-03-20T13:57:53.228Z"
272
+ },
273
+ {
274
+ "from": "Home",
275
+ "action": "key",
276
+ "to": "Community",
277
+ "verified": false,
278
+ "successCount": 1,
279
+ "failCount": 0,
280
+ "lastUsed": "2026-03-20T14:04:05.892Z"
281
+ },
282
+ {
283
+ "from": "Community",
284
+ "action": "Recents",
285
+ "to": "Drafts",
286
+ "verified": false,
287
+ "successCount": 1,
288
+ "failCount": 0,
289
+ "lastUsed": "2026-03-20T14:04:12.045Z"
290
+ },
291
+ {
292
+ "from": "Drafts",
293
+ "action": "Trash",
294
+ "to": "Home",
295
+ "verified": false,
296
+ "successCount": 1,
297
+ "failCount": 0,
298
+ "lastUsed": "2026-03-20T14:04:12.398Z"
299
+ },
300
+ {
301
+ "from": "Untitled",
302
+ "action": "key",
303
+ "to": "New File",
304
+ "verified": false,
305
+ "successCount": 1,
306
+ "failCount": 0,
307
+ "lastUsed": "2026-03-20T14:05:26.630Z"
308
+ },
309
+ {
310
+ "from": "New File",
311
+ "action": "menu_click",
312
+ "to": "Figma basics",
313
+ "verified": false,
314
+ "successCount": 1,
315
+ "failCount": 0,
316
+ "lastUsed": "2026-03-20T14:05:28.678Z"
317
+ }
318
+ ]
319
+ },
320
+ "masteryHistory": [
321
+ {
322
+ "date": "2026-03-20",
323
+ "level": "beginner",
324
+ "rating": {
325
+ "grade": "F",
326
+ "subTier": 3
327
+ },
328
+ "confidence": 0,
329
+ "zonesKnown": 0,
330
+ "edgesVerified": 0
331
+ }
332
+ ],
333
+ "totalTasksCompleted": 0,
334
+ "sessionCount": 2,
335
+ "featureLadder": [
336
+ {
337
+ "id": "editor_header",
338
+ "description": "editor header: filename, filename input, filename note",
339
+ "level": "beginner",
340
+ "weight": 1,
341
+ "critical": true
342
+ },
343
+ {
344
+ "id": "select_tool",
345
+ "description": "Click tool button: [data-testid='{ToolName}-tool'] via browser_human_click",
346
+ "level": "beginner",
347
+ "weight": 1,
348
+ "critical": false
349
+ },
350
+ {
351
+ "id": "open_main_menu",
352
+ "description": "Click: browser_human_click on button[aria-label='Main menu']",
353
+ "level": "beginner",
354
+ "weight": 1,
355
+ "critical": false
356
+ },
357
+ {
358
+ "id": "switch_design_prototype_tab",
359
+ "description": "Find tab header: [data-testid='property-panel-tab-header']",
360
+ "level": "beginner",
361
+ "weight": 1,
362
+ "critical": false
363
+ },
364
+ {
365
+ "id": "navigate_back_to_files",
366
+ "description": "Click folder link: [data-testid='folder-name-link']",
367
+ "level": "beginner",
368
+ "weight": 1,
369
+ "critical": false
370
+ },
371
+ {
372
+ "id": "present_prototype",
373
+ "description": "Click Present button: browser_human_click on [data-testid='present-as-prototype']",
374
+ "level": "beginner",
375
+ "weight": 1,
376
+ "critical": false
377
+ },
378
+ {
379
+ "id": "share_dialog",
380
+ "description": "share dialog: email input, invite button, copy link",
381
+ "level": "pro",
382
+ "weight": 2,
383
+ "critical": true
384
+ },
385
+ {
386
+ "id": "actions_panel",
387
+ "description": "actions panel: actions button, actions note, quick actions window",
388
+ "level": "pro",
389
+ "weight": 2,
390
+ "critical": false
391
+ },
392
+ {
393
+ "id": "plugin_ui",
394
+ "description": "plugin ui: plugin iframe, plugin iframe note, plugin container",
395
+ "level": "pro",
396
+ "weight": 2,
397
+ "critical": false
398
+ },
399
+ {
400
+ "id": "other",
401
+ "description": "other: canvas, bottom right tools, help zoom menu",
402
+ "level": "pro",
403
+ "weight": 2,
404
+ "critical": true
405
+ },
406
+ {
407
+ "id": "create_new_file",
408
+ "description": "Find new file button: [data-testid='new-design-file-button'] (or whiteboard/slides/etc)",
409
+ "level": "pro",
410
+ "weight": 2,
411
+ "critical": false
412
+ },
413
+ {
414
+ "id": "single_scrollable_website",
415
+ "description": "Create ONE tall frame: const P = figma.createFrame(); P.resize(1440, 7200); P.clipsContent = true;",
416
+ "level": "pro",
417
+ "weight": 2,
418
+ "critical": false
419
+ },
420
+ {
421
+ "id": "prototype_connections",
422
+ "description": "Set starting point: page.flowStartingPoints = [{nodeId: frameId, name: 'Flow Name'}]",
423
+ "level": "pro",
424
+ "weight": 2,
425
+ "critical": false
426
+ },
427
+ {
428
+ "id": "gradient_types",
429
+ "description": "Radial glow: fills=[{type:'GRADIENT_RADIAL', gradientTransform:[[0.5,0,0.25],[0,0.5,0.25]], gradientStops:[{position:0,color:{r:0.6,g:0.2,b:1,a:0.8}},{position:1,color:{r:0,g:0,b:0,a:0}}]}]",
430
+ "level": "pro",
431
+ "weight": 2,
432
+ "critical": false
433
+ },
434
+ {
435
+ "id": "blend_modes",
436
+ "description": "On node: node.blendMode = 'SCREEN'; — applies to entire layer",
437
+ "level": "pro",
438
+ "weight": 2,
439
+ "critical": false
440
+ },
441
+ {
442
+ "id": "masks",
443
+ "description": "Create mask shape: const mask = figma.createStar(); mask.resize(180,180); mask.isMask = true;",
444
+ "level": "pro",
445
+ "weight": 2,
446
+ "critical": false
447
+ },
448
+ {
449
+ "id": "shared_plugin_data",
450
+ "description": "Write: node.setSharedPluginData('my_namespace', 'key', 'value');",
451
+ "level": "pro",
452
+ "weight": 2,
453
+ "critical": true
454
+ },
455
+ {
456
+ "id": "layout_grids",
457
+ "description": "Column grid: {pattern:'COLUMNS', alignment:'STRETCH', count:12, gutterSize:20, offset:40, visible:true, color:{r:1,g:0,b:0,a:0.1}}",
458
+ "level": "pro",
459
+ "weight": 2,
460
+ "critical": true
461
+ },
462
+ {
463
+ "id": "overlay_interactions",
464
+ "description": "Create overlay content (modal/tooltip) as a separate frame or component",
465
+ "level": "pro",
466
+ "weight": 2,
467
+ "critical": true
468
+ },
469
+ {
470
+ "id": "create_shape",
471
+ "description": "Activate tool: browser_human_click on [data-testid='Rectangle-tool'] (or Frame-tool, etc)",
472
+ "level": "pro",
473
+ "weight": 2,
474
+ "critical": false
475
+ },
476
+ {
477
+ "id": "select_layer",
478
+ "description": "Find layer: [data-testid$='-layers-panel-row'] with matching text content",
479
+ "level": "pro",
480
+ "weight": 2,
481
+ "critical": false
482
+ },
483
+ {
484
+ "id": "parallax_effect",
485
+ "description": "Create Frame A and Frame B (same dimensions)",
486
+ "level": "pro",
487
+ "weight": 2,
488
+ "critical": false
489
+ },
490
+ {
491
+ "id": "scroll_overflow",
492
+ "description": "Vertical scroll: frame.clipsContent = true; frame.overflowDirection = 'VERTICAL'; add content taller than frame",
493
+ "level": "pro",
494
+ "weight": 2,
495
+ "critical": false
496
+ },
497
+ {
498
+ "id": "file_browser",
499
+ "description": "file browser: search input, profile button, desktop header",
500
+ "level": "expert",
501
+ "weight": 3,
502
+ "critical": true
503
+ },
504
+ {
505
+ "id": "left_panel",
506
+ "description": "left panel: body, file layers tab, new page button",
507
+ "level": "expert",
508
+ "weight": 3,
509
+ "critical": true
510
+ },
511
+ {
512
+ "id": "toolbar",
513
+ "description": "toolbar: move tool, frame tool, rectangle tool",
514
+ "level": "expert",
515
+ "weight": 3,
516
+ "critical": true
517
+ },
518
+ {
519
+ "id": "properties_panel",
520
+ "description": "properties panel: panel, tab header, resize handle",
521
+ "level": "expert",
522
+ "weight": 3,
523
+ "critical": true
524
+ },
525
+ {
526
+ "id": "programmatic_design",
527
+ "description": "The Figma Plugin API (figma.*) is available in browser_js — no plugin installation needed",
528
+ "level": "expert",
529
+ "weight": 3,
530
+ "critical": true
531
+ },
532
+ {
533
+ "id": "effects_and_glassmorphism",
534
+ "description": "Drop shadow glow: element.effects = [{type:'DROP_SHADOW', color:{r,g,b, a:0.2}, offset:{x:0,y:0}, radius:50, spread:0, visible:true, blendMode:'NORMAL'}]",
535
+ "level": "expert",
536
+ "weight": 3,
537
+ "critical": true
538
+ },
539
+ {
540
+ "id": "auto_layout",
541
+ "description": "Horizontal row: frame.layoutMode = 'HORIZONTAL'; frame.itemSpacing = 16;",
542
+ "level": "expert",
543
+ "weight": 3,
544
+ "critical": true
545
+ },
546
+ {
547
+ "id": "image_fills",
548
+ "description": "Load image: const image = await figma.createImageAsync('https://images.unsplash.com/photo-xxx?w=400&h=300&fit=crop');",
549
+ "level": "expert",
550
+ "weight": 3,
551
+ "critical": true
552
+ },
553
+ {
554
+ "id": "svg_import",
555
+ "description": "Import SVG: const node = figma.createNodeFromSvg('<svg xmlns=\"http://www.w3.org/2000/svg\" ...>...</svg>');",
556
+ "level": "expert",
557
+ "weight": 3,
558
+ "critical": true
559
+ },
560
+ {
561
+ "id": "components_and_variants",
562
+ "description": "Create component: const comp = figma.createComponent(); comp.name = 'State=Default';",
563
+ "level": "expert",
564
+ "weight": 3,
565
+ "critical": true
566
+ },
567
+ {
568
+ "id": "boolean_operations",
569
+ "description": "Union: figma.union([shape1, shape2], parentFrame); — combines shapes",
570
+ "level": "expert",
571
+ "weight": 3,
572
+ "critical": true
573
+ },
574
+ {
575
+ "id": "vector_paths",
576
+ "description": "Create: const vec = figma.createVector();",
577
+ "level": "expert",
578
+ "weight": 3,
579
+ "critical": true
580
+ },
581
+ {
582
+ "id": "text_range_styles",
583
+ "description": "Mixed sizes: text.setRangeFontSize(startIndex, endIndex, 48);",
584
+ "level": "expert",
585
+ "weight": 3,
586
+ "critical": true
587
+ },
588
+ {
589
+ "id": "design_tokens",
590
+ "description": "Paint style: const style = figma.createPaintStyle(); style.name = 'Brand/Primary'; style.paints = [{type:'SOLID', color:{r:0.4,g:0.3,b:1}}];",
591
+ "level": "expert",
592
+ "weight": 3,
593
+ "critical": true
594
+ },
595
+ {
596
+ "id": "constraints",
597
+ "description": "Set: node.constraints = {horizontal:'CENTER', vertical:'MIN'};",
598
+ "level": "expert",
599
+ "weight": 3,
600
+ "critical": true
601
+ },
602
+ {
603
+ "id": "export",
604
+ "description": "Get bytes: const bytes = await node.exportAsync({format:'PNG', constraint:{type:'SCALE',value:2}});",
605
+ "level": "expert",
606
+ "weight": 2,
607
+ "critical": true
608
+ },
609
+ {
610
+ "id": "variables",
611
+ "description": "Create collection: const col = figma.variables.createVariableCollection('Tokens');",
612
+ "level": "expert",
613
+ "weight": 3,
614
+ "critical": true
615
+ },
616
+ {
617
+ "id": "plugin_install_and_run",
618
+ "description": "STEP 1 — Open Actions panel: click button[aria-label='Actions'] in the BOTTOM TOOLBAR (the '/' icon). Two may exist in DOM — pick the visible one (getBoundingClientRect().width > 0). Panel class: .quick_actions--qaV2Window--EtP7F",
619
+ "level": "expert",
620
+ "weight": 3,
621
+ "critical": true
622
+ },
623
+ {
624
+ "id": "animation_triggers_reference",
625
+ "description": "WORKING TRIGGERS (11): ON_CLICK, ON_HOVER, ON_PRESS, ON_DRAG, ON_MEDIA_END, AFTER_TIMEOUT({timeout:ms}), MOUSE_ENTER({delay:0}), MOUSE_LEAVE({delay:0}), MOUSE_UP({delay:0}), MOUSE_DOWN({delay:0}), ON_KEY_DOWN({device:'KEYBOARD',keyCodes:[32]}), ON_MEDIA_HIT({mediaHitTime:seconds})",
626
+ "level": "expert",
627
+ "weight": 3,
628
+ "critical": true
629
+ }
630
+ ],
631
+ "featureMastery": {
632
+ "plugin_ui": {
633
+ "depth": 4,
634
+ "confidence": 1,
635
+ "repeatCount": 172,
636
+ "workflowCount": 165,
637
+ "healingCount": 6,
638
+ "failCount": 6,
639
+ "lastSeen": "2026-03-20T19:11:16.578Z",
640
+ "lastVerified": "2026-03-20T19:11:16.578Z"
641
+ },
642
+ "single_scrollable_website": {
643
+ "depth": 2,
644
+ "confidence": 0.6,
645
+ "repeatCount": 9,
646
+ "workflowCount": 0,
647
+ "healingCount": 0,
648
+ "failCount": 0,
649
+ "lastSeen": "2026-03-20T19:11:16.578Z",
650
+ "lastVerified": null
651
+ },
652
+ "blend_modes": {
653
+ "depth": 4,
654
+ "confidence": 1,
655
+ "repeatCount": 10,
656
+ "workflowCount": 2,
657
+ "healingCount": 0,
658
+ "failCount": 0,
659
+ "lastSeen": "2026-03-20T19:11:16.578Z",
660
+ "lastVerified": "2026-03-20T19:11:16.578Z"
661
+ },
662
+ "programmatic_design": {
663
+ "depth": 4,
664
+ "confidence": 1,
665
+ "repeatCount": 160,
666
+ "workflowCount": 153,
667
+ "healingCount": 1,
668
+ "failCount": 1,
669
+ "lastSeen": "2026-03-20T14:08:31.279Z",
670
+ "lastVerified": "2026-03-20T14:04:30.521Z"
671
+ },
672
+ "components_and_variants": {
673
+ "depth": 4,
674
+ "confidence": 1,
675
+ "repeatCount": 155,
676
+ "workflowCount": 148,
677
+ "healingCount": 0,
678
+ "failCount": 0,
679
+ "lastSeen": "2026-03-20T14:08:31.279Z",
680
+ "lastVerified": "2026-03-20T14:04:30.521Z"
681
+ },
682
+ "plugin_install_and_run": {
683
+ "depth": 4,
684
+ "confidence": 1,
685
+ "repeatCount": 176,
686
+ "workflowCount": 169,
687
+ "healingCount": 6,
688
+ "failCount": 6,
689
+ "lastSeen": "2026-03-20T19:11:16.579Z",
690
+ "lastVerified": "2026-03-20T19:11:16.579Z"
691
+ },
692
+ "shared_plugin_data": {
693
+ "depth": 3,
694
+ "confidence": 0.85,
695
+ "repeatCount": 148,
696
+ "workflowCount": 145,
697
+ "healingCount": 0,
698
+ "failCount": 0,
699
+ "lastSeen": "2026-03-20T14:08:22.344Z",
700
+ "lastVerified": null
701
+ },
702
+ "editor_header": {
703
+ "depth": 4,
704
+ "confidence": 1,
705
+ "repeatCount": 20,
706
+ "workflowCount": 17,
707
+ "healingCount": 1,
708
+ "failCount": 1,
709
+ "lastSeen": "2026-03-20T19:11:16.577Z",
710
+ "lastVerified": "2026-03-20T19:11:16.577Z"
711
+ },
712
+ "select_tool": {
713
+ "depth": 3,
714
+ "confidence": 0.85,
715
+ "repeatCount": 32,
716
+ "workflowCount": 29,
717
+ "healingCount": 2,
718
+ "failCount": 2,
719
+ "lastSeen": "2026-03-20T14:08:22.289Z",
720
+ "lastVerified": null
721
+ },
722
+ "open_main_menu": {
723
+ "depth": 4,
724
+ "confidence": 1,
725
+ "repeatCount": 37,
726
+ "workflowCount": 34,
727
+ "healingCount": 2,
728
+ "failCount": 2,
729
+ "lastSeen": "2026-03-20T19:11:16.577Z",
730
+ "lastVerified": "2026-03-20T19:11:16.577Z"
731
+ },
732
+ "switch_design_prototype_tab": {
733
+ "depth": 3,
734
+ "confidence": 0.85,
735
+ "repeatCount": 32,
736
+ "workflowCount": 29,
737
+ "healingCount": 2,
738
+ "failCount": 2,
739
+ "lastSeen": "2026-03-20T14:08:22.289Z",
740
+ "lastVerified": null
741
+ },
742
+ "navigate_back_to_files": {
743
+ "depth": 3,
744
+ "confidence": 0.85,
745
+ "repeatCount": 32,
746
+ "workflowCount": 29,
747
+ "healingCount": 2,
748
+ "failCount": 2,
749
+ "lastSeen": "2026-03-20T14:08:22.289Z",
750
+ "lastVerified": null
751
+ },
752
+ "present_prototype": {
753
+ "depth": 3,
754
+ "confidence": 0.85,
755
+ "repeatCount": 32,
756
+ "workflowCount": 29,
757
+ "healingCount": 2,
758
+ "failCount": 2,
759
+ "lastSeen": "2026-03-20T14:08:22.289Z",
760
+ "lastVerified": null
761
+ },
762
+ "share_dialog": {
763
+ "depth": 4,
764
+ "confidence": 1,
765
+ "repeatCount": 34,
766
+ "workflowCount": 31,
767
+ "healingCount": 2,
768
+ "failCount": 2,
769
+ "lastSeen": "2026-03-20T19:11:16.578Z",
770
+ "lastVerified": "2026-03-20T19:11:16.578Z"
771
+ },
772
+ "other": {
773
+ "depth": 3,
774
+ "confidence": 0.85,
775
+ "repeatCount": 13,
776
+ "workflowCount": 10,
777
+ "healingCount": 1,
778
+ "failCount": 1,
779
+ "lastSeen": "2026-03-20T14:08:12.550Z",
780
+ "lastVerified": null
781
+ },
782
+ "create_new_file": {
783
+ "depth": 4,
784
+ "confidence": 1,
785
+ "repeatCount": 36,
786
+ "workflowCount": 33,
787
+ "healingCount": 2,
788
+ "failCount": 2,
789
+ "lastSeen": "2026-03-20T19:11:16.578Z",
790
+ "lastVerified": "2026-03-20T19:11:16.578Z"
791
+ },
792
+ "prototype_connections": {
793
+ "depth": 3,
794
+ "confidence": 0.85,
795
+ "repeatCount": 32,
796
+ "workflowCount": 29,
797
+ "healingCount": 2,
798
+ "failCount": 2,
799
+ "lastSeen": "2026-03-20T14:08:22.289Z",
800
+ "lastVerified": null
801
+ },
802
+ "create_shape": {
803
+ "depth": 3,
804
+ "confidence": 0.85,
805
+ "repeatCount": 32,
806
+ "workflowCount": 29,
807
+ "healingCount": 2,
808
+ "failCount": 2,
809
+ "lastSeen": "2026-03-20T14:08:22.290Z",
810
+ "lastVerified": null
811
+ },
812
+ "file_browser": {
813
+ "depth": 4,
814
+ "confidence": 1,
815
+ "repeatCount": 36,
816
+ "workflowCount": 33,
817
+ "healingCount": 2,
818
+ "failCount": 2,
819
+ "lastSeen": "2026-03-20T19:11:16.578Z",
820
+ "lastVerified": "2026-03-20T19:11:16.578Z"
821
+ },
822
+ "left_panel": {
823
+ "depth": 4,
824
+ "confidence": 1,
825
+ "repeatCount": 10,
826
+ "workflowCount": 7,
827
+ "healingCount": 1,
828
+ "failCount": 1,
829
+ "lastSeen": "2026-03-20T19:11:16.579Z",
830
+ "lastVerified": "2026-03-20T19:11:16.579Z"
831
+ },
832
+ "design_tokens": {
833
+ "depth": 4,
834
+ "confidence": 1,
835
+ "repeatCount": 26,
836
+ "workflowCount": 23,
837
+ "healingCount": 1,
838
+ "failCount": 1,
839
+ "lastSeen": "2026-03-20T19:11:16.579Z",
840
+ "lastVerified": "2026-03-20T19:11:16.579Z"
841
+ },
842
+ "properties_panel": {
843
+ "depth": 3,
844
+ "confidence": 0.85,
845
+ "repeatCount": 34,
846
+ "workflowCount": 31,
847
+ "healingCount": 1,
848
+ "failCount": 1,
849
+ "lastSeen": "2026-03-20T14:08:22.290Z",
850
+ "lastVerified": null
851
+ },
852
+ "text_range_styles": {
853
+ "depth": 3,
854
+ "confidence": 0.85,
855
+ "repeatCount": 33,
856
+ "workflowCount": 30,
857
+ "healingCount": 1,
858
+ "failCount": 1,
859
+ "lastSeen": "2026-03-20T14:08:22.290Z",
860
+ "lastVerified": null
861
+ },
862
+ "export": {
863
+ "depth": 2,
864
+ "confidence": 0.56,
865
+ "repeatCount": 2,
866
+ "workflowCount": 0,
867
+ "healingCount": 0,
868
+ "failCount": 0,
869
+ "lastSeen": "2026-03-20T14:01:54.514Z",
870
+ "lastVerified": null
871
+ },
872
+ "actions_panel": {
873
+ "depth": 1,
874
+ "confidence": 0.28,
875
+ "repeatCount": 1,
876
+ "workflowCount": 0,
877
+ "healingCount": 0,
878
+ "failCount": 0,
879
+ "lastSeen": "2026-03-20T14:01:35.124Z",
880
+ "lastVerified": null
881
+ },
882
+ "select_layer": {
883
+ "depth": 3,
884
+ "confidence": 0.85,
885
+ "repeatCount": 20,
886
+ "workflowCount": 17,
887
+ "healingCount": 1,
888
+ "failCount": 1,
889
+ "lastSeen": "2026-03-20T14:08:22.290Z",
890
+ "lastVerified": null
891
+ },
892
+ "parallax_effect": {
893
+ "depth": 2,
894
+ "confidence": 0.56,
895
+ "repeatCount": 2,
896
+ "workflowCount": 0,
897
+ "healingCount": 0,
898
+ "failCount": 0,
899
+ "lastSeen": "2026-03-20T14:07:48.791Z",
900
+ "lastVerified": null
901
+ },
902
+ "toolbar": {
903
+ "depth": 3,
904
+ "confidence": 0.85,
905
+ "repeatCount": 20,
906
+ "workflowCount": 17,
907
+ "healingCount": 1,
908
+ "failCount": 1,
909
+ "lastSeen": "2026-03-20T14:08:22.290Z",
910
+ "lastVerified": null
911
+ },
912
+ "effects_and_glassmorphism": {
913
+ "depth": 2,
914
+ "confidence": 0.56,
915
+ "repeatCount": 2,
916
+ "workflowCount": 0,
917
+ "healingCount": 0,
918
+ "failCount": 0,
919
+ "lastSeen": "2026-03-20T14:07:48.791Z",
920
+ "lastVerified": null
921
+ },
922
+ "image_fills": {
923
+ "depth": 3,
924
+ "confidence": 0.85,
925
+ "repeatCount": 20,
926
+ "workflowCount": 17,
927
+ "healingCount": 1,
928
+ "failCount": 1,
929
+ "lastSeen": "2026-03-20T14:08:22.290Z",
930
+ "lastVerified": null
931
+ },
932
+ "variables": {
933
+ "depth": 2,
934
+ "confidence": 0.53,
935
+ "repeatCount": 1,
936
+ "workflowCount": 0,
937
+ "healingCount": 0,
938
+ "failCount": 0,
939
+ "lastSeen": "2026-03-20T14:01:53.348Z",
940
+ "lastVerified": null
941
+ }
942
+ },
943
+ "masteryMetrics": {
944
+ "breadth": 0.6875,
945
+ "workflowBreadth": 0.5625,
946
+ "outcomeBreadth": 0.2916666666666667,
947
+ "reliability": 0.9702338766832034,
948
+ "healingRate": 1,
949
+ "crossFeatureWorkflows": 19,
950
+ "criticalFloor": 0,
951
+ "weightedScore": 48.07000000000001
952
+ },
953
+ "crossFeatureWorkflows": 19,
954
+ "actionSuccessCount": 204,
955
+ "actionFailCount": 5,
956
+ "shortcutsUsed": 117,
957
+ "playbooksExported": 10,
958
+ "edgeCasesHandled": 57
959
+ }