@intentsolutions/blueprint 2.0.0 → 2.2.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.
Files changed (57) hide show
  1. package/dist/cli.js +117 -75
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/index.d.ts +62 -0
  4. package/dist/core/index.d.ts.map +1 -0
  5. package/dist/core/index.js +137 -0
  6. package/dist/core/index.js.map +1 -0
  7. package/dist/index.d.ts +10 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +13 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/interview/analyzer.d.ts +39 -0
  12. package/dist/interview/analyzer.d.ts.map +1 -0
  13. package/dist/interview/analyzer.js +353 -0
  14. package/dist/interview/analyzer.js.map +1 -0
  15. package/dist/interview/engine.d.ts +71 -0
  16. package/dist/interview/engine.d.ts.map +1 -0
  17. package/dist/interview/engine.js +194 -0
  18. package/dist/interview/engine.js.map +1 -0
  19. package/dist/interview/index.d.ts +9 -0
  20. package/dist/interview/index.d.ts.map +1 -0
  21. package/dist/interview/index.js +8 -0
  22. package/dist/interview/index.js.map +1 -0
  23. package/dist/interview/questions.d.ts +22 -0
  24. package/dist/interview/questions.d.ts.map +1 -0
  25. package/dist/interview/questions.js +353 -0
  26. package/dist/interview/questions.js.map +1 -0
  27. package/dist/interview/types.d.ts +84 -0
  28. package/dist/interview/types.d.ts.map +1 -0
  29. package/dist/interview/types.js +5 -0
  30. package/dist/interview/types.js.map +1 -0
  31. package/dist/mcp/index.d.ts +7 -0
  32. package/dist/mcp/index.d.ts.map +1 -0
  33. package/dist/mcp/index.js +241 -0
  34. package/dist/mcp/index.js.map +1 -0
  35. package/package.json +30 -10
  36. package/templates/core/01_prd.md +465 -0
  37. package/templates/core/02_adr.md +432 -0
  38. package/templates/core/03_generate_tasks.md +418 -0
  39. package/templates/core/04_process_task_list.md +430 -0
  40. package/templates/core/05_market_research.md +483 -0
  41. package/templates/core/06_architecture.md +561 -0
  42. package/templates/core/07_competitor_analysis.md +462 -0
  43. package/templates/core/08_personas.md +367 -0
  44. package/templates/core/09_user_journeys.md +385 -0
  45. package/templates/core/10_user_stories.md +582 -0
  46. package/templates/core/11_acceptance_criteria.md +687 -0
  47. package/templates/core/12_qa_gate.md +737 -0
  48. package/templates/core/13_risk_register.md +605 -0
  49. package/templates/core/14_project_brief.md +477 -0
  50. package/templates/core/15_brainstorming.md +653 -0
  51. package/templates/core/16_frontend_spec.md +1479 -0
  52. package/templates/core/17_test_plan.md +878 -0
  53. package/templates/core/18_release_plan.md +994 -0
  54. package/templates/core/19_operational_readiness.md +1100 -0
  55. package/templates/core/20_metrics_dashboard.md +1375 -0
  56. package/templates/core/21_postmortem.md +1122 -0
  57. package/templates/core/22_playtest_usability.md +1624 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interview/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,KAAK,EACL,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Interview Engine Module
3
+ * Adaptive questioning system for documentation generation
4
+ */
5
+ export { InterviewEngine, quickInterview, } from './engine.js';
6
+ export { QUESTION_GROUPS, getActiveQuestions, getNextQuestion, getProgress, } from './questions.js';
7
+ export { detectContext, analyzeGaps, analyzeDescription, calculateComplexity, generateSummary, } from './analyzer.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interview/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,GAOf,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,GAChB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Interview Questions with Adaptive Logic
3
+ */
4
+ import type { Question, QuestionGroup, InterviewAnswers } from './types.js';
5
+ export declare const QUESTION_GROUPS: QuestionGroup[];
6
+ /**
7
+ * Get all questions flattened, respecting conditions
8
+ */
9
+ export declare function getActiveQuestions(answers: InterviewAnswers): Question[];
10
+ /**
11
+ * Get the next unanswered question
12
+ */
13
+ export declare function getNextQuestion(answers: InterviewAnswers): Question | null;
14
+ /**
15
+ * Get interview progress
16
+ */
17
+ export declare function getProgress(answers: InterviewAnswers): {
18
+ answered: number;
19
+ total: number;
20
+ percentage: number;
21
+ };
22
+ //# sourceMappingURL=questions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/interview/questions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAE,aAAa,EAiT1C,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAmBxE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAU1E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CASA"}
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Interview Questions with Adaptive Logic
3
+ */
4
+ export const QUESTION_GROUPS = [
5
+ {
6
+ id: 'core',
7
+ name: 'Project Basics',
8
+ description: 'Tell us about your project',
9
+ questions: [
10
+ {
11
+ id: 'projectName',
12
+ text: 'What is the name of your project?',
13
+ type: 'text',
14
+ required: true,
15
+ validate: (v) => (typeof v === 'string' && v.length > 0) || 'Project name is required',
16
+ },
17
+ {
18
+ id: 'projectDescription',
19
+ text: 'Describe your project in detail. What problem does it solve? Who is it for?',
20
+ type: 'editor',
21
+ required: true,
22
+ hint: 'The more detail you provide, the better the documentation will be tailored to your needs.',
23
+ validate: (v) => (typeof v === 'string' && v.length >= 20) ||
24
+ 'Please provide at least a few sentences describing your project',
25
+ },
26
+ {
27
+ id: 'projectType',
28
+ text: 'What type of project is this?',
29
+ type: 'select',
30
+ required: true,
31
+ options: [
32
+ 'SaaS Web Application',
33
+ 'Mobile App (iOS/Android)',
34
+ 'API / Backend Service',
35
+ 'CLI Tool',
36
+ 'Library / SDK',
37
+ 'Desktop Application',
38
+ 'E-commerce Platform',
39
+ 'Marketplace',
40
+ 'AI/ML Application',
41
+ 'IoT System',
42
+ 'Blockchain / Web3',
43
+ 'Game',
44
+ 'Other',
45
+ ],
46
+ transform: (v) => {
47
+ const map = {
48
+ 'SaaS Web Application': 'saas-web',
49
+ 'Mobile App (iOS/Android)': 'mobile-app',
50
+ 'API / Backend Service': 'api-backend',
51
+ 'CLI Tool': 'cli-tool',
52
+ 'Library / SDK': 'library-sdk',
53
+ 'Desktop Application': 'desktop-app',
54
+ 'E-commerce Platform': 'ecommerce',
55
+ 'Marketplace': 'marketplace',
56
+ 'AI/ML Application': 'ai-ml',
57
+ 'IoT System': 'iot',
58
+ 'Blockchain / Web3': 'blockchain',
59
+ 'Game': 'gaming',
60
+ 'Other': 'other',
61
+ };
62
+ return map[v] || 'other';
63
+ },
64
+ },
65
+ ],
66
+ },
67
+ {
68
+ id: 'technical',
69
+ name: 'Technical Details',
70
+ description: 'Help us understand the technical aspects',
71
+ questions: [
72
+ {
73
+ id: 'techStack',
74
+ text: 'What technologies are you using or planning to use?',
75
+ type: 'multiselect',
76
+ required: false,
77
+ options: [
78
+ 'TypeScript',
79
+ 'JavaScript',
80
+ 'Python',
81
+ 'Go',
82
+ 'Rust',
83
+ 'Java',
84
+ 'C#',
85
+ 'Ruby',
86
+ 'React',
87
+ 'Vue',
88
+ 'Angular',
89
+ 'Next.js',
90
+ 'Node.js',
91
+ 'Django',
92
+ 'FastAPI',
93
+ 'PostgreSQL',
94
+ 'MongoDB',
95
+ 'Redis',
96
+ 'AWS',
97
+ 'GCP',
98
+ 'Azure',
99
+ 'Docker',
100
+ 'Kubernetes',
101
+ ],
102
+ hint: 'Select all that apply',
103
+ },
104
+ {
105
+ id: 'hasFrontend',
106
+ text: 'Does your project have a user interface (web, mobile, or desktop)?',
107
+ type: 'confirm',
108
+ required: true,
109
+ default: true,
110
+ condition: (a) => !['cli-tool', 'library-sdk', 'api-backend'].includes(a.projectType || ''),
111
+ },
112
+ {
113
+ id: 'hasBackend',
114
+ text: 'Does your project require a backend/server?',
115
+ type: 'confirm',
116
+ required: true,
117
+ default: true,
118
+ condition: (a) => a.projectType !== 'library-sdk',
119
+ },
120
+ {
121
+ id: 'hasDatabase',
122
+ text: 'Will your project use a database?',
123
+ type: 'confirm',
124
+ required: true,
125
+ default: true,
126
+ condition: (a) => a.hasBackend !== false,
127
+ },
128
+ {
129
+ id: 'hasAuth',
130
+ text: 'Does your project need user authentication?',
131
+ type: 'confirm',
132
+ required: true,
133
+ default: true,
134
+ condition: (a) => a.hasBackend !== false &&
135
+ !['cli-tool', 'library-sdk'].includes(a.projectType || ''),
136
+ },
137
+ {
138
+ id: 'hasPayments',
139
+ text: 'Will your project handle payments or subscriptions?',
140
+ type: 'confirm',
141
+ required: false,
142
+ default: false,
143
+ condition: (a) => ['saas-web', 'ecommerce', 'marketplace'].includes(a.projectType || ''),
144
+ },
145
+ {
146
+ id: 'deploymentTarget',
147
+ text: 'Where will this be deployed?',
148
+ type: 'select',
149
+ required: false,
150
+ options: [
151
+ 'Cloud (AWS/GCP/Azure)',
152
+ 'Self-hosted / On-premise',
153
+ 'Serverless',
154
+ 'Edge / CDN',
155
+ 'App Stores (iOS/Android)',
156
+ 'Package Registry (npm/PyPI)',
157
+ 'Not sure yet',
158
+ ],
159
+ },
160
+ ],
161
+ },
162
+ {
163
+ id: 'business',
164
+ name: 'Business Context',
165
+ description: 'Tell us about your business goals',
166
+ questions: [
167
+ {
168
+ id: 'audience',
169
+ text: 'Who is your target audience?',
170
+ type: 'select',
171
+ required: true,
172
+ options: [
173
+ 'Startup - Move fast, iterate quickly',
174
+ 'Business - Balanced approach',
175
+ 'Enterprise - Thorough, compliance-ready',
176
+ ],
177
+ transform: (v) => {
178
+ if (typeof v === 'string') {
179
+ if (v.includes('Startup'))
180
+ return 'startup';
181
+ if (v.includes('Enterprise'))
182
+ return 'enterprise';
183
+ }
184
+ return 'business';
185
+ },
186
+ },
187
+ {
188
+ id: 'teamSize',
189
+ text: 'How large is your team?',
190
+ type: 'select',
191
+ required: false,
192
+ options: ['Solo (1)', 'Small (2-5)', 'Medium (6-15)', 'Large (16-50)', 'Enterprise (50+)'],
193
+ },
194
+ {
195
+ id: 'timeline',
196
+ text: 'What is your target timeline?',
197
+ type: 'select',
198
+ required: false,
199
+ options: [
200
+ 'ASAP / Hackathon',
201
+ '1-2 weeks',
202
+ '1-3 months',
203
+ '3-6 months',
204
+ '6-12 months',
205
+ '12+ months',
206
+ 'Ongoing / No deadline',
207
+ ],
208
+ },
209
+ {
210
+ id: 'hasCompetitors',
211
+ text: 'Are there existing competitors or similar products?',
212
+ type: 'confirm',
213
+ required: false,
214
+ default: false,
215
+ },
216
+ {
217
+ id: 'competitorNames',
218
+ text: 'Who are your main competitors?',
219
+ type: 'text',
220
+ required: false,
221
+ hint: 'Comma-separated list',
222
+ condition: (a) => a.hasCompetitors === true,
223
+ transform: (v) => typeof v === 'string'
224
+ ? v.split(',').map((s) => s.trim()).filter(Boolean)
225
+ : [],
226
+ },
227
+ {
228
+ id: 'monetization',
229
+ text: 'How will this project generate revenue?',
230
+ type: 'select',
231
+ required: false,
232
+ options: [
233
+ 'Subscription (SaaS)',
234
+ 'One-time purchase',
235
+ 'Freemium',
236
+ 'Advertising',
237
+ 'Transaction fees',
238
+ 'Enterprise licensing',
239
+ 'Open source (donations/sponsorship)',
240
+ 'Internal tool (no direct revenue)',
241
+ 'Not sure yet',
242
+ ],
243
+ condition: (a) => a.audience !== 'startup' || a.projectType !== 'cli-tool',
244
+ },
245
+ ],
246
+ },
247
+ {
248
+ id: 'scope',
249
+ name: 'Documentation Scope',
250
+ description: 'How comprehensive should the documentation be?',
251
+ questions: [
252
+ {
253
+ id: 'scope',
254
+ text: 'How comprehensive should the documentation be?',
255
+ type: 'select',
256
+ required: true,
257
+ options: [
258
+ 'MVP (4 docs) - Just the essentials to get started',
259
+ 'Standard (12 docs) - Core product and technical docs',
260
+ 'Comprehensive (22 docs) - Full enterprise documentation suite',
261
+ ],
262
+ transform: (v) => {
263
+ if (typeof v === 'string') {
264
+ if (v.includes('MVP'))
265
+ return 'mvp';
266
+ if (v.includes('Comprehensive'))
267
+ return 'comprehensive';
268
+ }
269
+ return 'standard';
270
+ },
271
+ },
272
+ {
273
+ id: 'priorityFeatures',
274
+ text: 'What are the most important features to document?',
275
+ type: 'text',
276
+ required: false,
277
+ hint: 'Comma-separated list of key features',
278
+ condition: (a) => a.scope !== 'mvp',
279
+ transform: (v) => typeof v === 'string'
280
+ ? v.split(',').map((s) => s.trim()).filter(Boolean)
281
+ : [],
282
+ },
283
+ ],
284
+ },
285
+ {
286
+ id: 'compliance',
287
+ name: 'Compliance & Security',
288
+ description: 'Security and regulatory requirements',
289
+ condition: (a) => a.audience === 'enterprise' || a.hasPayments === true,
290
+ questions: [
291
+ {
292
+ id: 'needsCompliance',
293
+ text: 'Does your project have compliance requirements?',
294
+ type: 'confirm',
295
+ required: false,
296
+ default: false,
297
+ },
298
+ {
299
+ id: 'complianceTypes',
300
+ text: 'Which compliance standards apply?',
301
+ type: 'multiselect',
302
+ required: false,
303
+ options: ['SOC 2', 'HIPAA', 'GDPR', 'PCI-DSS', 'ISO 27001', 'FedRAMP', 'CCPA'],
304
+ condition: (a) => a.needsCompliance === true,
305
+ },
306
+ ],
307
+ },
308
+ ];
309
+ /**
310
+ * Get all questions flattened, respecting conditions
311
+ */
312
+ export function getActiveQuestions(answers) {
313
+ const questions = [];
314
+ for (const group of QUESTION_GROUPS) {
315
+ // Check group condition
316
+ if (group.condition && !group.condition(answers)) {
317
+ continue;
318
+ }
319
+ for (const question of group.questions) {
320
+ // Check question condition
321
+ if (question.condition && !question.condition(answers)) {
322
+ continue;
323
+ }
324
+ questions.push(question);
325
+ }
326
+ }
327
+ return questions;
328
+ }
329
+ /**
330
+ * Get the next unanswered question
331
+ */
332
+ export function getNextQuestion(answers) {
333
+ const questions = getActiveQuestions(answers);
334
+ for (const q of questions) {
335
+ if (answers[q.id] === undefined) {
336
+ return q;
337
+ }
338
+ }
339
+ return null;
340
+ }
341
+ /**
342
+ * Get interview progress
343
+ */
344
+ export function getProgress(answers) {
345
+ const questions = getActiveQuestions(answers);
346
+ const answered = questions.filter((q) => answers[q.id] !== undefined).length;
347
+ return {
348
+ answered,
349
+ total: questions.length,
350
+ percentage: Math.round((answered / questions.length) * 100),
351
+ };
352
+ }
353
+ //# sourceMappingURL=questions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/interview/questions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Interview Engine Types
3
+ */
4
+ export type ProjectType = 'saas-web' | 'mobile-app' | 'api-backend' | 'cli-tool' | 'library-sdk' | 'desktop-app' | 'ecommerce' | 'marketplace' | 'ai-ml' | 'iot' | 'blockchain' | 'gaming' | 'other';
5
+ export type Complexity = 'simple' | 'moderate' | 'complex' | 'enterprise';
6
+ export type Audience = 'startup' | 'business' | 'enterprise';
7
+ export type Scope = 'mvp' | 'standard' | 'comprehensive';
8
+ export interface Question {
9
+ id: string;
10
+ text: string;
11
+ type: 'text' | 'select' | 'multiselect' | 'number' | 'confirm' | 'editor';
12
+ required: boolean;
13
+ options?: string[];
14
+ default?: string | string[] | number | boolean;
15
+ hint?: string;
16
+ /** Show this question only if condition returns true */
17
+ condition?: (answers: InterviewAnswers) => boolean;
18
+ /** Validate the answer */
19
+ validate?: (value: unknown, answers: InterviewAnswers) => boolean | string;
20
+ /** Transform the answer before storing */
21
+ transform?: (value: unknown) => unknown;
22
+ }
23
+ export interface QuestionGroup {
24
+ id: string;
25
+ name: string;
26
+ description: string;
27
+ questions: Question[];
28
+ /** Show this group only if condition returns true */
29
+ condition?: (answers: InterviewAnswers) => boolean;
30
+ }
31
+ export interface InterviewAnswers {
32
+ projectName?: string;
33
+ projectDescription?: string;
34
+ projectType?: ProjectType;
35
+ techStack?: string[];
36
+ hasBackend?: boolean;
37
+ hasDatabase?: boolean;
38
+ hasFrontend?: boolean;
39
+ hasAuth?: boolean;
40
+ hasPayments?: boolean;
41
+ deploymentTarget?: string;
42
+ audience?: Audience;
43
+ teamSize?: string;
44
+ timeline?: string;
45
+ budget?: string;
46
+ hasCompetitors?: boolean;
47
+ competitorNames?: string[];
48
+ monetization?: string;
49
+ scope?: Scope;
50
+ priorityFeatures?: string[];
51
+ mvpFeatures?: string[];
52
+ needsCompliance?: boolean;
53
+ complianceTypes?: string[];
54
+ [key: string]: unknown;
55
+ }
56
+ export interface DetectedContext {
57
+ projectType: ProjectType;
58
+ complexity: Complexity;
59
+ suggestedScope: Scope;
60
+ suggestedAudience: Audience;
61
+ detectedTechnologies: string[];
62
+ detectedFeatures: string[];
63
+ confidence: number;
64
+ reasoning: string[];
65
+ }
66
+ export interface GapAnalysis {
67
+ missingRequired: string[];
68
+ missingRecommended: string[];
69
+ assumptions: Array<{
70
+ field: string;
71
+ assumption: string;
72
+ confidence: number;
73
+ }>;
74
+ suggestions: string[];
75
+ completenessScore: number;
76
+ }
77
+ export interface InterviewResult {
78
+ answers: InterviewAnswers;
79
+ detected: DetectedContext;
80
+ gaps: GapAnalysis;
81
+ templateContext: Record<string, unknown>;
82
+ summary: string;
83
+ }
84
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/interview/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Interview Engine Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/interview/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Intent Blueprint MCP Server
4
+ * Exposes documentation generation tools to Claude/Cursor via MCP protocol
5
+ */
6
+ export declare function startMcpServer(): Promise<void>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAoRH,wBAAsB,cAAc,kBAInC"}