create-auto-app 0.11.10 → 0.11.11
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/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/kanban-todo/.context/auto-ia-scheme.json +403 -0
- package/templates/kanban-todo/.context/schema.graphql +61 -0
- package/templates/kanban-todo/.context/schema.json +1148 -0
- package/templates/kanban-todo/.gitignore +2 -2
- package/templates/kanban-todo/auto.config.ts +8 -6
- package/templates/kanban-todo/client/.gitignore +24 -0
- package/templates/kanban-todo/client2/.gitignore +24 -0
- package/templates/kanban-todo/{flows/homepage.flow.ts → narratives/homepage.narrative.ts} +27 -38
- package/templates/kanban-todo/{flows/structure.flow.ts → narratives/structure.narrative.ts} +2 -15
- package/templates/kanban-todo/{flows/todo-list.flow.ts → narratives/todo-list.narrative.ts} +163 -210
- package/templates/kanban-todo/package.json +1 -1
- package/templates/questionnaires/auto.config.ts +5 -5
- package/templates/questionnaires/{flows/homepage.flow.ts → narratives/homepage.narrative.ts} +8 -8
- package/templates/questionnaires/{flows/questionnaires.flow.ts → narratives/questionnaires.narrative.ts} +3 -3
- package/templates/questionnaires/{flows/structure.flow.ts → narratives/structure.narrative.ts} +2 -2
- package/templates/questionnaires/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { autoConfig, on, dispatch } from '@auto-engineer/cli';
|
|
2
|
-
import type { ExportSchemaEvents } from '@auto-engineer/
|
|
2
|
+
import type { ExportSchemaEvents } from '@auto-engineer/narrative';
|
|
3
3
|
import type {
|
|
4
4
|
GenerateServerCommand,
|
|
5
5
|
GenerateServerEvents,
|
|
@@ -61,7 +61,7 @@ export default autoConfig({
|
|
|
61
61
|
'@auto-engineer/server-checks',
|
|
62
62
|
'@auto-engineer/design-system-importer',
|
|
63
63
|
'@auto-engineer/server-generator-apollo-emmett',
|
|
64
|
-
'@auto-engineer/
|
|
64
|
+
'@auto-engineer/narrative',
|
|
65
65
|
'@auto-engineer/frontend-checks',
|
|
66
66
|
'@auto-engineer/frontend-implementer',
|
|
67
67
|
'@auto-engineer/component-implementer',
|
|
@@ -111,7 +111,9 @@ export default autoConfig({
|
|
|
111
111
|
for (let i = 0; i < componentPhaseOrder.length - 1; i++) {
|
|
112
112
|
const currentPhase = componentPhaseOrder[i];
|
|
113
113
|
const nextPhase = componentPhaseOrder[i + 1];
|
|
114
|
-
|
|
114
|
+
const allProcessed = areAllProcessed(currentPhase);
|
|
115
|
+
const alreadyDispatched = dispatchedPhases.has(nextPhase);
|
|
116
|
+
if (allProcessed && !alreadyDispatched) {
|
|
115
117
|
dispatchedPhases.add(nextPhase);
|
|
116
118
|
return dispatchComponentsOfType(nextPhase);
|
|
117
119
|
}
|
|
@@ -361,7 +363,7 @@ function collectErrorMessages(failures: CheckFailures): string {
|
|
|
361
363
|
|
|
362
364
|
rm -rf server client .context/schema.json .context/schema.graphql .context/auto-ia-scheme.json
|
|
363
365
|
pnpm auto export:schema
|
|
364
|
-
pnpm auto generate:ia --output-dir=./.context --flow-files=./
|
|
366
|
+
pnpm auto generate:ia --output-dir=./.context --flow-files=./narratives/questionnaires.narrative.ts
|
|
365
367
|
pnpm auto generate:server --schema-path=./.context/schema.json --destination=.
|
|
366
368
|
pnpm auto generate:client --starter-dir=../../packages/frontend-generator-react-graphql/shadcn-starter --target-dir=./client --ia-schema-path=./.context/auto-ia-scheme.json --gql-schema-path=./.context/schema.graphql --figma-variables-path=./.context/figma-file.json
|
|
367
369
|
pnpm auto implement:client --project-dir=./questionnaires/client --ia-scheme-dir=./questionnaires/.context --design-system-path=./questionnaires/.context/design-system.md
|
|
@@ -374,7 +376,7 @@ pnpm auto generate:server --schema-path=./.context/schema.json --destination=.
|
|
|
374
376
|
pnpm auto generate:client --starter-dir=/Users/sam/WebstormProjects/top/auto-engineer/packages/frontend-generator-react-graphql/shadcn-starter --target-dir=./client --ia-schema-path=./.context/auto-ia-scheme.json --gql-schema-path=./.context/schema.graphql --figma-variables-path=./.context/figma-file.json
|
|
375
377
|
|
|
376
378
|
// run this per slice in parallel
|
|
377
|
-
pnpm auto implement:slice --slice-path=./questionnaires/server/src/domain/
|
|
379
|
+
pnpm auto implement:slice --slice-path=./questionnaires/server/src/domain/narratives/questionnaires/submits-the-questionnaire
|
|
378
380
|
// add checks
|
|
379
381
|
// add retry logic tore-implement failed slices with a retry count
|
|
380
382
|
|
|
@@ -397,7 +399,7 @@ pnpm -w build &&\
|
|
|
397
399
|
rm -rf server client .context/schema.json .context/schema.graphql .context/auto-ia-scheme.json &&\
|
|
398
400
|
DEBUG=* pnpm auto export:schema &&\
|
|
399
401
|
DEBUG=* pnpm auto generate:server --schema-path=./.context/schema.json --destination=. &&\
|
|
400
|
-
DEBUG=* pnpm auto generate:ia --output-dir=./.context --flow-files=./
|
|
402
|
+
DEBUG=* pnpm auto generate:ia --output-dir=./.context --flow-files=./narratives/questionnaires.narrative.ts &&\
|
|
401
403
|
DEBUG=* pnpm auto generate:client --starter-dir=../../packages/frontend-generator-react-graphql/shadcn-starter --target-dir=./client --ia-schema-path=./.context/auto-ia-scheme.json --gql-schema-path=./.context/schema.graphql --figma-variables-path=./.context/figma-file.json
|
|
402
404
|
|
|
403
405
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Logs
|
|
2
|
+
logs
|
|
3
|
+
*.log
|
|
4
|
+
npm-debug.log*
|
|
5
|
+
yarn-debug.log*
|
|
6
|
+
yarn-error.log*
|
|
7
|
+
pnpm-debug.log*
|
|
8
|
+
lerna-debug.log*
|
|
9
|
+
|
|
10
|
+
node_modules
|
|
11
|
+
dist
|
|
12
|
+
dist-ssr
|
|
13
|
+
*.local
|
|
14
|
+
|
|
15
|
+
# Editor directories and files
|
|
16
|
+
.vscode/*
|
|
17
|
+
!.vscode/extensions.json
|
|
18
|
+
.idea
|
|
19
|
+
.DS_Store
|
|
20
|
+
*.suo
|
|
21
|
+
*.ntvs*
|
|
22
|
+
*.njsproj
|
|
23
|
+
*.sln
|
|
24
|
+
*.sw?
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Logs
|
|
2
|
+
logs
|
|
3
|
+
*.log
|
|
4
|
+
npm-debug.log*
|
|
5
|
+
yarn-debug.log*
|
|
6
|
+
yarn-error.log*
|
|
7
|
+
pnpm-debug.log*
|
|
8
|
+
lerna-debug.log*
|
|
9
|
+
|
|
10
|
+
node_modules
|
|
11
|
+
dist
|
|
12
|
+
dist-ssr
|
|
13
|
+
*.local
|
|
14
|
+
|
|
15
|
+
# Editor directories and files
|
|
16
|
+
.vscode/*
|
|
17
|
+
!.vscode/extensions.json
|
|
18
|
+
.idea
|
|
19
|
+
.DS_Store
|
|
20
|
+
*.suo
|
|
21
|
+
*.ntvs*
|
|
22
|
+
*.njsproj
|
|
23
|
+
*.sln
|
|
24
|
+
*.sw?
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { experience,
|
|
2
|
-
|
|
3
|
-
flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
1
|
+
import { experience, narrative, should, specs } from '@auto-engineer/narrative';
|
|
2
|
+
narrative('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
4
3
|
experience('Kanban Board View', 'AUTO-K7j0St3Hz').client(() => {
|
|
5
4
|
specs(() => {
|
|
6
5
|
should('display three distinct columns: To Do, In Progress, and Done');
|
|
@@ -15,7 +14,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
15
14
|
should('maintain consistent card spacing and grid alignment');
|
|
16
15
|
});
|
|
17
16
|
});
|
|
18
|
-
|
|
19
17
|
experience('Task Cards', 'AUTO-T8k1Uu4Iz').client(() => {
|
|
20
18
|
specs(() => {
|
|
21
19
|
should('display task description with clear readable typography');
|
|
@@ -28,33 +26,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
28
26
|
should('use gradient borders matching task status');
|
|
29
27
|
});
|
|
30
28
|
});
|
|
31
|
-
|
|
32
|
-
experience('Completion Progress Ring', 'AUTO-P9l2Vv5Jz').client(() => {
|
|
33
|
-
specs(() => {
|
|
34
|
-
should('display circular progress ring with gradient stroke');
|
|
35
|
-
should('show completion percentage prominently in center');
|
|
36
|
-
should('animate progress changes with smooth easing');
|
|
37
|
-
should('display total task count below percentage');
|
|
38
|
-
should('use vibrant colors for high completion rates');
|
|
39
|
-
should('show subtle pulse animation on milestone achievements');
|
|
40
|
-
should('position prominently at top of dashboard or sidebar');
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
experience('Quick Add Todo Widget', 'AUTO-Q0m3Ww6Kz').client(() => {
|
|
45
|
-
specs(() => {
|
|
46
|
-
should('display floating action button with plus icon');
|
|
47
|
-
should('position fixed in bottom-right corner for easy access');
|
|
48
|
-
should('expand into input form with smooth scale animation on click');
|
|
49
|
-
should('include elegant input field with placeholder text');
|
|
50
|
-
should('show submit button with icon when text is entered');
|
|
51
|
-
should('support keyboard shortcut (Ctrl/Cmd + K) to focus input');
|
|
52
|
-
should('auto-focus input when opened');
|
|
53
|
-
should('clear and collapse after successful task addition');
|
|
54
|
-
should('show loading state during task submission');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
29
|
experience('Statistics Dashboard', 'AUTO-S1n4Xx7Lz').client(() => {
|
|
59
30
|
specs(() => {
|
|
60
31
|
should('show total tasks count with large prominent number');
|
|
@@ -67,7 +38,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
67
38
|
should('animate number changes with counting effect');
|
|
68
39
|
});
|
|
69
40
|
});
|
|
70
|
-
|
|
71
41
|
experience('Recent Activity Feed', 'AUTO-R2o5Yy8Mz').client(() => {
|
|
72
42
|
specs(() => {
|
|
73
43
|
should('display recent task completions in chronological order');
|
|
@@ -80,7 +50,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
80
50
|
should('auto-scroll new completions into view with smooth animation');
|
|
81
51
|
});
|
|
82
52
|
});
|
|
83
|
-
|
|
84
53
|
experience('View Toggle Controls', 'AUTO-V3p6Zz9Nz').client(() => {
|
|
85
54
|
specs(() => {
|
|
86
55
|
should('provide toggle between Kanban and List views');
|
|
@@ -92,7 +61,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
92
61
|
should('remember user preference in local storage');
|
|
93
62
|
});
|
|
94
63
|
});
|
|
95
|
-
|
|
96
64
|
experience('Theme Toggle', 'AUTO-T4q7Aa0Oz').client(() => {
|
|
97
65
|
specs(() => {
|
|
98
66
|
should('support light and dark theme modes');
|
|
@@ -104,11 +72,10 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
104
72
|
should('use system preference as default');
|
|
105
73
|
});
|
|
106
74
|
});
|
|
107
|
-
|
|
108
75
|
experience('Celebration Animations', 'AUTO-C5r8Bb1Pz').client(() => {
|
|
109
76
|
specs(() => {
|
|
110
77
|
should('trigger confetti animation when task is completed');
|
|
111
|
-
should('show satisfying
|
|
78
|
+
should('show satisfying check mark animation');
|
|
112
79
|
should('play subtle success sound effect (optional, user configurable)');
|
|
113
80
|
should('display special animation for completing all tasks');
|
|
114
81
|
should('show streak celebration for consecutive daily completions');
|
|
@@ -116,7 +83,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
116
83
|
should('respect reduced motion preferences for accessibility');
|
|
117
84
|
});
|
|
118
85
|
});
|
|
119
|
-
|
|
120
86
|
experience('Column Management', 'AUTO-M6s9Cc2Qz').client(() => {
|
|
121
87
|
specs(() => {
|
|
122
88
|
should('allow reordering tasks within same column via drag-and-drop');
|
|
@@ -128,7 +94,6 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
128
94
|
should('maintain smooth 60fps animations during all interactions');
|
|
129
95
|
});
|
|
130
96
|
});
|
|
131
|
-
|
|
132
97
|
experience('Empty States', 'AUTO-E7t0Dd3Rz').client(() => {
|
|
133
98
|
specs(() => {
|
|
134
99
|
should('display welcoming illustration when no tasks exist');
|
|
@@ -139,4 +104,28 @@ flow('Todo Dashboard', 'AUTO-H6i9Rs2Gz', () => {
|
|
|
139
104
|
should('include helpful tips for new users');
|
|
140
105
|
});
|
|
141
106
|
});
|
|
107
|
+
experience('Completion Progress Ring', 'AUTO-P9l2Vv5Jz').client(() => {
|
|
108
|
+
specs(() => {
|
|
109
|
+
should('display circular progress ring with gradient stroke');
|
|
110
|
+
should('show completion percentage prominently in center');
|
|
111
|
+
should('animate progress changes with smooth easing');
|
|
112
|
+
should('display total task count below percentage');
|
|
113
|
+
should('use vibrant colors for high completion rates');
|
|
114
|
+
should('show subtle pulse animation on milestone achievements');
|
|
115
|
+
should('position prominently at top of dashboard or sidebar');
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
experience('Quick Add Todo Widget', 'AUTO-Q0m3Ww6Kz').client(() => {
|
|
119
|
+
specs(() => {
|
|
120
|
+
should('display floating action button with plus icon');
|
|
121
|
+
should('position fixed in bottom-right corner for easy access');
|
|
122
|
+
should('expand into input form with smooth scale animation on click');
|
|
123
|
+
should('include elegant input field with placeholder text');
|
|
124
|
+
should('show submit button with icon when text is entered');
|
|
125
|
+
should('support keyboard shortcut (Ctrl/Cmd + K) to focus input');
|
|
126
|
+
should('auto-focus input when opened');
|
|
127
|
+
should('clear and collapse after successful task addition');
|
|
128
|
+
should('show loading state during task submission');
|
|
129
|
+
});
|
|
130
|
+
});
|
|
142
131
|
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { experience,
|
|
2
|
-
|
|
3
|
-
flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
1
|
+
import { experience, narrative, should, specs } from '@auto-engineer/narrative';
|
|
2
|
+
narrative('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
4
3
|
experience('Application Layout', 'AUTO-L9v2Ff5Tz').client(() => {
|
|
5
4
|
specs(() => {
|
|
6
5
|
should('display clean top navigation bar spanning full width');
|
|
@@ -12,7 +11,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
12
11
|
should('apply subtle shadow to separate top bar from content');
|
|
13
12
|
});
|
|
14
13
|
});
|
|
15
|
-
|
|
16
14
|
experience('Main Content Area', 'AUTO-C0w3Gg6Uz').client(() => {
|
|
17
15
|
specs(() => {
|
|
18
16
|
should('occupy full viewport height below top bar');
|
|
@@ -24,7 +22,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
24
22
|
should('use CSS Grid for Kanban column layout');
|
|
25
23
|
});
|
|
26
24
|
});
|
|
27
|
-
|
|
28
25
|
experience('Kanban Board Container', 'AUTO-K1x4Hh7Vz').client(() => {
|
|
29
26
|
specs(() => {
|
|
30
27
|
should('display three equal-width columns in desktop view');
|
|
@@ -36,7 +33,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
36
33
|
should('show subtle scrollbar styling matching theme');
|
|
37
34
|
});
|
|
38
35
|
});
|
|
39
|
-
|
|
40
36
|
experience('Column Headers', 'AUTO-H2y5Ii8Wz').client(() => {
|
|
41
37
|
specs(() => {
|
|
42
38
|
should('display column title with clear typography');
|
|
@@ -47,7 +43,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
47
43
|
should('maintain consistent height across all columns');
|
|
48
44
|
});
|
|
49
45
|
});
|
|
50
|
-
|
|
51
46
|
experience('Floating Action Button', 'AUTO-F3z6Jj9Xz').client(() => {
|
|
52
47
|
specs(() => {
|
|
53
48
|
should('position fixed in bottom-right corner of viewport');
|
|
@@ -61,7 +56,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
61
56
|
should('hide on mobile when keyboard is visible');
|
|
62
57
|
});
|
|
63
58
|
});
|
|
64
|
-
|
|
65
59
|
experience('Statistics Sidebar', 'AUTO-S4a7Kk0Yz').client(() => {
|
|
66
60
|
specs(() => {
|
|
67
61
|
should('display on right side of screen in desktop view');
|
|
@@ -74,7 +68,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
74
68
|
should('support toggle to show/hide for more workspace');
|
|
75
69
|
});
|
|
76
70
|
});
|
|
77
|
-
|
|
78
71
|
experience('Task Detail Panel', 'AUTO-D5b8Ll1Zz').client(() => {
|
|
79
72
|
specs(() => {
|
|
80
73
|
should('slide in from right side when task is clicked');
|
|
@@ -87,7 +80,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
87
80
|
should('trap focus within panel when open for accessibility');
|
|
88
81
|
});
|
|
89
82
|
});
|
|
90
|
-
|
|
91
83
|
experience('Search Overlay', 'AUTO-S6c9Mm2Az').client(() => {
|
|
92
84
|
specs(() => {
|
|
93
85
|
should('trigger with keyboard shortcut Cmd/Ctrl + K');
|
|
@@ -100,7 +92,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
100
92
|
should('focus input automatically when opened');
|
|
101
93
|
});
|
|
102
94
|
});
|
|
103
|
-
|
|
104
95
|
experience('Mobile Navigation', 'AUTO-M7d0Nn3Bz').client(() => {
|
|
105
96
|
specs(() => {
|
|
106
97
|
should('collapse top bar controls into hamburger menu on small screens');
|
|
@@ -112,7 +103,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
112
103
|
should('apply safe area insets for notched devices');
|
|
113
104
|
});
|
|
114
105
|
});
|
|
115
|
-
|
|
116
106
|
experience('Responsive Breakpoints', 'AUTO-R8e1Oo4Cz').client(() => {
|
|
117
107
|
specs(() => {
|
|
118
108
|
should('support desktop layout for screens 1024px and wider');
|
|
@@ -124,7 +114,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
124
114
|
should('test on common device dimensions for consistency');
|
|
125
115
|
});
|
|
126
116
|
});
|
|
127
|
-
|
|
128
117
|
experience('Loading States', 'AUTO-L9f2Pp5Dz').client(() => {
|
|
129
118
|
specs(() => {
|
|
130
119
|
should('show skeleton loaders for initial page load');
|
|
@@ -136,7 +125,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
136
125
|
should('provide timeout fallback with retry option');
|
|
137
126
|
});
|
|
138
127
|
});
|
|
139
|
-
|
|
140
128
|
experience('Error States', 'AUTO-E0g3Qq6Ez').client(() => {
|
|
141
129
|
specs(() => {
|
|
142
130
|
should('display inline error messages near relevant fields');
|
|
@@ -148,7 +136,6 @@ flow('App Structure', 'AUTO-A8u1Ee4Sz', () => {
|
|
|
148
136
|
should('support error boundary for graceful failure recovery');
|
|
149
137
|
});
|
|
150
138
|
});
|
|
151
|
-
|
|
152
139
|
experience('Accessibility Features', 'AUTO-A1h4Rr7Fz').client(() => {
|
|
153
140
|
specs(() => {
|
|
154
141
|
should('support full keyboard navigation throughout app');
|