Skip to content

Verify

Visual verification, Figma comparison, style capture, and report generation.

9 modules

ModuleDescription
Annoter la Capture d'écranDessinez des boîtes de délimitation étiquetées sur les captures d'écran pour marquer les différences
Capturer les styles de l'élémentCapturer les styles calculés à partir d'un élément du navigateur
Comparer les stylesComparer les styles capturés avec les valeurs attendues
Récupérer le style FigmaRécupérer les tokens de design depuis l'API Figma (le token reste local)
Générer le rapportGénérer un rapport de vérification en HTML/JSON/Markdown
Charger le jeu de règlesCharger les règles de vérification depuis un fichier YAML
Exécuter la vérificationExécuter la vérification complète du design : capture → comparaison → rapport
Exécuter la vérification des spécificationsVérification dynamique des spécifications - composer n'importe quel module via YAML
Différence VisuelleComparez visuellement le design de référence avec le site de développement, annotez les différences

Modules

Annoter la Capture d'écran

verify.annotate

Dessinez des boîtes de délimitation étiquetées sur les captures d'écran pour marquer les différences

Parameters:

NameTypeRequiredDefaultDescription
image_pathstringYes-Chemin vers l'image de la capture d'écran
annotationsarrayYes-Tableau d'annotations : [{label, x, y, largeur, hauteur, couleur?, description?}]
output_pathstringNo-Chemin de sortie pour l'image annotée (par défaut : ajoute le suffixe _annotated)

Output:

FieldTypeDescription
output_pathstringChemin vers l'image annotée
annotation_countintegerNombre d'annotations dessinées

Capturer les styles de l'élément

verify.capture

Capturer les styles calculés à partir d'un élément du navigateur

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to capture from
selectorstringYes-CSS selector
wait_forstringNo-Wait for selector before capture
viewport_widthnumberNo1280Viewport width
viewport_heightnumberNo800Viewport height

Output:

FieldTypeDescription
elementobjectCaptured element with styles
foundbooleanWhether element was found

Comparer les styles

verify.compare

Comparer les styles capturés avec les valeurs attendues

Parameters:

NameTypeRequiredDefaultDescription
actualobjectYes-Captured element styles (from verify.capture)
expectedobjectYes-Expected styles to compare against
selectorstringNo-Selector for reporting
size_tolerancenumberNo2.0Tolerance for size (px)
spacing_tolerancenumberNo2.0Tolerance for spacing (px)
font_size_tolerancenumberNo1.0Tolerance for font size (px)
color_tolerancenumberNo5Tolerance for color (0-255)
check_typographybooleanNoTrueCheck typography
check_colorsbooleanNoTrueCheck colors
check_spacingbooleanNoTrueCheck spacing
check_sizingbooleanNoFalseCheck sizing

Output:

FieldTypeDescription
passedbooleanWhether comparison passed
violationsarrayList of violations found
error_countnumberNumber of errors
warning_countnumberNumber of warnings

Récupérer le style Figma

verify.figma

Récupérer les tokens de design depuis l'API Figma (le token reste local)

Parameters:

NameTypeRequiredDefaultDescription
file_idstringYes-Figma file key (from URL)
node_idstringNo-Specific node ID to fetch
node_namestringNo-Find node by name
tokenstringNo-Figma token (or use FIGMA_TOKEN env var)

Output:

FieldTypeDescription
nodeobjectFigma node data
styleobjectExtracted style

Générer le rapport

verify.report

Générer un rapport de vérification en HTML/JSON/Markdown

Parameters:

NameTypeRequiredDefaultDescription
resultsarrayYes-Comparison results from verify.compare
namestringNoverify-reportReport name
urlstringNo-URL that was verified
formatstringNohtmlOutput format (html, json, markdown, all)
output_dirstringNo./verify-reportsOutput directory
screenshotsarrayNo-Screenshot paths to include

Output:

FieldTypeDescription
report_pathstringPath to generated report
summaryobjectSummary statistics

Charger le jeu de règles

verify.ruleset

Charger les règles de vérification depuis un fichier YAML

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to YAML ruleset file

Output:

FieldTypeDescription
rulesetobjectParsed ruleset
rules_countintegerNumber of rules

Exécuter la vérification

verify.run

Exécuter la vérification complète du design : capture → comparaison → rapport

Parameters:

NameTypeRequiredDefaultDescription
urlstringYes-URL to verify
selectorsarrayNo-CSS selectors to verify
ruleset_pathstringNo-Path to YAML ruleset file
expected_stylesobjectNo-Expected styles per selector
figma_file_idstringNo-Figma file ID for comparison
figma_tokenstringNo-Figma token (or FIGMA_TOKEN env)
figma_mappingobjectNo-Selector to Figma node mapping
output_dirstringNo./verify-reportsOutput directory
report_formatstringNohtmlReport format
take_screenshotbooleanNoTrueCapture screenshot
viewport_widthnumberNo1280Viewport width
viewport_heightnumberNo800Viewport height

Output:

FieldTypeDescription
passedbooleanOverall verification passed
summaryobjectSummary statistics
report_pathstringPath to generated report

Example: Example

yaml
url: http://localhost:3000
selectors: ["button[type=\"submit\"]", "input[type=\"email\"]"]

Example: Example

yaml
url: http://localhost:3000
selectors: ["button.primary"]
figma_file_id: abc123xyz
figma_mapping: {"button.primary": "Primary Button"}

Example: Example

yaml
url: http://localhost:3000
ruleset_path: ./design-rules.yaml

Exécuter la vérification des spécifications

verify.spec

Vérification dynamique des spécifications - composer n'importe quel module via YAML

Parameters:

NameTypeRequiredDefaultDescription
ruleset_pathstringNo-Path to YAML ruleset file
rulesetobjectNo-Inline ruleset object

Output:

FieldTypeDescription
passedboolean
summaryobject
resultsarray

Différence Visuelle

verify.visual_diff

Comparez visuellement le design de référence avec le site de développement, annotez les différences

Parameters:

NameTypeRequiredDefaultDescription
reference_urlstringYes-URL ou chemin local de l'image de référence
dev_urlstringYes-URL du site de développement à comparer
output_dirstringNo./verify-reports/visual-diffRépertoire de sortie pour les rapports
focus_areasarrayNo-Zones à focaliser (par ex. ["en-tête", "formulaire de connexion"])
viewport_widthnumberNo1280Largeur de la fenêtre du navigateur
viewport_heightnumberNo800Hauteur de la fenêtre du navigateur
modelstringNogpt-4oModèle de vision à utiliser
api_keystringNo-Clé API OpenAI (ou utilisez la variable d'environnement OPENAI_API_KEY)

Output:

FieldTypeDescription
similarity_scorenumberPourcentage de similarité (0-100)
annotationsarrayListe des différences annotées
annotated_imagestringChemin vers la capture d'écran annotée
report_pathstringChemin vers le rapport HTML
summarystringRésumé des différences

Released under the Apache 2.0 License.