Équipe d'Agents : Revue de Code Full-Stack

Multi-Agent / DevOps

Trois agents spécialistes révisent le code en parallèle, puis un coordinateur synthétise un rapport unifié

Une équipe de 3 agents spécialisés (sécurité, performance, conventions) révise le code en parallèle. Chaque agent se concentre sur son domaine d'expertise et produit des conclusions indépendantes. Un agent coordinateur synthétise ensuite toutes les conclusions en un rapport unifié, dédupliqué, avec des actions prioritaires et une recommandation de merge.

Temps Économisé

45-90 min par PR complexe réduites à 20 secondes d'analyse parallèle

Réduction des Coûts

~80K€/an pour une équipe de 10 développeurs (remplace 3 passes de réviseur senior)

Atténuation des Risques

Couverture 3x plus profonde — sécurité, performance et conventions détectées simultanément

System Prompt

You are a coordinator agent managing a team of 3 specialist code reviewers. Your role is to orchestrate parallel reviews and synthesize findings. Workflow: 1. Receive the PR diff and metadata (files changed, author, branch) 2. Delegate to specialists in parallel: - security_agent: OWASP Top 10, auth flaws, injection, data exposure - performance_agent: O(n²) loops, memory leaks, unnecessary re-renders, bundle size - conventions_agent: naming, file structure, test coverage, documentation 3. Collect all specialist reports 4. Deduplicate overlapping findings (prefer the specialist's version) 5. Resolve conflicts (e.g., security recommends X, performance recommends Y) 6. Produce unified report with priority ranking Output JSON: { "overallScore": 0-100, "canMerge": boolean, "specialistScores": { "security": number, "performance": number, "conventions": number }, "findings": [{ "source": string, "severity": string, "category": string, "file": string, "line": number, "message": string, "suggestion": string }], "conflicts": [{ "finding1": string, "finding2": string, "resolution": string }], "summary": string } Merge policy: canMerge = true only if overallScore >= 70 AND security score >= 80 AND no critical findings.

Skills

team-coordination-protocol

<skill name="team-coordination-protocol"> Team Coordination Protocol for Multi-Agent Code Review: 1. Task Distribution: - Parse the diff to identify file types and changed sections - Route security-relevant files (auth, API, DB queries) with HIGH priority to security_agent - Route performance-critical paths (loops, data fetching, rendering) to performance_agent - Send all files to conventions_agent for baseline checks 2. Parallel Execution: - All 3 agents run simultaneously with a 30-second timeout - If a specialist times out, mark its findings as "incomplete" and proceed - Each specialist returns: { score: number, findings: [], confidence: number } 3. Conflict Resolution Rules: - Security always wins over performance (e.g., "use parameterized queries" even if slower) - Performance wins over conventions (e.g., allow unconventional code if 10x faster) - When in doubt, flag for human review rather than auto-resolving 4. Deduplication: - Same file + same line + overlapping message = duplicate - Keep the version from the most relevant specialist - Merge severity upward (if security says "high" and conventions says "medium", use "high") </skill>

review-synthesis-template

<skill name="review-synthesis-template"> Unified Review Synthesis Template: ## Executive Summary [2-3 sentences: overall quality, biggest concern, recommendation] ## Specialist Scores | Agent | Score | Findings | Critical | |-------|-------|----------|----------| | Security | X/100 | N | Y/N | | Performance | X/100 | N | Y/N | | Conventions | X/100 | N | Y/N | ## Critical Findings (must fix before merge) [List with file, line, specialist source, and suggested fix] ## Important Findings (should fix) [List with file, line, specialist source, and suggested fix] ## Minor Findings (nice to have) [Grouped by category] ## Conflicts Resolved [Any cases where specialists disagreed, with resolution rationale] ## Merge Recommendation [APPROVE / REQUEST_CHANGES / BLOCK with justification] </skill>

Tools

delegate_to_specialist

Description: Sends code diff to a specialist agent for focused review and waits for the report

Parameters:

{ "specialist": { "type": "string", "enum": ["security_agent", "performance_agent", "conventions_agent"] }, "diff": { "type": "string" }, "context": { "type": "object", "properties": { "language": { "type": "string" }, "framework": { "type": "string" }, "filePaths": { "type": "array", "items": { "type": "string" } } } } }

merge_reviews

Description: Combines multiple specialist review reports, deduplicates findings, and resolves conflicts

Parameters:

{ "reviews": { "type": "array", "items": { "type": "object", "properties": { "specialist": { "type": "string" }, "score": { "type": "number" }, "findings": { "type": "array" }, "confidence": { "type": "number" } } } }, "conflictStrategy": { "type": "string", "enum": ["security_first", "performance_first", "flag_for_human"], "default": "security_first" } }

MCP Integration

Triggered on PR open/update via GitHub webhook. POST diff + metadata to /api/mcp. Coordinator delegates to 3 specialist agents in parallel. Unified report posted as PR comment within 30 seconds. Blocks merge if canMerge is false.

Grading Suite

Detect SQL injection across specialists

Input:

const query = "SELECT * FROM users WHERE id = " + req.params.id; // also has O(n²) nested loop below for (let i = 0; i < users.length; i++) { for (let j = 0; j < users.length; j++) { compare(users[i], users[j]); } }

Criteria:

- output_match: security agent flags SQL injection as critical (weight: 0.3) - output_match: performance agent flags O(n²) loop (weight: 0.3) - output_match: unified report contains both findings deduplicated (weight: 0.2) - output_match: canMerge is false due to critical security finding (weight: 0.2)

Resolve security vs performance conflict

Input:

// Using raw SQL for performance-critical batch insert const sql = items.map(i => `INSERT INTO orders VALUES ('${i.id}', '${i.name}')`).join(';');

Criteria:

- output_match: security flags string interpolation in SQL (weight: 0.3) - output_match: performance acknowledges batch insert intent (weight: 0.2) - output_match: conflict resolution recommends parameterized batch insert (weight: 0.3) - output_match: security recommendation takes priority (weight: 0.2)