Skip to content

Verify

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

9 modules

ModuleDescription
스크린샷 주석 달기스크린샷에 라벨이 있는 경계 상자를 그려 차이점을 표시합니다
요소 스타일 캡처브라우저 요소에서 계산된 스타일 캡처
스타일 비교캡처한 스타일과 예상 값 비교
Figma 스타일 가져오기Figma API에서 디자인 토큰 가져오기 (토큰은 로컬에 유지)
보고서 생성HTML/JSON/Markdown 형식으로 검증 보고서 생성
규칙셋 불러오기YAML 파일에서 검증 규칙 불러오기
검증 실행전체 디자인 검증 실행: 캡처 → 비교 → 보고서
사양 검증 실행동적 사양 검증 - YAML을 통해 모듈 구성
시각적 차이참조 디자인과 개발 사이트를 시각적으로 비교하고 차이점을 주석으로 표시합니다

Modules

스크린샷 주석 달기

verify.annotate

스크린샷에 라벨이 있는 경계 상자를 그려 차이점을 표시합니다

Parameters:

NameTypeRequiredDefaultDescription
image_pathstringYes-스크린샷 이미지 경로
annotationsarrayYes-주석 배열: [{label, x, y, width, height, color?, description?}]
output_pathstringNo-주석이 달린 이미지의 출력 경로 (기본값: _annotated 접미사 추가)

Output:

FieldTypeDescription
output_pathstring주석이 달린 이미지 경로
annotation_countinteger그려진 주석의 수

요소 스타일 캡처

verify.capture

브라우저 요소에서 계산된 스타일 캡처

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

스타일 비교

verify.compare

캡처한 스타일과 예상 값 비교

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

Figma 스타일 가져오기

verify.figma

Figma API에서 디자인 토큰 가져오기 (토큰은 로컬에 유지)

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

보고서 생성

verify.report

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

규칙셋 불러오기

verify.ruleset

YAML 파일에서 검증 규칙 불러오기

Parameters:

NameTypeRequiredDefaultDescription
pathstringYes-Path to YAML ruleset file

Output:

FieldTypeDescription
rulesetobjectParsed ruleset
rules_countintegerNumber of rules

검증 실행

verify.run

전체 디자인 검증 실행: 캡처 → 비교 → 보고서

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

사양 검증 실행

verify.spec

동적 사양 검증 - YAML을 통해 모듈 구성

Parameters:

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

Output:

FieldTypeDescription
passedboolean
summaryobject
resultsarray

시각적 차이

verify.visual_diff

참조 디자인과 개발 사이트를 시각적으로 비교하고 차이점을 주석으로 표시합니다

Parameters:

NameTypeRequiredDefaultDescription
reference_urlstringYes-참조 디자인의 URL 또는 로컬 이미지 경로
dev_urlstringYes-비교할 개발 사이트의 URL
output_dirstringNo./verify-reports/visual-diff보고서의 출력 디렉토리
focus_areasarrayNo-집중할 영역 (예: ["헤더", "로그인 폼"])
viewport_widthnumberNo1280브라우저 뷰포트 너비
viewport_heightnumberNo800브라우저 뷰포트 높이
modelstringNogpt-4o사용할 비전 모델
api_keystringNo-OpenAI API 키 (또는 OPENAI_API_KEY 환경 변수 사용)

Output:

FieldTypeDescription
similarity_scorenumber유사도 백분율 (0-100)
annotationsarray주석이 달린 차이점 목록
annotated_imagestring주석이 달린 스크린샷 경로
report_pathstringHTML 보고서 경로
summarystring차이점 요약

Released under the Apache 2.0 License.