ai-sdlc 0.2.0-alpha.26 → 0.2.0-alpha.28

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.
@@ -23,6 +23,33 @@ export declare function generateTDDIssues(violations: string[]): ReviewIssue[];
23
23
  * Progress callback for verification steps
24
24
  */
25
25
  export type VerificationProgressCallback = (phase: 'build' | 'test', status: 'starting' | 'running' | 'passed' | 'failed', message?: string) => void;
26
+ /**
27
+ * Derive individual perspective pass/fail status from issues
28
+ *
29
+ * For backward compatibility with ReviewAttempt structure, determines whether
30
+ * each perspective (code, security, po) would pass based on issues flagged
31
+ * for that perspective.
32
+ *
33
+ * A perspective fails if it has any blocker or critical issues.
34
+ *
35
+ * @param issues - Array of review issues with perspectives field
36
+ * @returns Object with pass/fail status for each perspective
37
+ */
38
+ export declare function deriveIndividualPassFailFromPerspectives(issues: ReviewIssue[]): {
39
+ codeReviewPassed: boolean;
40
+ securityReviewPassed: boolean;
41
+ poReviewPassed: boolean;
42
+ };
43
+ /**
44
+ * Get source code changes from git diff
45
+ *
46
+ * Returns list of source files that have been modified (excludes tests and story files).
47
+ * Uses spawnSync for security (prevents command injection).
48
+ *
49
+ * @param workingDir - Working directory to run git diff in
50
+ * @returns Array of source file paths that have changed, or ['unknown'] if git fails
51
+ */
52
+ export declare function getSourceCodeChanges(workingDir: string): string[];
26
53
  /**
27
54
  * Generate executive summary from review issues (1-3 sentences)
28
55
  *
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/agents/review.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAA8E,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkH5K;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CA0BlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAOrE;AAiBD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAsVrJ;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CA+F1F;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;CACvD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,YAAY,CAAC,CA+QvB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB7F;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAsC9E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM,CAqC9E;AAgCD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC,CAqKtB"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/agents/review.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAA8E,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAqH5K;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CA0BlE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAOrE;AAiBD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAkWrJ;;;;;;;;;;;GAWG;AACH,wBAAgB,wCAAwC,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG;IAC/E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;CACzB,CAsBA;AAsED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CA2BjE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CA+F1F;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,sBAAsB,CAAC,EAAE,4BAA4B,CAAC;CACvD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAiXvB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB/F;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiB7F;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAsC9E;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,MAAM,CAqC9E;AAgCD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC,CAqKtB"}
@@ -1,13 +1,14 @@
1
- import { execSync, spawn } from 'child_process';
1
+ import { execSync, spawn, spawnSync } from 'child_process';
2
2
  import path from 'path';
3
3
  import fs from 'fs';
4
4
  import { z } from 'zod';
5
- import { parseStory, updateStoryStatus, appendToSection, updateStoryField, isAtMaxRetries, appendReviewHistory, snapshotMaxRetries, getEffectiveMaxRetries } from '../core/story.js';
5
+ import { parseStory, updateStoryStatus, appendToSection, updateStoryField, isAtMaxRetries, appendReviewHistory, snapshotMaxRetries, getEffectiveMaxRetries, getEffectiveMaxImplementationRetries } from '../core/story.js';
6
6
  import { runAgentQuery } from '../core/client.js';
7
7
  import { getLogger } from '../core/logger.js';
8
8
  import { loadConfig, DEFAULT_TIMEOUTS } from '../core/config.js';
9
9
  import { ReviewDecision, ReviewSeverity } from '../types/index.js';
10
10
  import { sanitizeInput, truncateText } from '../cli/formatting.js';
11
+ import { detectTestDuplicationPatterns } from './test-pattern-detector.js';
11
12
  /**
12
13
  * Security: Validate Git branch name to prevent command injection
13
14
  * Only allows alphanumeric characters, hyphens, underscores, and forward slashes
@@ -95,6 +96,8 @@ const ReviewIssueSchema = z.object({
95
96
  file: z.string().nullish().transform(v => v ?? undefined),
96
97
  line: z.number().int().positive().nullish().transform(v => v ?? undefined),
97
98
  suggestedFix: z.string().max(5000).nullish().transform(v => v ?? undefined),
99
+ // Perspectives field for unified review (optional for backward compatibility)
100
+ perspectives: z.array(z.enum(['code', 'security', 'po'])).optional(),
98
101
  });
99
102
  const ReviewResponseSchema = z.object({
100
103
  passed: z.boolean(),
@@ -253,7 +256,8 @@ Output your review as a JSON object with this structure:
253
256
  "description": "Detailed description of the issue",
254
257
  "file": "path/to/file.ts" (if applicable),
255
258
  "line": 42 (if applicable),
256
- "suggestedFix": "How to fix this issue"
259
+ "suggestedFix": "How to fix this issue",
260
+ "perspectives": ["code", "security", "po"] (which perspectives this issue relates to)
257
261
  }
258
262
  ]
259
263
  }
@@ -266,6 +270,70 @@ Severity guidelines:
266
270
 
267
271
  If no issues found, return: {"passed": true, "issues": []}
268
272
  `;
273
+ /**
274
+ * Unified Review Prompt - combines code, security, and product owner perspectives
275
+ * into a single collaborative review to eliminate duplicate issues.
276
+ */
277
+ const UNIFIED_REVIEW_PROMPT = `You are a senior engineering team conducting a comprehensive collaborative review.
278
+
279
+ You must evaluate the implementation from THREE perspectives simultaneously, but produce ONE unified set of issues:
280
+
281
+ ## Perspective 1: Code Quality (Senior Developer)
282
+ Evaluate:
283
+ - Code quality and maintainability
284
+ - Following best practices and design patterns
285
+ - Potential bugs or logic errors
286
+ - Test coverage adequacy and test quality
287
+ - Error handling completeness
288
+ - Performance considerations
289
+
290
+ ## Perspective 2: Security (Security Engineer)
291
+ Evaluate:
292
+ - OWASP Top 10 vulnerabilities
293
+ - Input validation and sanitization
294
+ - Authentication and authorization issues
295
+ - Data exposure risks
296
+ - Command injection vulnerabilities
297
+ - Secure coding practices
298
+
299
+ ## Perspective 3: Requirements (Product Owner)
300
+ Evaluate:
301
+ - Does it meet the acceptance criteria stated in the story?
302
+ - Is the user experience appropriate and intuitive?
303
+ - Are edge cases and error scenarios handled?
304
+ - Is documentation adequate for users and maintainers?
305
+ - Does the implementation align with the story goals?
306
+
307
+ ## CRITICAL DEDUPLICATION INSTRUCTIONS:
308
+
309
+ 1. **DO NOT repeat the same underlying issue from different perspectives**
310
+ - If multiple perspectives notice the same problem, list it ONCE
311
+ - Use the \`perspectives\` array to indicate which perspectives it affects
312
+
313
+ 2. **Prioritize by actual impact, not by how many perspectives notice it**
314
+ - A issue seen by all 3 perspectives is still just ONE issue
315
+ - Focus on the distinct, actionable problems that need fixing
316
+
317
+ 3. **If the fundamental problem is "no implementation exists" or "functionality completely missing":**
318
+ - Report this as ONE blocker issue, not three separate issues
319
+ - Use perspectives: ["code", "security", "po"] to show all perspectives agree
320
+
321
+ 4. **Combine related issues into single, comprehensive descriptions:**
322
+ - Instead of: "No tests" (code) + "Untested security" (security) + "No validation tests" (po)
323
+ - Write: "No tests exist for the implementation" with perspectives: ["code", "security", "po"]
324
+
325
+ 5. **Each issue should have a clear, single suggested fix**
326
+ - Avoid vague suggestions like "improve everything"
327
+ - Be specific and actionable
328
+
329
+ ${REVIEW_OUTPUT_FORMAT}
330
+
331
+ Remember: Your goal is to produce a clean, deduplicated list of actual distinct problems, not to maximize issue count.`;
332
+ /**
333
+ * Legacy prompts - kept for reference only
334
+ * @deprecated These are replaced by UNIFIED_REVIEW_PROMPT which combines all three perspectives.
335
+ * The unified prompt reduces LLM calls from 3 to 1 and eliminates duplicate issues.
336
+ */
269
337
  const CODE_REVIEW_PROMPT = `You are a senior code reviewer. Review the implementation for:
270
338
  1. Code quality and maintainability
271
339
  2. Following best practices
@@ -273,6 +341,9 @@ const CODE_REVIEW_PROMPT = `You are a senior code reviewer. Review the implement
273
341
  4. Test coverage adequacy
