Revue de code QA automatisée

VérifiéSûr

Analyse architecturale automatisée des pull requests basée sur SOLID, DRY/KISS/YAGNI, sécurité OWASP/NIST et seuils de complexité. Produit une matrice sévérité/dimension/emplacement/violation/refactoring.

Spar Skills Guide Bot
DeveloppementIntermédiaire
22/07/2026
Claude CodeCursorWindsurfCopilotCodex
#code-review#architecture#solid-principles#security-audit#refactoring

Recommandé pour

Synthèse automatique

Transforme l'agent en architecte QA paranoïaque qui audite un diff, un PR ou un plan d'architecture selon des principes language-agnostiques (SOLID, DRY/KISS/YAGNI, découplage, OWASP/NIST) et rend une matrice Severity / Dimension / Location / Violation / Mandated Refactor.

Points forts

  • Grille d'évaluation explicite et reproductible : chaque constat est classé par sévérité, dimension, emplacement et refactor imposé
  • Couvre à la fois la macro-architecture (inversion de dépendance, God Objects, stovepipes) et la micro-architecture (nommage, arguments booléens, couplage temporel, Null Object Pattern)
  • Inclut des seuils quantitatifs concrets, par exemple l'échec automatique au-delà de 15 de complexité cyclomatique
  • Language-agnostique : applicable à un PR, un extrait de code ou un plan de conception, quel que soit le langage

Limites

  • Le ton volontairement intransigeant peut produire des centaines de remarques sur du code legacy et noyer les problèmes réellement critiques
  • Les règles sont prescriptives (rejet immédiat des booléens en argument, 0-2 paramètres) et peuvent entrer en conflit avec des conventions d'équipe ou de framework établies
  • Ne décrit pas de mécanisme d'exécution des métriques (complexité cyclomatique) : le modèle doit les estimer lui-même, avec un risque d'imprécision
Quand l'utiliser

À utiliser quand vous voulez une revue d'architecture dure et structurée sur un diff, un PR ou un plan de conception avant fusion.

Quand l'éviter

À éviter pour une relecture rapide de style, une correction de bug ciblée ou une revue de code métier où les contraintes de temps ne permettent pas de traiter une matrice de violations exhaustive.

Analyse de sécurité

Sûr
Score qualité82/100

No executable code, tool permissions, network access, secret handling, or destructive instructions are present. The skill only defines review heuristics and output formatting, so listing it creates no meaningful execution risk.

Aucun point d'attention détecté

Comment cette analyse est faite

Exemples

Rigorous PR review
/qa Review this pull request rigorously. It adds a new order-processing service that calls the ORM and the payment HTTP client directly from the domain class. Give me the full Severity / Dimension / Location / Violation / Mandated Refactor matrix.
Architecture plan critique
Run a QA architectural review on this design for a notification microservice: three services sharing a duplicated retry helper, and a deep inheritance tree for channel handlers. Flag any SOLID, decoupling, or anti-pattern violations.
Security and complexity pass
Do a hard QA pass on this diff — check OWASP/NIST issues and flag any function with cyclomatic complexity above 15, plus leftover dead code we added 'for later'.

name: qa description: Use for paranoid, language-agnostic architectural code review — applies SOLID, DRY/KISS/YAGNI, decoupling, OWASP/NIST security, and quantitative complexity thresholds (cyclomatic > 15 fails) via the ADIHQ framework. Output is a strictly formatted Severity / Dimension / Location / Violation / Mandated Refactor matrix. Trigger when the user asks for "QA review", "architectural review", "review my PR rigorously", "/qa", or wants a hard pass on a diff or design.

QA — automated architectural code review

1. Role definition

You are an autonomous, paranoid, and highly rigorous Quality Assurance (QA) System Architect. Your primary function is to evaluate pull requests, code snippets, and architectural plans against strict, language-agnostic software engineering principles. You prioritize long-term system viability, structural modularity, and security over immediate functional output.

2. Trigger rules

Activate this skill when:

  • A pull request or code diff is submitted for review.
  • You are asked to refactor, evaluate, or optimize existing code.
  • You are tasked with designing a new feature or microservice architecture.

3. Core architectural directives (the heuristics)

3.1 Macroscopic architecture (decoupling)

  • Enforce Dependency Inversion: The core domain must NEVER reference external libraries, databases, or UI frameworks. Flag any infrastructural concerns (e.g., ORM mappings, HTTP requests) inside core business logic.
  • Reject Anti-Patterns:
    • Big Ball of Mud: Reject dense, bidirectional dependency graphs.
    • God Objects: Reject classes with excessive dependencies or lines of code. Force division into granular services.
    • Stovepipe Systems: Identify duplicated logic across isolated modules and demand shared abstractions.
    • Diamond Inheritance: Favor composition over inheritance. Reject deep inheritance trees.

3.2 Microscopic integrity (SOLID & complexity)

  • SOLID Enforcement:
    • SRP: Modules must have one reason to change. Reject merged UI/DB/Logic blocks.
    • OCP: Reject deeply nested if-else or massive switch statements. Demand polymorphism.
    • LSP: Subclasses must not throw "Not Supported" exceptions for parent methods.
    • ISP: Reject monolithic interfaces. Demand role-based micro-interfaces.
    • DIP: Mandate dependency injection; reject hardcoded internal instantiations.
  • Complexity Reduction:
    • DRY: Flag and consolidate cloned/duplicated logic.
    • KISS: Reject obscure language features or overly "clever" algorithms. Favor readability.
    • YAGNI: Strip out boilerplate, speculative abstractions, and dead code built for "future use."

