The "Upgrade Schema Validator" commit added SKILL.md referencing files that did not exist. Implement them so the skill actually runs: - scripts/validate_schema.py — 5-layer offline validator (L0 coverage, L1 syntax, L2 vocabulary/value-format, L3 rich-result, L4 consistency) with xlsx/csv/jsonl/ json/dir/live-URL adapters. Gate = zero P0; exits 1 on failure. - scripts/schema_rules.json — curated hotel-focused, offline rule set (edit-only extension point). - scripts/make_sample.py + fixtures/sample_schema.csv — deliberately flawed fixture seeding ≥1 defect per layer; used to self-test. - references/ — validation-methodology, defect-taxonomy (25 codes), hotel-type-map. - templates/ — client-qa-report, decision-log. - code/CLAUDE.md — redirect legacy single-URL tool to the new pipeline. Noise control: MISSING_RECOMMENDED aggregated one-line-per-node; unexpected-property checks opt-in via --strict. Generalized client-specific shilla-type-map → hotel-type-map. Self-tested: default P0=5/P1=4/P2=14 FAIL, --strict --no-recommended P2=0, adapters verified. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.5 KiB
2.5 KiB
구조화 데이터 QA 리포트 — {{프로젝트명}}
클라이언트 검토용. 원본 JSON이 아니라 결함 리포트를 검토합니다. 이 리포트에 오른 엔트리는 모두 기계 검증(Layer 0–4)을 통과한 P0 0건 상태입니다.
| 항목 | 값 |
|---|---|
| 데이터셋 | {{dataset_파일명}} |
| 검증 일시 | {{YYYY-MM-DD HH:MM}} |
| 검증 모드 | A — Dataset QA (배포 전) / B — Live audit (배포 후) |
| 엔트리 수 | {{entries}} (파싱 성공 {{valid_entries}}, 노드 {{nodes}}) |
| 게이트 | {{PASS / FAIL}} (PASS = P0 0건) |
| 결함 | P0 {{n}} · P1 {{n}} · P2 {{n}} |
| Audit ID | SCHEMA-{{YYYYMMDD}}-{{NNN}} |
1. 한눈에 보기
- ✅ 검토 가능 엔트리: P0 0건을 통과한 {{n}}개 — 아래 판단 항목만 확인해 주세요.
- ⛔ 보류 엔트리(있다면): P0 {{n}}건으로 검토 대상에서 제외. 수정 후 재검증합니다.
- 이번 검토에서 사람의 판단이 필요한 것은 기계가 잡지 못하는 두 가지뿐입니다:
- 페이지에 맞는 스키마 타입이 선택되었는가
- 표시되는 **문구(설명·이름)**가 사실과 정확히 일치하는가
2. 결함 요약 (코드별)
| 심각도 | 코드 | 건수 | 의미 |
|---|---|---|---|
| P0 | {{CODE}} | {{n}} | {{한 줄 설명}} |
| P1 | {{CODE}} | {{n}} | {{한 줄 설명}} |
| P2 | {{CODE}} | {{n}} | {{한 줄 설명}} |
코드 정의:
references/defect-taxonomy.md. 전체 목록: 첨부defect_log.csv.
3. P0 블로커 (있을 경우 — 검토 전 수정 필수)
| 엔트리 | 타입 | 코드 | 내용 | 담당 | 상태 |
|---|---|---|---|---|---|
| {{entry_id}} | {{type}} | {{CODE}} | {{message}} | {{owner}} | open |
4. 클라이언트 확인 요청 (판단 항목)
기계가 통과시킨 엔트리 중, 사람의 확인이 필요한 항목입니다.
| # | URL / 페이지 | 확인 요청 | 비고 |
|---|---|---|---|
| 1 | {{url}} | 이 페이지에 {{@type}} 타입이 맞습니까? |
|
| 2 | {{url}} | 설명/이름 문구가 정확합니까? |
5. 다음 단계
- PASS인 경우: 위 4번 판단 항목 확정 → 배포 단계(G4 안정화)로 이동, 샘플을 Google Rich Results Test로 최종 확인.
- FAIL인 경우: P0 담당 배정 → 수정 → 재검증(
validate_schema.py) → 본 리포트 갱신. - P1 처리 방침(수정/수용)은
decision-log.md에 기록합니다.
생성: 16-seo-schema-validator · 첨부: report.md, defect_log.csv, results.json