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
..
2026-05-18 07:11:52 +09:00
2026-04-06 00:33:59 +09:00
2026-04-06 00:33:59 +09:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-04-05 20:32:46 +09:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-01-31 16:50:17 +07:00
2026-03-21 12:52:59 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-05-27 23:48:51 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 12:05:59 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-02-13 02:37:39 +09:00
2026-02-13 02:37:39 +09:00
2026-05-15 11:56:42 +09:00
2026-05-14 03:15:32 +09:00
2026-05-24 22:34:29 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-05-14 03:15:32 +09:00
2026-02-03 16:48:06 +07:00
2026-02-03 16:48:06 +07:00
2026-03-31 03:20:53 +09:00
2026-02-03 16:48:06 +07:00
2026-02-03 16:48:06 +07:00
2026-03-27 20:02:00 +09:00
2026-05-13 15:46:24 +09:00
2026-03-24 20:37:24 +09:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-02-03 19:07:00 +07:00
2026-03-21 02:22:46 +09:00
2026-03-17 21:55:50 +09:00
2026-05-24 22:34:29 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-05-18 07:11:52 +09:00
2026-03-23 19:32:44 +09:00
2026-03-23 19:32:44 +09:00
2026-05-10 23:15:48 +09:00
2026-04-13 01:55:11 +09:00
2026-02-03 16:48:06 +07:00
2026-05-10 23:02:45 +09:00
2026-04-23 21:13:09 +09:00
2026-05-27 23:10:53 +09:00