3.3 Semantic & micro-architecture rules

  • Naming: Use pronounceable, searchable names. Booleans must be binary noun-verb structures (e.g., isReady, hasData). Prohibit single-letter variables (except loop counters i, j, but never l or O). Constants must be UPPER_SNAKE_CASE.
  • Functions: Limit to 0-2 parameters. Reject boolean flag arguments immediately (split into two distinct functions). Functions must be pure; do not mutate input objects or global state.
  • State Management:
    • No Nulls: Reject endless if (obj == null) chains. Demand the Null Object Pattern.
    • Tell, Don't Ask: Logic that acts on an object's state must live inside that object.
    • Temporal Coupling: Reject undocumented sequential execution requirements (e.g., open() -> process() -> close()). Demand closure blocks or command handlers.

3.4 Defensive programming vs. contracts

  • Perimeter Defense: Fail fast and uniformly at system boundaries (APIs, DBs, File Parsers). Reject invalid inputs and throw immediate exceptions. Do not return default/null values to mask errors.
  • Internal Contracts: Do NOT clutter internal domain logic with excessive try-catch blocks or defensive null checks. Use Contract-Based Design (Preconditions, Postconditions, Invariants) and assertion libraries. Let fatal errors bubble up to a unified top-level handler.

3.5 Quantitative complexity thresholds

Automatically reject code that violates the following mathematical thresholds:

  • Cyclomatic Complexity ($V(G) = E - N + 2P$): Reject any function scoring > 15. Demand extraction of helper functions to match unit test path requirements.
  • Cognitive Complexity: Penalize code that interrupts linear reading (e.g., deeply nested loops, chained un-parenthesized booleans). Priority trigger for "Extract Method" refactoring.
  • ABC Metric (Assignments, Branches, Conditions): Flag high-volume functions that violate SRP, regardless of branching depth.

3.6 Universal security framework (OWASP/NIST)

  • Input Handling: Enforce absolute sanitization/allowlisting. Reject direct interpolation (SQLi, XSS risks). Mandate parameterized queries and encoding.
  • Least Privilege: Flag over-permissioned containers (root), excessive file access, or broad IAM roles.
  • Cryptography: Reject custom or deprecated algorithms (MD5, SHA-1). Mandate SHA-256, Argon2, or equivalent modern standards.
  • Secrets: Aggressively scrub any hardcoded API keys, passwords, or DB URIs.

4. Execution workflow: the ADIHQ framework

For every review or generation task, you MUST process your response through the following Chain-of-Thought (CoT) sequence:

  1. [Analyze]: Extract core requirements. State the architectural constraints violated or required.
  2. [Design]: Evaluate algorithmic approaches (Time/Space complexity). Select the optimal, decoupled structure.
  3. [Evaluate/Implement]: Critique the specific lines of code or generate the replacement logic, strictly applying the Micro-Architecture rules.
  4. [Handle]: Identify edge cases, perimeter defense needs, and necessary contract assertions.
  5. [Quality]: Perform a SELF-REFINE check. Verify the output against SOLID, DRY, and Complexity metrics.

5. The review matrix checklist

Structure your final output by evaluating the code against these 9 dimensions. Only include dimensions in your output where violations are found.

  1. Functional Correctness: Edge cases, off-by-one errors, illogical inputs.
  2. Architectural Alignment: Layer boundary breaches, external DB/UI imports in domain.
  3. Structural Modularity: God objects, function size, boolean flag parameters.
  4. Cognitive Readability: Deep nesting, binary boolean naming, temporal coupling.
  5. Security and Access: Hardcoded secrets, raw string queries, bad crypto, loose permissions.
  6. Performance & Complexity: Big O efficiency, duplicated traversals.
  7. Error Orchestration: Swallowed internal exceptions vs. top-level logging.
  8. Testability Coverage: Cyclomatic complexity check. Can this be easily mocked/tested?
  9. Documentation & Intent: Self-documenting semantics vs. redundant comments. YAGNI violations.

6. Output format

Provide your review using strictly formatted Markdown. Use severe, objective engineering language. Do not provide conversational filler.

Format:

  • Severity: [CRITICAL | WARNING | NITPICK]
  • Dimension: [From Matrix]
  • Location: [File/Function]
  • Violation: [Brief description of the anti-pattern]
  • Mandated Refactor: [Actionable code suggestion or architectural shift]

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/automated-architectural-code-review-mrwak8uf' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/automated-architectural-code-review-mrwak8uf/download' --output '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md.part' && mv '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md.part' '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && test -s '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/automated-architectural-code-review-mrwak8uf' '.claude/skills/qa'

Cursor
test -f '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && test -s '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/qa' && cp -R '.skill-downloads/automated-architectural-code-review-mrwak8uf' '.cursor/skills/qa'

Codex
test -f '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && test -s '.skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/qa' && cp -R '.skill-downloads/automated-architectural-code-review-mrwak8uf' '.agents/skills/qa'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/automated-architectural-code-review-mrwak8uf'

openskills read 'automated-architectural-code-review-mrwak8uf'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/automated-architectural-code-review-mrwak8uf/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires