faf-cli 4.2.0 → 4.2.2

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.
@@ -126,28 +126,36 @@ class RelentlessContextExtractor {
126
126
  * 🎯 RELENTLESS WHO EXTRACTION - Fight for user context!
127
127
  */
128
128
  extractWHO() {
129
- // TIER 1: CERTAIN - High confidence patterns
129
+ // TIER 1: AUTHORITATIVE - package.json author
130
+ if (this.packageJson?.author) {
131
+ const author = typeof this.packageJson.author === 'string'
132
+ ? this.packageJson.author
133
+ : this.packageJson.author.name || this.packageJson.author.email || '';
134
+ if (author.length > 0) {
135
+ return {
136
+ value: `${author} team`,
137
+ confidence: 'CERTAIN',
138
+ source: 'Package author (authoritative)',
139
+ needsUserInput: false
140
+ };
141
+ }
142
+ }
143
+ // TIER 2: README - Specific "for X" patterns with minimum length
144
+ const cleanedReadme = this.getCleanedReadme();
130
145
  const certainPatterns = [
131
- /for\s+([\w\s]+(?:developers?|engineers?|teams?|companies?|organizations?))/gi,
132
- /built\s+(?:specifically\s+)?for\s+([^.,\n]+)/gi,
133
- /designed\s+for\s+([^.,\n]+)/gi,
134
- /perfect\s+for\s+([^.,\n]+)/gi,
135
- /target(?:ing|ed|s)?\s+(?:at|to|for)?\s*([^.,\n]+)/gi,
136
- /helps?\s+([^.,\n]+(?:developers?|engineers?|teams?))/gi,
137
- /enables?\s+([^.,\n]+)\s+to/gi,
138
- /empowers?\s+([^.,\n]+)/gi
146
+ /(?:built|designed|created)\s+(?:specifically\s+)?for\s+([\w\s]+(?:developers?|engineers?|teams?|companies?|organizations?))/gi,
147
+ /target\s+(?:audience|users?)(?:\s+is)?\s*:?\s*([\w\s]+)/gi,
148
+ /perfect\s+for\s+([\w\s]+(?:developers?|engineers?|teams?))/gi
139
149
  ];
140
150
  for (const pattern of certainPatterns) {
141
- const matches = this.fileContent.matchAll(pattern);
142
- for (const match of matches) {
143
- if (match[1] && match[1].length > 5) {
144
- return {
145
- value: this.cleanExtractedText(match[1]),
146
- confidence: 'CERTAIN',
147
- source: 'Direct statement',
148
- needsUserInput: false
149
- };
150
- }
151
+ const match = cleanedReadme.match(pattern);
152
+ if (match && match[1] && match[1].length > 5) {
153
+ return {
154
+ value: this.cleanExtractedText(match[1]),
155
+ confidence: 'CERTAIN',
156
+ source: 'README target audience',
157
+ needsUserInput: false
158
+ };
151
159
  }
152
160
  }
153
161
  // TIER 2: PROBABLE - Medium confidence
@@ -195,42 +203,32 @@ class RelentlessContextExtractor {
195
203
  * 🎯 RELENTLESS WHAT EXTRACTION - Core problem/purpose
196
204
  */
197
205
  extractWHAT() {
198
- // TIER 1: CERTAIN - Direct problem statements
199
- const certainPatterns = [
200
- /solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.,\n]+)/gi,
201
- /addresses?\s+(?:the\s+)?(?:issue\s+of\s+)?([^.,\n]+)/gi,
202
- /fixes?\s+([^.,\n]+)/gi,
203
- /eliminates?\s+([^.,\n]+)/gi,
204
- /prevents?\s+([^.,\n]+)/gi,
205
- /(?:core|main|primary)\s+(?:problem|issue|challenge)(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
206
- /pain\s+points?\s*:?\s*([^.,\n]+)/gi
207
- ];
208
- for (const pattern of certainPatterns) {
209
- const matches = this.fileContent.matchAll(pattern);
210
- for (const match of matches) {
211
- if (match[1] && match[1].length > 10) {
212
- return {
213
- value: this.cleanExtractedText(match[1]),
214
- confidence: 'CERTAIN',
215
- source: 'Problem statement',
216
- needsUserInput: false
217
- };
218
- }
219
- }
220
- }
221
- // TIER 2: PROBABLE - Feature descriptions
206
+ // TIER 1: AUTHORITATIVE - package.json description
207
+ // Manifest files are the source of truth, ALWAYS prioritize them
222
208
  const description = this.packageJson?.description || '';
223
209
  if (description.length > 20) {
224
210
  return {
225
211
  value: description,
212
+ confidence: 'CERTAIN',
213
+ source: 'Package description (authoritative)',
214
+ needsUserInput: false
215
+ };
216
+ }
217
+ // TIER 2: README - But skip HTML/badges and extract carefully
218
+ const cleanedReadme = this.getCleanedReadme();
219
+ // Try to extract from specific sections first
220
+ const purposeSection = cleanedReadme.match(/##?\s+(?:Purpose|What|About|Overview)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
221
+ if (purposeSection && purposeSection[1] && purposeSection[1].length > 20) {
222
+ return {
223
+ value: this.cleanExtractedText(purposeSection[1]),
226
224
  confidence: 'PROBABLE',
227
- source: 'Package description',
225
+ source: 'README Purpose section',
228
226
  needsUserInput: true
229
227
  };
230
228
  }
231
- // Extract from README first paragraph
232
- const firstPara = this.readmeContent.match(/^#\s+.+\n+(.+?)(?:\n\n|\n#|$)/ms);
233
- if (firstPara && firstPara[1]) {
229
+ // Try first paragraph after skipping HTML/badges
230
+ const firstPara = cleanedReadme.match(/^(.+?)(?:\n\n|\n##?|$)/s);
231
+ if (firstPara && firstPara[1] && firstPara[1].length > 30) {
234
232
  return {
235
233
  value: this.cleanExtractedText(firstPara[1]),
236
234
  confidence: 'PROBABLE',
@@ -238,7 +236,25 @@ class RelentlessContextExtractor {
238
236
  needsUserInput: true
239
237
  };
240
238
  }
241
- // TIER 3: INFERRED - From project name
239
+ // TIER 3: Problem statement patterns - More specific, minimum length 30 chars
240
+ const certainPatterns = [
241
+ /(?:core|main|primary)\s+(?:problem|issue|challenge)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi,
242
+ /pain\s+points?\s*:?\s*([^.\n]{30,})/gi,
243
+ /solves?\s+(?:the\s+)?(?:problem\s+of\s+)?([^.\n]{30,})/gi,
244
+ /(?:purpose|mission)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi
245
+ ];
246
+ for (const pattern of certainPatterns) {
247
+ const match = cleanedReadme.match(pattern);
248
+ if (match && match[1]) {
249
+ return {
250
+ value: this.cleanExtractedText(match[1]),
251
+ confidence: 'PROBABLE',
252
+ source: 'Problem statement',
253
+ needsUserInput: true
254
+ };
255
+ }
256
+ }
257
+ // TIER 4: INFERRED - From project name
242
258
  if (this.packageJson?.name) {
243
259
  const inferredPurpose = this.inferPurposeFromName(this.packageJson.name);
244
260
  return {
@@ -260,47 +276,44 @@ class RelentlessContextExtractor {
260
276
  * 🎯 RELENTLESS WHY EXTRACTION - Mission/purpose
261
277
  */
262
278
  extractWHY() {
263
- // TIER 1: CERTAIN - Mission statements
279
+ const cleanedReadme = this.getCleanedReadme();
280
+ // TIER 1: CERTAIN - Explicit mission/purpose sections
281
+ const missionSection = cleanedReadme.match(/##?\s+(?:Mission|Purpose|Why|Vision)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
282
+ if (missionSection && missionSection[1] && missionSection[1].length > 20) {
283
+ return {
284
+ value: this.cleanExtractedText(missionSection[1]),
285
+ confidence: 'CERTAIN',
286
+ source: 'README Mission section',
287
+ needsUserInput: false
288
+ };
289
+ }
290
+ // TIER 2: PROBABLE - Specific mission/goal patterns with minimum length
264
291
  const certainPatterns = [
265
- /(?:our\s+)?mission(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
266
- /(?:our\s+)?purpose(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
267
- /(?:our\s+)?goal(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
268
- /(?:we\s+)?aim(?:\s+to)?\s+([^.,\n]+)/gi,
269
- /(?:we\s+)?strive(?:\s+to)?\s+([^.,\n]+)/gi,
270
- /because\s+([^.,\n]+)/gi,
271
- /so\s+that\s+([^.,\n]+)/gi
292
+ /(?:our\s+)?(?:mission|purpose|goal)(?:\s+is)?\s*:?\s*([^.\n]{30,})/gi,
293
+ /(?:we\s+)?(?:aim|strive)(?:\s+to)?\s+([^.\n]{30,})/gi,
294
+ /(?:built|created|designed)\s+(?:because|to)\s+([^.\n]{30,})/gi
272
295
  ];
273
296
  for (const pattern of certainPatterns) {
274
- const matches = this.fileContent.matchAll(pattern);
275
- for (const match of matches) {
276
- if (match[1] && match[1].length > 15) {
277
- return {
278
- value: this.cleanExtractedText(match[1]),
279
- confidence: 'CERTAIN',
280
- source: 'Mission statement',
281
- needsUserInput: false
282
- };
283
- }
297
+ const match = cleanedReadme.match(pattern);
298
+ if (match && match[1]) {
299
+ return {
300
+ value: this.cleanExtractedText(match[1]),
301
+ confidence: 'PROBABLE',
302
+ source: 'Mission statement',
303
+ needsUserInput: true
304
+ };
284
305
  }
285
306
  }
286
- // TIER 2: PROBABLE - Benefits/outcomes
287
- const benefitPatterns = [
288
- /enables?\s+(?:you\s+to\s+)?([^.,\n]+)/gi,
289
- /allows?\s+(?:you\s+to\s+)?([^.,\n]+)/gi,
290
- /helps?\s+(?:you\s+)?([^.,\n]+)/gi,
291
- /makes?\s+(?:it\s+)?([^.,\n]+)/gi
292
- ];
293
- for (const pattern of benefitPatterns) {
294
- const matches = this.fileContent.matchAll(pattern);
295
- for (const match of matches) {
296
- if (match[1] && match[1].length > 15) {
297
- return {
298
- value: `To ${this.cleanExtractedText(match[1])}`,
299
- confidence: 'PROBABLE',
300
- source: 'Benefit statement',
301
- needsUserInput: true
302
- };
303
- }
307
+ // TIER 3: Check package.json keywords for mission clues
308
+ if (this.packageJson?.keywords && Array.isArray(this.packageJson.keywords)) {
309
+ const keywords = this.packageJson.keywords.join(', ');
310
+ if (keywords.length > 20) {
311
+ return {
312
+ value: `To enable ${keywords}`,
313
+ confidence: 'INFERRED',
314
+ source: 'Package keywords',
315
+ needsUserInput: true
316
+ };
304
317
  }
305
318
  }
306
319
  // HONEST SCORING: 0% is a valid score - no fake placeholders
@@ -315,7 +328,17 @@ class RelentlessContextExtractor {
315
328
  * 🎯 RELENTLESS WHERE EXTRACTION - Deployment/market
316
329
  */
317
330
  extractWHERE() {
318
- // Check package.json homepage
331
+ // TIER 1: AUTHORITATIVE - Check package.json repository and npm registry
332
+ if (this.packageJson?.name) {
333
+ // If it's an npm package, it's on npm registry
334
+ return {
335
+ value: 'npm registry + GitHub',
336
+ confidence: 'CERTAIN',
337
+ source: 'Package registry (authoritative)',
338
+ needsUserInput: false
339
+ };
340
+ }
341
+ // TIER 2: Check package.json homepage
319
342
  if (this.packageJson?.homepage) {
320
343
  const url = this.packageJson.homepage;
321
344
  if (url.includes('vercel')) {
@@ -337,24 +360,24 @@ class RelentlessContextExtractor {
337
360
  needsUserInput: true
338
361
  };
339
362
  }
340
- // Check for cloud indicators
363
+ // TIER 3: Check for cloud indicators
341
364
  if (this.techStack.has('aws-sdk')) {
342
- return this.createContext('AWS Cloud', 'CERTAIN');
365
+ return this.createContext('AWS Cloud', 'PROBABLE', true);
343
366
  }
344
367
  if (this.techStack.has('@google-cloud/storage')) {
345
- return this.createContext('Google Cloud', 'CERTAIN');
368
+ return this.createContext('Google Cloud', 'PROBABLE', true);
346
369
  }
347
370
  if (this.techStack.has('@azure/storage-blob')) {
348
- return this.createContext('Azure Cloud', 'CERTAIN');
371
+ return this.createContext('Azure Cloud', 'PROBABLE', true);
349
372
  }
350
- // Check for deployment configs
373
+ // TIER 4: Check README for deployment mentions
374
+ const cleanedReadme = this.getCleanedReadme();
351
375
  const deploymentPatterns = [
352
- /deploy(?:ed|ing|ment)?\s+(?:to|on|at)\s+([^.,\n]+)/gi,
353
- /hosted?\s+(?:on|at)\s+([^.,\n]+)/gi,
354
- /runs?\s+(?:on|in)\s+([^.,\n]+)/gi
376
+ /deploy(?:ed|ing|ment)?\s+(?:to|on|at)\s+([^.,\n]{10,})/gi,
377
+ /hosted?\s+(?:on|at)\s+([^.,\n]{10,})/gi
355
378
  ];
356
379
  for (const pattern of deploymentPatterns) {
357
- const match = this.fileContent.match(pattern);
380
+ const match = cleanedReadme.match(pattern);
358
381
  if (match && match[1]) {
359
382
  return {
360
383
  value: this.cleanExtractedText(match[1]),
@@ -376,15 +399,35 @@ class RelentlessContextExtractor {
376
399
  * 🎯 RELENTLESS WHEN EXTRACTION - Timeline/schedule
377
400
  */
378
401
  extractWHEN() {
379
- // Look for timeline indicators
402
+ // TIER 1: Check version for stage inference (AUTHORITATIVE)
403
+ const version = this.packageJson?.version;
404
+ if (version) {
405
+ if (version.startsWith('0.')) {
406
+ return this.createContext('Pre-release/Beta phase', 'CERTAIN', false);
407
+ }
408
+ else if (parseFloat(version) >= 1.0) {
409
+ return this.createContext('Production/Stable', 'CERTAIN', false);
410
+ }
411
+ }
412
+ // TIER 2: Look for specific timeline sections in README
413
+ const cleanedReadme = this.getCleanedReadme();
414
+ const roadmapSection = cleanedReadme.match(/##?\s+(?:Roadmap|Timeline|Schedule)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
415
+ if (roadmapSection && roadmapSection[1] && roadmapSection[1].length > 15) {
416
+ return {
417
+ value: this.cleanExtractedText(roadmapSection[1]),
418
+ confidence: 'PROBABLE',
419
+ source: 'README Roadmap section',
420
+ needsUserInput: true
421
+ };
422
+ }
423
+ // TIER 3: Look for timeline indicators (minimum length to avoid fragments)
380
424
  const timelinePatterns = [
381
- /(?:timeline|schedule|deadline|launch|release)(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
382
- /(?:launching|releasing|deploying|shipping)\s+(?:in|on|by)\s+([^.,\n]+)/gi,
383
- /(?:expected|planned|scheduled)\s+(?:for|by|on)\s+([^.,\n]+)/gi,
384
- /(?:MVP|beta|alpha|v1)\s+(?:by|in|on)\s+([^.,\n]+)/gi
425
+ /(?:launch|release)(?:\s+date)?(?:\s+is)?\s*:?\s*([^.,\n]{15,})/gi,
426
+ /(?:launching|releasing|shipping)\s+(?:in|on|by)\s+([^.,\n]{10,})/gi,
427
+ /(?:expected|planned|scheduled)\s+(?:for|by|on)\s+([^.,\n]{10,})/gi
385
428
  ];
386
429
  for (const pattern of timelinePatterns) {
387
- const match = this.fileContent.match(pattern);
430
+ const match = cleanedReadme.match(pattern);
388
431
  if (match && match[1]) {
389
432
  return {
390
433
  value: this.cleanExtractedText(match[1]),
@@ -394,16 +437,6 @@ class RelentlessContextExtractor {
394
437
  };
395
438
  }
396
439
  }
397
- // Check version for stage inference
398
- const version = this.packageJson?.version;
399
- if (version) {
400
- if (version.startsWith('0.')) {
401
- return this.createContext('Pre-release/Beta phase', 'INFERRED', true);
402
- }
403
- else if (version.startsWith('1.')) {
404
- return this.createContext('Production/Stable', 'INFERRED', true);
405
- }
406
- }
407
440
  // HONEST SCORING: 0% is a valid score - no fake placeholders
408
441
  return {
409
442
  value: '',
@@ -416,17 +449,35 @@ class RelentlessContextExtractor {
416
449
  * 🎯 RELENTLESS HOW EXTRACTION - Approach/methodology
417
450
  */
418
451
  extractHOW() {
419
- // Look for methodology patterns
452
+ // TIER 1: Infer from tech stack (AUTHORITATIVE for technical approach)
453
+ const approach = this.inferApproachFromTech();
454
+ if (approach) {
455
+ return {
456
+ value: approach,
457
+ confidence: 'CERTAIN',
458
+ source: 'Tech stack analysis (authoritative)',
459
+ needsUserInput: false
460
+ };
461
+ }
462
+ // TIER 2: Look for methodology sections in README
463
+ const cleanedReadme = this.getCleanedReadme();
464
+ const methodSection = cleanedReadme.match(/##?\s+(?:Approach|Methodology|How|Architecture)\s*\n+(.+?)(?:\n\n|\n##?|$)/is);
465
+ if (methodSection && methodSection[1] && methodSection[1].length > 20) {
466
+ return {
467
+ value: this.cleanExtractedText(methodSection[1]),
468
+ confidence: 'PROBABLE',
469
+ source: 'README Methodology section',
470
+ needsUserInput: true
471
+ };
472
+ }
473
+ // TIER 3: Look for methodology patterns (minimum length to avoid fragments)
420
474
  const methodPatterns = [
421
- /(?:built|created|developed)\s+(?:using|with)\s+([^.,\n]+)/gi,
422
- /(?:powered|driven)\s+by\s+([^.,\n]+)/gi,
423
- /(?:based|built)\s+on\s+([^.,\n]+)/gi,
424
- /(?:uses?|utilizes?|leverages?)\s+([^.,\n]+)/gi,
425
- /approach(?:\s+is)?\s*:?\s*([^.,\n]+)/gi,
426
- /methodology(?:\s+is)?\s*:?\s*([^.,\n]+)/gi
475
+ /(?:approach|methodology)(?:\s+is)?\s*:?\s*([^.\n]{20,})/gi,
476
+ /(?:built|created|developed)\s+(?:using|with)\s+([^.\n]{20,})/gi,
477
+ /(?:powered|driven)\s+by\s+([^.\n]{15,})/gi
427
478
  ];
428
479
  for (const pattern of methodPatterns) {
429
- const match = this.fileContent.match(pattern);
480
+ const match = cleanedReadme.match(pattern);
430
481
  if (match && match[1]) {
431
482
  return {
432
483
  value: this.cleanExtractedText(match[1]),
@@ -436,16 +487,6 @@ class RelentlessContextExtractor {
436
487
  };
437
488
  }
438
489
  }
439
- // Infer from tech stack
440
- const approach = this.inferApproachFromTech();
441
- if (approach) {
442
- return {
443
- value: approach,
444
- confidence: 'INFERRED',
445
- source: 'Tech stack analysis',
446
- needsUserInput: true
447
- };
448
- }
449
490
  // HONEST SCORING: 0% is a valid score - no fake placeholders
450
491
  return {
451
492
  value: '',
@@ -563,6 +604,27 @@ class RelentlessContextExtractor {
563
604
  }
564
605
  return todos;
565
606
  }
607
+ /**
608
+ * Helper: Get cleaned README with HTML/badges removed
609
+ */
610
+ getCleanedReadme() {
611
+ let cleaned = this.readmeContent;
612
+ // Remove HTML tags and badge images
613
+ cleaned = cleaned.replace(/<[^>]+>/g, '');
614
+ cleaned = cleaned.replace(/!\[.*?\]\(.*?\)/g, '');
615
+ cleaned = cleaned.replace(/\[!\[.*?\]\(.*?\)\]\(.*?\)/g, '');
616
+ // Remove badge URLs
617
+ cleaned = cleaned.replace(/https?:\/\/img\.shields\.io\/[^\s)]+/g, '');
618
+ cleaned = cleaned.replace(/https?:\/\/badge[^\s)]+/g, '');
619
+ // Remove excessive newlines
620
+ cleaned = cleaned.replace(/\n{3,}/g, '\n\n');
621
+ // Skip to first markdown heading or content
622
+ const contentStart = cleaned.search(/^#{1,2}\s+\w+|\n\n[A-Z]/m);
623
+ if (contentStart > 0) {
624
+ cleaned = cleaned.substring(contentStart);
625
+ }
626
+ return cleaned.trim();
627
+ }
566
628
  /**
567
629
  * Helper: Infer audience from tech stack
568
630
  */
@@ -1 +1 @@
1
- {"version":3,"file":"relentless-context-extractor.js","sourceRoot":"","sources":["../../src/engines/relentless-context-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relentless-context-extractor.js","sourceRoot":"","sources":["../../src/engines/relentless-context-extractor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"faf-generator-championship.d.ts","sourceRoot":"","sources":["../../src/generators/faf-generator-championship.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAsejB"}
1
+ {"version":3,"file":"faf-generator-championship.d.ts","sourceRoot":"","sources":["../../src/generators/faf-generator-championship.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAqgBjB"}
@@ -61,6 +61,10 @@ async function generateFafFromProject(options) {
61
61
  if (descMatch) {
62
62
  pyprojectData.description = descMatch[1];
63
63
  }
64
+ const versionMatch = content.match(/version\s*=\s*"([^"]+)"/);
65
+ if (versionMatch) {
66
+ pyprojectData.version = versionMatch[1];
67
+ }
64
68
  }
65
69
  catch {
66
70
  // Continue without pyproject.toml data
@@ -267,6 +271,10 @@ async function generateFafFromProject(options) {
267
271
  if (descMatch) {
268
272
  cargoTomlData.description = descMatch[1];
269
273
  }
274
+ const versionMatch = cargoContent.match(/^version\s*=\s*"([^"]+)"/m);
275
+ if (versionMatch) {
276
+ cargoTomlData.version = versionMatch[1];
277
+ }
270
278
  }
271
279
  catch {
272
280
  // No Cargo.toml or can't read it
@@ -290,18 +298,24 @@ async function generateFafFromProject(options) {
290
298
  contextSlotsFilled['build_tool'] = 'Cargo';
291
299
  contextSlotsFilled['package_manager'] = 'Cargo';
292
300
  contextSlotsFilled['runtime'] = 'Native binary';
293
- // Set N/A for non-applicable slots (reduces slot count for CLI)
294
- contextSlotsFilled['css_framework'] = 'N/A (CLI)';
295
- contextSlotsFilled['ui_library'] = 'N/A (CLI)';
296
- contextSlotsFilled['database'] = 'N/A (CLI)';
297
- contextSlotsFilled['frontend'] = 'N/A (CLI)';
298
- // Cargo.toml overrides
299
- if (cargoTomlData.name && !contextSlotsFilled['project_name']) {
301
+ // 🎯 SLOT-IGNORE: Rust CLI tools don't need web frontend or databases
302
+ // Setting to 'None' = slot-ignore (like .gitignore, .fafignore)
303
+ // Score: (Filled + Ignored) / 21 = allows 100% without inapplicable slots
304
+ // See docs/SLOT-IGNORE.md for specification
305
+ contextSlotsFilled['css_framework'] = 'None';
306
+ contextSlotsFilled['ui_library'] = 'None';
307
+ contextSlotsFilled['database'] = 'None';
308
+ contextSlotsFilled['frontend'] = 'None';
309
+ // Cargo.toml is AUTHORITATIVE for Rust - always override FAB/README guesses
310
+ if (cargoTomlData.name) {
300
311
  contextSlotsFilled['project_name'] = cargoTomlData.name;
301
312
  }
302
- if (cargoTomlData.description && !contextSlotsFilled['project_goal']) {
313
+ if (cargoTomlData.description) {
303
314
  contextSlotsFilled['project_goal'] = cargoTomlData.description;
304
315
  }
316
+ if (cargoTomlData.version) {
317
+ contextSlotsFilled['version'] = cargoTomlData.version;
318
+ }
305
319
  }
306
320
  if (isNodeCLI) {
307
321
  // Smart slot reuse for CLI projects
@@ -339,6 +353,14 @@ async function generateFafFromProject(options) {
339
353
  else if (deps?.oclif) {
340
354
  contextSlotsFilled['cli_framework'] = 'oclif';
341
355
  }
356
+ // 🎯 SLOT-IGNORE: CLI tools don't need database/frontend/css
357
+ // Like .gitignore for files, slot-ignore marks slots as "not applicable"
358
+ // Setting to 'None' tells scoring: "We checked. Doesn't apply. That's correct."
359
+ // See docs/SLOT-IGNORE.md for full specification
360
+ contextSlotsFilled['database'] = 'None';
361
+ if (!contextSlotsFilled['frontend']) {
362
+ contextSlotsFilled['frontend'] = 'None'; // Unless already set
363
+ }
342
364
  // Detect runtime (Bun takes priority if bun.lockb exists)
343
365
  if (isBunProject) {
344
366
  contextSlotsFilled['runtime'] = 'Bun';
@@ -381,25 +403,34 @@ async function generateFafFromProject(options) {
381
403
  contextSlotsFilled['runtime'] = 'Bun';
382
404
  contextSlotsFilled['package_manager'] = 'Bun';
383
405
  }
384
- // Override with package.json if more specific
385
- if (packageData.name && !contextSlotsFilled['project_name']) {
406
+ // package.json is AUTHORITATIVE - always override FAB/README guesses
407
+ if (packageData.name) {
386
408
  contextSlotsFilled['project_name'] = packageData.name;
387
409
  }
388
- if (packageData.description && !contextSlotsFilled['project_goal']) {
410
+ if (packageData.description) {
389
411
  contextSlotsFilled['project_goal'] = packageData.description;
390
412
  }
391
- // Override with pyproject.toml for Python projects
392
- if (pyprojectData.name && !contextSlotsFilled['project_name']) {
413
+ if (packageData.version) {
414
+ contextSlotsFilled['version'] = packageData.version;
415
+ }
416
+ // pyproject.toml is AUTHORITATIVE for Python - always override FAB/README guesses
417
+ if (pyprojectData.name) {
393
418
  contextSlotsFilled['project_name'] = pyprojectData.name;
394
419
  }
395
- if (pyprojectData.description && !contextSlotsFilled['project_goal']) {
420
+ if (pyprojectData.description) {
396
421
  contextSlotsFilled['project_goal'] = pyprojectData.description;
397
422
  }
398
- // Apply README data (human context priority)
399
- if (readmeData.projectName && !contextSlotsFilled['project_name']) {
423
+ if (pyprojectData.version) {
424
+ contextSlotsFilled['version'] = pyprojectData.version;
425
+ }
426
+ // Apply README data ONLY if package.json/pyproject.toml/Cargo.toml don't have it
427
+ // package.json/Cargo.toml/pyproject.toml are AUTHORITATIVE for name/description
428
+ if (readmeData.projectName && !contextSlotsFilled['project_name'] &&
429
+ !packageData.name && !pyprojectData.name && !cargoTomlData.name) {
400
430
  contextSlotsFilled['project_name'] = readmeData.projectName;
401
431
  }
402
- if (readmeData.description && !contextSlotsFilled['project_goal']) {
432
+ if (readmeData.description && !contextSlotsFilled['project_goal'] &&
433
+ !packageData.description && !pyprojectData.description && !cargoTomlData.description) {
403
434
  contextSlotsFilled['project_goal'] = readmeData.description;
404
435
  }
405
436
  if (readmeData.targetUser && !contextSlotsFilled['who']) {
@@ -503,6 +534,7 @@ async function generateFafFromProject(options) {
503
534
  // HONEST SCORING: No fake defaults - 0% is a valid score!
504
535
  const fafData = {
505
536
  projectName: contextSlotsFilled['project_name'] || path_1.default.basename(projectRoot),
537
+ version: contextSlotsFilled['version'] || undefined,
506
538
  projectGoal: contextSlotsFilled['project_goal'] || undefined,
507
539
  mainLanguage: contextSlotsFilled['main_language'] || undefined,
508
540
  framework: contextSlotsFilled['framework'] || undefined,