Files
our-claude-skills/custom-skills/16-seo-schema-validator/templates/client-qa-report-template.md
Andrew Yim 4f48ba3c59 feat(seo-schema-validator): back the upgraded SKILL.md with a working 5-layer pipeline
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>
2026-05-27 23:48:51 +09:00

58 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 구조화 데이터 QA 리포트 — {{프로젝트명}}
> 클라이언트 검토용. **원본 JSON이 아니라 결함 리포트를 검토합니다.**
> 이 리포트에 오른 엔트리는 모두 기계 검증(Layer 04)을 통과한 **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}}건으로 검토 대상에서 제외. 수정 후 재검증합니다.
- 이번 검토에서 **사람의 판단이 필요한 것**은 기계가 잡지 못하는 두 가지뿐입니다:
1. 페이지에 맞는 스키마 **타입**이 선택되었는가
2. 표시되는 **문구(설명·이름)**가 사실과 정확히 일치하는가
## 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`*