create-auto-app 0.12.1 → 0.13.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-auto-app",
3
- "version": "0.12.1",
3
+ "version": "0.13.0",
4
4
  "description": "Create Auto Engineer apps with no configuration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -33,7 +33,7 @@
33
33
  "fs-extra": "^11.2.0",
34
34
  "inquirer": "^9.2.15",
35
35
  "ora": "^8.0.1",
36
- "@auto-engineer/id": "0.12.1"
36
+ "@auto-engineer/id": "0.13.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/fs-extra": "^11.0.4",
@@ -1,6 +1,6 @@
1
1
  import { experience, narrative, it, describe } from '@auto-engineer/narrative';
2
- narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
3
- experience('Kanban Board View', 'AUTO-K7j0St3Hz').client(() => {
2
+ narrative('Todo Dashboard', 'H6i9Rs2Gz', () => {
3
+ experience('Kanban Board View', 'K7j0St3Hz').client(() => {
4
4
  it('display three distinct columns: To Do, In Progress, and Done');
5
5
  it('show elegant column headers with gradient backgrounds');
6
6
  it('display count badges on each column showing number of tasks');
@@ -12,7 +12,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
12
12
  it('show empty state with beautiful illustrations when columns are empty');
13
13
  it('maintain consistent card spacing and grid alignment');
14
14
  });
15
- experience('Task Cards', 'AUTO-T8k1Uu4Iz').client(() => {
15
+ experience('Task Cards', 'T8k1Uu4Iz').client(() => {
16
16
  describe('Task Card Layout', () => {
17
17
  it('display task title with clear typography');
18
18
  });
@@ -25,7 +25,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
25
25
  it('apply strike-through animation for completed tasks');
26
26
  it('use gradient borders matching task status');
27
27
  });
28
- experience('View Toggle Controls', 'AUTO-V3p6Zz9Nz').client(() => {
28
+ experience('View Toggle Controls', 'V3p6Zz9Nz').client(() => {
29
29
  it('provide toggle between Kanban and List views');
30
30
  it('use segmented control or tab-style switcher');
31
31
  it('position in top toolbar for easy access');
@@ -34,7 +34,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
34
34
  it('preserve scroll position when switching views');
35
35
  it('remember user preference in local storage');
36
36
  });
37
- experience('Theme Toggle', 'AUTO-T4q7Aa0Oz').client(() => {
37
+ experience('Theme Toggle', 'T4q7Aa0Oz').client(() => {
38
38
  it('support light and dark theme modes');
39
39
  it('display sun/moon icon toggle in top bar');
40
40
  it('transition smoothly between themes with fade animation');
@@ -43,7 +43,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
43
43
  it('remember user preference in local storage');
44
44
  it('use system preference as default');
45
45
  });
46
- experience('Celebration Animations', 'AUTO-C5r8Bb1Pz').client(() => {
46
+ experience('Celebration Animations', 'C5r8Bb1Pz').client(() => {
47
47
  it('trigger confetti animation when task is completed');
48
48
  it('show satisfying check mark animation');
49
49
  it('play subtle success sound effect (optional, user configurable)');
@@ -52,7 +52,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
52
52
  it('use particle effects that do not obstruct UI');
53
53
  it('respect reduced motion preferences for accessibility');
54
54
  });
55
- experience('Column Management', 'AUTO-M6s9Cc2Qz').client(() => {
55
+ experience('Column Management', 'M6s9Cc2Qz').client(() => {
56
56
  it('allow reordering tasks within same column via drag-and-drop');
57
57
  it('auto-scroll columns when dragging near edges');
58
58
  it('show drop zones with visual indicators');
@@ -61,7 +61,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
61
61
  it('show task count updates immediately on column changes');
62
62
  it('maintain smooth 60fps animations during all interactions');
63
63
  });
64
- experience('Empty States', 'AUTO-E7t0Dd3Rz').client(() => {
64
+ experience('Empty States', 'E7t0Dd3Rz').client(() => {
65
65
  it('display welcoming illustration when no tasks exist');
66
66
  it('show encouraging message to add first task');
67
67
  it('provide quick-add button directly in empty state');
@@ -69,7 +69,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
69
69
  it('use consistent visual style matching overall design system');
70
70
  it('include helpful tips for new users');
71
71
  });
72
- experience('Completion Progress Ring', 'AUTO-P9l2Vv5Jz').client(() => {
72
+ experience('Completion Progress Ring', 'P9l2Vv5Jz').client(() => {
73
73
  it('display circular progress ring with gradient stroke');
74
74
  it('show completion percentage prominently in center');
75
75
  it('animate progress changes with smooth easing');
@@ -78,7 +78,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
78
78
  it('show subtle pulse animation on milestone achievements');
79
79
  it('position prominently at top of dashboard or sidebar');
80
80
  });
81
- experience('Quick Add Todo Widget', 'AUTO-Q0m3Ww6Kz').client(() => {
81
+ experience('Quick Add Todo Widget', 'Q0m3Ww6Kz').client(() => {
82
82
  it('display floating action button with plus icon');
83
83
  it('position fixed in bottom-right corner for easy access');
84
84
  it('expand into input form with smooth scale animation on click');
@@ -89,7 +89,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
89
89
  it('clear and collapse after successful task addition');
90
90
  it('show loading state during task submission');
91
91
  });
92
- experience('Statistics Dashboard', 'AUTO-S1n4Xx7Lz').client(() => {
92
+ experience('Statistics Dashboard', 'S1n4Xx7Lz').client(() => {
93
93
  it('show total tasks count with large prominent number');
94
94
  it('display tasks completed today with celebration icon');
95
95
  it('show breakdown: pending, in-progress, completed counts');
@@ -99,7 +99,7 @@ narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
99
99
  it('update in real-time when tasks change status');
100
100
  it('animate number changes with counting effect');
101
101
  });
102
- experience('Recent Activity Feed', 'AUTO-R2o5Yy8Mz').client(() => {
102
+ experience('Recent Activity Feed', 'R2o5Yy8Mz').client(() => {
103
103
  it('display recent task completions in chronological order');
104
104
  it('show completion timestamp in relative format');
105
105
  it('limit to last 5 completed tasks');
@@ -1,6 +1,6 @@
1
1
  import { experience, narrative, it } from '@auto-engineer/narrative';
2
- narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
3
- experience('Application Layout', 'AUTO-L9v2Ff5Tz').client(() => {
2
+ narrative('App Structure', 'A8u1Ee4Sz', () => {
3
+ experience('Application Layout', 'L9v2Ff5Tz').client(() => {
4
4
  it('display clean top navigation bar spanning full width');
5
5
  it('include app logo or name on left side of top bar');
6
6
  it('show view toggle controls in center of top bar');
@@ -9,7 +9,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
9
9
  it('maintain top bar fixed position during scroll');
10
10
  it('apply subtle shadow to separate top bar from content');
11
11
  });
12
- experience('Main Content Area', 'AUTO-C0w3Gg6Uz').client(() => {
12
+ experience('Main Content Area', 'C0w3Gg6Uz').client(() => {
13
13
  it('occupy full viewport height below top bar');
14
14
  it('apply subtle gradient or textured background');
15
15
  it('center Kanban board with max-width container for large screens');
@@ -18,7 +18,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
18
18
  it('maintain responsive layout for tablet and mobile devices');
19
19
  it('use CSS Grid for Kanban column layout');
20
20
  });
21
- experience('Column Headers', 'AUTO-H2y5Ii8Wz').client(() => {
21
+ experience('Column Headers', 'H2y5Ii8Wz').client(() => {
22
22
  it('display column title with clear typography');
23
23
  it('show task count badge with colored background');
24
24
  it('use gradient or accent colors per column type');
@@ -26,7 +26,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
26
26
  it('include subtle shadow for depth');
27
27
  it('maintain consistent height across all columns');
28
28
  });
29
- experience('Floating Action Button', 'AUTO-F3z6Jj9Xz').client(() => {
29
+ experience('Floating Action Button', 'F3z6Jj9Xz').client(() => {
30
30
  it('position fixed in bottom-right corner of viewport');
31
31
  it('display prominent plus icon or "Add" text');
32
32
  it('use vibrant gradient or solid accent color');
@@ -37,7 +37,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
37
37
  it('maintain z-index above all other content');
38
38
  it('hide on mobile when keyboard is visible');
39
39
  });
40
- experience('Statistics Sidebar', 'AUTO-S4a7Kk0Yz').client(() => {
40
+ experience('Statistics Sidebar', 'S4a7Kk0Yz').client(() => {
41
41
  it('display on right side of screen in desktop view');
42
42
  it('show progress ring at top of sidebar');
43
43
  it('include statistics cards in vertical stack');
@@ -47,7 +47,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
47
47
  it('move to bottom sheet on mobile devices');
48
48
  it('support toggle to show/hide for more workspace');
49
49
  });
50
- experience('Task Detail Panel', 'AUTO-D5b8Ll1Zz').client(() => {
50
+ experience('Task Detail Panel', 'D5b8Ll1Zz').client(() => {
51
51
  it('slide in from right side when task is clicked');
52
52
  it('overlay main content with backdrop blur on mobile');
53
53
  it('show full task information with edit capabilities');
@@ -57,7 +57,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
57
57
  it('animate slide-in/out with smooth easing');
58
58
  it('trap focus within panel when open for accessibility');
59
59
  });
60
- experience('Search Overlay', 'AUTO-S6c9Mm2Az').client(() => {
60
+ experience('Search Overlay', 'S6c9Mm2Az').client(() => {
61
61
  it('trigger with keyboard shortcut Cmd/Ctrl + K');
62
62
  it('display centered modal overlay with backdrop blur');
63
63
  it('show search input with large font size');
@@ -67,7 +67,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
67
67
  it('close on Escape key or clicking backdrop');
68
68
  it('focus input automatically when opened');
69
69
  });
70
- experience('Mobile Navigation', 'AUTO-M7d0Nn3Bz').client(() => {
70
+ experience('Mobile Navigation', 'M7d0Nn3Bz').client(() => {
71
71
  it('collapse top bar controls into hamburger menu on small screens');
72
72
  it('show essential actions as bottom tab bar on mobile');
73
73
  it('include tabs for: Kanban, Statistics, Add, Settings');
@@ -76,7 +76,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
76
76
  it('maintain fixed position at bottom of viewport');
77
77
  it('apply safe area insets for notched devices');
78
78
  });
79
- experience('Responsive Breakpoints', 'AUTO-R8e1Oo4Cz').client(() => {
79
+ experience('Responsive Breakpoints', 'R8e1Oo4Cz').client(() => {
80
80
  it('support desktop layout for screens 1024px and wider');
81
81
  it('adapt to tablet layout for screens 768px to 1023px');
82
82
  it('optimize for mobile devices below 768px');
@@ -85,7 +85,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
85
85
  it('maintain touch-friendly tap targets on all devices');
86
86
  it('test on common device dimensions for consistency');
87
87
  });
88
- experience('Loading States', 'AUTO-L9f2Pp5Dz').client(() => {
88
+ experience('Loading States', 'L9f2Pp5Dz').client(() => {
89
89
  it('show skeleton loaders for initial page load');
90
90
  it('display shimmer effect on loading cards');
91
91
  it('include spinner for async operations');
@@ -94,7 +94,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
94
94
  it('handle slow network conditions gracefully');
95
95
  it('provide timeout fallback with retry option');
96
96
  });
97
- experience('Error States', 'AUTO-E0g3Qq6Ez').client(() => {
97
+ experience('Error States', 'E0g3Qq6Ez').client(() => {
98
98
  it('display inline error messages near relevant fields');
99
99
  it('show toast notifications for global errors');
100
100
  it('include helpful error messages with suggested actions');
@@ -103,7 +103,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
103
103
  it('log errors to console for debugging');
104
104
  it('support error boundary for graceful failure recovery');
105
105
  });
106
- experience('Accessibility Features', 'AUTO-A1h4Rr7Fz').client(() => {
106
+ experience('Accessibility Features', 'A1h4Rr7Fz').client(() => {
107
107
  it('support full keyboard navigation throughout app');
108
108
  it('provide ARIA labels for all interactive elements');
109
109
  it('include skip links for main content areas');
@@ -113,7 +113,7 @@ narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
113
113
  it('ensure color contrast meets WCAG AA standards');
114
114
  it('provide alt text for all decorative images and icons');
115
115
  });
116
- experience('Kanban Board Container', 'AUTO-K1x4Hh7Vz').client(() => {
116
+ experience('Kanban Board Container', 'K1x4Hh7Vz').client(() => {
117
117
  it('display three equal-width columns in desktop view');
118
118
  it('apply consistent gap spacing between columns');
119
119
  it('stack columns vertically on mobile devices');
@@ -75,8 +75,8 @@ type TodoListSummary = State<
75
75
  completionPercentage: number;
76
76
  }
77
77
  >;
78
- narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
79
- command('adds a new todo', 'AUTO-A1c4Mn7Bz')
78
+ narrative('Todo List', 'T8dL3k9Xw', () => {
79
+ command('adds a new todo', 'A1c4Mn7Bz')
80
80
  .client(() => {
81
81
  describe('Add Todo', () => {
82
82
  it('display a quick-add input field with floating action button');
@@ -100,7 +100,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
100
100
  .server(() => {
101
101
  data([sink().event('TodoAdded').toStream('todos')]);
102
102
  specs(() => {
103
- rule('todos can be added to the list', 'AUTO-r1B2Cp8Y', () => {
103
+ rule('todos can be added to the list', 'r1B2Cp8Y', () => {
104
104
  example('adds a new todo successfully')
105
105
  .when<AddTodo>({ todoId: 'todo-001', description: 'Buy groceries' })
106
106
  .then<TodoAdded>({
@@ -112,7 +112,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
112
112
  });
113
113
  });
114
114
  });
115
- command('moves todo to in progress', 'AUTO-M2d5No8Cz')
115
+ command('moves todo to in progress', 'M2d5No8Cz')
116
116
  .client(() => {
117
117
  describe('Move to In Progress', () => {
118
118
  it('support drag-and-drop from "To Do" to "In Progress" column');
@@ -135,7 +135,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
135
135
  .server(() => {
136
136
  data([sink().event('TodoMarkedInProgress').toStream('todos')]);
137
137
  specs(() => {
138
- rule('todos can be moved to in progress', 'AUTO-r2C3Dq9Z', () => {
138
+ rule('todos can be moved to in progress', 'r2C3Dq9Z', () => {
139
139
  example('moves a pending todo to in progress')
140
140
  .given<TodoAdded>({
141
141
  todoId: 'todo-001',
@@ -148,7 +148,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
148
148
  });
149
149
  });
150
150
  });
151
- command('marks todo as complete', 'AUTO-C3e6Op9Dz')
151
+ command('marks todo as complete', 'C3e6Op9Dz')
152
152
  .client(() => {
153
153
  describe('Complete Todo', () => {
154
154
  it('support drag-and-drop to "Done" column');
@@ -173,7 +173,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
173
173
  .server(() => {
174
174
  data([sink().event('TodoMarkedComplete').toStream('todos')]);
175
175
  specs(() => {
176
- rule('todos can be marked as complete', 'AUTO-r3D4Eq0A', () => {
176
+ rule('todos can be marked as complete', 'r3D4Eq0A', () => {
177
177
  example('marks an in-progress todo as complete')
178
178
  .given<TodoAdded>({
179
179
  todoId: 'todo-001',
@@ -196,7 +196,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
196
196
  });
197
197
  });
198
198
  });
199
- query('views all todos', 'AUTO-V4f7Pq0Ez')
199
+ query('views all todos', 'V4f7Pq0Ez')
200
200
  .client(() => {
201
201
  describe('Todo List View', () => {
202
202
  it('display todos organized in three columns: To Do, In Progress, Done');
@@ -222,7 +222,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
222
222
  .server(() => {
223
223
  data([source().state('TodoState').fromProjection('Todos', 'todoId')]);
224
224
  specs(() => {
225
- rule('all todos are displayed with their current status', 'AUTO-r4E5Fr1B', () => {
225
+ rule('all todos are displayed with their current status', 'r4E5Fr1B', () => {
226
226
  example('shows multiple todos in different states')
227
227
  .given<TodoAdded>({
228
228
  todoId: 'todo-001',
@@ -248,7 +248,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
248
248
  });
249
249
  });
250
250
  });
251
- query('views completion summary', 'AUTO-S5g8Qr1Fz')
251
+ query('views completion summary', 'S5g8Qr1Fz')
252
252
  .client(() => {
253
253
  describe('Completion Summary', () => {
254
254
  it('display circular progress ring showing completion percentage');
@@ -273,7 +273,7 @@ narrative('Todo List', 'AUTO-T8dL3k9Xw', () => {
273
273
  .server(() => {
274
274
  data([source().state('TodoListSummary').fromSingletonProjection('TodoSummary')]);
275
275
  specs(() => {
276
- rule('summary shows overall todo list statistics', 'AUTO-r5F6Gs2C', () => {
276
+ rule('summary shows overall todo list statistics', 'r5F6Gs2C', () => {
277
277
  example('calculates summary from multiple todos')
278
278
  .given<TodoAdded>({
279
279
  todoId: 'todo-001',
@@ -1,103 +1,103 @@
1
1
  import { experience, narrative, it } from '@auto-engineer/narrative';
2
- narrative('Home Screen', 'AUTO-cDAZP41Kb', () => {
3
- experience('Active Surveys Summary', 'AUTO-aifPcU3hw').client(() => {
2
+ narrative('Home Screen', 'cDAZP41Kb', () => {
3
+ experience('Active Surveys Summary', 'aifPcU3hw').client(() => {
4
4
  it('show active surveys summary and response rate overview');
5
5
  });
6
- experience('Recent Survey Responses', 'AUTO-B2gF5k9Xj').client(() => {
6
+ experience('Recent Survey Responses', 'B2gF5k9Xj').client(() => {
7
7
  it('display recent survey responses list');
8
8
  });
9
- experience('Completion Rate Progress', 'AUTO-C3hG6l0Yk').client(() => {
9
+ experience('Completion Rate Progress', 'C3hG6l0Yk').client(() => {
10
10
  it('show visual progress of completion rate goals');
11
11
  });
12
- experience('Quick Access Actions', 'AUTO-D4iH7m1Zl').client(() => {
12
+ experience('Quick Access Actions', 'D4iH7m1Zl').client(() => {
13
13
  it('show quick access buttons for Create Survey, Analytics, Templates');
14
14
  });
15
15
  });
16
- narrative('Create Survey', 'AUTO-OnuAvj45V', () => {
17
- experience('Create Survey Form', 'AUTO-MPviTMrQC').client(() => {
16
+ narrative('Create Survey', 'OnuAvj45V', () => {
17
+ experience('Create Survey Form', 'MPviTMrQC').client(() => {
18
18
  it('allow entering survey title, description, and question types');
19
19
  });
20
- experience('Question Templates Selection', 'AUTO-E5jI8n2Am').client(() => {
20
+ experience('Question Templates Selection', 'E5jI8n2Am').client(() => {
21
21
  it('show recent/frequent question templates for quick selection');
22
22
  });
23
- experience('Survey Creation Confirmation', 'AUTO-F6kJ9o3Bn').client(() => {
23
+ experience('Survey Creation Confirmation', 'F6kJ9o3Bn').client(() => {
24
24
  it('display confirmation toast after creating survey');
25
25
  });
26
- experience('Real-time Dashboard Updates', 'AUTO-G7lK0p4Co').client(() => {
26
+ experience('Real-time Dashboard Updates', 'G7lK0p4Co').client(() => {
27
27
  it('update survey dashboard and analytics in real-time');
28
28
  });
29
29
  });
30
- narrative('Response Analytics', 'AUTO-dRYuxORz0', () => {
31
- experience('Response Rate Charts', 'AUTO-eME978Euk').client(() => {
30
+ narrative('Response Analytics', 'dRYuxORz0', () => {
31
+ experience('Response Rate Charts', 'eME978Euk').client(() => {
32
32
  it('show daily response rate charts');
33
33
  it('show weekly response rate charts');
34
34
  });
35
- experience('High Engagement Survey Highlights', 'AUTO-H8mL1q5Dp').client(() => {
35
+ experience('High Engagement Survey Highlights', 'H8mL1q5Dp').client(() => {
36
36
  it('highlight surveys with highest engagement');
37
37
  });
38
- experience('Analytics Filtering', 'AUTO-I9nM2r6Eq').client(() => {
38
+ experience('Analytics Filtering', 'I9nM2r6Eq').client(() => {
39
39
  it('allow filtering by survey type or date range');
40
40
  });
41
- experience('Real-time Analytics Updates', 'AUTO-J0oN3s7Fr').client(() => {
41
+ experience('Real-time Analytics Updates', 'J0oN3s7Fr').client(() => {
42
42
  it('update dynamically when new responses are received');
43
43
  });
44
44
  });
45
- narrative('Manage Templates', 'AUTO-KFxx8k1ul', () => {
46
- experience('Templates List View', 'AUTO-TRJBgM1JS').client(() => {
45
+ narrative('Manage Templates', 'KFxx8k1ul', () => {
46
+ experience('Templates List View', 'TRJBgM1JS').client(() => {
47
47
  it('list all survey templates with usage count and last modified date');
48
48
  });
49
- experience('Template Management Actions', 'AUTO-K1pO4t8Gs').client(() => {
49
+ experience('Template Management Actions', 'K1pO4t8Gs').client(() => {
50
50
  it('allow creating, editing, and deleting survey templates');
51
51
  });
52
- experience('Template Usage Statistics', 'AUTO-L2qP5u9Ht').client(() => {
52
+ experience('Template Usage Statistics', 'L2qP5u9Ht').client(() => {
53
53
  it('show monthly summary of template usage statistics');
54
54
  });
55
- experience('Popular Templates Highlights', 'AUTO-M3rQ6v0Iu').client(() => {
55
+ experience('Popular Templates Highlights', 'M3rQ6v0Iu').client(() => {
56
56
  it('highlight most popular and recently used templates');
57
57
  });
58
58
  });
59
- narrative('Survey Completion Tracker', 'AUTO-wXdtfGpFr', () => {
60
- experience('Completion Rate Progress View', 'AUTO-oDBBOUNzr').client(() => {
59
+ narrative('Survey Completion Tracker', 'wXdtfGpFr', () => {
60
+ experience('Completion Rate Progress View', 'oDBBOUNzr').client(() => {
61
61
  it('show current completion rate and target progress');
62
62
  });
63
- experience('Target Setting Interface', 'AUTO-N4sR7w1Jv').client(() => {
63
+ experience('Target Setting Interface', 'N4sR7w1Jv').client(() => {
64
64
  it('allow setting completion rate targets');
65
65
  });
66
- experience('Automatic Completion Tracking', 'AUTO-O5tS8x2Kw').client(() => {
66
+ experience('Automatic Completion Tracking', 'O5tS8x2Kw').client(() => {
67
67
  it('automatically track new survey completions');
68
68
  });
69
- experience('Shell Progress Bar Display', 'AUTO-P6uT9y3Lx').client(() => {
69
+ experience('Shell Progress Bar Display', 'P6uT9y3Lx').client(() => {
70
70
  it('display visual completion progress bar consistently in shell');
71
71
  });
72
72
  });
73
- narrative('Response Goals Tracker', 'AUTO-W8dytm3oC', () => {
74
- experience('Response Target Setting', 'AUTO-Idmim68Yf').client(() => {
73
+ narrative('Response Goals Tracker', 'W8dytm3oC', () => {
74
+ experience('Response Target Setting', 'Idmim68Yf').client(() => {
75
75
  it('allow setting monthly/weekly response targets');
76
76
  });
77
- experience('Response Target Progress Bar', 'AUTO-Q7vU0z4My').client(() => {
77
+ experience('Response Target Progress Bar', 'Q7vU0z4My').client(() => {
78
78
  it('show remaining response targets as a progress bar');
79
79
  });
80
- experience('Underperforming Survey Highlights', 'AUTO-R8wV1a5Nz').client(() => {
80
+ experience('Underperforming Survey Highlights', 'R8wV1a5Nz').client(() => {
81
81
  it('highlight underperforming surveys');
82
82
  });
83
- experience('Real-time Goals Updates', 'AUTO-S9xW2b6Oa').client(() => {
83
+ experience('Real-time Goals Updates', 'S9xW2b6Oa').client(() => {
84
84
  it('update in real-time when responses are received');
85
85
  });
86
86
  });
87
- narrative('Response History', 'AUTO-JizW21yrr', () => {
88
- experience('Response History List', 'AUTO-cIpwPlqRq').client(() => {
87
+ narrative('Response History', 'JizW21yrr', () => {
88
+ experience('Response History List', 'cIpwPlqRq').client(() => {
89
89
  it('allow viewing full response history');
90
90
  });
91
- experience('Response History Filtering', 'AUTO-T0yX3c7Pb').client(() => {
91
+ experience('Response History Filtering', 'T0yX3c7Pb').client(() => {
92
92
  it('filter by survey type, date, or completion status');
93
93
  });
94
- experience('Detailed Response View', 'AUTO-U1zY4d8Qc').client(() => {
94
+ experience('Detailed Response View', 'U1zY4d8Qc').client(() => {
95
95
  it('view detailed response data and export individual responses');
96
96
  });
97
- experience('Response Export Functionality', 'AUTO-V2aZ5e9Rd').client(() => {
97
+ experience('Response Export Functionality', 'V2aZ5e9Rd').client(() => {
98
98
  it('export individual responses');
99
99
  });
100
- experience('Response Engagement Contribution', 'AUTO-W3ba6f0Se').client(() => {
100
+ experience('Response Engagement Contribution', 'W3ba6f0Se').client(() => {
101
101
  it('show contribution of each response to daily/weekly/monthly engagement totals');
102
102
  });
103
103
  });
@@ -103,11 +103,11 @@ type QuestionnaireProgress = State<
103
103
  }
104
104
  >;
105
105
 
106
- narrative('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
107
- command('sends the questionnaire link', 'AUTO-S2b5Cp7Dz')
106
+ narrative('Questionnaires', 'Q9m2Kp4Lx', () => {
107
+ command('sends the questionnaire link', 'S2b5Cp7Dz')
108
108
  .server(() => {
109
109
  specs(() => {
110
- rule('questionnaire link is sent to participant', 'AUTO-r0A1Bo8X', () => {
110
+ rule('questionnaire link is sent to participant', 'r0A1Bo8X', () => {
111
111
  example('sends the questionnaire link successfully')
112
112
  .when<SendQuestionnaireLink>({
113
113
  questionnaireId: 'q-001',
@@ -136,10 +136,10 @@ narrative('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
136
136
  it('handle errors when the link cannot be sent');
137
137
  });
138
138
  });
139
- query('views the questionnaire', 'AUTO-V7n8Rq5M')
139
+ query('views the questionnaire', 'V7n8Rq5M')
140
140
  .server(() => {
141
141
  specs(() => {
142
- rule('questionnaires show current progress', 'AUTO-r1A3Bp9W', () => {
142
+ rule('questionnaires show current progress', 'r1A3Bp9W', () => {
143
143
  example('a question has already been answered')
144
144
  .given<QuestionnaireLinkSent>({
145
145
  questionnaireId: 'q-001',
@@ -206,10 +206,10 @@ narrative('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
206
206
  });
207
207
  });
208
208
 
209
- command('submits a questionnaire answer', 'AUTO-S4j6Nt8Z')
209
+ command('submits a questionnaire answer', 'S4j6Nt8Z')
210
210
  .server(() => {
211
211
  specs(() => {
212
- rule('answers are allowed while the questionnaire has not been submitted', 'AUTO-r2D5Eq0Y', () => {
212
+ rule('answers are allowed while the questionnaire has not been submitted', 'r2D5Eq0Y', () => {
213
213
  example('no questions have been answered yet')
214
214
  .when<AnswerQuestion>({
215
215
  questionnaireId: 'q-001',
@@ -264,10 +264,10 @@ narrative('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
264
264
  });
265
265
  });
266
266
 
267
- query('questionnaire ready for submission', 'AUTO-R3f7Hu1X')
267
+ query('questionnaire ready for submission', 'R3f7Hu1X')
268
268
  .server(() => {
269
269
  specs(() => {
270
- rule('questionnaire is ready for submission when all questions are answered', 'AUTO-r3G8Iv2W', () => {
270
+ rule('questionnaire is ready for submission when all questions are answered', 'r3G8Iv2W', () => {
271
271
  example('all questions have been answered')
272
272
  .given<QuestionnaireConfig>({
273
273
  questionnaireId: 'q-001',
@@ -356,10 +356,10 @@ narrative('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
356
356
  });
357
357
  });
358
358
 
359
- command('submits the questionnaire', 'AUTO-T5k9Jw3V')
359
+ command('submits the questionnaire', 'T5k9Jw3V')
360
360
  .server(() => {
361
361
  specs(() => {
362
- rule('questionnaire allowed to be submitted when all questions are answered', 'AUTO-r4H0Lx4U', () => {
362
+ rule('questionnaire allowed to be submitted when all questions are answered', 'r4H0Lx4U', () => {
363
363
  example('submits the questionnaire successfully')
364
364
  .when<SubmitQuestionnaire>({
365
365
  questionnaireId: 'q-001',
@@ -1,6 +1,6 @@
1
1
  import { experience, narrative, it } from '@auto-engineer/narrative';
2
- narrative('App Structure', 'AUTO-vLkxrmhz6', () => {
3
- experience('App Structure', 'AUTO-k6JkQZQnc').client(() => {
2
+ narrative('App Structure', 'vLkxrmhz6', () => {
3
+ experience('App Structure', 'k6JkQZQnc').client(() => {
4
4
  it('display persistent sidebar on left for navigation');
5
5
  it(
6
6
  'sidebar includes links: Home, Create Survey, Analytics, Templates, Completion Tracker, Response Goals, Response History',