# CLAUDE.md — seo-schema-generator (Claude Code)

## Canonical entry point

This skill was upgraded to a **two-mode source-to-schema pipeline** (it absorbed and
retired the old template-fill generator). The authoritative directive and run
instructions live in the skill root:

- **`../SKILL.md`** — the two modes, the claims-register pivot, stage gates, how to run.
- **`../scripts/extract_site_claims.py`** — Mode 1: existing site → claims register.
- **`../scripts/build_schema_drafts.py`** — claims register → JSON-LD drafts + dataset CSV.
- **`../scripts/type_templates.json`** — draft templates (edit JSON to add a type).
- **`../references/`** — `site-extraction-methodology.md` (Mode 1), `source-to-schema-methodology.md` (Mode 2), `source-authority-hierarchy.md`, `entity-and-type-map.md`.
- **`../templates/`** — `claims-register.csv`, `source-register.csv`, `review-guide.md`.

```bash
# Try the bundled sample first (Mode 2)
python ../scripts/make_sample.py
python ../scripts/build_schema_drafts.py ../fixtures/sample_claims.csv --out drafts_out

# Mode 1 — existing site → claims register (URLs, or local .html / a directory offline)
python ../scripts/extract_site_claims.py https://example.com/ --out site_claims
python ../scripts/build_schema_drafts.py site_claims/claims_register.csv --out drafts_out

# Hand off to the QA gate (must reach zero P0)
python ../../16-seo-schema-validator/scripts/validate_schema.py \
    drafts_out/schema_drafts_dataset.csv --out qa_out
```

Core rule: **only CONFIRMED, non-conflicting claims become schema.** Unfilled template
slots are pruned — never emitted as `{{…}}` or `TODO`. **Generate (17) → Validate (16).**

## Retired

The previous template-fill tool (`schema_generator.py` + per-type JSON templates) is
superseded by the claims-register engine above and has been removed. Use
`build_schema_drafts.py` for all generation.

## Notion output (OurDigital SEO Audit Log)

When generation is part of an OurDigital/D.intelligence engagement, log a summary to the
SEO Audit Log database. Per the user-level Notion rule, push **page content** with the
`notion-writer` skill; use Notion MCP only for **properties**.

| Field | Value |
|-------|-------|
| Database ID | `2c8581e5-8a1e-8035-880b-e38cefc2f3ef` |
| Category | `Schema/Structured Data` |
| Audit ID | `SCHEMA-YYYYMMDD-NNN` |

Report content in Korean; keep technical terms (Schema, JSON-LD, claims register) and
URLs/code unchanged.