274
342
 
275
343
  ${REVIEW_OUTPUT_FORMAT}`;
344
+ /**
345
+ * @deprecated Use UNIFIED_REVIEW_PROMPT instead
346
+ */
276
347
  const SECURITY_REVIEW_PROMPT = `You are a security specialist. Review the implementation for:
277
348
  1. OWASP Top 10 vulnerabilities
278
349
  2. Input validation issues
@@ -280,6 +351,9 @@ const SECURITY_REVIEW_PROMPT = `You are a security specialist. Review the implem
280
351
  4. Data exposure risks
281
352
 
282
353
  ${REVIEW_OUTPUT_FORMAT}`;
354
+ /**
355
+ * @deprecated Use UNIFIED_REVIEW_PROMPT instead
356
+ */
283
357
  const PO_REVIEW_PROMPT = `You are a product owner validating the implementation. Check:
284
358
  1. Does it meet the acceptance criteria?
285
359
  2. Is the user experience appropriate?
@@ -317,6 +391,7 @@ function parseReviewResponse(response, reviewType) {
317
391
  file: issue.file,
318
392
  line: issue.line,
319
393
  suggestedFix: issue.suggestedFix,
394
+ perspectives: issue.perspectives,
320
395
  }));
321
396
  return {
322
397
  passed: validated.passed !== false && issues.filter(i => i.severity === 'blocker' || i.severity === 'critical').length === 0,
@@ -384,8 +459,35 @@ function determineReviewSeverity(issues) {
384
459
  return ReviewSeverity.LOW;
385
460
  }
386
461
  }
462
+ /**
463
+ * Derive individual perspective pass/fail status from issues
464
+ *
465
+ * For backward compatibility with ReviewAttempt structure, determines whether
466
+ * each perspective (code, security, po) would pass based on issues flagged
467
+ * for that perspective.
468
+ *
469
+ * A perspective fails if it has any blocker or critical issues.
470
+ *
471
+ * @param issues - Array of review issues with perspectives field
472
+ * @returns Object with pass/fail status for each perspective
473
+ */
474
+ export function deriveIndividualPassFailFromPerspectives(issues) {
475
+ // Check if any blocker/critical issues exist for each perspective
476
+ const codeIssues = issues.filter(i => i.perspectives?.includes('code') &&
477
+ (i.severity === 'blocker' || i.severity === 'critical'));
478
+ const securityIssues = issues.filter(i => i.perspectives?.includes('security') &&
479
+ (i.severity === 'blocker' || i.severity === 'critical'));
480
+ const poIssues = issues.filter(i => i.perspectives?.includes('po') &&
481
+ (i.severity === 'blocker' || i.severity === 'critical'));
482
+ return {
483
+ codeReviewPassed: codeIssues.length === 0,
484
+ securityReviewPassed: securityIssues.length === 0,
485
+ poReviewPassed: poIssues.length === 0,
486
+ };
487
+ }
387
488
  /**
388
489
  * Aggregate issues from multiple reviews and determine overall pass/fail
490
+ * @deprecated No longer used with unified review. Kept for reference only.
389
491
  */
390
492
  function aggregateReviews(codeResult, securityResult, poResult) {
391
493
  const allIssues = [...codeResult.issues, ...securityResult.issues, ...poResult.issues];
@@ -400,6 +502,7 @@ function aggregateReviews(codeResult, securityResult, poResult) {
400
502
  }
401
503
  /**
402
504
  * Format issues for display in review notes
505
+ * Shows perspectives (code, security, po) when available
403
506
  */
404
507
  function formatIssuesForDisplay(issues) {
405
508
  if (issues.length === 0) {
@@ -418,7 +521,11 @@ function formatIssuesForDisplay(issues) {
418
521
  const icon = severity === 'blocker' ? '🛑' : severity === 'critical' ? '⚠️' : severity === 'major' ? '📋' : 'ℹ️';
419
522
  output += `\n#### ${icon} ${severity.toUpperCase()} (${issueList.length})\n\n`;
