cbrowser 16.5.0 → 16.7.1
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/README.md +25 -4
- package/dist/cli.js +169 -0
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +119 -0
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +119 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/persona-questionnaire.d.ts +74 -0
- package/dist/persona-questionnaire.d.ts.map +1 -0
- package/dist/persona-questionnaire.js +1629 -0
- package/dist/persona-questionnaire.js.map +1 -0
- package/docs/GETTING-STARTED.md +226 -0
- package/docs/MCP-INTEGRATION.md +295 -0
- package/docs/PERSONA-QUESTIONNAIRE.md +322 -0
- package/docs/README.md +74 -0
- package/examples/persona-questionnaire.ts +219 -0
- package/package.json +1 -1
|
@@ -0,0 +1,1629 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CBrowser - Cognitive Browser Automation
|
|
3
|
+
*
|
|
4
|
+
* Persona Questionnaire System
|
|
5
|
+
* Research-based behavioral trait mapping for custom persona generation
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2026 WF Media (Alexandria Eden)
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Complete research-backed trait reference matrix.
|
|
11
|
+
* Each trait has 5 levels (0, 0.25, 0.5, 0.75, 1.0) with specific behaviors.
|
|
12
|
+
*/
|
|
13
|
+
export const TRAIT_REFERENCE_MATRIX = [
|
|
14
|
+
{
|
|
15
|
+
name: "patience",
|
|
16
|
+
description: "How long before giving up on a task",
|
|
17
|
+
researchBasis: "Nielsen Norman Group (2011) - Task abandonment studies",
|
|
18
|
+
levels: [
|
|
19
|
+
{
|
|
20
|
+
value: 0.0,
|
|
21
|
+
label: "Extremely Impatient",
|
|
22
|
+
behaviors: [
|
|
23
|
+
"Abandons after 3-5 seconds of confusion",
|
|
24
|
+
"Clicks back immediately if page doesn't load in 2s",
|
|
25
|
+
"Never scrolls below the fold",
|
|
26
|
+
"Rage-clicks when frustrated",
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
value: 0.25,
|
|
31
|
+
label: "Impatient",
|
|
32
|
+
behaviors: [
|
|
33
|
+
"Gives up after 10-15 seconds of confusion",
|
|
34
|
+
"Skips all instructions and tutorials",
|
|
35
|
+
"Opens multiple tabs and abandons slow ones",
|
|
36
|
+
"Frustrated by any loading indicators",
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
value: 0.5,
|
|
41
|
+
label: "Moderate Patience",
|
|
42
|
+
behaviors: [
|
|
43
|
+
"Will spend 30-60 seconds trying to solve a problem",
|
|
44
|
+
"Reads headlines but skims body text",
|
|
45
|
+
"Waits for pages up to 5 seconds",
|
|
46
|
+
"Tries 2-3 approaches before giving up",
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
value: 0.75,
|
|
51
|
+
label: "Patient",
|
|
52
|
+
behaviors: [
|
|
53
|
+
"Spends 2-3 minutes on confusing tasks",
|
|
54
|
+
"Reads error messages carefully",
|
|
55
|
+
"Explores help documentation",
|
|
56
|
+
"Tries multiple approaches systematically",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
value: 1.0,
|
|
61
|
+
label: "Extremely Patient",
|
|
62
|
+
behaviors: [
|
|
63
|
+
"Will persist for 5+ minutes on difficult tasks",
|
|
64
|
+
"Reads all instructions before starting",
|
|
65
|
+
"Waits through long loading times without frustration",
|
|
66
|
+
"Exhaustively explores all options",
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: "riskTolerance",
|
|
73
|
+
description: "Willingness to click unfamiliar or uncertain elements",
|
|
74
|
+
researchBasis: "Kahneman & Tversky (1979) - Prospect Theory; Fogg (2003) - Persuasive Technology",
|
|
75
|
+
levels: [
|
|
76
|
+
{
|
|
77
|
+
value: 0.0,
|
|
78
|
+
label: "Extremely Risk-Averse",
|
|
79
|
+
behaviors: [
|
|
80
|
+
"Only clicks elements they've used before",
|
|
81
|
+
"Never enters personal information without extensive research",
|
|
82
|
+
"Avoids all pop-ups and modals",
|
|
83
|
+
"Won't click any CTA without reading fine print",
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
value: 0.25,
|
|
88
|
+
label: "Risk-Averse",
|
|
89
|
+
behaviors: [
|
|
90
|
+
"Hesitates before clicking unfamiliar buttons",
|
|
91
|
+
"Checks URL security indicators frequently",
|
|
92
|
+
"Prefers well-known brands and sites",
|
|
93
|
+
"Reads privacy policies and terms",
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
value: 0.5,
|
|
98
|
+
label: "Moderate Risk Tolerance",
|
|
99
|
+
behaviors: [
|
|
100
|
+
"Clicks CTAs from reputable-looking sites",
|
|
101
|
+
"Willing to try new features if clearly labeled",
|
|
102
|
+
"Provides information for clear value exchange",
|
|
103
|
+
"Balances caution with convenience",
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
value: 0.75,
|
|
108
|
+
label: "Risk-Tolerant",
|
|
109
|
+
behaviors: [
|
|
110
|
+
"Clicks most CTAs without hesitation",
|
|
111
|
+
"Explores beta features and new tools",
|
|
112
|
+
"Shares information freely for convenience",
|
|
113
|
+
"Dismisses security warnings casually",
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
value: 1.0,
|
|
118
|
+
label: "Extremely Risk-Tolerant",
|
|
119
|
+
behaviors: [
|
|
120
|
+
"Clicks anything that looks interesting",
|
|
121
|
+
"Ignores all security warnings",
|
|
122
|
+
"Provides any information requested",
|
|
123
|
+
"First to try experimental features",
|
|
124
|
+
],
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "comprehension",
|
|
130
|
+
description: "Ability to understand UI conventions and patterns",
|
|
131
|
+
researchBasis: "Nielsen (2010) - Mental Models; Carroll (1990) - Minimal Manual",
|
|
132
|
+
levels: [
|
|
133
|
+
{
|
|
134
|
+
value: 0.0,
|
|
135
|
+
label: "Struggles Significantly",
|
|
136
|
+
behaviors: [
|
|
137
|
+
"Doesn't recognize standard UI patterns (hamburger menu, search icon)",
|
|
138
|
+
"Confused by tabs, accordions, dropdowns",
|
|
139
|
+
"Types URLs in search boxes",
|
|
140
|
+
"Clicks logos expecting navigation",
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
value: 0.25,
|
|
145
|
+
label: "Below Average Comprehension",
|
|
146
|
+
behaviors: [
|
|
147
|
+
"Recognizes basic patterns but struggles with variations",
|
|
148
|
+
"Needs labels for icons to understand function",
|
|
149
|
+
"Confused by nested menus",
|
|
150
|
+
"Misinterprets form validation messages",
|
|
151
|
+
],
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
value: 0.5,
|
|
155
|
+
label: "Average Comprehension",
|
|
156
|
+
behaviors: [
|
|
157
|
+
"Understands most common UI patterns",
|
|
158
|
+
"Can navigate standard sites without help",
|
|
159
|
+
"Sometimes confused by unconventional designs",
|
|
160
|
+
"Needs help with complex multi-step flows",
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
value: 0.75,
|
|
165
|
+
label: "Good Comprehension",
|
|
166
|
+
behaviors: [
|
|
167
|
+
"Quickly understands new interface patterns",
|
|
168
|
+
"Predicts where features will be located",
|
|
169
|
+
"Adapts easily to different design systems",
|
|
170
|
+
"Rarely needs help or documentation",
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
value: 1.0,
|
|
175
|
+
label: "Expert Comprehension",
|
|
176
|
+
behaviors: [
|
|
177
|
+
"Instantly grasps any UI pattern",
|
|
178
|
+
"Predicts hidden features and shortcuts",
|
|
179
|
+
"Notices subtle UX patterns others miss",
|
|
180
|
+
"Can use any interface without instruction",
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: "persistence",
|
|
187
|
+
description: "Tendency to retry the same approach vs. try alternatives",
|
|
188
|
+
researchBasis: "Duckworth (2016) - Grit; Dweck (2006) - Growth Mindset",
|
|
189
|
+
levels: [
|
|
190
|
+
{
|
|
191
|
+
value: 0.0,
|
|
192
|
+
label: "Gives Up Immediately",
|
|
193
|
+
behaviors: [
|
|
194
|
+
"Abandons task on first failure",
|
|
195
|
+
"Never retries failed actions",
|
|
196
|
+
"Assumes errors are permanent",
|
|
197
|
+
"Seeks help instead of trying again",
|
|
198
|
+
],
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
value: 0.25,
|
|
202
|
+
label: "Low Persistence",
|
|
203
|
+
behaviors: [
|
|
204
|
+
"Tries once more, then gives up",
|
|
205
|
+
"Easily discouraged by error messages",
|
|
206
|
+
"Quickly moves to alternatives",
|
|
207
|
+
"Rarely waits for delayed results",
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
value: 0.5,
|
|
212
|
+
label: "Moderate Persistence",
|
|
213
|
+
behaviors: [
|
|
214
|
+
"Retries 2-3 times with same approach",
|
|
215
|
+
"Willing to try one or two alternatives",
|
|
216
|
+
"Balances persistence with pragmatism",
|
|
217
|
+
"Knows when to ask for help",
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
value: 0.75,
|
|
222
|
+
label: "High Persistence",
|
|
223
|
+
behaviors: [
|
|
224
|
+
"Keeps trying same approach 4-5 times",
|
|
225
|
+
"Believes problems are solvable",
|
|
226
|
+
"Varies approach slightly each retry",
|
|
227
|
+
"Rarely abandons without multiple attempts",
|
|
228
|
+
],
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
value: 1.0,
|
|
232
|
+
label: "Extremely Persistent",
|
|
233
|
+
behaviors: [
|
|
234
|
+
"Will retry indefinitely until success",
|
|
235
|
+
"Never changes approach despite failures",
|
|
236
|
+
"Convinced their method should work",
|
|
237
|
+
"May miss obvious alternative solutions",
|
|
238
|
+
],
|
|
239
|
+
},
|
|
240
|
+
],
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: "curiosity",
|
|
244
|
+
description: "Tendency to explore vs. stay focused on goal",
|
|
245
|
+
researchBasis: "Kashdan (2004) - Curiosity and Exploration Inventory",
|
|
246
|
+
levels: [
|
|
247
|
+
{
|
|
248
|
+
value: 0.0,
|
|
249
|
+
label: "Tunnel Vision",
|
|
250
|
+
behaviors: [
|
|
251
|
+
"Never deviates from primary goal",
|
|
252
|
+
"Ignores all non-essential elements",
|
|
253
|
+
"Frustrated by distractions",
|
|
254
|
+
"Uses sites purely transactionally",
|
|
255
|
+
],
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
value: 0.25,
|
|
259
|
+
label: "Goal-Focused",
|
|
260
|
+
behaviors: [
|
|
261
|
+
"Occasionally notices interesting elements",
|
|
262
|
+
"Stays focused but may bookmark for later",
|
|
263
|
+
"Prefers efficient, direct paths",
|
|
264
|
+
"Explores only when goal is complete",
|
|
265
|
+
],
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
value: 0.5,
|
|
269
|
+
label: "Balanced Explorer",
|
|
270
|
+
behaviors: [
|
|
271
|
+
"Explores within reason while pursuing goals",
|
|
272
|
+
"Clicks interesting links if convenient",
|
|
273
|
+
"Balances task completion with discovery",
|
|
274
|
+
"Sometimes gets sidetracked but returns",
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
value: 0.75,
|
|
279
|
+
label: "Curious",
|
|
280
|
+
behaviors: [
|
|
281
|
+
"Frequently explores tangential content",
|
|
282
|
+
"Opens many tabs for later reading",
|
|
283
|
+
"Enjoys discovering new features",
|
|
284
|
+
"Often takes scenic routes to goals",
|
|
285
|
+
],
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
value: 1.0,
|
|
289
|
+
label: "Extremely Curious",
|
|
290
|
+
behaviors: [
|
|
291
|
+
"Constantly distracted by interesting content",
|
|
292
|
+
"Forgets original task while exploring",
|
|
293
|
+
"Opens dozens of tabs",
|
|
294
|
+
"Values discovery over task completion",
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
name: "workingMemory",
|
|
301
|
+
description: "Ability to remember what they've tried and where they are",
|
|
302
|
+
researchBasis: "Baddeley (2000) - Working Memory Model; Miller (1956) - 7±2 Chunks",
|
|
303
|
+
levels: [
|
|
304
|
+
{
|
|
305
|
+
value: 0.0,
|
|
306
|
+
label: "Very Poor Working Memory",
|
|
307
|
+
behaviors: [
|
|
308
|
+
"Forgets what they just tried",
|
|
309
|
+
"Repeats same failed actions",
|
|
310
|
+
"Loses track of position in multi-step flows",
|
|
311
|
+
"Can't remember form values between pages",
|
|
312
|
+
],
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
value: 0.25,
|
|
316
|
+
label: "Below Average",
|
|
317
|
+
behaviors: [
|
|
318
|
+
"Sometimes repeats failed attempts",
|
|
319
|
+
"Needs visual indicators of progress",
|
|
320
|
+
"Struggles with long multi-step processes",
|
|
321
|
+
"Benefits from save-and-continue features",
|
|
322
|
+
],
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
value: 0.5,
|
|
326
|
+
label: "Average Working Memory",
|
|
327
|
+
behaviors: [
|
|
328
|
+
"Remembers most recent attempts",
|
|
329
|
+
"Can handle 3-4 step processes",
|
|
330
|
+
"Occasionally forgets earlier decisions",
|
|
331
|
+
"Uses browser back button to retrace steps",
|
|
332
|
+
],
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
value: 0.75,
|
|
336
|
+
label: "Good Working Memory",
|
|
337
|
+
behaviors: [
|
|
338
|
+
"Tracks multiple parallel tasks",
|
|
339
|
+
"Remembers all attempted solutions",
|
|
340
|
+
"Comfortable with 5-7 step processes",
|
|
341
|
+
"Rarely needs progress indicators",
|
|
342
|
+
],
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
value: 1.0,
|
|
346
|
+
label: "Excellent Working Memory",
|
|
347
|
+
behaviors: [
|
|
348
|
+
"Perfect recall of all attempts",
|
|
349
|
+
"Tracks complex state across sessions",
|
|
350
|
+
"Handles 10+ step processes easily",
|
|
351
|
+
"Never repeats failed actions",
|
|
352
|
+
],
|
|
353
|
+
},
|
|
354
|
+
],
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
name: "readingTendency",
|
|
358
|
+
description: "How much text content is actually read vs. scanned",
|
|
359
|
+
researchBasis: "Nielsen (2006) - F-Pattern; Pernice (2017) - How People Read Online",
|
|
360
|
+
levels: [
|
|
361
|
+
{
|
|
362
|
+
value: 0.0,
|
|
363
|
+
label: "Pure Visual Scanner",
|
|
364
|
+
behaviors: [
|
|
365
|
+
"Never reads any text",
|
|
366
|
+
"Looks only for buttons and images",
|
|
367
|
+
"Ignores all instructions and labels",
|
|
368
|
+
"Clicks based on visual prominence only",
|
|
369
|
+
],
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
value: 0.25,
|
|
373
|
+
label: "Heavy Skimmer",
|
|
374
|
+
behaviors: [
|
|
375
|
+
"Reads only headlines and CTAs",
|
|
376
|
+
"Skims first few words of paragraphs",
|
|
377
|
+
"Ignores body text entirely",
|
|
378
|
+
"Relies on visual hierarchy for meaning",
|
|
379
|
+
],
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
value: 0.5,
|
|
383
|
+
label: "Moderate Reader",
|
|
384
|
+
behaviors: [
|
|
385
|
+
"Reads important-looking text",
|
|
386
|
+
"Skims but catches key points",
|
|
387
|
+
"Reads error messages and warnings",
|
|
388
|
+
"Scans before committing to reading",
|
|
389
|
+
],
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
value: 0.75,
|
|
393
|
+
label: "Thorough Reader",
|
|
394
|
+
behaviors: [
|
|
395
|
+
"Reads most visible content",
|
|
396
|
+
"Takes time to understand context",
|
|
397
|
+
"Reads help text and tooltips",
|
|
398
|
+
"Rarely misses important information",
|
|
399
|
+
],
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
value: 1.0,
|
|
403
|
+
label: "Complete Reader",
|
|
404
|
+
behaviors: [
|
|
405
|
+
"Reads every word on the page",
|
|
406
|
+
"Reads terms and conditions",
|
|
407
|
+
"Expands all collapsible content",
|
|
408
|
+
"Never clicks without reading first",
|
|
409
|
+
],
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
name: "resilience",
|
|
415
|
+
description: "Ability to recover emotionally from setbacks and errors",
|
|
416
|
+
researchBasis: "Smith et al. (2008) - Brief Resilience Scale; Connor-Davidson (2003) - CD-RISC",
|
|
417
|
+
levels: [
|
|
418
|
+
{
|
|
419
|
+
value: 0.0,
|
|
420
|
+
label: "Very Low Resilience",
|
|
421
|
+
behaviors: [
|
|
422
|
+
"One error causes complete abandonment",
|
|
423
|
+
"Frustration persists across sessions",
|
|
424
|
+
"Associates site with negative emotions",
|
|
425
|
+
"Won't retry failed sites for days/weeks",
|
|
426
|
+
],
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
value: 0.25,
|
|
430
|
+
label: "Low Resilience",
|
|
431
|
+
behaviors: [
|
|
432
|
+
"Errors cause lasting frustration",
|
|
433
|
+
"Needs breaks after setbacks",
|
|
434
|
+
"Recovery takes several minutes",
|
|
435
|
+
"Multiple errors cause abandonment",
|
|
436
|
+
],
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
value: 0.5,
|
|
440
|
+
label: "Moderate Resilience",
|
|
441
|
+
behaviors: [
|
|
442
|
+
"Frustrated briefly by errors",
|
|
443
|
+
"Recovers within a minute",
|
|
444
|
+
"Can continue after a few setbacks",
|
|
445
|
+
"Persistent problems cause abandonment",
|
|
446
|
+
],
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
value: 0.75,
|
|
450
|
+
label: "High Resilience",
|
|
451
|
+
behaviors: [
|
|
452
|
+
"Shrugs off most errors quickly",
|
|
453
|
+
"Treats failures as learning opportunities",
|
|
454
|
+
"Maintains positive attitude through problems",
|
|
455
|
+
"Rarely abandons due to frustration",
|
|
456
|
+
],
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
value: 1.0,
|
|
460
|
+
label: "Extremely High Resilience",
|
|
461
|
+
behaviors: [
|
|
462
|
+
"Errors don't affect emotional state",
|
|
463
|
+
"Instantly refocuses after failures",
|
|
464
|
+
"Views all setbacks as temporary",
|
|
465
|
+
"Never abandons due to frustration alone",
|
|
466
|
+
],
|
|
467
|
+
},
|
|
468
|
+
],
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
name: "selfEfficacy",
|
|
472
|
+
description: "Belief in ability to solve interface problems",
|
|
473
|
+
researchBasis: "Bandura (1977) - Self-Efficacy Theory; Compeau & Higgins (1995)",
|
|
474
|
+
levels: [
|
|
475
|
+
{
|
|
476
|
+
value: 0.0,
|
|
477
|
+
label: "Very Low Self-Efficacy",
|
|
478
|
+
behaviors: [
|
|
479
|
+
"Assumes they can't figure things out",
|
|
480
|
+
"Seeks help immediately on any confusion",
|
|
481
|
+
"Blames self for all interface problems",
|
|
482
|
+
"Avoids unfamiliar features entirely",
|
|
483
|
+
],
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
value: 0.25,
|
|
487
|
+
label: "Low Self-Efficacy",
|
|
488
|
+
behaviors: [
|
|
489
|
+
"Doubts ability to solve problems",
|
|
490
|
+
"Quick to ask for help",
|
|
491
|
+
"Attributes success to luck",
|
|
492
|
+
"Avoids complex features",
|
|
493
|
+
],
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
value: 0.5,
|
|
497
|
+
label: "Moderate Self-Efficacy",
|
|
498
|
+
behaviors: [
|
|
499
|
+
"Believes they can solve most problems",
|
|
500
|
+
"Tries before asking for help",
|
|
501
|
+
"Balanced attribution of success/failure",
|
|
502
|
+
"Willing to attempt new features",
|
|
503
|
+
],
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
value: 0.75,
|
|
507
|
+
label: "High Self-Efficacy",
|
|
508
|
+
behaviors: [
|
|
509
|
+
"Confident in problem-solving ability",
|
|
510
|
+
"Rarely needs external help",
|
|
511
|
+
"Attributes success to skill",
|
|
512
|
+
"Embraces challenging features",
|
|
513
|
+
],
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
value: 1.0,
|
|
517
|
+
label: "Very High Self-Efficacy",
|
|
518
|
+
behaviors: [
|
|
519
|
+
"Absolutely confident in ability",
|
|
520
|
+
"Never seeks help, always self-solves",
|
|
521
|
+
"May underestimate problem difficulty",
|
|
522
|
+
"Attempts anything without hesitation",
|
|
523
|
+
],
|
|
524
|
+
},
|
|
525
|
+
],
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
name: "satisficing",
|
|
529
|
+
description: "Decision style: accept 'good enough' vs. seek optimal",
|
|
530
|
+
researchBasis: "Simon (1956) - Bounded Rationality; Schwartz (2002) - Maximizing vs Satisficing",
|
|
531
|
+
levels: [
|
|
532
|
+
{
|
|
533
|
+
value: 0.0,
|
|
534
|
+
label: "Extreme Maximizer",
|
|
535
|
+
behaviors: [
|
|
536
|
+
"Must find the absolute best option",
|
|
537
|
+
"Compares all available alternatives",
|
|
538
|
+
"Experiences choice paralysis with many options",
|
|
539
|
+
"Often regrets decisions, wonders 'what if'",
|
|
540
|
+
],
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
value: 0.25,
|
|
544
|
+
label: "Maximizer",
|
|
545
|
+
behaviors: [
|
|
546
|
+
"Seeks best option within reason",
|
|
547
|
+
"Compares multiple alternatives",
|
|
548
|
+
"Struggles with too many choices",
|
|
549
|
+
"Sometimes second-guesses decisions",
|
|
550
|
+
],
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
value: 0.5,
|
|
554
|
+
label: "Balanced Decision Style",
|
|
555
|
+
behaviors: [
|
|
556
|
+
"Compares a few options then decides",
|
|
557
|
+
"Balances optimization with efficiency",
|
|
558
|
+
"Comfortable with 'good enough'",
|
|
559
|
+
"Occasionally optimizes for important decisions",
|
|
560
|
+
],
|
|
561
|
+
},
|
|
562
|
+
{
|
|
563
|
+
value: 0.75,
|
|
564
|
+
label: "Satisficer",
|
|
565
|
+
behaviors: [
|
|
566
|
+
"Accepts first option meeting criteria",
|
|
567
|
+
"Decides quickly without comparison",
|
|
568
|
+
"Rarely second-guesses choices",
|
|
569
|
+
"Prioritizes speed over optimization",
|
|
570
|
+
],
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
value: 1.0,
|
|
574
|
+
label: "Extreme Satisficer",
|
|
575
|
+
behaviors: [
|
|
576
|
+
"Takes first available option",
|
|
577
|
+
"Never compares alternatives",
|
|
578
|
+
"Decides instantly without deliberation",
|
|
579
|
+
"May miss better options due to speed",
|
|
580
|
+
],
|
|
581
|
+
},
|
|
582
|
+
],
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
name: "trustCalibration",
|
|
586
|
+
description: "Baseline trust toward websites and requests",
|
|
587
|
+
researchBasis: "Fogg (2003) - Persuasive Technology; Riegelsberger (2005)",
|
|
588
|
+
levels: [
|
|
589
|
+
{
|
|
590
|
+
value: 0.0,
|
|
591
|
+
label: "Highly Skeptical",
|
|
592
|
+
behaviors: [
|
|
593
|
+
"Assumes all sites are potentially malicious",
|
|
594
|
+
"Never provides real personal information",
|
|
595
|
+
"Uses fake emails and disposable cards",
|
|
596
|
+
"Scrutinizes every request for data",
|
|
597
|
+
],
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
value: 0.25,
|
|
601
|
+
label: "Skeptical",
|
|
602
|
+
behaviors: [
|
|
603
|
+
"Suspicious of most requests",
|
|
604
|
+
"Verifies site legitimacy before engaging",
|
|
605
|
+
"Limits information sharing",
|
|
606
|
+
"Prefers well-known brands",
|
|
607
|
+
],
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
value: 0.5,
|
|
611
|
+
label: "Moderate Trust",
|
|
612
|
+
behaviors: [
|
|
613
|
+
"Trusts reputable-looking sites",
|
|
614
|
+
"Provides information for clear value",
|
|
615
|
+
"Checks for security indicators",
|
|
616
|
+
"Reasonable caution without paranoia",
|
|
617
|
+
],
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
value: 0.75,
|
|
621
|
+
label: "Trusting",
|
|
622
|
+
behaviors: [
|
|
623
|
+
"Generally trusts professional sites",
|
|
624
|
+
"Provides information readily",
|
|
625
|
+
"Doesn't scrutinize requests closely",
|
|
626
|
+
"Assumes good intent from businesses",
|
|
627
|
+
],
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
value: 1.0,
|
|
631
|
+
label: "Highly Trusting",
|
|
632
|
+
behaviors: [
|
|
633
|
+
"Trusts almost any site or request",
|
|
634
|
+
"Provides any information asked",
|
|
635
|
+
"Ignores security warnings",
|
|
636
|
+
"Doesn't verify legitimacy",
|
|
637
|
+
],
|
|
638
|
+
},
|
|
639
|
+
],
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
name: "interruptRecovery",
|
|
643
|
+
description: "Ability to resume tasks after interruption",
|
|
644
|
+
researchBasis: "Mark et al. (2005) - Average 23min recovery; Altmann & Trafton (2002)",
|
|
645
|
+
levels: [
|
|
646
|
+
{
|
|
647
|
+
value: 0.0,
|
|
648
|
+
label: "Very Poor Recovery",
|
|
649
|
+
behaviors: [
|
|
650
|
+
"Completely loses track after any interruption",
|
|
651
|
+
"Must restart task from beginning",
|
|
652
|
+
"Can't remember what they were doing",
|
|
653
|
+
"Abandons interrupted tasks frequently",
|
|
654
|
+
],
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
value: 0.25,
|
|
658
|
+
label: "Poor Recovery",
|
|
659
|
+
behaviors: [
|
|
660
|
+
"Struggles to resume after interruption",
|
|
661
|
+
"Takes 5+ minutes to reorient",
|
|
662
|
+
"Often repeats completed steps",
|
|
663
|
+
"Benefits greatly from progress indicators",
|
|
664
|
+
],
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
value: 0.5,
|
|
668
|
+
label: "Moderate Recovery",
|
|
669
|
+
behaviors: [
|
|
670
|
+
"Can resume with some effort",
|
|
671
|
+
"Takes 1-2 minutes to reorient",
|
|
672
|
+
"Uses environmental cues to remember",
|
|
673
|
+
"Occasional backtracking after interruption",
|
|
674
|
+
],
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
value: 0.75,
|
|
678
|
+
label: "Good Recovery",
|
|
679
|
+
behaviors: [
|
|
680
|
+
"Quickly resumes interrupted tasks",
|
|
681
|
+
"Remembers exact state before interruption",
|
|
682
|
+
"Uses mental bookmarks effectively",
|
|
683
|
+
"Rarely loses progress to interruptions",
|
|
684
|
+
],
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
value: 1.0,
|
|
688
|
+
label: "Excellent Recovery",
|
|
689
|
+
behaviors: [
|
|
690
|
+
"Seamlessly resumes any interrupted task",
|
|
691
|
+
"Perfect recall of state before interruption",
|
|
692
|
+
"Handles frequent interruptions easily",
|
|
693
|
+
"Never loses progress or context",
|
|
694
|
+
],
|
|
695
|
+
},
|
|
696
|
+
],
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
name: "informationForaging",
|
|
700
|
+
description: "Strategy for finding information: exhaustive search vs. scent-following",
|
|
701
|
+
researchBasis: "Pirolli & Card (1999) - Information Foraging Theory",
|
|
702
|
+
levels: [
|
|
703
|
+
{
|
|
704
|
+
value: 0.0,
|
|
705
|
+
label: "Exhaustive Search",
|
|
706
|
+
behaviors: [
|
|
707
|
+
"Systematically examines every option",
|
|
708
|
+
"Doesn't skip any section or link",
|
|
709
|
+
"Reads all content before deciding",
|
|
710
|
+
"Very slow but thorough exploration",
|
|
711
|
+
],
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
value: 0.25,
|
|
715
|
+
label: "Methodical Search",
|
|
716
|
+
behaviors: [
|
|
717
|
+
"Explores most options systematically",
|
|
718
|
+
"Follows some information scent",
|
|
719
|
+
"Reads section headings before diving in",
|
|
720
|
+
"Balances thoroughness with efficiency",
|
|
721
|
+
],
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
value: 0.5,
|
|
725
|
+
label: "Balanced Foraging",
|
|
726
|
+
behaviors: [
|
|
727
|
+
"Follows strong information scent",
|
|
728
|
+
"Explores promising paths first",
|
|
729
|
+
"Backtracks if scent goes cold",
|
|
730
|
+
"Moderate exploration efficiency",
|
|
731
|
+
],
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
value: 0.75,
|
|
735
|
+
label: "Efficient Foraging",
|
|
736
|
+
behaviors: [
|
|
737
|
+
"Quickly follows information scent",
|
|
738
|
+
"Skips low-scent areas",
|
|
739
|
+
"Makes rapid relevance judgments",
|
|
740
|
+
"Rarely backtracks unnecessarily",
|
|
741
|
+
],
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
value: 1.0,
|
|
745
|
+
label: "Expert Foraging",
|
|
746
|
+
behaviors: [
|
|
747
|
+
"Instantly identifies strongest scent",
|
|
748
|
+
"Extremely efficient path-finding",
|
|
749
|
+
"Never explores dead ends",
|
|
750
|
+
"May miss information off main scent trail",
|
|
751
|
+
],
|
|
752
|
+
},
|
|
753
|
+
],
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
name: "changeBlindness",
|
|
757
|
+
description: "Tendency to miss changes in peripheral areas",
|
|
758
|
+
researchBasis: "Simons & Rensink (2005) - Change Blindness; Inattentional Blindness",
|
|
759
|
+
levels: [
|
|
760
|
+
{
|
|
761
|
+
value: 0.0,
|
|
762
|
+
label: "Notices All Changes",
|
|
763
|
+
behaviors: [
|
|
764
|
+
"Immediately spots any UI change",
|
|
765
|
+
"Notices subtle color or layout shifts",
|
|
766
|
+
"Detects changes in peripheral vision",
|
|
767
|
+
"High visual attention to entire screen",
|
|
768
|
+
],
|
|
769
|
+
},
|
|
770
|
+
{
|
|
771
|
+
value: 0.25,
|
|
772
|
+
label: "Good Change Detection",
|
|
773
|
+
behaviors: [
|
|
774
|
+
"Notices most changes",
|
|
775
|
+
"Catches updates in focus area",
|
|
776
|
+
"Sometimes misses peripheral changes",
|
|
777
|
+
"Notices animations and movements",
|
|
778
|
+
],
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
value: 0.5,
|
|
782
|
+
label: "Moderate Change Detection",
|
|
783
|
+
behaviors: [
|
|
784
|
+
"Notices obvious changes",
|
|
785
|
+
"Misses subtle or gradual changes",
|
|
786
|
+
"Requires movement to draw attention",
|
|
787
|
+
"May miss toast notifications",
|
|
788
|
+
],
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
value: 0.75,
|
|
792
|
+
label: "Poor Change Detection",
|
|
793
|
+
behaviors: [
|
|
794
|
+
"Misses most peripheral changes",
|
|
795
|
+
"Needs explicit indicators for updates",
|
|
796
|
+
"Doesn't notice banner updates",
|
|
797
|
+
"Focused tunnel vision",
|
|
798
|
+
],
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
value: 1.0,
|
|
802
|
+
label: "Severe Change Blindness",
|
|
803
|
+
behaviors: [
|
|
804
|
+
"Misses even significant changes",
|
|
805
|
+
"Doesn't notice error messages appearing",
|
|
806
|
+
"Ignores notification badges",
|
|
807
|
+
"Needs flashing/animation to notice anything",
|
|
808
|
+
],
|
|
809
|
+
},
|
|
810
|
+
],
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
name: "anchoringBias",
|
|
814
|
+
description: "How much first information anchors subsequent judgments",
|
|
815
|
+
researchBasis: "Tversky & Kahneman (1974) - Anchoring and Adjustment",
|
|
816
|
+
levels: [
|
|
817
|
+
{
|
|
818
|
+
value: 0.0,
|
|
819
|
+
label: "No Anchoring",
|
|
820
|
+
behaviors: [
|
|
821
|
+
"Evaluates each option independently",
|
|
822
|
+
"Not influenced by first price/offer seen",
|
|
823
|
+
"Compares objectively without bias",
|
|
824
|
+
"Resets expectations with new information",
|
|
825
|
+
],
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
value: 0.25,
|
|
829
|
+
label: "Slight Anchoring",
|
|
830
|
+
behaviors: [
|
|
831
|
+
"Somewhat influenced by first information",
|
|
832
|
+
"Can adjust when shown counter-evidence",
|
|
833
|
+
"Compares to initial anchor but updates",
|
|
834
|
+
"Mild preference for first option",
|
|
835
|
+
],
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
value: 0.5,
|
|
839
|
+
label: "Moderate Anchoring",
|
|
840
|
+
behaviors: [
|
|
841
|
+
"First information significantly influences",
|
|
842
|
+
"Compares all options to first seen",
|
|
843
|
+
"Adjustments from anchor are incomplete",
|
|
844
|
+
"Default option strongly preferred",
|
|
845
|
+
],
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
value: 0.75,
|
|
849
|
+
label: "Strong Anchoring",
|
|
850
|
+
behaviors: [
|
|
851
|
+
"Heavily anchored to first information",
|
|
852
|
+
"Rarely updates initial assessment",
|
|
853
|
+
"First price seems 'normal', others 'high/low'",
|
|
854
|
+
"Resistant to information that contradicts anchor",
|
|
855
|
+
],
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
value: 1.0,
|
|
859
|
+
label: "Extreme Anchoring",
|
|
860
|
+
behaviors: [
|
|
861
|
+
"Completely anchored to first information",
|
|
862
|
+
"Won't change initial assessment",
|
|
863
|
+
"All subsequent options judged against first",
|
|
864
|
+
"Ignores contradicting information",
|
|
865
|
+
],
|
|
866
|
+
},
|
|
867
|
+
],
|
|
868
|
+
},
|
|
869
|
+
{
|
|
870
|
+
name: "timeHorizon",
|
|
871
|
+
description: "Focus on immediate vs. long-term outcomes",
|
|
872
|
+
researchBasis: "Ainslie (2001) - Hyperbolic Discounting; Present Bias",
|
|
873
|
+
levels: [
|
|
874
|
+
{
|
|
875
|
+
value: 0.0,
|
|
876
|
+
label: "Long-Term Focus",
|
|
877
|
+
behaviors: [
|
|
878
|
+
"Willing to wait for better outcomes",
|
|
879
|
+
"Prefers delayed gratification",
|
|
880
|
+
"Plans for future needs",
|
|
881
|
+
"Accepts short-term inconvenience",
|
|
882
|
+
],
|
|
883
|
+
},
|
|
884
|
+
{
|
|
885
|
+
value: 0.25,
|
|
886
|
+
label: "Moderate Long-Term",
|
|
887
|
+
behaviors: [
|
|
888
|
+
"Considers future consequences",
|
|
889
|
+
"Some patience for delayed rewards",
|
|
890
|
+
"Balances now vs. later",
|
|
891
|
+
"Values planning but not rigidly",
|
|
892
|
+
],
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
value: 0.5,
|
|
896
|
+
label: "Balanced Time Horizon",
|
|
897
|
+
behaviors: [
|
|
898
|
+
"Weighs immediate and future outcomes",
|
|
899
|
+
"Context-dependent patience",
|
|
900
|
+
"Reasonable trade-offs between now and later",
|
|
901
|
+
"Neither impulsive nor over-planning",
|
|
902
|
+
],
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
value: 0.75,
|
|
906
|
+
label: "Present-Biased",
|
|
907
|
+
behaviors: [
|
|
908
|
+
"Prefers immediate outcomes",
|
|
909
|
+
"Discounts future benefits heavily",
|
|
910
|
+
"Chooses now over better-later",
|
|
911
|
+
"Limited patience for delayed rewards",
|
|
912
|
+
],
|
|
913
|
+
},
|
|
914
|
+
{
|
|
915
|
+
value: 1.0,
|
|
916
|
+
label: "Extreme Present Focus",
|
|
917
|
+
behaviors: [
|
|
918
|
+
"Only cares about immediate results",
|
|
919
|
+
"Won't wait for anything",
|
|
920
|
+
"Ignores future consequences entirely",
|
|
921
|
+
"Maximum hyperbolic discounting",
|
|
922
|
+
],
|
|
923
|
+
},
|
|
924
|
+
],
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
name: "attributionStyle",
|
|
928
|
+
description: "Tendency to blame self vs. system for errors",
|
|
929
|
+
researchBasis: "Weiner (1985) - Attribution Theory; Norman (1988) - Design of Everyday Things",
|
|
930
|
+
levels: [
|
|
931
|
+
{
|
|
932
|
+
value: 0.0,
|
|
933
|
+
label: "External Attribution",
|
|
934
|
+
behaviors: [
|
|
935
|
+
"Blames system/design for all errors",
|
|
936
|
+
"Never assumes user error",
|
|
937
|
+
"Expects interfaces to accommodate",
|
|
938
|
+
"Reports bugs confidently",
|
|
939
|
+
],
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
value: 0.25,
|
|
943
|
+
label: "Mostly External",
|
|
944
|
+
behaviors: [
|
|
945
|
+
"Usually blames design for problems",
|
|
946
|
+
"Recognizes some user errors",
|
|
947
|
+
"Assumes most issues are system bugs",
|
|
948
|
+
"Confident in problem reporting",
|
|
949
|
+
],
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
value: 0.5,
|
|
953
|
+
label: "Balanced Attribution",
|
|
954
|
+
behaviors: [
|
|
955
|
+
"Considers both user and system causes",
|
|
956
|
+
"Reasonable assessment of fault",
|
|
957
|
+
"Neither over-blames self nor system",
|
|
958
|
+
"Context-dependent attribution",
|
|
959
|
+
],
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
value: 0.75,
|
|
963
|
+
label: "Mostly Internal",
|
|
964
|
+
behaviors: [
|
|
965
|
+
"Usually blames self for errors",
|
|
966
|
+
"Assumes they're doing something wrong",
|
|
967
|
+
"Reluctant to report bugs",
|
|
968
|
+
"Questions own competence",
|
|
969
|
+
],
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
value: 1.0,
|
|
973
|
+
label: "Internal Attribution",
|
|
974
|
+
behaviors: [
|
|
975
|
+
"Always blames self for all errors",
|
|
976
|
+
"Never considers system at fault",
|
|
977
|
+
"Feels incompetent with any error",
|
|
978
|
+
"Won't report bugs, assumes user error",
|
|
979
|
+
],
|
|
980
|
+
},
|
|
981
|
+
],
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
name: "metacognitivePlanning",
|
|
985
|
+
description: "Tendency to plan before acting vs. trial-and-error",
|
|
986
|
+
researchBasis: "Flavell (1979) - Metacognition; Card, Moran & Newell (1983) - GOMS",
|
|
987
|
+
levels: [
|
|
988
|
+
{
|
|
989
|
+
value: 0.0,
|
|
990
|
+
label: "Pure Trial-and-Error",
|
|
991
|
+
behaviors: [
|
|
992
|
+
"Clicks immediately without thinking",
|
|
993
|
+
"No planning before action",
|
|
994
|
+
"Random exploration strategy",
|
|
995
|
+
"Doesn't form mental models",
|
|
996
|
+
],
|
|
997
|
+
},
|
|
998
|
+
{
|
|
999
|
+
value: 0.25,
|
|
1000
|
+
label: "Minimal Planning",
|
|
1001
|
+
behaviors: [
|
|
1002
|
+
"Brief consideration before acting",
|
|
1003
|
+
"Some trial-and-error approach",
|
|
1004
|
+
"Forms simple expectations",
|
|
1005
|
+
"Adjusts approach after failures",
|
|
1006
|
+
],
|
|
1007
|
+
},
|
|
1008
|
+
{
|
|
1009
|
+
value: 0.5,
|
|
1010
|
+
label: "Moderate Planning",
|
|
1011
|
+
behaviors: [
|
|
1012
|
+
"Thinks before acting on important tasks",
|
|
1013
|
+
"Mixes planning with exploration",
|
|
1014
|
+
"Forms rough mental models",
|
|
1015
|
+
"Plans for multi-step tasks",
|
|
1016
|
+
],
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
value: 0.75,
|
|
1020
|
+
label: "Careful Planning",
|
|
1021
|
+
behaviors: [
|
|
1022
|
+
"Plans most actions before taking them",
|
|
1023
|
+
"Forms clear mental models",
|
|
1024
|
+
"Anticipates consequences",
|
|
1025
|
+
"Systematic approach to tasks",
|
|
1026
|
+
],
|
|
1027
|
+
},
|
|
1028
|
+
{
|
|
1029
|
+
value: 1.0,
|
|
1030
|
+
label: "Extensive Planning",
|
|
1031
|
+
behaviors: [
|
|
1032
|
+
"Always plans thoroughly before acting",
|
|
1033
|
+
"Detailed mental models of systems",
|
|
1034
|
+
"Anticipates all edge cases",
|
|
1035
|
+
"May over-plan simple tasks",
|
|
1036
|
+
],
|
|
1037
|
+
},
|
|
1038
|
+
],
|
|
1039
|
+
},
|
|
1040
|
+
{
|
|
1041
|
+
name: "proceduralFluency",
|
|
1042
|
+
description: "Ability to follow multi-step procedures",
|
|
1043
|
+
researchBasis: "Anderson (1982) - ACT-R; Procedural Memory",
|
|
1044
|
+
levels: [
|
|
1045
|
+
{
|
|
1046
|
+
value: 0.0,
|
|
1047
|
+
label: "Very Low Fluency",
|
|
1048
|
+
behaviors: [
|
|
1049
|
+
"Struggles with any multi-step process",
|
|
1050
|
+
"Loses place in procedures frequently",
|
|
1051
|
+
"Needs step-by-step guidance always",
|
|
1052
|
+
"Can't follow sequences from memory",
|
|
1053
|
+
],
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
value: 0.25,
|
|
1057
|
+
label: "Low Fluency",
|
|
1058
|
+
behaviors: [
|
|
1059
|
+
"Handles 2-3 step procedures",
|
|
1060
|
+
"Needs reminders for longer sequences",
|
|
1061
|
+
"Sometimes skips or repeats steps",
|
|
1062
|
+
"Benefits from progress indicators",
|
|
1063
|
+
],
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
value: 0.5,
|
|
1067
|
+
label: "Moderate Fluency",
|
|
1068
|
+
behaviors: [
|
|
1069
|
+
"Follows most standard procedures",
|
|
1070
|
+
"Handles 4-5 step sequences",
|
|
1071
|
+
"Occasional confusion on complex flows",
|
|
1072
|
+
"Can recover from minor errors in sequence",
|
|
1073
|
+
],
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
value: 0.75,
|
|
1077
|
+
label: "Good Fluency",
|
|
1078
|
+
behaviors: [
|
|
1079
|
+
"Follows complex procedures easily",
|
|
1080
|
+
"Handles 6-8 step sequences",
|
|
1081
|
+
"Rarely makes procedural errors",
|
|
1082
|
+
"Adapts procedures to context",
|
|
1083
|
+
],
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
value: 1.0,
|
|
1087
|
+
label: "Excellent Fluency",
|
|
1088
|
+
behaviors: [
|
|
1089
|
+
"Masters any procedure quickly",
|
|
1090
|
+
"Handles unlimited step sequences",
|
|
1091
|
+
"Never loses place in procedures",
|
|
1092
|
+
"Automates familiar procedures",
|
|
1093
|
+
],
|
|
1094
|
+
},
|
|
1095
|
+
],
|
|
1096
|
+
},
|
|
1097
|
+
{
|
|
1098
|
+
name: "transferLearning",
|
|
1099
|
+
description: "Ability to apply knowledge from one interface to another",
|
|
1100
|
+
researchBasis: "Thorndike (1901) - Transfer of Practice; Singley & Anderson (1989)",
|
|
1101
|
+
levels: [
|
|
1102
|
+
{
|
|
1103
|
+
value: 0.0,
|
|
1104
|
+
label: "No Transfer",
|
|
1105
|
+
behaviors: [
|
|
1106
|
+
"Each interface is completely novel",
|
|
1107
|
+
"Doesn't apply prior experience",
|
|
1108
|
+
"Starts from scratch every time",
|
|
1109
|
+
"No recognition of patterns across sites",
|
|
1110
|
+
],
|
|
1111
|
+
},
|
|
1112
|
+
{
|
|
1113
|
+
value: 0.25,
|
|
1114
|
+
label: "Low Transfer",
|
|
1115
|
+
behaviors: [
|
|
1116
|
+
"Recognizes only identical patterns",
|
|
1117
|
+
"Struggles with variations",
|
|
1118
|
+
"Some learning transfers to identical UIs",
|
|
1119
|
+
"Confused by similar but different patterns",
|
|
1120
|
+
],
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
value: 0.5,
|
|
1124
|
+
label: "Moderate Transfer",
|
|
1125
|
+
behaviors: [
|
|
1126
|
+
"Transfers learning to similar interfaces",
|
|
1127
|
+
"Recognizes common patterns",
|
|
1128
|
+
"Adapts some knowledge across contexts",
|
|
1129
|
+
"Sometimes confused by variations",
|
|
1130
|
+
],
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
value: 0.75,
|
|
1134
|
+
label: "Good Transfer",
|
|
1135
|
+
behaviors: [
|
|
1136
|
+
"Applies learning broadly",
|
|
1137
|
+
"Recognizes patterns despite variations",
|
|
1138
|
+
"Quickly adapts to new interfaces",
|
|
1139
|
+
"Abstracts principles from experience",
|
|
1140
|
+
],
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
value: 1.0,
|
|
1144
|
+
label: "Excellent Transfer",
|
|
1145
|
+
behaviors: [
|
|
1146
|
+
"Instantly applies all prior learning",
|
|
1147
|
+
"Recognizes abstract patterns everywhere",
|
|
1148
|
+
"Every new interface feels familiar",
|
|
1149
|
+
"Master of analogical reasoning",
|
|
1150
|
+
],
|
|
1151
|
+
},
|
|
1152
|
+
],
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
name: "authoritySensitivity",
|
|
1156
|
+
description: "Tendency to follow authority cues and official-looking content",
|
|
1157
|
+
researchBasis: "Milgram (1963) - Obedience to Authority; Cialdini (2006) - Authority Principle",
|
|
1158
|
+
levels: [
|
|
1159
|
+
{
|
|
1160
|
+
value: 0.0,
|
|
1161
|
+
label: "Authority Skeptic",
|
|
1162
|
+
behaviors: [
|
|
1163
|
+
"Questions all authority claims",
|
|
1164
|
+
"Verifies credentials independently",
|
|
1165
|
+
"Not influenced by official appearance",
|
|
1166
|
+
"Prefers peer reviews over expert claims",
|
|
1167
|
+
],
|
|
1168
|
+
},
|
|
1169
|
+
{
|
|
1170
|
+
value: 0.25,
|
|
1171
|
+
label: "Moderately Skeptical",
|
|
1172
|
+
behaviors: [
|
|
1173
|
+
"Some skepticism of authority",
|
|
1174
|
+
"Verifies important claims",
|
|
1175
|
+
"Influenced but not controlled by authority",
|
|
1176
|
+
"Balances trust with verification",
|
|
1177
|
+
],
|
|
1178
|
+
},
|
|
1179
|
+
{
|
|
1180
|
+
value: 0.5,
|
|
1181
|
+
label: "Balanced Authority Response",
|
|
1182
|
+
behaviors: [
|
|
1183
|
+
"Respects authority within reason",
|
|
1184
|
+
"Follows official guidance generally",
|
|
1185
|
+
"Questions when stakes are high",
|
|
1186
|
+
"Context-dependent authority trust",
|
|
1187
|
+
],
|
|
1188
|
+
},
|
|
1189
|
+
{
|
|
1190
|
+
value: 0.75,
|
|
1191
|
+
label: "Authority Responsive",
|
|
1192
|
+
behaviors: [
|
|
1193
|
+
"Follows authority guidance readily",
|
|
1194
|
+
"Official-looking content is trusted",
|
|
1195
|
+
"Rarely questions expert claims",
|
|
1196
|
+
"Influenced by credentials and titles",
|
|
1197
|
+
],
|
|
1198
|
+
},
|
|
1199
|
+
{
|
|
1200
|
+
value: 1.0,
|
|
1201
|
+
label: "Authority Deferential",
|
|
1202
|
+
behaviors: [
|
|
1203
|
+
"Always follows authority without question",
|
|
1204
|
+
"Completely trusts official appearance",
|
|
1205
|
+
"Never verifies claims from authorities",
|
|
1206
|
+
"Highly susceptible to authority manipulation",
|
|
1207
|
+
],
|
|
1208
|
+
},
|
|
1209
|
+
],
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
name: "emotionalContagion",
|
|
1213
|
+
description: "How much UI emotional design affects user mood",
|
|
1214
|
+
researchBasis: "Hatfield (1994) - Emotional Contagion; Norman (2004) - Emotional Design",
|
|
1215
|
+
levels: [
|
|
1216
|
+
{
|
|
1217
|
+
value: 0.0,
|
|
1218
|
+
label: "Emotionally Stable",
|
|
1219
|
+
behaviors: [
|
|
1220
|
+
"UI design doesn't affect mood",
|
|
1221
|
+
"Same performance in any aesthetic",
|
|
1222
|
+
"Not influenced by color psychology",
|
|
1223
|
+
"Purely functional evaluation",
|
|
1224
|
+
],
|
|
1225
|
+
},
|
|
1226
|
+
{
|
|
1227
|
+
value: 0.25,
|
|
1228
|
+
label: "Slightly Affected",
|
|
1229
|
+
behaviors: [
|
|
1230
|
+
"Minor mood influence from UI",
|
|
1231
|
+
"Prefers pleasant aesthetics but functions anywhere",
|
|
1232
|
+
"Subtle color effects noticed",
|
|
1233
|
+
"Mostly rational evaluation",
|
|
1234
|
+
],
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
value: 0.5,
|
|
1238
|
+
label: "Moderately Affected",
|
|
1239
|
+
behaviors: [
|
|
1240
|
+
"UI aesthetics affect experience noticeably",
|
|
1241
|
+
"Happy designs improve mood/performance",
|
|
1242
|
+
"Frustrated by ugly interfaces",
|
|
1243
|
+
"Emotional response to design choices",
|
|
1244
|
+
],
|
|
1245
|
+
},
|
|
1246
|
+
{
|
|
1247
|
+
value: 0.75,
|
|
1248
|
+
label: "Strongly Affected",
|
|
1249
|
+
behaviors: [
|
|
1250
|
+
"UI design significantly affects mood",
|
|
1251
|
+
"Strong preference for pleasing aesthetics",
|
|
1252
|
+
"Performance varies with emotional design",
|
|
1253
|
+
"Very responsive to color and imagery",
|
|
1254
|
+
],
|
|
1255
|
+
},
|
|
1256
|
+
{
|
|
1257
|
+
value: 1.0,
|
|
1258
|
+
label: "Highly Contagious",
|
|
1259
|
+
behaviors: [
|
|
1260
|
+
"Mood completely controlled by UI design",
|
|
1261
|
+
"Can't function in unappealing interfaces",
|
|
1262
|
+
"Extreme response to emotional design",
|
|
1263
|
+
"Performance entirely mood-dependent",
|
|
1264
|
+
],
|
|
1265
|
+
},
|
|
1266
|
+
],
|
|
1267
|
+
},
|
|
1268
|
+
{
|
|
1269
|
+
name: "fearOfMissingOut",
|
|
1270
|
+
description: "Susceptibility to urgency and scarcity messaging",
|
|
1271
|
+
researchBasis: "Przybylski (2013) - Fear of Missing Out Scale; Cialdini - Scarcity Principle",
|
|
1272
|
+
levels: [
|
|
1273
|
+
{
|
|
1274
|
+
value: 0.0,
|
|
1275
|
+
label: "FOMO Immune",
|
|
1276
|
+
behaviors: [
|
|
1277
|
+
"Ignores all urgency messaging",
|
|
1278
|
+
"Not influenced by countdown timers",
|
|
1279
|
+
"Scarcity claims don't affect decisions",
|
|
1280
|
+
"'Limited time' means nothing",
|
|
1281
|
+
],
|
|
1282
|
+
},
|
|
1283
|
+
{
|
|
1284
|
+
value: 0.25,
|
|
1285
|
+
label: "Low FOMO",
|
|
1286
|
+
behaviors: [
|
|
1287
|
+
"Rarely affected by urgency",
|
|
1288
|
+
"Recognizes manipulation tactics",
|
|
1289
|
+
"Minor response to genuine scarcity",
|
|
1290
|
+
"Evaluates deals on merit",
|
|
1291
|
+
],
|
|
1292
|
+
},
|
|
1293
|
+
{
|
|
1294
|
+
value: 0.5,
|
|
1295
|
+
label: "Moderate FOMO",
|
|
1296
|
+
behaviors: [
|
|
1297
|
+
"Sometimes influenced by urgency",
|
|
1298
|
+
"Responds to credible scarcity",
|
|
1299
|
+
"Countdown timers create mild pressure",
|
|
1300
|
+
"Balances FOMO with rationality",
|
|
1301
|
+
],
|
|
1302
|
+
},
|
|
1303
|
+
{
|
|
1304
|
+
value: 0.75,
|
|
1305
|
+
label: "High FOMO",
|
|
1306
|
+
behaviors: [
|
|
1307
|
+
"Often influenced by urgency messaging",
|
|
1308
|
+
"'Only X left' creates strong pressure",
|
|
1309
|
+
"Countdown timers trigger action",
|
|
1310
|
+
"Fears missing good deals",
|
|
1311
|
+
],
|
|
1312
|
+
},
|
|
1313
|
+
{
|
|
1314
|
+
value: 1.0,
|
|
1315
|
+
label: "Extreme FOMO",
|
|
1316
|
+
behaviors: [
|
|
1317
|
+
"Always responds to urgency",
|
|
1318
|
+
"Any scarcity claim triggers action",
|
|
1319
|
+
"Can't resist 'limited time' offers",
|
|
1320
|
+
"Highly susceptible to FOMO manipulation",
|
|
1321
|
+
],
|
|
1322
|
+
},
|
|
1323
|
+
],
|
|
1324
|
+
},
|
|
1325
|
+
{
|
|
1326
|
+
name: "socialProofSensitivity",
|
|
1327
|
+
description: "Influence of reviews, ratings, and social signals",
|
|
1328
|
+
researchBasis: "Cialdini (2006) - Social Proof; Bandura (1977) - Social Learning",
|
|
1329
|
+
levels: [
|
|
1330
|
+
{
|
|
1331
|
+
value: 0.0,
|
|
1332
|
+
label: "Ignores Social Proof",
|
|
1333
|
+
behaviors: [
|
|
1334
|
+
"Reviews don't influence decisions",
|
|
1335
|
+
"Evaluates purely on own criteria",
|
|
1336
|
+
"Star ratings are meaningless",
|
|
1337
|
+
"Trusts own judgment over crowd",
|
|
1338
|
+
],
|
|
1339
|
+
},
|
|
1340
|
+
{
|
|
1341
|
+
value: 0.25,
|
|
1342
|
+
label: "Low Social Proof Influence",
|
|
1343
|
+
behaviors: [
|
|
1344
|
+
"Minor consideration of reviews",
|
|
1345
|
+
"Uses ratings as one factor",
|
|
1346
|
+
"Skeptical of testimonials",
|
|
1347
|
+
"Independent evaluation primary",
|
|
1348
|
+
],
|
|
1349
|
+
},
|
|
1350
|
+
{
|
|
1351
|
+
value: 0.5,
|
|
1352
|
+
label: "Moderate Social Proof",
|
|
1353
|
+
behaviors: [
|
|
1354
|
+
"Reviews influence moderately",
|
|
1355
|
+
"Checks ratings before deciding",
|
|
1356
|
+
"Testimonials carry some weight",
|
|
1357
|
+
"Balances social proof with own assessment",
|
|
1358
|
+
],
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
value: 0.75,
|
|
1362
|
+
label: "High Social Proof Influence",
|
|
1363
|
+
behaviors: [
|
|
1364
|
+
"Reviews heavily influence decisions",
|
|
1365
|
+
"High ratings required for consideration",
|
|
1366
|
+
"Trusts testimonials significantly",
|
|
1367
|
+
"'Most popular' is very persuasive",
|
|
1368
|
+
],
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
value: 1.0,
|
|
1372
|
+
label: "Relies on Social Proof",
|
|
1373
|
+
behaviors: [
|
|
1374
|
+
"Won't decide without reviews",
|
|
1375
|
+
"Follows crowd blindly",
|
|
1376
|
+
"Highest-rated always chosen",
|
|
1377
|
+
"Incapable of independent evaluation",
|
|
1378
|
+
],
|
|
1379
|
+
},
|
|
1380
|
+
],
|
|
1381
|
+
},
|
|
1382
|
+
{
|
|
1383
|
+
name: "mentalModelRigidity",
|
|
1384
|
+
description: "Ability to update mental models when interfaces change",
|
|
1385
|
+
researchBasis: "Johnson-Laird (1983) - Mental Models; Norman (2013) - Design of Everyday Things",
|
|
1386
|
+
levels: [
|
|
1387
|
+
{
|
|
1388
|
+
value: 0.0,
|
|
1389
|
+
label: "Rigid Mental Models",
|
|
1390
|
+
behaviors: [
|
|
1391
|
+
"Can't adapt to interface changes",
|
|
1392
|
+
"Expects things where they used to be",
|
|
1393
|
+
"Frustrated by any redesign",
|
|
1394
|
+
"Stuck on old patterns",
|
|
1395
|
+
],
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
value: 0.25,
|
|
1399
|
+
label: "Slow to Adapt",
|
|
1400
|
+
behaviors: [
|
|
1401
|
+
"Gradual adjustment to changes",
|
|
1402
|
+
"Needs time to relearn",
|
|
1403
|
+
"Prefers familiar layouts",
|
|
1404
|
+
"Eventually adapts with effort",
|
|
1405
|
+
],
|
|
1406
|
+
},
|
|
1407
|
+
{
|
|
1408
|
+
value: 0.5,
|
|
1409
|
+
label: "Moderately Flexible",
|
|
1410
|
+
behaviors: [
|
|
1411
|
+
"Adjusts to changes reasonably",
|
|
1412
|
+
"Some friction with new patterns",
|
|
1413
|
+
"Can update mental models with effort",
|
|
1414
|
+
"Balances old habits with new learning",
|
|
1415
|
+
],
|
|
1416
|
+
},
|
|
1417
|
+
{
|
|
1418
|
+
value: 0.75,
|
|
1419
|
+
label: "Flexible",
|
|
1420
|
+
behaviors: [
|
|
1421
|
+
"Quickly adapts to new patterns",
|
|
1422
|
+
"Updates mental models easily",
|
|
1423
|
+
"Minor friction with changes",
|
|
1424
|
+
"Embraces improvements",
|
|
1425
|
+
],
|
|
1426
|
+
},
|
|
1427
|
+
{
|
|
1428
|
+
value: 1.0,
|
|
1429
|
+
label: "Extremely Flexible",
|
|
1430
|
+
behaviors: [
|
|
1431
|
+
"Instantly adapts to any change",
|
|
1432
|
+
"Mental models update immediately",
|
|
1433
|
+
"No preference for old patterns",
|
|
1434
|
+
"Thrives on interface evolution",
|
|
1435
|
+
],
|
|
1436
|
+
},
|
|
1437
|
+
],
|
|
1438
|
+
},
|
|
1439
|
+
];
|
|
1440
|
+
/**
|
|
1441
|
+
* Generate a questionnaire for building a custom persona.
|
|
1442
|
+
* Returns a subset of questions covering the most impactful traits.
|
|
1443
|
+
*/
|
|
1444
|
+
export function generatePersonaQuestionnaire(options) {
|
|
1445
|
+
const { comprehensive = false, traits } = options || {};
|
|
1446
|
+
// Core traits that have the highest behavioral impact
|
|
1447
|
+
const coreTraits = [
|
|
1448
|
+
"patience",
|
|
1449
|
+
"riskTolerance",
|
|
1450
|
+
"comprehension",
|
|
1451
|
+
"selfEfficacy",
|
|
1452
|
+
"satisficing",
|
|
1453
|
+
"trustCalibration",
|
|
1454
|
+
"workingMemory",
|
|
1455
|
+
"resilience",
|
|
1456
|
+
];
|
|
1457
|
+
const traitsToInclude = traits || (comprehensive
|
|
1458
|
+
? TRAIT_REFERENCE_MATRIX.map(t => t.name)
|
|
1459
|
+
: coreTraits);
|
|
1460
|
+
return traitsToInclude.map(traitName => {
|
|
1461
|
+
const traitRef = TRAIT_REFERENCE_MATRIX.find(t => t.name === traitName);
|
|
1462
|
+
if (!traitRef)
|
|
1463
|
+
return null;
|
|
1464
|
+
// Create question with 4 options (0.0, 0.33, 0.67, 1.0) for simpler choice
|
|
1465
|
+
const levels = [
|
|
1466
|
+
traitRef.levels[0], // 0.0
|
|
1467
|
+
traitRef.levels[1], // 0.25
|
|
1468
|
+
traitRef.levels[3], // 0.75
|
|
1469
|
+
traitRef.levels[4], // 1.0
|
|
1470
|
+
];
|
|
1471
|
+
return {
|
|
1472
|
+
id: traitName,
|
|
1473
|
+
trait: traitName,
|
|
1474
|
+
question: generateQuestionText(traitRef),
|
|
1475
|
+
options: levels.map(level => ({
|
|
1476
|
+
value: level.value,
|
|
1477
|
+
label: level.label,
|
|
1478
|
+
description: level.behaviors.slice(0, 2).join("; "),
|
|
1479
|
+
})),
|
|
1480
|
+
};
|
|
1481
|
+
}).filter(Boolean);
|
|
1482
|
+
}
|
|
1483
|
+
function generateQuestionText(trait) {
|
|
1484
|
+
const questionMap = {
|
|
1485
|
+
patience: "When you encounter a confusing website, how long do you typically try before giving up?",
|
|
1486
|
+
riskTolerance: "How comfortable are you clicking on unfamiliar buttons or entering information on new websites?",
|
|
1487
|
+
comprehension: "How easily do you understand new website interfaces and features?",
|
|
1488
|
+
persistence: "When something doesn't work the first time, what do you usually do?",
|
|
1489
|
+
curiosity: "While completing a task online, how often do you explore unrelated features or content?",
|
|
1490
|
+
workingMemory: "How well do you remember what you've already tried when troubleshooting?",
|
|
1491
|
+
readingTendency: "How much of a webpage's text do you typically read?",
|
|
1492
|
+
resilience: "After encountering an error or frustrating experience, how quickly do you recover?",
|
|
1493
|
+
selfEfficacy: "How confident are you in your ability to figure out new websites on your own?",
|
|
1494
|
+
satisficing: "When making choices online (products, services, options), how do you decide?",
|
|
1495
|
+
trustCalibration: "How trusting are you of websites asking for your information?",
|
|
1496
|
+
interruptRecovery: "If you're interrupted while completing an online task, how easily do you pick up where you left off?",
|
|
1497
|
+
informationForaging: "When searching for information on a website, what's your approach?",
|
|
1498
|
+
changeBlindness: "How often do you notice when something changes on a webpage (new messages, updates)?",
|
|
1499
|
+
anchoringBias: "When comparing options (prices, features), how much does the first option you see influence your judgment?",
|
|
1500
|
+
timeHorizon: "When faced with a choice between something now vs. something better later, what do you prefer?",
|
|
1501
|
+
attributionStyle: "When something goes wrong on a website, what's your first thought?",
|
|
1502
|
+
metacognitivePlanning: "Before starting a new task on a website, do you plan your approach?",
|
|
1503
|
+
proceduralFluency: "How comfortable are you with multi-step processes (like checkout flows)?",
|
|
1504
|
+
transferLearning: "When you visit a new website, how much do you apply what you learned from other sites?",
|
|
1505
|
+
authoritySensitivity: "How much do official-looking badges, certifications, or expert endorsements influence you?",
|
|
1506
|
+
emotionalContagion: "How much does the visual design and aesthetics of a website affect your experience?",
|
|
1507
|
+
fearOfMissingOut: "How do 'limited time' offers and countdown timers affect your decisions?",
|
|
1508
|
+
socialProofSensitivity: "How much do reviews, ratings, and testimonials influence your decisions?",
|
|
1509
|
+
mentalModelRigidity: "When a website you use regularly changes its layout, how do you respond?",
|
|
1510
|
+
};
|
|
1511
|
+
return questionMap[trait.name] || `How would you describe your ${trait.name}?`;
|
|
1512
|
+
}
|
|
1513
|
+
/**
|
|
1514
|
+
* Build cognitive traits from questionnaire answers.
|
|
1515
|
+
* Missing answers default to 0.5 (neutral baseline).
|
|
1516
|
+
*/
|
|
1517
|
+
export function buildTraitsFromAnswers(answers) {
|
|
1518
|
+
const traits = {
|
|
1519
|
+
patience: 0.5,
|
|
1520
|
+
riskTolerance: 0.5,
|
|
1521
|
+
comprehension: 0.5,
|
|
1522
|
+
persistence: 0.5,
|
|
1523
|
+
curiosity: 0.5,
|
|
1524
|
+
workingMemory: 0.5,
|
|
1525
|
+
readingTendency: 0.5,
|
|
1526
|
+
resilience: 0.5,
|
|
1527
|
+
selfEfficacy: 0.5,
|
|
1528
|
+
satisficing: 0.5,
|
|
1529
|
+
trustCalibration: 0.5,
|
|
1530
|
+
interruptRecovery: 0.5,
|
|
1531
|
+
informationForaging: 0.5,
|
|
1532
|
+
changeBlindness: 0.3,
|
|
1533
|
+
anchoringBias: 0.5,
|
|
1534
|
+
timeHorizon: 0.5,
|
|
1535
|
+
attributionStyle: 0.5,
|
|
1536
|
+
metacognitivePlanning: 0.5,
|
|
1537
|
+
proceduralFluency: 0.5,
|
|
1538
|
+
transferLearning: 0.5,
|
|
1539
|
+
authoritySensitivity: 0.5,
|
|
1540
|
+
emotionalContagion: 0.5,
|
|
1541
|
+
fearOfMissingOut: 0.5,
|
|
1542
|
+
socialProofSensitivity: 0.5,
|
|
1543
|
+
mentalModelRigidity: 0.5,
|
|
1544
|
+
};
|
|
1545
|
+
// Apply answers
|
|
1546
|
+
for (const [trait, value] of Object.entries(answers)) {
|
|
1547
|
+
if (trait in traits) {
|
|
1548
|
+
traits[trait] = value;
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
// Apply trait correlations (research-based)
|
|
1552
|
+
applyTraitCorrelations(traits);
|
|
1553
|
+
return traits;
|
|
1554
|
+
}
|
|
1555
|
+
/**
|
|
1556
|
+
* Apply research-based correlations between traits.
|
|
1557
|
+
* When one trait is set, related traits should adjust unless explicitly set.
|
|
1558
|
+
*/
|
|
1559
|
+
function applyTraitCorrelations(traits) {
|
|
1560
|
+
// If patience is low, resilience tends to be low (r = 0.4)
|
|
1561
|
+
if (traits.patience < 0.3 && traits.resilience === 0.5) {
|
|
1562
|
+
traits.resilience = 0.3;
|
|
1563
|
+
}
|
|
1564
|
+
// High comprehension correlates with transfer learning (r = 0.6)
|
|
1565
|
+
if (traits.comprehension > 0.7 && traits.transferLearning === 0.5) {
|
|
1566
|
+
traits.transferLearning = traits.comprehension * 0.8;
|
|
1567
|
+
}
|
|
1568
|
+
// Low self-efficacy correlates with internal attribution (r = 0.5)
|
|
1569
|
+
if (traits.selfEfficacy !== undefined && traits.selfEfficacy < 0.3 && traits.attributionStyle === 0.5) {
|
|
1570
|
+
traits.attributionStyle = 0.7; // Blame self more
|
|
1571
|
+
}
|
|
1572
|
+
// High curiosity correlates with FOMO (r = 0.3)
|
|
1573
|
+
if (traits.curiosity > 0.7 && traits.fearOfMissingOut === 0.5) {
|
|
1574
|
+
traits.fearOfMissingOut = 0.6;
|
|
1575
|
+
}
|
|
1576
|
+
// Low working memory correlates with poor procedural fluency (r = 0.7)
|
|
1577
|
+
if (traits.workingMemory < 0.3 && traits.proceduralFluency === 0.5) {
|
|
1578
|
+
traits.proceduralFluency = traits.workingMemory * 1.2;
|
|
1579
|
+
}
|
|
1580
|
+
// High trust correlates with authority sensitivity (r = 0.4)
|
|
1581
|
+
if (traits.trustCalibration !== undefined && traits.trustCalibration > 0.7 && traits.authoritySensitivity === 0.5) {
|
|
1582
|
+
traits.authoritySensitivity = 0.7;
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
// ============================================================================
|
|
1586
|
+
// Trait Lookup Utilities
|
|
1587
|
+
// ============================================================================
|
|
1588
|
+
/**
|
|
1589
|
+
* Get behavioral description for a specific trait value.
|
|
1590
|
+
*/
|
|
1591
|
+
export function getTraitBehaviors(trait, value) {
|
|
1592
|
+
const traitRef = TRAIT_REFERENCE_MATRIX.find(t => t.name === trait);
|
|
1593
|
+
if (!traitRef)
|
|
1594
|
+
return [];
|
|
1595
|
+
// Find the closest level
|
|
1596
|
+
const level = traitRef.levels.reduce((prev, curr) => Math.abs(curr.value - value) < Math.abs(prev.value - value) ? curr : prev);
|
|
1597
|
+
return level.behaviors;
|
|
1598
|
+
}
|
|
1599
|
+
/**
|
|
1600
|
+
* Get the label for a specific trait value.
|
|
1601
|
+
*/
|
|
1602
|
+
export function getTraitLabel(trait, value) {
|
|
1603
|
+
const traitRef = TRAIT_REFERENCE_MATRIX.find(t => t.name === trait);
|
|
1604
|
+
if (!traitRef)
|
|
1605
|
+
return "Unknown";
|
|
1606
|
+
const level = traitRef.levels.reduce((prev, curr) => Math.abs(curr.value - value) < Math.abs(prev.value - value) ? curr : prev);
|
|
1607
|
+
return level.label;
|
|
1608
|
+
}
|
|
1609
|
+
/**
|
|
1610
|
+
* Get full trait reference information.
|
|
1611
|
+
*/
|
|
1612
|
+
export function getTraitReference(trait) {
|
|
1613
|
+
return TRAIT_REFERENCE_MATRIX.find(t => t.name === trait);
|
|
1614
|
+
}
|
|
1615
|
+
/**
|
|
1616
|
+
* Export questionnaire as AskUserQuestion format for Claude sessions.
|
|
1617
|
+
*/
|
|
1618
|
+
export function formatForAskUserQuestion(questions) {
|
|
1619
|
+
return questions.map(q => ({
|
|
1620
|
+
question: q.question,
|
|
1621
|
+
header: q.trait.slice(0, 12), // Max 12 chars for header
|
|
1622
|
+
options: q.options.map(o => ({
|
|
1623
|
+
label: o.label,
|
|
1624
|
+
description: o.description,
|
|
1625
|
+
})),
|
|
1626
|
+
multiSelect: false,
|
|
1627
|
+
}));
|
|
1628
|
+
}
|
|
1629
|
+
//# sourceMappingURL=persona-questionnaire.js.map
|