@iservu-inc/adf-cli 0.17.0 → 0.17.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/.context/memory/architecture.md +1 -1
- package/.context/memory/glossary.md +1 -1
- package/CLAUDE.md +4 -4
- package/README.md +1 -1
- package/lib/analysis/heuristic-gap-analyzer.js +4 -4
- package/lib/analysis/synthesis-engine.js +5 -5
- package/lib/commands/init.js +544 -467
- package/lib/frameworks/output-generators.js +54 -147
- package/lib/frameworks/progress-tracker.js +16 -0
- package/lib/frameworks/questions.js +156 -464
- package/lib/frameworks/session-manager.js +56 -0
- package/lib/learning/analytics-view.js +5 -5
- package/lib/learning/analytics.js +22 -6
- package/lib/templates/scripts/analyze-docs.js +11 -11
- package/lib/templates/scripts/build.js +1 -1
- package/lib/templates/scripts/check-framework-updates.js +1 -1
- package/lib/templates/scripts/init.js +1 -1
- package/lib/templates/shared/memory/constitution.md +2 -2
- package/lib/templates/shared/templates/README.md +2 -2
- package/lib/utils/context-extractor.js +3 -3
- package/lib/utils/framework-detector.js +1 -1
- package/package.json +1 -1
- package/tests/analytics-view.test.js +12 -10
- package/tests/context-extractor.test.js +2 -2
- package/tests/decay-manager.test.js +22 -19
- package/tests/deploy.test.js +7 -3
- package/tests/dynamic-question-generator.test.js +2 -2
- package/tests/framework-detector.test.js +3 -3
- package/tests/heuristic-gap-analyzer.test.js +5 -5
- package/tests/pattern-decay.test.js +34 -52
- package/tests/session-manager.test.js +125 -0
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// Level 1: Rapid (Agent-Native), Level 2: Balanced (OpenSpec), Level 3: Comprehensive (Agent-Native)
|
|
3
3
|
|
|
4
4
|
const prpQuestions = [
|
|
5
|
-
// Phase 1: Goal Definition (
|
|
5
|
+
// Phase 1: Goal Definition (3 questions)
|
|
6
6
|
{
|
|
7
7
|
id: 'prp-1',
|
|
8
8
|
phase: 'goal-definition',
|
|
9
9
|
number: 1,
|
|
10
|
-
total:
|
|
10
|
+
total: 10,
|
|
11
11
|
text: 'What specific software feature or product are you building?',
|
|
12
12
|
guidance: 'Be precise about the type of software, technology, and core functionality',
|
|
13
13
|
goodExample: 'A React dashboard that displays real-time analytics from PostgreSQL with Chart.js',
|
|
@@ -24,31 +24,19 @@ const prpQuestions = [
|
|
|
24
24
|
id: 'prp-2',
|
|
25
25
|
phase: 'goal-definition',
|
|
26
26
|
number: 2,
|
|
27
|
-
total:
|
|
28
|
-
text: 'What
|
|
29
|
-
guidance: '
|
|
30
|
-
goodExample: '
|
|
31
|
-
badExample: '
|
|
32
|
-
keywords: ['
|
|
33
|
-
requiredElements: ['action', 'user-interaction']
|
|
27
|
+
total: 10,
|
|
28
|
+
text: 'What problem does this solve and what primary user action does it enable?',
|
|
29
|
+
guidance: 'Describe the pain point users face WITHOUT this solution and the ONE main thing users will do most often',
|
|
30
|
+
goodExample: 'Job seekers applying to 50+ positions lose track of applications and miss follow-up deadlines. This lets them add and track job applications with company, position, date, and status.',
|
|
31
|
+
badExample: 'They need to track stuff',
|
|
32
|
+
keywords: ['pain', 'challenge', 'problem', 'create', 'add', 'update', 'view', 'search', 'submit'],
|
|
33
|
+
requiredElements: ['problem-statement', 'action', 'user-interaction']
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
id: 'prp-3',
|
|
37
37
|
phase: 'goal-definition',
|
|
38
38
|
number: 3,
|
|
39
|
-
total:
|
|
40
|
-
text: 'What problem does this solve?',
|
|
41
|
-
guidance: 'Describe the pain point or challenge users face WITHOUT this solution',
|
|
42
|
-
goodExample: 'Job seekers applying to 50+ positions lose track of which companies they applied to, when they applied, and miss critical follow-up deadlines',
|
|
43
|
-
badExample: 'They need to track applications',
|
|
44
|
-
keywords: ['pain', 'challenge', 'problem', 'frustration', 'difficulty', 'struggle'],
|
|
45
|
-
requiredElements: ['problem-statement']
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
id: 'prp-4',
|
|
49
|
-
phase: 'goal-definition',
|
|
50
|
-
number: 4,
|
|
51
|
-
total: 20,
|
|
39
|
+
total: 10,
|
|
52
40
|
text: 'What does success look like?',
|
|
53
41
|
guidance: 'Define a concrete, measurable outcome that indicates this is working',
|
|
54
42
|
goodExample: 'Users successfully track 20+ applications, receive automated reminders 3 days after applying, and have a 50% reduction in missed follow-ups',
|
|
@@ -57,112 +45,52 @@ const prpQuestions = [
|
|
|
57
45
|
requiredElements: ['measurable-outcome']
|
|
58
46
|
},
|
|
59
47
|
|
|
60
|
-
// Phase 2: Business
|
|
48
|
+
// Phase 2: Business Context (1 question)
|
|
61
49
|
{
|
|
62
|
-
id: 'prp-
|
|
63
|
-
phase: 'business-
|
|
64
|
-
number:
|
|
65
|
-
total:
|
|
66
|
-
text: 'Why is this valuable
|
|
67
|
-
guidance: 'Explain the benefit and
|
|
68
|
-
goodExample: 'Saves 5+ hours
|
|
69
|
-
badExample: 'It helps them',
|
|
70
|
-
keywords: ['saves', 'reduces', 'increases', '
|
|
71
|
-
requiredElements: ['user-benefit']
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
id: 'prp-6',
|
|
75
|
-
phase: 'business-justification',
|
|
76
|
-
number: 6,
|
|
77
|
-
total: 20,
|
|
78
|
-
text: 'What happens if this is NOT built?',
|
|
79
|
-
guidance: 'Describe the negative impact of not having this solution',
|
|
80
|
-
goodExample: 'Users continue using error-prone spreadsheets, miss 30% of follow-up opportunities, lose potential job offers due to poor organization',
|
|
81
|
-
badExample: 'Nothing',
|
|
82
|
-
keywords: ['continue', 'remain', 'miss', 'lose', 'waste'],
|
|
83
|
-
requiredElements: ['negative-impact']
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
id: 'prp-7',
|
|
87
|
-
phase: 'business-justification',
|
|
88
|
-
number: 7,
|
|
89
|
-
total: 20,
|
|
90
|
-
text: 'What is the expected usage pattern?',
|
|
91
|
-
guidance: 'How often will users interact with this? Daily, weekly, per-session?',
|
|
92
|
-
goodExample: 'Users check the dashboard daily, add 2-5 applications per week, update statuses 3-4 times per week when hearing back from companies',
|
|
93
|
-
badExample: 'Sometimes',
|
|
94
|
-
keywords: ['daily', 'weekly', 'monthly', 'per session', 'frequently', 'occasionally'],
|
|
95
|
-
requiredElements: ['frequency']
|
|
50
|
+
id: 'prp-4',
|
|
51
|
+
phase: 'business-context',
|
|
52
|
+
number: 4,
|
|
53
|
+
total: 10,
|
|
54
|
+
text: 'Why is this valuable and what\'s the expected usage pattern?',
|
|
55
|
+
guidance: 'Explain the benefit users get, the cost of NOT building this, and how often users will interact (daily, weekly, per-session)',
|
|
56
|
+
goodExample: 'Saves 5+ hours/week vs spreadsheets. Without it, users miss 30% of follow-ups. Users check the dashboard daily, add 2-5 applications per week, update statuses 3-4 times weekly.',
|
|
57
|
+
badExample: 'It helps them sometimes',
|
|
58
|
+
keywords: ['saves', 'reduces', 'increases', 'daily', 'weekly', 'monthly', 'frequency'],
|
|
59
|
+
requiredElements: ['user-benefit', 'negative-impact', 'frequency']
|
|
96
60
|
},
|
|
97
61
|
|
|
98
|
-
// Phase 3: Contextual Intelligence (
|
|
62
|
+
// Phase 3: Contextual Intelligence (2 questions)
|
|
99
63
|
{
|
|
100
|
-
id: 'prp-
|
|
64
|
+
id: 'prp-5',
|
|
101
65
|
phase: 'contextual-intelligence',
|
|
102
|
-
number:
|
|
103
|
-
total:
|
|
104
|
-
text: 'What is your complete technology stack?',
|
|
105
|
-
guidance: 'Include frontend, backend, database,
|
|
106
|
-
goodExample: 'Frontend: Next.js 14 with TypeScript and Tailwind CSS. Backend: Node.js 20 with Express. Database: PostgreSQL 15. Auth: NextAuth.js',
|
|
66
|
+
number: 5,
|
|
67
|
+
total: 10,
|
|
68
|
+
text: 'What is your complete technology stack, including key libraries?',
|
|
69
|
+
guidance: 'Include frontend, backend, database, specific version numbers, and important npm/pip/maven packages',
|
|
70
|
+
goodExample: 'Frontend: Next.js 14 with TypeScript and Tailwind CSS. Backend: Node.js 20 with Express. Database: PostgreSQL 15. Auth: NextAuth.js. Packages: zod@3.22.4, react-hook-form@7.48.2, date-fns@2.30.0',
|
|
107
71
|
badExample: 'JavaScript',
|
|
108
|
-
keywords: ['frontend', 'backend', 'database', 'auth', 'version'],
|
|
109
|
-
requiredElements: ['frontend-tech', 'backend-tech', 'database']
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
id: 'prp-9',
|
|
113
|
-
phase: 'contextual-intelligence',
|
|
114
|
-
number: 9,
|
|
115
|
-
total: 20,
|
|
116
|
-
text: 'What files and directories will be affected?',
|
|
117
|
-
guidance: 'List exact file paths where code will be added or modified',
|
|
118
|
-
goodExample: 'src/app/dashboard/page.tsx, src/components/ApplicationForm.tsx, src/lib/db/schema.ts, src/api/applications/route.ts',
|
|
119
|
-
badExample: 'Some files',
|
|
120
|
-
keywords: ['src/', 'app/', 'components/', 'api/', 'lib/', 'pages/'],
|
|
121
|
-
requiredElements: ['file-paths']
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
id: 'prp-10',
|
|
125
|
-
phase: 'contextual-intelligence',
|
|
126
|
-
number: 10,
|
|
127
|
-
total: 20,
|
|
128
|
-
text: 'What libraries and packages will you use?',
|
|
129
|
-
guidance: 'List npm/pip/maven packages with version numbers',
|
|
130
|
-
goodExample: 'zod@3.22.4 for validation, react-hook-form@7.48.2 for forms, date-fns@2.30.0 for date handling, pg@8.11.3 for PostgreSQL',
|
|
131
|
-
badExample: 'Some libraries',
|
|
132
|
-
keywords: ['npm', 'yarn', 'pip', 'maven', 'package', 'dependency'],
|
|
133
|
-
requiredElements: ['dependencies']
|
|
72
|
+
keywords: ['frontend', 'backend', 'database', 'auth', 'version', 'npm', 'package', 'dependency'],
|
|
73
|
+
requiredElements: ['frontend-tech', 'backend-tech', 'database', 'dependencies']
|
|
134
74
|
},
|
|
135
75
|
{
|
|
136
|
-
id: 'prp-
|
|
76
|
+
id: 'prp-6',
|
|
137
77
|
phase: 'contextual-intelligence',
|
|
138
|
-
number:
|
|
139
|
-
total:
|
|
140
|
-
text: '
|
|
141
|
-
guidance: 'Reference existing code structure, naming conventions,
|
|
142
|
-
goodExample: 'Follow the existing pattern in src/components/JobCard.tsx for card layouts. Use
|
|
78
|
+
number: 6,
|
|
79
|
+
total: 10,
|
|
80
|
+
text: 'What existing patterns, conventions, and documentation should be followed?',
|
|
81
|
+
guidance: 'Reference existing code structure, naming conventions, architectural patterns, and any relevant docs/API specs',
|
|
82
|
+
goodExample: 'Follow the existing pattern in src/components/JobCard.tsx for card layouts. Use API route structure from src/api/users/route.ts. Airbnb style guide. Docs: Next.js App Router docs, DB schema in ./docs/database.md',
|
|
143
83
|
badExample: 'No',
|
|
144
|
-
keywords: ['pattern', 'convention', 'style', 'structure', '
|
|
145
|
-
requiredElements: ['code-patterns']
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
id: 'prp-12',
|
|
149
|
-
phase: 'contextual-intelligence',
|
|
150
|
-
number: 12,
|
|
151
|
-
total: 20,
|
|
152
|
-
text: 'What documentation should be referenced?',
|
|
153
|
-
guidance: 'Provide URLs or file paths to relevant documentation, API docs, or design specs',
|
|
154
|
-
goodExample: 'Next.js App Router docs (https://nextjs.org/docs/app), PostgreSQL schema in ./docs/database.md, API spec in ./docs/api-reference.md',
|
|
155
|
-
badExample: 'The docs',
|
|
156
|
-
keywords: ['docs/', 'documentation', 'readme', 'api', 'spec'],
|
|
157
|
-
requiredElements: ['documentation-refs']
|
|
84
|
+
keywords: ['pattern', 'convention', 'style', 'structure', 'docs', 'documentation', 'readme', 'spec'],
|
|
85
|
+
requiredElements: ['code-patterns', 'documentation-refs']
|
|
158
86
|
},
|
|
159
87
|
|
|
160
|
-
// Phase 4: Implementation Blueprint (
|
|
88
|
+
// Phase 4: Implementation Blueprint (3 questions)
|
|
161
89
|
{
|
|
162
|
-
id: 'prp-
|
|
90
|
+
id: 'prp-7',
|
|
163
91
|
phase: 'implementation-blueprint',
|
|
164
|
-
number:
|
|
165
|
-
total:
|
|
92
|
+
number: 7,
|
|
93
|
+
total: 10,
|
|
166
94
|
text: 'What are the main implementation steps in order?',
|
|
167
95
|
guidance: 'List 3-7 ordered steps that outline the implementation approach',
|
|
168
96
|
goodExample: '1. Create database schema with applications table 2. Build API route for CRUD operations 3. Create ApplicationForm component with validation 4. Build dashboard page with data table 5. Add filtering and search 6. Implement reminder system',
|
|
@@ -171,34 +99,22 @@ const prpQuestions = [
|
|
|
171
99
|
requiredElements: ['ordered-steps']
|
|
172
100
|
},
|
|
173
101
|
{
|
|
174
|
-
id: 'prp-
|
|
175
|
-
phase: 'implementation-blueprint',
|
|
176
|
-
number: 14,
|
|
177
|
-
total: 20,
|
|
178
|
-
text: 'What is the data model?',
|
|
179
|
-
guidance: 'Define entities, fields, types, and relationships',
|
|
180
|
-
goodExample: 'Application entity: { id: UUID, company: string, position: string, dateApplied: Date, status: enum[applied,interviewing,offer,rejected], notes: text, userId: UUID (FK to Users) }',
|
|
181
|
-
badExample: 'Some data',
|
|
182
|
-
keywords: ['entity', 'model', 'schema', 'table', 'fields', 'columns', 'relationship'],
|
|
183
|
-
requiredElements: ['data-structure']
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
id: 'prp-15',
|
|
102
|
+
id: 'prp-8',
|
|
187
103
|
phase: 'implementation-blueprint',
|
|
188
|
-
number:
|
|
189
|
-
total:
|
|
190
|
-
text: 'What is the API design?',
|
|
191
|
-
guidance: '
|
|
192
|
-
goodExample: '
|
|
193
|
-
badExample: 'API stuff',
|
|
194
|
-
keywords: ['
|
|
195
|
-
requiredElements: ['api-endpoints']
|
|
104
|
+
number: 8,
|
|
105
|
+
total: 10,
|
|
106
|
+
text: 'What is the data model and API design?',
|
|
107
|
+
guidance: 'Define entities, fields, types, relationships, and list endpoints with HTTP methods and request/response formats',
|
|
108
|
+
goodExample: 'Application entity: { id: UUID, company: string, position: string, dateApplied: Date, status: enum[applied,interviewing,offer,rejected], userId: UUID (FK) }. Endpoints: GET /api/applications, POST /api/applications, PATCH /api/applications/:id, DELETE /api/applications/:id',
|
|
109
|
+
badExample: 'Some data and API stuff',
|
|
110
|
+
keywords: ['entity', 'model', 'schema', 'table', 'fields', 'endpoint', 'route', 'GET', 'POST'],
|
|
111
|
+
requiredElements: ['data-structure', 'api-endpoints']
|
|
196
112
|
},
|
|
197
113
|
{
|
|
198
|
-
id: 'prp-
|
|
114
|
+
id: 'prp-9',
|
|
199
115
|
phase: 'implementation-blueprint',
|
|
200
|
-
number:
|
|
201
|
-
total:
|
|
116
|
+
number: 9,
|
|
117
|
+
total: 10,
|
|
202
118
|
text: 'What edge cases and errors must be handled?',
|
|
203
119
|
guidance: 'List error scenarios, validation rules, and boundary conditions',
|
|
204
120
|
goodExample: 'Handle duplicate applications (same company+position), validate date is not in future, handle network failures gracefully, show error toast on failed submission, validate required fields',
|
|
@@ -206,142 +122,70 @@ const prpQuestions = [
|
|
|
206
122
|
keywords: ['validate', 'error', 'edge case', 'handle', 'boundary', 'exception'],
|
|
207
123
|
requiredElements: ['error-handling']
|
|
208
124
|
},
|
|
209
|
-
{
|
|
210
|
-
id: 'prp-17',
|
|
211
|
-
phase: 'implementation-blueprint',
|
|
212
|
-
number: 17,
|
|
213
|
-
total: 20,
|
|
214
|
-
text: 'What is the technical approach or algorithm?',
|
|
215
|
-
guidance: 'Describe the core logic, pseudocode, or technical strategy',
|
|
216
|
-
goodExample: 'Use React Hook Form for form state, validate with Zod schema, debounce search input (300ms), use SWR for data fetching with 30s revalidation, implement optimistic UI updates',
|
|
217
|
-
badExample: 'Code it',
|
|
218
|
-
keywords: ['algorithm', 'logic', 'approach', 'strategy', 'pseudocode'],
|
|
219
|
-
requiredElements: ['technical-approach']
|
|
220
|
-
},
|
|
221
125
|
|
|
222
|
-
// Phase 5: Validation
|
|
126
|
+
// Phase 5: Validation (1 question)
|
|
223
127
|
{
|
|
224
|
-
id: 'prp-
|
|
225
|
-
phase: 'validation
|
|
226
|
-
number:
|
|
227
|
-
total:
|
|
228
|
-
text: '
|
|
229
|
-
guidance: '
|
|
230
|
-
goodExample: '
|
|
231
|
-
badExample: 'Test it',
|
|
232
|
-
keywords: ['test', 'verify', '
|
|
233
|
-
requiredElements: ['test-steps']
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
id: 'prp-19',
|
|
237
|
-
phase: 'validation-loop',
|
|
238
|
-
number: 19,
|
|
239
|
-
total: 20,
|
|
240
|
-
text: 'What automated tests are needed?',
|
|
241
|
-
guidance: 'Specify unit tests, integration tests, or E2E tests',
|
|
242
|
-
goodExample: 'Unit: ApplicationForm validation logic. Integration: API routes with mocked DB. E2E: Full user flow from adding application to updating status (Playwright)',
|
|
243
|
-
badExample: 'Tests',
|
|
244
|
-
keywords: ['unit', 'integration', 'e2e', 'test', 'jest', 'vitest', 'playwright'],
|
|
245
|
-
requiredElements: ['automated-tests']
|
|
246
|
-
},
|
|
247
|
-
{
|
|
248
|
-
id: 'prp-20',
|
|
249
|
-
phase: 'validation-loop',
|
|
250
|
-
number: 20,
|
|
251
|
-
total: 20,
|
|
252
|
-
text: 'What is your definition of done?',
|
|
253
|
-
guidance: 'Checklist of criteria that must be met to consider this complete',
|
|
254
|
-
goodExample: '✓ All CRUD operations working ✓ Form validation passing ✓ Search/filter functional ✓ 80% test coverage ✓ No TypeScript errors ✓ Responsive on mobile ✓ Documentation updated',
|
|
255
|
-
badExample: 'When it works',
|
|
256
|
-
keywords: ['criteria', 'checklist', 'complete', 'done', 'finished'],
|
|
257
|
-
requiredElements: ['acceptance-criteria']
|
|
128
|
+
id: 'prp-10',
|
|
129
|
+
phase: 'validation',
|
|
130
|
+
number: 10,
|
|
131
|
+
total: 10,
|
|
132
|
+
text: 'What is your testing strategy and definition of done?',
|
|
133
|
+
guidance: 'Specify manual test steps, automated tests (unit/integration/E2E), and the checklist of criteria for completion',
|
|
134
|
+
goodExample: 'Manual: Load dashboard, add application, verify in table, change status. Automated: Unit tests for validation logic, integration tests for API routes, E2E for full user flow (Playwright). Done: All CRUD working, 80% coverage, no TS errors, responsive on mobile, docs updated.',
|
|
135
|
+
badExample: 'Test it and done',
|
|
136
|
+
keywords: ['test', 'verify', 'unit', 'integration', 'e2e', 'coverage', 'criteria', 'checklist', 'done'],
|
|
137
|
+
requiredElements: ['test-steps', 'automated-tests', 'acceptance-criteria']
|
|
258
138
|
}
|
|
259
139
|
];
|
|
260
140
|
|
|
261
141
|
// Balanced Framework Questions (Level 2: OpenSpec)
|
|
262
142
|
const balancedQuestions = [
|
|
263
|
-
...prpQuestions, // Include all PRP questions
|
|
143
|
+
...prpQuestions, // Include all PRP questions (1-10)
|
|
264
144
|
|
|
265
|
-
// Constitution Block (
|
|
145
|
+
// Constitution Block (3 questions)
|
|
266
146
|
{
|
|
267
|
-
id: 'bal-
|
|
147
|
+
id: 'bal-11',
|
|
268
148
|
phase: 'constitution',
|
|
269
|
-
number:
|
|
270
|
-
total:
|
|
271
|
-
text: 'What are your code quality standards?',
|
|
272
|
-
guidance: 'Define linting rules, formatting conventions,
|
|
273
|
-
goodExample: 'ESLint with Airbnb config, Prettier with 2-space tabs, strict TypeScript mode, no any types, max function length 50 lines
|
|
274
|
-
badExample: 'Good code',
|
|
275
|
-
keywords: ['eslint', 'prettier', 'linting', 'formatting', 'standards'],
|
|
276
|
-
requiredElements: ['quality-standards']
|
|
149
|
+
number: 11,
|
|
150
|
+
total: 25,
|
|
151
|
+
text: 'What are your code quality and documentation standards?',
|
|
152
|
+
guidance: 'Define linting rules, formatting conventions, code review expectations, and what documentation is required',
|
|
153
|
+
goodExample: 'ESLint with Airbnb config, Prettier with 2-space tabs, strict TypeScript mode, no any types, max function length 50 lines. JSDoc for all public functions, README per module, API docs in OpenAPI format, update docs in same PR as code.',
|
|
154
|
+
badExample: 'Good code with some docs',
|
|
155
|
+
keywords: ['eslint', 'prettier', 'linting', 'formatting', 'standards', 'jsdoc', 'readme', 'documentation'],
|
|
156
|
+
requiredElements: ['quality-standards', 'doc-standards']
|
|
277
157
|
},
|
|
278
158
|
{
|
|
279
|
-
id: 'bal-
|
|
159
|
+
id: 'bal-12',
|
|
280
160
|
phase: 'constitution',
|
|
281
|
-
number:
|
|
282
|
-
total:
|
|
283
|
-
text: 'What are your
|
|
161
|
+
number: 12,
|
|
162
|
+
total: 25,
|
|
163
|
+
text: 'What are your security and accessibility requirements?',
|
|
164
|
+
guidance: 'Define security practices (input sanitization, auth, CSP) and accessibility standards (WCAG level, keyboard nav)',
|
|
165
|
+
goodExample: 'Input sanitization on all user data, parameterized SQL queries, JWT with 15min expiry, HTTPS only, CSP headers, rate limiting. WCAG 2.1 AA, keyboard navigation for all interactions, loading states max 200ms, mobile-first responsive.',
|
|
166
|
+
badExample: 'Secure and accessible',
|
|
167
|
+
keywords: ['security', 'sanitization', 'auth', 'https', 'csp', 'wcag', 'accessibility', 'a11y', 'responsive'],
|
|
168
|
+
requiredElements: ['security-standards', 'ux-standards']
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: 'bal-13',
|
|
172
|
+
phase: 'constitution',
|
|
173
|
+
number: 13,
|
|
174
|
+
total: 25,
|
|
175
|
+
text: 'What are your testing requirements and coverage targets?',
|
|
284
176
|
guidance: 'Specify coverage targets, testing pyramid, and test types required',
|
|
285
177
|
goodExample: '80% code coverage minimum, unit tests for all business logic, integration tests for API routes, E2E for critical user flows, run tests in CI before merge',
|
|
286
178
|
badExample: 'Some tests',
|
|
287
179
|
keywords: ['coverage', 'unit', 'integration', 'e2e', 'ci'],
|
|
288
180
|
requiredElements: ['test-requirements']
|
|
289
181
|
},
|
|
290
|
-
{
|
|
291
|
-
id: 'bal-23',
|
|
292
|
-
phase: 'constitution',
|
|
293
|
-
number: 23,
|
|
294
|
-
total: 50,
|
|
295
|
-
text: 'What are your documentation standards?',
|
|
296
|
-
guidance: 'Define what documentation is required and where it lives',
|
|
297
|
-
goodExample: 'JSDoc comments for all public functions, README per module, API documentation in OpenAPI format, inline comments for complex logic, update docs in same PR as code',
|
|
298
|
-
badExample: 'Some docs',
|
|
299
|
-
keywords: ['jsdoc', 'readme', 'comments', 'documentation'],
|
|
300
|
-
requiredElements: ['doc-standards']
|
|
301
|
-
},
|
|
302
|
-
{
|
|
303
|
-
id: 'bal-24',
|
|
304
|
-
phase: 'constitution',
|
|
305
|
-
number: 24,
|
|
306
|
-
total: 50,
|
|
307
|
-
text: 'What are your UX/accessibility principles?',
|
|
308
|
-
guidance: 'Define user experience and accessibility requirements',
|
|
309
|
-
goodExample: 'WCAG 2.1 AA compliance, keyboard navigation for all interactions, loading states max 200ms, error messages actionable, mobile-first responsive design',
|
|
310
|
-
badExample: 'Good UX',
|
|
311
|
-
keywords: ['wcag', 'accessibility', 'a11y', 'responsive', 'ux'],
|
|
312
|
-
requiredElements: ['ux-standards']
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
id: 'bal-25',
|
|
316
|
-
phase: 'constitution',
|
|
317
|
-
number: 25,
|
|
318
|
-
total: 50,
|
|
319
|
-
text: 'What are your security standards?',
|
|
320
|
-
guidance: 'Define security requirements and practices',
|
|
321
|
-
goodExample: 'Input sanitization on all user data, parameterized SQL queries, JWT with 15min expiry, HTTPS only, CSP headers, rate limiting on API routes, security headers with helmet',
|
|
322
|
-
badExample: 'Secure',
|
|
323
|
-
keywords: ['security', 'sanitization', 'auth', 'https', 'csp'],
|
|
324
|
-
requiredElements: ['security-standards']
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
id: 'bal-26',
|
|
328
|
-
phase: 'constitution',
|
|
329
|
-
number: 26,
|
|
330
|
-
total: 50,
|
|
331
|
-
text: 'What are your decision-making guidelines?',
|
|
332
|
-
guidance: 'How are technical decisions made and tradeoffs evaluated?',
|
|
333
|
-
goodExample: 'Prefer boring technology, optimize for developer experience, document all major decisions in ADR format, prefer composition over inheritance, 2-person approval for architecture changes',
|
|
334
|
-
badExample: 'We decide',
|
|
335
|
-
keywords: ['decision', 'tradeoff', 'guidelines', 'adr'],
|
|
336
|
-
requiredElements: ['decision-process']
|
|
337
|
-
},
|
|
338
182
|
|
|
339
|
-
//
|
|
183
|
+
// Specification Block (5 questions)
|
|
340
184
|
{
|
|
341
|
-
id: 'bal-
|
|
185
|
+
id: 'bal-14',
|
|
342
186
|
phase: 'specification',
|
|
343
|
-
number:
|
|
344
|
-
total:
|
|
187
|
+
number: 14,
|
|
188
|
+
total: 25,
|
|
345
189
|
text: 'What are ALL features in scope with priorities?',
|
|
346
190
|
guidance: 'Complete feature list with P0 (must-have), P1 (should-have), P2 (nice-to-have)',
|
|
347
191
|
goodExample: 'P0: Add/edit/delete applications, status tracking, basic search. P1: Email reminders, CSV import, analytics dashboard. P2: Chrome extension, mobile app, AI resume matching',
|
|
@@ -350,23 +194,23 @@ const balancedQuestions = [
|
|
|
350
194
|
requiredElements: ['feature-priorities']
|
|
351
195
|
},
|
|
352
196
|
{
|
|
353
|
-
id: 'bal-
|
|
197
|
+
id: 'bal-15',
|
|
354
198
|
phase: 'specification',
|
|
355
|
-
number:
|
|
356
|
-
total:
|
|
357
|
-
text: 'For each high-priority feature, describe expected behavior',
|
|
358
|
-
guidance: 'Detail what each P0/P1 feature should do',
|
|
359
|
-
goodExample: 'Add Application: User clicks "New", fills form (company req, position req, date optional
|
|
360
|
-
badExample: 'It works',
|
|
361
|
-
keywords: ['behavior', 'flow', 'interaction', 'expected'],
|
|
362
|
-
requiredElements: ['feature-behavior']
|
|
199
|
+
number: 15,
|
|
200
|
+
total: 25,
|
|
201
|
+
text: 'For each high-priority feature, describe expected behavior and user workflow',
|
|
202
|
+
guidance: 'Detail what each P0/P1 feature should do and the step-by-step user journey',
|
|
203
|
+
goodExample: 'Add Application: User clicks "New", fills form (company req, position req, date optional), validates, saves to DB, shows in table with success toast. Full flow: Login → Dashboard → Click "Add" → Modal with form → Submit → Modal closes → New row in table → Confirmation email',
|
|
204
|
+
badExample: 'It works and they use it',
|
|
205
|
+
keywords: ['behavior', 'flow', 'interaction', 'expected', 'workflow', 'journey', 'steps'],
|
|
206
|
+
requiredElements: ['feature-behavior', 'user-workflow']
|
|
363
207
|
},
|
|
364
208
|
{
|
|
365
|
-
id: 'bal-
|
|
209
|
+
id: 'bal-16',
|
|
366
210
|
phase: 'specification',
|
|
367
|
-
number:
|
|
368
|
-
total:
|
|
369
|
-
text: 'What is explicitly
|
|
211
|
+
number: 16,
|
|
212
|
+
total: 25,
|
|
213
|
+
text: 'What is explicitly out of scope for v1?',
|
|
370
214
|
guidance: 'List features that will NOT be in the first version',
|
|
371
215
|
goodExample: 'Not in v1: AI-powered resume tailoring, integration with LinkedIn API, team collaboration features, advanced analytics, mobile apps',
|
|
372
216
|
badExample: 'Other stuff',
|
|
@@ -374,46 +218,22 @@ const balancedQuestions = [
|
|
|
374
218
|
requiredElements: ['out-of-scope']
|
|
375
219
|
},
|
|
376
220
|
{
|
|
377
|
-
id: 'bal-
|
|
378
|
-
phase: 'specification',
|
|
379
|
-
number: 30,
|
|
380
|
-
total: 50,
|
|
381
|
-
text: 'What are the integration requirements?',
|
|
382
|
-
guidance: 'External APIs, services, or systems to integrate with',
|
|
383
|
-
goodExample: 'SendGrid for email notifications, Google Calendar API for interview scheduling, optional: LinkedIn API for company data enrichment',
|
|
384
|
-
badExample: 'Integrations',
|
|
385
|
-
keywords: ['api', 'integration', 'external', 'service'],
|
|
386
|
-
requiredElements: ['integrations']
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
id: 'bal-31',
|
|
390
|
-
phase: 'specification',
|
|
391
|
-
number: 31,
|
|
392
|
-
total: 50,
|
|
393
|
-
text: 'What is the detailed user workflow?',
|
|
394
|
-
guidance: 'Step-by-step flow of main user journey',
|
|
395
|
-
goodExample: '1. User logs in 2. Sees dashboard with applications table 3. Clicks "Add Application" 4. Modal opens with form 5. Fills required fields 6. Submits 7. Modal closes 8. New row appears in table 9. Receives confirmation email',
|
|
396
|
-
badExample: 'They use it',
|
|
397
|
-
keywords: ['workflow', 'journey', 'flow', 'steps'],
|
|
398
|
-
requiredElements: ['user-workflow']
|
|
399
|
-
},
|
|
400
|
-
{
|
|
401
|
-
id: 'bal-32',
|
|
221
|
+
id: 'bal-17',
|
|
402
222
|
phase: 'specification',
|
|
403
|
-
number:
|
|
404
|
-
total:
|
|
405
|
-
text: 'What
|
|
406
|
-
guidance: '
|
|
407
|
-
goodExample: '
|
|
408
|
-
badExample: '
|
|
409
|
-
keywords: ['
|
|
410
|
-
requiredElements: ['
|
|
223
|
+
number: 17,
|
|
224
|
+
total: 25,
|
|
225
|
+
text: 'What are the integration requirements and third-party services?',
|
|
226
|
+
guidance: 'External APIs, services, SDKs, or systems to integrate with and their approach',
|
|
227
|
+
goodExample: 'SendGrid for email notifications (@sendgrid/mail), Google Calendar API for interview scheduling, Sentry for error tracking, PostHog for analytics. Optional: LinkedIn API for company data enrichment',
|
|
228
|
+
badExample: 'Integrations and cloud stuff',
|
|
229
|
+
keywords: ['api', 'integration', 'external', 'service', 'sdk'],
|
|
230
|
+
requiredElements: ['integrations', 'third-party']
|
|
411
231
|
},
|
|
412
232
|
{
|
|
413
|
-
id: 'bal-
|
|
233
|
+
id: 'bal-18',
|
|
414
234
|
phase: 'specification',
|
|
415
|
-
number:
|
|
416
|
-
total:
|
|
235
|
+
number: 18,
|
|
236
|
+
total: 25,
|
|
417
237
|
text: 'What are the UI/UX specifications?',
|
|
418
238
|
guidance: 'Design system, component library, visual specifications',
|
|
419
239
|
goodExample: 'Use shadcn/ui components, Tailwind with custom theme (primary: #3B82F6), responsive breakpoints at 640/768/1024px, Geist font, dark mode support',
|
|
@@ -421,49 +241,13 @@ const balancedQuestions = [
|
|
|
421
241
|
keywords: ['ui', 'ux', 'design', 'components', 'theme'],
|
|
422
242
|
requiredElements: ['ui-specs']
|
|
423
243
|
},
|
|
424
|
-
{
|
|
425
|
-
id: 'bal-34',
|
|
426
|
-
phase: 'specification',
|
|
427
|
-
number: 34,
|
|
428
|
-
total: 50,
|
|
429
|
-
text: 'What assumptions are you making?',
|
|
430
|
-
guidance: 'List all assumptions explicitly',
|
|
431
|
-
goodExample: 'Assume users have modern browsers (Chrome 90+), stable internet, English language only for v1, max 1000 applications per user, users understand job application process',
|
|
432
|
-
badExample: 'Assumptions',
|
|
433
|
-
keywords: ['assume', 'assumption', 'expect', 'presume'],
|
|
434
|
-
requiredElements: ['assumptions']
|
|
435
|
-
},
|
|
436
|
-
{
|
|
437
|
-
id: 'bal-35',
|
|
438
|
-
phase: 'specification',
|
|
439
|
-
number: 35,
|
|
440
|
-
total: 50,
|
|
441
|
-
text: 'What open questions remain?',
|
|
442
|
-
guidance: 'What needs to be decided or researched before implementation',
|
|
443
|
-
goodExample: 'Q: Should we support multiple resume versions per application? Q: Email frequency limits? Q: Data retention policy? Q: Should status changes be logged with history?',
|
|
444
|
-
badExample: 'None',
|
|
445
|
-
keywords: ['question', 'tbd', 'decide', 'research'],
|
|
446
|
-
requiredElements: ['open-questions']
|
|
447
|
-
},
|
|
448
244
|
|
|
449
|
-
// Technical
|
|
450
|
-
{
|
|
451
|
-
id: 'bal-36',
|
|
452
|
-
phase: 'technical-plan',
|
|
453
|
-
number: 36,
|
|
454
|
-
total: 50,
|
|
455
|
-
text: 'Why did you choose this technology stack?',
|
|
456
|
-
guidance: 'Justify each major technology decision',
|
|
457
|
-
goodExample: 'Next.js for SSR/SEO benefits and API routes, TypeScript for type safety, PostgreSQL for relational data with complex queries, Tailwind for rapid styling, Vercel for easy deployment',
|
|
458
|
-
badExample: 'Its good',
|
|
459
|
-
keywords: ['because', 'reason', 'choice', 'justify'],
|
|
460
|
-
requiredElements: ['tech-justification']
|
|
461
|
-
},
|
|
245
|
+
// Technical Plan Block (4 questions)
|
|
462
246
|
{
|
|
463
|
-
id: 'bal-
|
|
247
|
+
id: 'bal-19',
|
|
464
248
|
phase: 'technical-plan',
|
|
465
|
-
number:
|
|
466
|
-
total:
|
|
249
|
+
number: 19,
|
|
250
|
+
total: 25,
|
|
467
251
|
text: 'What architectural pattern and why?',
|
|
468
252
|
guidance: 'Describe architecture style with rationale',
|
|
469
253
|
goodExample: 'Monolithic Next.js app with API routes (simpler for small team, easier debugging), MVC pattern on backend, Container/Presenter on frontend, event-driven for notifications',
|
|
@@ -472,34 +256,10 @@ const balancedQuestions = [
|
|
|
472
256
|
requiredElements: ['architecture-pattern']
|
|
473
257
|
},
|
|
474
258
|
{
|
|
475
|
-
id: 'bal-
|
|
476
|
-
phase: 'technical-plan',
|
|
477
|
-
number: 38,
|
|
478
|
-
total: 50,
|
|
479
|
-
text: 'What is the database design?',
|
|
480
|
-
guidance: 'Tables/collections, relationships, indexes',
|
|
481
|
-
goodExample: 'Tables: users, applications (FK to users), reminders (FK to applications). Indexes: applications.userId, applications.dateApplied, applications.status. Use UUIDs for IDs',
|
|
482
|
-
badExample: 'Database',
|
|
483
|
-
keywords: ['table', 'schema', 'index', 'foreign key', 'relationship'],
|
|
484
|
-
requiredElements: ['database-design']
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
id: 'bal-39',
|
|
259
|
+
id: 'bal-20',
|
|
488
260
|
phase: 'technical-plan',
|
|
489
|
-
number:
|
|
490
|
-
total:
|
|
491
|
-
text: 'What is the complete API design?',
|
|
492
|
-
guidance: 'All endpoints with request/response schemas',
|
|
493
|
-
goodExample: 'POST /api/auth/login {email,password} → {token,user}. GET /api/applications?status=applied → [{id,company,...}]. Full OpenAPI spec in docs/api.yaml',
|
|
494
|
-
badExample: 'REST API',
|
|
495
|
-
keywords: ['endpoint', 'route', 'request', 'response', 'schema'],
|
|
496
|
-
requiredElements: ['api-design']
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
id: 'bal-40',
|
|
500
|
-
phase: 'technical-plan',
|
|
501
|
-
number: 40,
|
|
502
|
-
total: 50,
|
|
261
|
+
number: 20,
|
|
262
|
+
total: 25,
|
|
503
263
|
text: 'What is the authentication/authorization approach?',
|
|
504
264
|
guidance: 'Auth method, session management, role-based access',
|
|
505
265
|
goodExample: 'NextAuth.js with credentials provider, JWT stored in httpOnly cookie, 15min access token, 7day refresh token, middleware protects /dashboard routes, no RBAC needed (all users equal)',
|
|
@@ -508,35 +268,23 @@ const balancedQuestions = [
|
|
|
508
268
|
requiredElements: ['auth-design']
|
|
509
269
|
},
|
|
510
270
|
{
|
|
511
|
-
id: 'bal-
|
|
512
|
-
phase: 'technical-plan',
|
|
513
|
-
number: 41,
|
|
514
|
-
total: 50,
|
|
515
|
-
text: 'What third-party services and SDKs?',
|
|
516
|
-
guidance: 'External services with integration approach',
|
|
517
|
-
goodExample: 'Vercel for hosting, Supabase for PostgreSQL + Auth, SendGrid for emails (@sendgrid/mail), Sentry for error tracking, PostHog for analytics',
|
|
518
|
-
badExample: 'Cloud stuff',
|
|
519
|
-
keywords: ['service', 'sdk', 'api', 'integration'],
|
|
520
|
-
requiredElements: ['third-party']
|
|
521
|
-
},
|
|
522
|
-
{
|
|
523
|
-
id: 'bal-42',
|
|
271
|
+
id: 'bal-21',
|
|
524
272
|
phase: 'technical-plan',
|
|
525
|
-
number:
|
|
526
|
-
total:
|
|
527
|
-
text: 'What is the deployment architecture?',
|
|
528
|
-
guidance: 'Infrastructure, CI/CD, environments',
|
|
273
|
+
number: 21,
|
|
274
|
+
total: 25,
|
|
275
|
+
text: 'What is the deployment architecture and CI/CD?',
|
|
276
|
+
guidance: 'Infrastructure, CI/CD pipeline, environments',
|
|
529
277
|
goodExample: 'Vercel for Next.js (auto-deploy from main branch), Supabase for DB (production instance), GitHub Actions for tests, staging environment on Vercel preview deployments',
|
|
530
278
|
badExample: 'Cloud',
|
|
531
279
|
keywords: ['deploy', 'infrastructure', 'ci/cd', 'environment'],
|
|
532
280
|
requiredElements: ['deployment']
|
|
533
281
|
},
|
|
534
282
|
{
|
|
535
|
-
id: 'bal-
|
|
283
|
+
id: 'bal-22',
|
|
536
284
|
phase: 'technical-plan',
|
|
537
|
-
number:
|
|
538
|
-
total:
|
|
539
|
-
text: 'What is the performance strategy?',
|
|
285
|
+
number: 22,
|
|
286
|
+
total: 25,
|
|
287
|
+
text: 'What is the performance and caching strategy?',
|
|
540
288
|
guidance: 'Caching, optimization, performance targets',
|
|
541
289
|
goodExample: 'Target: <200ms API responses, <2s page load. Strategy: Next.js ISR for dashboard (revalidate 60s), React Query for client caching, DB indexes on query columns, image optimization with next/image',
|
|
542
290
|
badExample: 'Fast',
|
|
@@ -544,13 +292,13 @@ const balancedQuestions = [
|
|
|
544
292
|
requiredElements: ['performance']
|
|
545
293
|
},
|
|
546
294
|
|
|
547
|
-
// Task Breakdown (
|
|
295
|
+
// Task Breakdown Block (3 questions)
|
|
548
296
|
{
|
|
549
|
-
id: 'bal-
|
|
297
|
+
id: 'bal-23',
|
|
550
298
|
phase: 'task-breakdown',
|
|
551
|
-
number:
|
|
552
|
-
total:
|
|
553
|
-
text: 'What are
|
|
299
|
+
number: 23,
|
|
300
|
+
total: 25,
|
|
301
|
+
text: 'What are all implementation tasks in dependency order?',
|
|
554
302
|
guidance: 'Complete task list showing what must be done before what',
|
|
555
303
|
goodExample: '1. Setup project + DB 2. Auth system 3. Create applications API 4. Build dashboard UI 5. Add search/filter 6. Email reminders 7. CSV import 8. Testing 9. Deploy',
|
|
556
304
|
badExample: 'Tasks',
|
|
@@ -558,71 +306,23 @@ const balancedQuestions = [
|
|
|
558
306
|
requiredElements: ['task-list']
|
|
559
307
|
},
|
|
560
308
|
{
|
|
561
|
-
id: 'bal-
|
|
562
|
-
phase: 'task-breakdown',
|
|
563
|
-
number: 45,
|
|
564
|
-
total: 50,
|
|
565
|
-
text: 'What is the critical path?',
|
|
566
|
-
guidance: 'Tasks that block other tasks and must be done first',
|
|
567
|
-
goodExample: 'Critical path: Setup → Auth → Applications API → Dashboard. These block everything else. Search/filter and emails can be parallel after dashboard',
|
|
568
|
-
badExample: 'Important tasks',
|
|
569
|
-
keywords: ['critical', 'blocker', 'dependency', 'blocks'],
|
|
570
|
-
requiredElements: ['critical-path']
|
|
571
|
-
},
|
|
572
|
-
{
|
|
573
|
-
id: 'bal-46',
|
|
574
|
-
phase: 'task-breakdown',
|
|
575
|
-
number: 46,
|
|
576
|
-
total: 50,
|
|
577
|
-
text: 'What tasks can be done in parallel?',
|
|
578
|
-
guidance: 'Independent tasks that can be worked on simultaneously',
|
|
579
|
-
goodExample: 'After dashboard done: (1) Search/filter + (2) Email system + (3) CSV import can all be parallel. Testing and docs can start anytime',
|
|
580
|
-
badExample: 'Some',
|
|
581
|
-
keywords: ['parallel', 'concurrent', 'independent', 'simultaneous'],
|
|
582
|
-
requiredElements: ['parallel-tasks']
|
|
583
|
-
},
|
|
584
|
-
{
|
|
585
|
-
id: 'bal-47',
|
|
586
|
-
phase: 'task-breakdown',
|
|
587
|
-
number: 47,
|
|
588
|
-
total: 50,
|
|
589
|
-
text: 'What are the key milestones?',
|
|
590
|
-
guidance: 'Major checkpoints that indicate progress',
|
|
591
|
-
goodExample: 'M1: Auth working (Week 1). M2: CRUD functional (Week 2). M3: Search + reminders (Week 3). M4: Testing complete (Week 4). M5: Production deploy (Week 4)',
|
|
592
|
-
badExample: 'Milestones',
|
|
593
|
-
keywords: ['milestone', 'checkpoint', 'deliverable', 'phase'],
|
|
594
|
-
requiredElements: ['milestones']
|
|
595
|
-
},
|
|
596
|
-
{
|
|
597
|
-
id: 'bal-48',
|
|
598
|
-
phase: 'task-breakdown',
|
|
599
|
-
number: 48,
|
|
600
|
-
total: 50,
|
|
601
|
-
text: 'What is the testing strategy per task?',
|
|
602
|
-
guidance: 'How each major task will be tested',
|
|
603
|
-
goodExample: 'Auth: Unit tests for JWT logic + E2E for login flow. API: Integration tests with test DB. UI: Component tests + E2E with Playwright. Email: Mock SendGrid + test emails',
|
|
604
|
-
badExample: 'Test it',
|
|
605
|
-
keywords: ['test', 'unit', 'integration', 'e2e'],
|
|
606
|
-
requiredElements: ['test-strategy']
|
|
607
|
-
},
|
|
608
|
-
{
|
|
609
|
-
id: 'bal-49',
|
|
309
|
+
id: 'bal-24',
|
|
610
310
|
phase: 'task-breakdown',
|
|
611
|
-
number:
|
|
612
|
-
total:
|
|
613
|
-
text: 'What
|
|
614
|
-
guidance: '
|
|
615
|
-
goodExample: '
|
|
616
|
-
badExample: '
|
|
617
|
-
keywords: ['
|
|
618
|
-
requiredElements: ['
|
|
311
|
+
number: 24,
|
|
312
|
+
total: 25,
|
|
313
|
+
text: 'What are the key milestones and critical path?',
|
|
314
|
+
guidance: 'Major checkpoints and tasks that block other tasks (must be done first)',
|
|
315
|
+
goodExample: 'Critical path: Setup → Auth → Applications API → Dashboard (blocks everything else). Milestones: M1: Auth working (Week 1). M2: CRUD functional (Week 2). M3: Search + reminders (Week 3). M4: Production deploy (Week 4)',
|
|
316
|
+
badExample: 'Important milestones',
|
|
317
|
+
keywords: ['milestone', 'checkpoint', 'critical', 'blocker', 'dependency', 'blocks'],
|
|
318
|
+
requiredElements: ['milestones', 'critical-path']
|
|
619
319
|
},
|
|
620
320
|
{
|
|
621
|
-
id: 'bal-
|
|
321
|
+
id: 'bal-25',
|
|
622
322
|
phase: 'task-breakdown',
|
|
623
|
-
number:
|
|
624
|
-
total:
|
|
625
|
-
text: 'What is the definition of done
|
|
323
|
+
number: 25,
|
|
324
|
+
total: 25,
|
|
325
|
+
text: 'What is the project definition of done?',
|
|
626
326
|
guidance: 'Complete checklist for project completion',
|
|
627
327
|
goodExample: '✓ All P0 features working ✓ 80% test coverage ✓ No critical bugs ✓ Performance targets met ✓ Docs complete ✓ Deployed to production ✓ Users can sign up and track applications ✓ Email reminders working',
|
|
628
328
|
badExample: 'Done',
|
|
@@ -633,15 +333,7 @@ const balancedQuestions = [
|
|
|
633
333
|
|
|
634
334
|
// Comprehensive Framework Questions (Level 3: Agent-Native)
|
|
635
335
|
const bmadQuestions = [
|
|
636
|
-
...balancedQuestions
|
|
637
|
-
|
|
638
|
-
// BMAD-specific additions start here...
|
|
639
|
-
// This would continue with the full BMAD question set
|
|
640
|
-
// For now, I'll add the structure showing it extends Balanced
|
|
641
|
-
|
|
642
|
-
// Note: Full BMAD implementation would add 50 more questions here
|
|
643
|
-
// covering Business Analysis, Market Analysis, Advanced Architecture, etc.
|
|
644
|
-
// Keeping file size manageable for now - can expand if needed
|
|
336
|
+
...balancedQuestions // Include all 25 Balanced questions
|
|
645
337
|
];
|
|
646
338
|
|
|
647
339
|
module.exports = {
|