420
523
  for (const issue of issueList) {
421
- output += `**${issue.category}**: ${issue.description}\n`;
524
+ // Format perspectives indicator if present
525
+ const perspectivesTag = issue.perspectives && issue.perspectives.length > 0
526
+ ? ` [${issue.perspectives.join(', ')}]`
527
+ : '';
528
+ output += `**${issue.category}**${perspectivesTag}: ${issue.description}\n`;
422
529
  if (issue.file) {
423
530
  output += ` - File: \`${issue.file}\`${issue.line ? `:${issue.line}` : ''}\n`;
424
531
  }
@@ -430,6 +537,41 @@ function formatIssuesForDisplay(issues) {
430
537
  }
431
538
  return output;
432
539
  }
540
+ /**
541
+ * Get source code changes from git diff
542
+ *
543
+ * Returns list of source files that have been modified (excludes tests and story files).
544
+ * Uses spawnSync for security (prevents command injection).
545
+ *
546
+ * @param workingDir - Working directory to run git diff in
547
+ * @returns Array of source file paths that have changed, or ['unknown'] if git fails
548
+ */
549
+ export function getSourceCodeChanges(workingDir) {
550
+ try {
551
+ // Security: Use spawnSync with explicit args (not shell) to prevent injection
552
+ const result = spawnSync('git', ['diff', '--name-only', 'HEAD~1'], {
553
+ cwd: workingDir,
554
+ encoding: 'utf-8',
555
+ stdio: ['ignore', 'pipe', 'pipe'],
556
+ });
557
+ if (result.status !== 0) {
558
+ // Git command failed - fail open (assume changes exist)
559
+ return ['unknown'];
560
+ }
561
+ const output = result.stdout.toString();
562
+ return output
563
+ .split('\n')
564
+ .filter(f => f.trim())
565
+ .filter(f => /\.(ts|tsx|js|jsx)$/.test(f)) // Source files only
566
+ .filter(f => !f.includes('.test.')) // Exclude test files
567
+ .filter(f => !f.includes('.spec.')) // Exclude spec files
568
+ .filter(f => !f.startsWith('.ai-sdlc/')); // Exclude story files
569
+ }
570
+ catch {
571
+ // If git diff fails, assume there are changes (fail open, not closed)
572
+ return ['unknown'];
573
+ }
574
+ }
433
575
  /**
434
576
  * Generate executive summary from review issues (1-3 sentences)
435
577
  *
@@ -586,6 +728,67 @@ export async function runReviewAgent(storyPath, sdlcRoot, options) {
586
728
  feedback: errorMsg,
587
729
  };
588
730
  }
731
+ // PRE-CHECK GATE: Detect documentation-only implementations before running expensive LLM reviews
732
+ const sourceChanges = getSourceCodeChanges(workingDir);
733
+ if (sourceChanges.length === 0) {
734
+ // No source code changes detected - check if we can recover
735
+ const retryCount = story.frontmatter.implementation_retry_count || 0;
736
+ const maxRetries = getEffectiveMaxImplementationRetries(story, config);
737
+ if (retryCount < maxRetries) {
738
+ // RECOVERABLE: Trigger implementation recovery
739
+ logger.warn('review', 'No source code changes detected - triggering implementation recovery', {
740
+ storyId: story.frontmatter.id,
741
+ retryCount,
742
+ maxRetries,
743
+ });
744
+ await updateStoryField(story, 'implementation_complete', false);
745
+ await updateStoryField(story, 'last_restart_reason', 'No source code changes detected. Implementation wrote documentation only.');
746
+ return {
747
+ success: true,
748
+ story: parseStory(storyPath),
749
+ changesMade: ['Detected documentation-only implementation', 'Triggered implementation recovery'],
750
+ passed: false,
751
+ decision: ReviewDecision.RECOVERY,
752
+ reviewType: 'pre-check',
753
+ issues: [{
754
+ severity: 'critical',
755
+ category: 'implementation',
756
+ description: 'No source code modifications detected. Re-running implementation phase.',
757
+ }],
758
+ feedback: 'Implementation recovery triggered - no source changes found.',
759
+ };
760
+ }
761
+ else {
762
+ // NON-RECOVERABLE: Max retries reached
763
+ const maxRetriesDisplay = Number.isFinite(maxRetries) ? maxRetries : '∞';
764
+ logger.error('review', 'No source code changes detected and max implementation retries reached', {
765
+ storyId: story.frontmatter.id,
766
+ retryCount,
767
+ maxRetries,
768
+ });
769
+ return {
770
+ success: true,
771
+ story: parseStory(storyPath),
772
+ changesMade: ['Detected documentation-only implementation', 'Max retries reached'],
773
+ passed: false,
774
+ decision: ReviewDecision.FAILED,
775
+ severity: ReviewSeverity.CRITICAL,
776
+ reviewType: 'pre-check',
777
+ issues: [{
778
+ severity: 'blocker',
779
+ category: 'implementation',
780
+ description: `Implementation phase wrote documentation/planning only - no source code was modified. This has occurred ${retryCount} time(s) (max: ${maxRetriesDisplay}). Manual intervention required.`,
781
+ suggestedFix: 'Review the story requirements and implementation plan. The agent may be confused about what needs to be built. Consider simplifying the story or providing more explicit guidance.',
782
+ }],
783
+ feedback: 'Implementation failed to produce code changes after multiple attempts.',
784
+ };
785
+ }
786
+ }
787
+ // Source changes exist - proceed with normal review flow
788
+ logger.info('review', 'Source code changes detected - proceeding with verification', {
789
+ storyId: story.frontmatter.id,
790
+ fileCount: sourceChanges.length,
791
+ });
589
792
  // Run build and tests BEFORE reviews (async with progress)
590
793
  changesMade.push('Running build and test verification...');
591
794
  const verification = await runVerificationAsync(workingDir, config, options?.onVerificationProgress);
@@ -653,60 +856,82 @@ export async function runReviewAgent(storyPath, sdlcRoot, options) {
653
856
  feedback: formatIssuesForDisplay(verificationIssues),
654
857
  };
655
858
  }
656
- // Verification passed - proceed with all reviews in parallel, passing verification context
657
- changesMade.push('Verification passed - proceeding with code/security/PO reviews');
658
- const [codeReview, securityReview, poReview] = await Promise.all([
659
- runSubReview(story, CODE_REVIEW_PROMPT, 'Code Review', workingDir, verificationContext),
660
- runSubReview(story, SECURITY_REVIEW_PROMPT, 'Security Review', workingDir, verificationContext),
661
- runSubReview(story, PO_REVIEW_PROMPT, 'Product Owner Review', workingDir, verificationContext),
662
- ]);
663
- // Parse each review response into structured issues
664
- const codeResult = parseReviewResponse(codeReview, 'Code Review');
665
- const securityResult = parseReviewResponse(securityReview, 'Security Review');
666
- const poResult = parseReviewResponse(poReview, 'Product Owner Review');
859
+ // Verification passed - proceed with unified collaborative review
860
+ changesMade.push('Verification passed - proceeding with unified collaborative review');
861
+ // Run test pattern detection if enabled
862
+ let testPatternIssues = [];
863
+ if (config.reviewConfig.detectTestAntipatterns !== false) {
864
+ try {
865
+ changesMade.push('Running test anti-pattern detection...');
866
+ testPatternIssues = await detectTestDuplicationPatterns(workingDir);
867
+ if (testPatternIssues.length > 0) {
868
+ changesMade.push(`Detected ${testPatternIssues.length} test anti-pattern(s)`);
869
+ }
870
+ else {
871
+ changesMade.push('No test anti-patterns detected');
872
+ }
873
+ }
874
+ catch (error) {
875
+ // Don't fail review if detection errors - just log and continue
876
+ const errorMsg = error instanceof Error ? error.message : String(error);
877
+ changesMade.push(`Test pattern detection error: ${errorMsg}`);
878
+ }
879
+ }
880
+ const unifiedReviewResponse = await runSubReview(story, UNIFIED_REVIEW_PROMPT, 'Unified Collaborative Review', workingDir, verificationContext);
881
+ // Parse unified review response into structured issues
882
+ const unifiedResult = parseReviewResponse(unifiedReviewResponse, 'Unified Review');
667
883
  // TDD Validation: Check TDD cycle completeness if TDD was enabled for this story
668
884
  const tddEnabled = story.frontmatter.tdd_enabled ?? config.tdd?.enabled ?? false;
669
885
  if (tddEnabled && story.frontmatter.tdd_test_history?.length) {
670
886
  const tddViolations = validateTDDCycles(story.frontmatter.tdd_test_history);
671
887
  if (tddViolations.length > 0) {
672
888
  const tddIssues = generateTDDIssues(tddViolations);
673
- codeResult.issues.push(...tddIssues);
674
- codeResult.passed = false;
889
+ unifiedResult.issues.push(...tddIssues);
890
+ unifiedResult.passed = false;
675
891
  changesMade.push(`TDD validation: ${tddViolations.length} violation(s) detected`);
676
892
  }
677
893
  else {
678
894
  changesMade.push('TDD validation: All cycles completed correctly');
679
895
  }
680
896
  }
681
- // Add verification issues to code result (they're code-quality related)
682
- codeResult.issues.unshift(...verificationIssues);
897
+ // Add test pattern issues to unified result (they're code-quality related)
898
+ if (testPatternIssues.length > 0) {
899
+ unifiedResult.issues.push(...testPatternIssues);
900
+ unifiedResult.passed = false;
901
+ }
902
+ // Add verification issues to unified result (they're code-quality related)
903
+ unifiedResult.issues.unshift(...verificationIssues);
683
904
  if (verificationIssues.length > 0) {
684
- codeResult.passed = false;
905
+ unifiedResult.passed = false;
685
906
  }
686
- // Aggregate all issues and determine overall pass/fail
687
- const { passed, allIssues, severity } = aggregateReviews(codeResult, securityResult, poResult);
688
- // Compile review notes with structured format
907
+ // Determine overall pass/fail from unified review
908
+ const allIssues = unifiedResult.issues;
909
+ const blockerCount = allIssues.filter(i => i.severity === 'blocker').length;
910
+ const criticalCount = allIssues.filter(i => i.severity === 'critical').length;
911
+ const passed = blockerCount === 0 && criticalCount < 2;
912
+ const severity = determineReviewSeverity(allIssues);
913
+ // Derive individual perspective pass/fail for backward compatibility
914
+ const { codeReviewPassed, securityReviewPassed, poReviewPassed } = deriveIndividualPassFailFromPerspectives(allIssues);
915
+ // Compile review notes with structured format for unified review
689
916
  const reviewNotes = `
690
- ### Code Review
691
- ${formatIssuesForDisplay(codeResult.issues)}
917
+ ### Unified Collaborative Review
692
918
 
693
- ### Security Review
694
- ${formatIssuesForDisplay(securityResult.issues)}
919
+ ${formatIssuesForDisplay(allIssues)}
695
920
 
696
- ### Product Owner Review
697
- ${formatIssuesForDisplay(poResult.issues)}
921
+ ### Perspective Summary
922
+ - Code Quality: ${codeReviewPassed ? '✅ Passed' : '❌ Failed'}
923
+ - Security: ${securityReviewPassed ? '✅ Passed' : '❌ Failed'}
924
+ - Requirements (PO): ${poReviewPassed ? '✅ Passed' : '❌ Failed'}
698
925
 
699
926
  ### Overall Result
700
927
  ${passed ? '✅ **PASSED** - All reviews approved' : '❌ **FAILED** - Issues must be addressed'}
701
928
 
702
929
  ---
703
- *Reviews completed: ${new Date().toISOString().split('T')[0]}*
930
+ *Review completed: ${new Date().toISOString().split('T')[0]}*
704
931
  `;
705
932
  // Append reviews to story
706
933
  await appendToSection(story, 'Review Notes', reviewNotes);
707
- changesMade.push('Added code review notes');
708
- changesMade.push('Added security review notes');
709
- changesMade.push('Added product owner review notes');
934
+ changesMade.push('Added unified collaborative review notes');
710
935
  // Determine decision
711
936
  const decision = passed ? ReviewDecision.APPROVED : ReviewDecision.REJECTED;
712
937
  // Create review attempt record (omit undefined fields to avoid YAML serialization errors)
@@ -716,9 +941,9 @@ ${passed ? '✅ **PASSED** - All reviews approved' : '❌ **FAILED** - Issues mu
716
941
  ...(passed ? {} : { severity }),
717
942
  feedback: passed ? 'All reviews passed' : formatIssuesForDisplay(allIssues),
718
943
  blockers: allIssues.filter(i => i.severity === 'blocker').map(i => i.description),
719
- codeReviewPassed: codeResult.passed,
720
- securityReviewPassed: securityResult.passed,
721
- poReviewPassed: poResult.passed,
944
+ codeReviewPassed,
945
+ securityReviewPassed,
946
+ poReviewPassed,
722
947
  };
723
948
  // Append to review history
724
949
  await appendReviewHistory(story, reviewAttempt);
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/agents/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/agents/review.ts"],"names":[],"mappings":"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"}