create-auto-app 0.20.0 → 0.21.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.
@@ -0,0 +1,1134 @@
1
+ {
2
+ "variant": "specs",
3
+ "narratives": [
4
+ {
5
+ "name": "Todo Dashboard",
6
+ "id": "AUTO-H6i9Rs2Gz",
7
+ "slices": [
8
+ {
9
+ "name": "Kanban Board View",
10
+ "id": "AUTO-K7j0St3Hz",
11
+ "type": "experience",
12
+ "client": {
13
+ "specs": {
14
+ "name": "",
15
+ "rules": [
16
+ "display three distinct columns: To Do, In Progress, and Done",
17
+ "show elegant column headers with gradient backgrounds",
18
+ "display count badges on each column showing number of tasks",
19
+ "support drag-and-drop of task cards between columns",
20
+ "animate smooth transitions when tasks move between columns",
21
+ "show visual feedback during drag operations with shadow elevation",
22
+ "display task cards with glass morphism effect and subtle backdrop blur",
23
+ "add hover effects with gentle scale and shadow transitions",
24
+ "show empty state with beautiful illustrations when columns are empty",
25
+ "maintain consistent card spacing and grid alignment"
26
+ ]
27
+ }
28
+ }
29
+ },
30
+ {
31
+ "name": "Task Cards",
32
+ "id": "AUTO-T8k1Uu4Iz",
33
+ "type": "experience",
34
+ "client": {
35
+ "specs": {
36
+ "name": "",
37
+ "rules": [
38
+ "display task description with clear readable typography",
39
+ "show status indicator with color-coded dot or icon",
40
+ "display creation timestamp in subtle text",
41
+ "show completion timestamp for completed tasks",
42
+ "include quick action buttons appearing on hover",
43
+ "support click to expand for future task details",
44
+ "apply strike-through animation for completed tasks",
45
+ "use gradient borders matching task status"
46
+ ]
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "name": "View Toggle Controls",
52
+ "id": "AUTO-V3p6Zz9Nz",
53
+ "type": "experience",
54
+ "client": {
55
+ "specs": {
56
+ "name": "",
57
+ "rules": [
58
+ "provide toggle between Kanban and List views",
59
+ "use segmented control or tab-style switcher",
60
+ "position in top toolbar for easy access",
61
+ "highlight active view with accent color",
62
+ "animate view transitions with fade and slide effects",
63
+ "preserve scroll position when switching views",
64
+ "remember user preference in local storage"
65
+ ]
66
+ }
67
+ }
68
+ },
69
+ {
70
+ "name": "Theme Toggle",
71
+ "id": "AUTO-T4q7Aa0Oz",
72
+ "type": "experience",
73
+ "client": {
74
+ "specs": {
75
+ "name": "",
76
+ "rules": [
77
+ "support light and dark theme modes",
78
+ "display sun/moon icon toggle in top bar",
79
+ "transition smoothly between themes with fade animation",
80
+ "adjust all colors including gradients for theme",
81
+ "maintain high contrast and readability in both modes",
82
+ "remember user preference in local storage",
83
+ "use system preference as default"
84
+ ]
85
+ }
86
+ }
87
+ },
88
+ {
89
+ "name": "Celebration Animations",
90
+ "id": "AUTO-C5r8Bb1Pz",
91
+ "type": "experience",
92
+ "client": {
93
+ "specs": {
94
+ "name": "",
95
+ "rules": [
96
+ "trigger confetti animation when task is completed",
97
+ "show satisfying check mark animation",
98
+ "play subtle success sound effect (optional, user configurable)",
99
+ "display special animation for completing all tasks",
100
+ "show streak celebration for consecutive daily completions",
101
+ "use particle effects that do not obstruct UI",
102
+ "respect reduced motion preferences for accessibility"
103
+ ]
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "name": "Column Management",
109
+ "id": "AUTO-M6s9Cc2Qz",
110
+ "type": "experience",
111
+ "client": {
112
+ "specs": {
113
+ "name": "",
114
+ "rules": [
115
+ "allow reordering tasks within same column via drag-and-drop",
116
+ "auto-scroll columns when dragging near edges",
117
+ "show drop zones with visual indicators",
118
+ "prevent invalid drops with visual feedback",
119
+ "support keyboard-based task movement for accessibility",
120
+ "show task count updates immediately on column changes",
121
+ "maintain smooth 60fps animations during all interactions"
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ {
127
+ "name": "Empty States",
128
+ "id": "AUTO-E7t0Dd3Rz",
129
+ "type": "experience",
130
+ "client": {
131
+ "specs": {
132
+ "name": "",
133
+ "rules": [
134
+ "display welcoming illustration when no tasks exist",
135
+ "show encouraging message to add first task",
136
+ "provide quick-add button directly in empty state",
137
+ "show column-specific empty states with relevant illustrations",
138
+ "use consistent visual style matching overall design system",
139
+ "include helpful tips for new users"
140
+ ]
141
+ }
142
+ }
143
+ },
144
+ {
145
+ "name": "Completion Progress Ring",
146
+ "id": "AUTO-P9l2Vv5Jz",
147
+ "type": "experience",
148
+ "client": {
149
+ "specs": {
150
+ "name": "",
151
+ "rules": [
152
+ "display circular progress ring with gradient stroke",
153
+ "show completion percentage prominently in center",
154
+ "animate progress changes with smooth easing",
155
+ "display total task count below percentage",
156
+ "use vibrant colors for high completion rates",
157
+ "show subtle pulse animation on milestone achievements",
158
+ "position prominently at top of dashboard or sidebar"
159
+ ]
160
+ }
161
+ }
162
+ },
163
+ {
164
+ "name": "Quick Add Todo Widget",
165
+ "id": "AUTO-Q0m3Ww6Kz",
166
+ "type": "experience",
167
+ "client": {
168
+ "specs": {
169
+ "name": "",
170
+ "rules": [
171
+ "display floating action button with plus icon",
172
+ "position fixed in bottom-right corner for easy access",
173
+ "expand into input form with smooth scale animation on click",
174
+ "include elegant input field with placeholder text",
175
+ "show submit button with icon when text is entered",
176
+ "support keyboard shortcut (Ctrl/Cmd + K) to focus input",
177
+ "auto-focus input when opened",
178
+ "clear and collapse after successful task addition",
179
+ "show loading state during task submission"
180
+ ]
181
+ }
182
+ }
183
+ },
184
+ {
185
+ "name": "Statistics Dashboard",
186
+ "id": "AUTO-S1n4Xx7Lz",
187
+ "type": "experience",
188
+ "client": {
189
+ "specs": {
190
+ "name": "",
191
+ "rules": [
192
+ "show total tasks count with large prominent number",
193
+ "display tasks completed today with celebration icon",
194
+ "show breakdown: pending, in-progress, completed counts",
195
+ "display completion percentage with visual indicator",
196
+ "use card-based layout with glass morphism styling",
197
+ "include subtle icons for each statistic",
198
+ "update in real-time when tasks change status",
199
+ "animate number changes with counting effect"
200
+ ]
201
+ }
202
+ }
203
+ },
204
+ {
205
+ "name": "Recent Activity Feed",
206
+ "id": "AUTO-R2o5Yy8Mz",
207
+ "type": "experience",
208
+ "client": {
209
+ "specs": {
210
+ "name": "",
211
+ "rules": [
212
+ "display recent task completions in chronological order",
213
+ "show completion timestamp in relative format",
214
+ "limit to last 5 completed tasks",
215
+ "include task description with completed styling",
216
+ "show subtle celebration icon for each completion",
217
+ "use minimalist list design with dividers",
218
+ "support click to view task details",
219
+ "auto-scroll new completions into view with smooth animation"
220
+ ]
221
+ }
222
+ }
223
+ }
224
+ ],
225
+ "sourceFile": "/Users/sam/WebstormProjects/top/auto-engineer-2/examples/kanban-todo/narratives/homepage.narrative.ts"
226
+ },
227
+ {
228
+ "name": "App Structure",
229
+ "id": "AUTO-A8u1Ee4Sz",
230
+ "slices": [
231
+ {
232
+ "name": "Application Layout",
233
+ "id": "AUTO-L9v2Ff5Tz",
234
+ "type": "experience",
235
+ "client": {
236
+ "specs": {
237
+ "name": "",
238
+ "rules": [
239
+ "display clean top navigation bar spanning full width",
240
+ "include app logo or name on left side of top bar",
241
+ "show view toggle controls in center of top bar",
242
+ "display theme toggle, search, and profile menu on right side",
243
+ "use gradient or glass morphism effect for top bar",
244
+ "maintain top bar fixed position during scroll",
245
+ "apply subtle shadow to separate top bar from content"
246
+ ]
247
+ }
248
+ }
249
+ },
250
+ {
251
+ "name": "Main Content Area",
252
+ "id": "AUTO-C0w3Gg6Uz",
253
+ "type": "experience",
254
+ "client": {
255
+ "specs": {
256
+ "name": "",
257
+ "rules": [
258
+ "occupy full viewport height below top bar",
259
+ "apply subtle gradient or textured background",
260
+ "center Kanban board with max-width container for large screens",
261
+ "provide adequate padding around content on all sides",
262
+ "support smooth transitions when switching between views",
263
+ "maintain responsive layout for tablet and mobile devices",
264
+ "use CSS Grid for Kanban column layout"
265
+ ]
266
+ }
267
+ }
268
+ },
269
+ {
270
+ "name": "Column Headers",
271
+ "id": "AUTO-H2y5Ii8Wz",
272
+ "type": "experience",
273
+ "client": {
274
+ "specs": {
275
+ "name": "",
276
+ "rules": [
277
+ "display column title with clear typography",
278
+ "show task count badge with colored background",
279
+ "use gradient or accent colors per column type",
280
+ "apply sticky positioning within scrollable columns",
281
+ "include subtle shadow for depth",
282
+ "maintain consistent height across all columns"
283
+ ]
284
+ }
285
+ }
286
+ },
287
+ {
288
+ "name": "Floating Action Button",
289
+ "id": "AUTO-F3z6Jj9Xz",
290
+ "type": "experience",
291
+ "client": {
292
+ "specs": {
293
+ "name": "",
294
+ "rules": [
295
+ "position fixed in bottom-right corner of viewport",
296
+ "display prominent plus icon or \"Add\" text",
297
+ "use vibrant gradient or solid accent color",
298
+ "apply circular shape with consistent size",
299
+ "show shadow for elevation effect",
300
+ "animate subtle pulse or glow on hover",
301
+ "expand into input form with smooth scale animation on click",
302
+ "maintain z-index above all other content",
303
+ "hide on mobile when keyboard is visible"
304
+ ]
305
+ }
306
+ }
307
+ },
308
+ {
309
+ "name": "Statistics Sidebar",
310
+ "id": "AUTO-S4a7Kk0Yz",
311
+ "type": "experience",
312
+ "client": {
313
+ "specs": {
314
+ "name": "",
315
+ "rules": [
316
+ "display on right side of screen in desktop view",
317
+ "show progress ring at top of sidebar",
318
+ "include statistics cards in vertical stack",
319
+ "display recent activity feed below statistics",
320
+ "apply glass morphism or card-based design",
321
+ "collapse into expandable panel on tablet devices",
322
+ "move to bottom sheet on mobile devices",
323
+ "support toggle to show/hide for more workspace"
324
+ ]
325
+ }
326
+ }
327
+ },
328
+ {
329
+ "name": "Task Detail Panel",
330
+ "id": "AUTO-D5b8Ll1Zz",
331
+ "type": "experience",
332
+ "client": {
333
+ "specs": {
334
+ "name": "",
335
+ "rules": [
336
+ "slide in from right side when task is clicked",
337
+ "overlay main content with backdrop blur on mobile",
338
+ "show full task information with edit capabilities",
339
+ "include close button in top-right corner",
340
+ "support swipe gesture to close on touch devices",
341
+ "maintain consistent width on desktop",
342
+ "animate slide-in/out with smooth easing",
343
+ "trap focus within panel when open for accessibility"
344
+ ]
345
+ }
346
+ }
347
+ },
348
+ {
349
+ "name": "Search Overlay",
350
+ "id": "AUTO-S6c9Mm2Az",
351
+ "type": "experience",
352
+ "client": {
353
+ "specs": {
354
+ "name": "",
355
+ "rules": [
356
+ "trigger with keyboard shortcut Cmd/Ctrl + K",
357
+ "display centered modal overlay with backdrop blur",
358
+ "show search input with large font size",
359
+ "include recent searches or suggestions below input",
360
+ "filter and display matching tasks in real-time",
361
+ "support keyboard navigation through results",
362
+ "close on Escape key or clicking backdrop",
363
+ "focus input automatically when opened"
364
+ ]
365
+ }
366
+ }
367
+ },
368
+ {
369
+ "name": "Mobile Navigation",
370
+ "id": "AUTO-M7d0Nn3Bz",
371
+ "type": "experience",
372
+ "client": {
373
+ "specs": {
374
+ "name": "",
375
+ "rules": [
376
+ "collapse top bar controls into hamburger menu on small screens",
377
+ "show essential actions as bottom tab bar on mobile",
378
+ "include tabs for: Kanban, Statistics, Add, Settings",
379
+ "highlight active tab with accent color",
380
+ "use icons for tabs with optional labels",
381
+ "maintain fixed position at bottom of viewport",
382
+ "apply safe area insets for notched devices"
383
+ ]
384
+ }
385
+ }
386
+ },
387
+ {
388
+ "name": "Responsive Breakpoints",
389
+ "id": "AUTO-R8e1Oo4Cz",
390
+ "type": "experience",
391
+ "client": {
392
+ "specs": {
393
+ "name": "",
394
+ "rules": [
395
+ "support desktop layout for screens 1024px and wider",
396
+ "adapt to tablet layout for screens 768px to 1023px",
397
+ "optimize for mobile devices below 768px",
398
+ "stack Kanban columns vertically on screens below 640px",
399
+ "adjust font sizes and spacing for each breakpoint",
400
+ "maintain touch-friendly tap targets on all devices",
401
+ "test on common device dimensions for consistency"
402
+ ]
403
+ }
404
+ }
405
+ },
406
+ {
407
+ "name": "Loading States",
408
+ "id": "AUTO-L9f2Pp5Dz",
409
+ "type": "experience",
410
+ "client": {
411
+ "specs": {
412
+ "name": "",
413
+ "rules": [
414
+ "show skeleton loaders for initial page load",
415
+ "display shimmer effect on loading cards",
416
+ "include spinner for async operations",
417
+ "maintain layout stability during loading",
418
+ "show optimistic UI updates for immediate feedback",
419
+ "handle slow network conditions gracefully",
420
+ "provide timeout fallback with retry option"
421
+ ]
422
+ }
423
+ }
424
+ },
425
+ {
426
+ "name": "Error States",
427
+ "id": "AUTO-E0g3Qq6Ez",
428
+ "type": "experience",
429
+ "client": {
430
+ "specs": {
431
+ "name": "",
432
+ "rules": [
433
+ "display inline error messages near relevant fields",
434
+ "show toast notifications for global errors",
435
+ "include helpful error messages with suggested actions",
436
+ "use consistent error styling with red accent color",
437
+ "provide retry buttons for failed operations",
438
+ "log errors to console for debugging",
439
+ "support error boundary for graceful failure recovery"
440
+ ]
441
+ }
442
+ }
443
+ },
444
+ {
445
+ "name": "Accessibility Features",
446
+ "id": "AUTO-A1h4Rr7Fz",
447
+ "type": "experience",
448
+ "client": {
449
+ "specs": {
450
+ "name": "",
451
+ "rules": [
452
+ "support full keyboard navigation throughout app",
453
+ "provide ARIA labels for all interactive elements",
454
+ "include skip links for main content areas",
455
+ "maintain focus indicators with high contrast",
456
+ "support screen reader announcements for dynamic changes",
457
+ "respect prefers-reduced-motion for animations",
458
+ "ensure color contrast meets WCAG AA standards",
459
+ "provide alt text for all decorative images and icons"
460
+ ]
461
+ }
462
+ }
463
+ },
464
+ {
465
+ "name": "Kanban Board Container",
466
+ "id": "AUTO-K1x4Hh7Vz",
467
+ "type": "experience",
468
+ "client": {
469
+ "specs": {
470
+ "name": "",
471
+ "rules": [
472
+ "display three equal-width columns in desktop view",
473
+ "apply consistent gap spacing between columns",
474
+ "stack columns vertically on mobile devices",
475
+ "support horizontal scrolling on smaller screens if needed",
476
+ "maintain minimum column width for readability",
477
+ "apply max-height with scroll for columns with many tasks",
478
+ "show subtle scrollbar styling matching theme"
479
+ ]
480
+ }
481
+ }
482
+ }
483
+ ],
484
+ "sourceFile": "/Users/sam/WebstormProjects/top/auto-engineer-2/examples/kanban-todo/narratives/structure.narrative.ts"
485
+ },
486
+ {
487
+ "name": "Todo List",
488
+ "id": "AUTO-T8dL3k9Xw",
489
+ "slices": [
490
+ {
491
+ "name": "adds a new todo",
492
+ "id": "AUTO-A1c4Mn7Bz",
493
+ "type": "command",
494
+ "client": {
495
+ "description": "",
496
+ "specs": {
497
+ "name": "Add Todo",
498
+ "rules": [
499
+ "display a quick-add input field with floating action button",
500
+ "show success animation when todo is added",
501
+ "automatically place new todo in \"To Do\" column",
502
+ "clear input field after successful addition",
503
+ "focus back to input for quick consecutive additions"
504
+ ]
505
+ }
506
+ },
507
+ "request": "mutation AddTodo($input: AddTodoInput!) {\n addTodo(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
508
+ "server": {
509
+ "description": "",
510
+ "data": [
511
+ {
512
+ "target": {
513
+ "type": "Event",
514
+ "name": "TodoAdded"
515
+ },
516
+ "destination": {
517
+ "type": "stream",
518
+ "pattern": "todos"
519
+ }
520
+ }
521
+ ],
522
+ "specs": {
523
+ "name": "",
524
+ "rules": [
525
+ {
526
+ "id": "AUTO-r1B2Cp8Y",
527
+ "description": "todos can be added to the list",
528
+ "examples": [
529
+ {
530
+ "description": "adds a new todo successfully",
531
+ "when": {
532
+ "commandRef": "AddTodo",
533
+ "exampleData": {
534
+ "todoId": "todo-001",
535
+ "description": "Buy groceries"
536
+ }
537
+ },
538
+ "then": [
539
+ {
540
+ "eventRef": "TodoAdded",
541
+ "exampleData": {
542
+ "todoId": "todo-001",
543
+ "description": "Buy groceries",
544
+ "status": "pending",
545
+ "addedAt": "2030-01-01T09:00:00.000Z"
546
+ }
547
+ }
548
+ ]
549
+ }
550
+ ]
551
+ }
552
+ ]
553
+ }
554
+ }
555
+ },
556
+ {
557
+ "name": "moves todo to in progress",
558
+ "id": "AUTO-M2d5No8Cz",
559
+ "type": "command",
560
+ "client": {
561
+ "description": "",
562
+ "specs": {
563
+ "name": "Move to In Progress",
564
+ "rules": [
565
+ "support drag-and-drop from \"To Do\" to \"In Progress\" column",
566
+ "animate smooth transition between columns",
567
+ "update column count badges in real-time",
568
+ "show visual feedback during drag operation"
569
+ ]
570
+ }
571
+ },
572
+ "request": "mutation MarkTodoInProgress($input: MarkTodoInProgressInput!) {\n markTodoInProgress(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
573
+ "server": {
574
+ "description": "",
575
+ "data": [
576
+ {
577
+ "target": {
578
+ "type": "Event",
579
+ "name": "TodoMarkedInProgress"
580
+ },
581
+ "destination": {
582
+ "type": "stream",
583
+ "pattern": "todos"
584
+ }
585
+ }
586
+ ],
587
+ "specs": {
588
+ "name": "",
589
+ "rules": [
590
+ {
591
+ "id": "AUTO-r2C3Dq9Z",
592
+ "description": "todos can be moved to in progress",
593
+ "examples": [
594
+ {
595
+ "description": "moves a pending todo to in progress",
596
+ "given": [
597
+ {
598
+ "eventRef": "TodoAdded",
599
+ "exampleData": {
600
+ "todoId": "todo-001",
601
+ "description": "Buy groceries",
602
+ "status": "pending",
603
+ "addedAt": "2030-01-01T09:00:00.000Z"
604
+ }
605
+ }
606
+ ],
607
+ "when": {
608
+ "commandRef": "MarkTodoInProgress",
609
+ "exampleData": {
610
+ "todoId": "todo-001"
611
+ }
612
+ },
613
+ "then": [
614
+ {
615
+ "eventRef": "TodoMarkedInProgress",
616
+ "exampleData": {
617
+ "todoId": "todo-001",
618
+ "markedAt": "2030-01-01T10:00:00.000Z"
619
+ }
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ }
625
+ ]
626
+ }
627
+ }
628
+ },
629
+ {
630
+ "name": "marks todo as complete",
631
+ "id": "AUTO-C3e6Op9Dz",
632
+ "type": "command",
633
+ "client": {
634
+ "description": "",
635
+ "specs": {
636
+ "name": "Complete Todo",
637
+ "rules": [
638
+ "support drag-and-drop to \"Done\" column",
639
+ "show celebration animation on completion",
640
+ "display visual confetti effect for milestone completions",
641
+ "update completion percentage progress ring",
642
+ "strike-through completed todo text with smooth animation",
643
+ "show completion timestamp on hover"
644
+ ]
645
+ }
646
+ },
647
+ "request": "mutation MarkTodoComplete($input: MarkTodoCompleteInput!) {\n markTodoComplete(input: $input) {\n success\n error {\n type\n message\n }\n }\n}",
648
+ "server": {
649
+ "description": "",
650
+ "data": [
651
+ {
652
+ "target": {
653
+ "type": "Event",
654
+ "name": "TodoMarkedComplete"
655
+ },
656
+ "destination": {
657
+ "type": "stream",
658
+ "pattern": "todos"
659
+ }
660
+ }
661
+ ],
662
+ "specs": {
663
+ "name": "",
664
+ "rules": [
665
+ {
666
+ "id": "AUTO-r3D4Eq0A",
667
+ "description": "todos can be marked as complete",
668
+ "examples": [
669
+ {
670
+ "description": "marks an in-progress todo as complete",
671
+ "given": [
672
+ {
673
+ "eventRef": "TodoAdded",
674
+ "exampleData": {
675
+ "todoId": "todo-001",
676
+ "description": "Buy groceries",
677
+ "status": "pending",
678
+ "addedAt": "2030-01-01T09:00:00.000Z"
679
+ }
680
+ },
681
+ {
682
+ "eventRef": "TodoMarkedInProgress",
683
+ "exampleData": {
684
+ "todoId": "todo-001",
685
+ "markedAt": "2030-01-01T10:00:00.000Z"
686
+ }
687
+ }
688
+ ],
689
+ "when": {
690
+ "commandRef": "MarkTodoComplete",
691
+ "exampleData": {
692
+ "todoId": "todo-001"
693
+ }
694
+ },
695
+ "then": [
696
+ {
697
+ "eventRef": "TodoMarkedComplete",
698
+ "exampleData": {
699
+ "todoId": "todo-001",
700
+ "completedAt": "2030-01-01T11:00:00.000Z"
701
+ }
702
+ }
703
+ ]
704
+ },
705
+ {
706
+ "description": "marks a pending todo directly as complete",
707
+ "given": [
708
+ {
709
+ "eventRef": "TodoAdded",
710
+ "exampleData": {
711
+ "todoId": "todo-002",
712
+ "description": "Write report",
713
+ "status": "pending",
714
+ "addedAt": "2030-01-01T09:00:00.000Z"
715
+ }
716
+ }
717
+ ],
718
+ "when": {
719
+ "commandRef": "MarkTodoComplete",
720
+ "exampleData": {
721
+ "todoId": "todo-002"
722
+ }
723
+ },
724
+ "then": [
725
+ {
726
+ "eventRef": "TodoMarkedComplete",
727
+ "exampleData": {
728
+ "todoId": "todo-002",
729
+ "completedAt": "2030-01-01T11:30:00.000Z"
730
+ }
731
+ }
732
+ ]
733
+ }
734
+ ]
735
+ }
736
+ ]
737
+ }
738
+ }
739
+ },
740
+ {
741
+ "name": "views all todos",
742
+ "id": "AUTO-V4f7Pq0Ez",
743
+ "type": "query",
744
+ "client": {
745
+ "description": "",
746
+ "specs": {
747
+ "name": "Todo List View",
748
+ "rules": [
749
+ "display todos organized in three columns: To Do, In Progress, Done",
750
+ "show count badges on each column header",
751
+ "support drag-and-drop between columns",
752
+ "display empty state illustrations for empty columns",
753
+ "show todo cards with glass morphism effect",
754
+ "display subtle hover effects on todo cards",
755
+ "support keyboard navigation between todos"
756
+ ]
757
+ }
758
+ },
759
+ "request": "query AllTodos {\n todos {\n todoId\n description\n status\n addedAt\n completedAt\n }\n}",
760
+ "server": {
761
+ "description": "",
762
+ "data": [
763
+ {
764
+ "target": {
765
+ "type": "State",
766
+ "name": "TodoState"
767
+ },
768
+ "origin": {
769
+ "type": "projection",
770
+ "name": "Todos",
771
+ "idField": "todoId"
772
+ }
773
+ }
774
+ ],
775
+ "specs": {
776
+ "name": "",
777
+ "rules": [
778
+ {
779
+ "id": "AUTO-r4E5Fr1B",
780
+ "description": "all todos are displayed with their current status",
781
+ "examples": [
782
+ {
783
+ "description": "shows multiple todos in different states",
784
+ "given": [
785
+ {
786
+ "eventRef": "TodoAdded",
787
+ "exampleData": {
788
+ "todoId": "todo-001",
789
+ "description": "Buy groceries",
790
+ "status": "pending",
791
+ "addedAt": "2030-01-01T09:00:00.000Z"
792
+ }
793
+ },
794
+ {
795
+ "eventRef": "TodoAdded",
796
+ "exampleData": {
797
+ "todoId": "todo-002",
798
+ "description": "Write report",
799
+ "status": "pending",
800
+ "addedAt": "2030-01-01T09:10:00.000Z"
801
+ }
802
+ },
803
+ {
804
+ "eventRef": "TodoMarkedInProgress",
805
+ "exampleData": {
806
+ "todoId": "todo-001",
807
+ "markedAt": "2030-01-01T10:00:00.000Z"
808
+ }
809
+ },
810
+ {
811
+ "eventRef": "TodoMarkedComplete",
812
+ "exampleData": {
813
+ "todoId": "todo-002",
814
+ "completedAt": "2030-01-01T11:00:00.000Z"
815
+ }
816
+ }
817
+ ],
818
+ "then": [
819
+ {
820
+ "stateRef": "TodoState",
821
+ "exampleData": {
822
+ "todoId": "todo-001",
823
+ "description": "Buy groceries",
824
+ "status": "in_progress",
825
+ "addedAt": "2030-01-01T09:00:00.000Z",
826
+ "completedAt": null
827
+ }
828
+ }
829
+ ]
830
+ }
831
+ ]
832
+ }
833
+ ]
834
+ }
835
+ }
836
+ },
837
+ {
838
+ "name": "views completion summary",
839
+ "id": "AUTO-S5g8Qr1Fz",
840
+ "type": "query",
841
+ "client": {
842
+ "description": "",
843
+ "specs": {
844
+ "name": "Completion Summary",
845
+ "rules": [
846
+ "display circular progress ring showing completion percentage",
847
+ "show total task count in center of progress ring",
848
+ "display breakdown of pending, in-progress, and completed counts",
849
+ "update progress ring with smooth animation on status changes",
850
+ "use gradient colors for progress ring",
851
+ "show daily completion goal progress"
852
+ ]
853
+ }
854
+ },
855
+ "request": "query TodoListSummary {\n todoListSummary {\n totalTodos\n pendingCount\n inProgressCount\n completedCount\n completionPercentage\n }\n}",
856
+ "server": {
857
+ "description": "",
858
+ "data": [
859
+ {
860
+ "target": {
861
+ "type": "State",
862
+ "name": "TodoListSummary"
863
+ },
864
+ "origin": {
865
+ "type": "projection",
866
+ "name": "TodoSummary",
867
+ "singleton": true
868
+ }
869
+ }
870
+ ],
871
+ "specs": {
872
+ "name": "",
873
+ "rules": [
874
+ {
875
+ "id": "AUTO-r5F6Gs2C",
876
+ "description": "summary shows overall todo list statistics",
877
+ "examples": [
878
+ {
879
+ "description": "calculates summary from multiple todos",
880
+ "given": [
881
+ {
882
+ "eventRef": "TodoAdded",
883
+ "exampleData": {
884
+ "todoId": "todo-001",
885
+ "description": "Buy groceries",
886
+ "status": "pending",
887
+ "addedAt": "2030-01-01T09:00:00.000Z"
888
+ }
889
+ },
890
+ {
891
+ "eventRef": "TodoAdded",
892
+ "exampleData": {
893
+ "todoId": "todo-002",
894
+ "description": "Write report",
895
+ "status": "pending",
896
+ "addedAt": "2030-01-01T09:10:00.000Z"
897
+ }
898
+ },
899
+ {
900
+ "eventRef": "TodoAdded",
901
+ "exampleData": {
902
+ "todoId": "todo-003",
903
+ "description": "Call client",
904
+ "status": "pending",
905
+ "addedAt": "2030-01-01T09:20:00.000Z"
906
+ }
907
+ },
908
+ {
909
+ "eventRef": "TodoMarkedInProgress",
910
+ "exampleData": {
911
+ "todoId": "todo-001",
912
+ "markedAt": "2030-01-01T10:00:00.000Z"
913
+ }
914
+ },
915
+ {
916
+ "eventRef": "TodoMarkedComplete",
917
+ "exampleData": {
918
+ "todoId": "todo-002",
919
+ "completedAt": "2030-01-01T11:00:00.000Z"
920
+ }
921
+ }
922
+ ],
923
+ "then": [
924
+ {
925
+ "stateRef": "TodoListSummary",
926
+ "exampleData": {
927
+ "totalTodos": 3,
928
+ "pendingCount": 1,
929
+ "inProgressCount": 1,
930
+ "completedCount": 1,
931
+ "completionPercentage": 33
932
+ }
933
+ }
934
+ ]
935
+ }
936
+ ]
937
+ }
938
+ ]
939
+ }
940
+ }
941
+ }
942
+ ],
943
+ "sourceFile": "/Users/sam/WebstormProjects/top/auto-engineer-2/examples/kanban-todo/narratives/todo-list.narrative.ts"
944
+ }
945
+ ],
946
+ "messages": [
947
+ {
948
+ "type": "command",
949
+ "name": "AddTodo",
950
+ "fields": [
951
+ {
952
+ "name": "todoId",
953
+ "type": "string",
954
+ "required": true
955
+ },
956
+ {
957
+ "name": "description",
958
+ "type": "string",
959
+ "required": true
960
+ }
961
+ ],
962
+ "metadata": {
963
+ "version": 1
964
+ }
965
+ },
966
+ {
967
+ "type": "event",
968
+ "name": "TodoAdded",
969
+ "fields": [
970
+ {
971
+ "name": "todoId",
972
+ "type": "string",
973
+ "required": true
974
+ },
975
+ {
976
+ "name": "description",
977
+ "type": "string",
978
+ "required": true
979
+ },
980
+ {
981
+ "name": "status",
982
+ "type": "\"pending\"",
983
+ "required": true
984
+ },
985
+ {
986
+ "name": "addedAt",
987
+ "type": "Date",
988
+ "required": true
989
+ }
990
+ ],
991
+ "source": "internal",
992
+ "metadata": {
993
+ "version": 1
994
+ }
995
+ },
996
+ {
997
+ "type": "command",
998
+ "name": "MarkTodoInProgress",
999
+ "fields": [
1000
+ {
1001
+ "name": "todoId",
1002
+ "type": "string",
1003
+ "required": true
1004
+ }
1005
+ ],
1006
+ "metadata": {
1007
+ "version": 1
1008
+ }
1009
+ },
1010
+ {
1011
+ "type": "event",
1012
+ "name": "TodoMarkedInProgress",
1013
+ "fields": [
1014
+ {
1015
+ "name": "todoId",
1016
+ "type": "string",
1017
+ "required": true
1018
+ },
1019
+ {
1020
+ "name": "markedAt",
1021
+ "type": "Date",
1022
+ "required": true
1023
+ }
1024
+ ],
1025
+ "source": "internal",
1026
+ "metadata": {
1027
+ "version": 1
1028
+ }
1029
+ },
1030
+ {
1031
+ "type": "command",
1032
+ "name": "MarkTodoComplete",
1033
+ "fields": [
1034
+ {
1035
+ "name": "todoId",
1036
+ "type": "string",
1037
+ "required": true
1038
+ }
1039
+ ],
1040
+ "metadata": {
1041
+ "version": 1
1042
+ }
1043
+ },
1044
+ {
1045
+ "type": "event",
1046
+ "name": "TodoMarkedComplete",
1047
+ "fields": [
1048
+ {
1049
+ "name": "todoId",
1050
+ "type": "string",
1051
+ "required": true
1052
+ },
1053
+ {
1054
+ "name": "completedAt",
1055
+ "type": "Date",
1056
+ "required": true
1057
+ }
1058
+ ],
1059
+ "source": "internal",
1060
+ "metadata": {
1061
+ "version": 1
1062
+ }
1063
+ },
1064
+ {
1065
+ "type": "state",
1066
+ "name": "TodoState",
1067
+ "fields": [
1068
+ {
1069
+ "name": "todoId",
1070
+ "type": "string",
1071
+ "required": true
1072
+ },
1073
+ {
1074
+ "name": "description",
1075
+ "type": "string",
1076
+ "required": true
1077
+ },
1078
+ {
1079
+ "name": "status",
1080
+ "type": "\"pending\" | \"in_progress\" | \"completed\"",
1081
+ "required": true
1082
+ },
1083
+ {
1084
+ "name": "addedAt",
1085
+ "type": "Date",
1086
+ "required": true
1087
+ },
1088
+ {
1089
+ "name": "completedAt",
1090
+ "type": "Date | null",
1091
+ "required": true
1092
+ }
1093
+ ],
1094
+ "metadata": {
1095
+ "version": 1
1096
+ }
1097
+ },
1098
+ {
1099
+ "type": "state",
1100
+ "name": "TodoListSummary",
1101
+ "fields": [
1102
+ {
1103
+ "name": "totalTodos",
1104
+ "type": "number",
1105
+ "required": true
1106
+ },
1107
+ {
1108
+ "name": "pendingCount",
1109
+ "type": "number",
1110
+ "required": true
1111
+ },
1112
+ {
1113
+ "name": "inProgressCount",
1114
+ "type": "number",
1115
+ "required": true
1116
+ },
1117
+ {
1118
+ "name": "completedCount",
1119
+ "type": "number",
1120
+ "required": true
1121
+ },
1122
+ {
1123
+ "name": "completionPercentage",
1124
+ "type": "number",
1125
+ "required": true
1126
+ }
1127
+ ],
1128
+ "metadata": {
1129
+ "version": 1
1130
+ }
1131
+ }
1132
+ ],
1133
+ "integrations": []
1134
+ }