feat(seo-schema-generator): merge site-extraction + source-to-schema into one skill

Unify the two schema-generation scenarios into a single slot-17 skill, both
feeding one claims register -> build -> validate(16) pipeline:

- Mode 1 (existing site): NEW scripts/extract_site_claims.py turns URLs / local
  HTML / a directory into a claims register. Existing JSON-LD -> CONFIRMED;
  title/OpenGraph -> PENDING (never auto-shipped). + site-extraction-methodology.md
  and bundled fixtures/site/ demo pages.
- Mode 2 (not-yet-published site): land the source-to-schema engine
  (build_schema_drafts.py, type_templates.json, claims/source registers, 3 refs,
  sample_claims.csv) from the Desktop builder.
- Rewrite SKILL.md (v2.0) around the two-mode framing; the claims register is the
  shared pivot. Only CONFIRMED, non-conflicting claims become schema; unfilled
  template slots are pruned, never emitted as placeholders.
- Retire the old template-fill generator (code/ + desktop/); update root CLAUDE.md.

Self-tested both chains end-to-end: Mode 2 sample -> build -> validate PASS (P0=0);
Mode 1 fixtures -> extract -> build -> validate PASS (P0=0), JSON-LD round-trips with
nested address intact. Fixed two adapter bugs (nested node promotion; relative-path URI).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-28 00:38:40 +09:00
parent 3a8edebfef
commit 1706a820fe
39 changed files with 1536 additions and 1599 deletions

View File

@@ -0,0 +1,8 @@
entity_id,entity_type,property,value,lang,url,source_ids,authority,confidence,conflict,status,note
org:example,Organization,@id,https://www.example.com/#org,,,S-OFF,1,high,,CONFIRMED,
org:example,Organization,name,Example Corp,,,S-OFF|S-DART,1,high,,CONFIRMED,
org:example,Organization,url,https://www.example.com/,,,S-OFF,1,high,,CONFIRMED,
org:example,Organization,address.addressLocality,Seoul,,,S-DART,1,high,,CONFIRMED,
org:example,Organization,address.addressCountry,KR,,,S-DART,1,high,,CONFIRMED,
org:example,Organization,sameAs,https://www.wikidata.org/wiki/Q000|https://en.wikipedia.org/wiki/Example,,,S-WD|S-WIKI,2,high,,CONFIRMED,array via pipe
org:example,Organization,foundingDate,1998-01-01,,,S-DART,1,high,Y,PENDING,두 출처 연도 충돌 -> 해소 필요
1 entity_id entity_type property value lang url source_ids authority confidence conflict status note
2 org:example Organization @id https://www.example.com/#org S-OFF 1 high CONFIRMED
3 org:example Organization name Example Corp S-OFF|S-DART 1 high CONFIRMED
4 org:example Organization url https://www.example.com/ S-OFF 1 high CONFIRMED
5 org:example Organization address.addressLocality Seoul S-DART 1 high CONFIRMED
6 org:example Organization address.addressCountry KR S-DART 1 high CONFIRMED
7 org:example Organization sameAs https://www.wikidata.org/wiki/Q000|https://en.wikipedia.org/wiki/Example S-WD|S-WIKI 2 high CONFIRMED array via pipe
8 org:example Organization foundingDate 1998-01-01 S-DART 1 high Y PENDING 두 출처 연도 충돌 -> 해소 필요