agentsclimarketplace

Pdp ai readable

Skill passeth/evas-pdp-geo-skills/skills/pdp-ai-readable

EVAS PDP GEO/AEO agent skills for Aside: OpenSEO demand → OCR HTML → Imweb deploy + JSON-LD. Includes vendored OpenSEO skills.

Install
npx -y skills add passeth/evas-pdp-geo-skills --skill pdp-ai-readable

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Convert image-heavy EVAS product detail pages into AI-readable HTML for Imweb (KR default): Mistral OCR 4 (mistral-ocr-4-0), images-first + open collapsible text panel, Product/FAQ JSON-LD files for header inject. Use for PDP convert, 상세페이지 AI, GEO/AEO product HTML, BubbleShare-style conversion without BubbleShare. Prefer evas-pdp-geo-kr for full OpenSEO+deploy loop when user only gives idx/product code.

SKILL.md

8.3 KB, as published. Nobody here has run it

PDP AI-Readable

One-line run (convert only, no deploy)

idx={N} PDP convert only

Full loop (demand+deploy) → use evas-pdp-geo-kr with idx={N} KR PDP GEO.

Convert one product detail page into crawlable HTML for EVAS Imweb.

Default language: Korean (evasmall.co.kr). Do not deploy EN unless explicitly requested.

For the full KR GEO loop (OpenSEO MCP → prompts → deploy → verify), use evas-pdp-geo-kr.

Goal

  1. Collect product facts + detail images
  2. OCR (prefer Mistral OCR 4)
  3. Build layout v3: uninterrupted images + <details open> continuous text
  4. Write Product + FAQPage JSON-LD files (not inside Froala body)
  5. Save artifacts under artifacts/pdp/{brand}/idx-{n}/
  6. Cosmetics claim safety pass

Canonical layout (v3)

[detail images only]
<details open>
  summary: 제품 정보·성분·FAQ (클릭하여 접기/펼치기)
  panel: dense continuous HTML (tables, how-to, FAQ answers)
</details>

Why:

  • Design images stay clean
  • Humans see text expanded by default
  • Crawlers still get full text in DOM
  • Froala strips <script> → JSON-LD via site Header inject, not body

Inputs

Required:

  • Product URL (KR mall)

Optional:

  • related-prompts.json (from OpenSEO / GSC)
  • Brand @id (default FRAIJOUR)
  • Organization @id: https://www.evascosmetic.com/#organization

Workflow

1. Page evidence

  • name, price, short description, disclosure
  • detail images (fr-dib / upload CDN)

2. OCR

See Mistral OCR 4 section below.

3. Demand language

If related-prompts / OpenSEO exists, drive FAQ and title seeds from it. Else product-grounded FAQ only; volumes unknown.

4. Build HTML

  • Images first (single set)
  • Open collapsible continuous text panel
  • No JSON-LD scripts in body

5. JSON-LD files

  • product-v3.jsonld.json, faq-v3.jsonld.json
  • Header registry snippet for idx

6. Deliverables

artifacts/pdp/{brand}/idx-{n}/
  INDEX.json
  deployed-kr.html
  product-v3.jsonld.json
  faq-v3.jsonld.json
  related-prompts.json
  ocr/
  meta.md

7. Deploy notes (KR only)

  • Imweb KR language unit only
  • Verify live open details + data-evas-pdp-ld

EN

Do not deploy EN from this skill. Generate EN files only when orchestrated by evas-pdp-geo-en. During KR work: never switch Imweb EN language tabs.

Orchestration:

  • KR full loop → evas-pdp-geo-kr
  • EN full loop (separate OpenSEO market) → evas-pdp-geo-en

Reference

artifacts/pdp/fraijour/idx-19/

Mistral OCR 4 (required for new SKUs)

Default OCR engine for this pipeline. Do not skip for new products unless artwork text is already fully available as trusted HTML/disclosure.

ItemValue
ProductMistral OCR 4
Model id (API)mistral-ocr-latest or docs card ocr-4-0 / project alias mistral-ocr-4-0
Docshttps://docs.mistral.ai/models/model-cards/ocr-4-0 · Cookbook: https://docs.mistral.ai/resources/cookbooks?useCase=OCR
Why hereLong vertical PDP images need accurate KR/EN text, tables, and ingredient lines for GEO without inventing claims
Pilot evidenceartifacts/pdp/fraijour/idx-19/ocr/ + source.json"ocr_model": "mistral-ocr-4-0"

What OCR 4 gives us (use it)

  • Extracted markdown/text per detail slice
  • Prefer structured fields when returned: bounding boxes, block types (title/table/…), confidence — keep low-confidence lines out of clinical claims or mark <!-- REVIEW -->
  • Strong multilingual (KR packaging + EN global art)

Procedure

  1. Collect detail images in order (CDN fr-dib / imweb upload URLs).
  2. Call Mistral OCR API per slice (or batched if API supports multi-page).
  3. Save raw responses:
    ocr/slice_01.json … slice_N.json
    ocr/combined_markdown.json
    
  4. Post-correct brand/product OCR errors (예: 약육 → 약쑥, FRAIJOUR spelling).
  5. Build HTML tables/lists/FAQ answers only from OCR + mall disclosure (가격·고시).
  6. Record in source.json:
    { "ocr_model": "mistral-ocr-4-0", "ocr_provider": "mistral", "images": ["…"] }
    

Auth

  • API key: MISTRAL_API_KEY env, Aside secrets, or session file (never commit keys).
  • If key missing: stop convert for new SKUs, or use existing ocr/ only when user confirms reuse.

Fallback

Only if Mistral unavailable and user accepts lower quality:

  1. Vision LLM transcript of each slice (explicitly label ocr_model: vision-fallback)
  2. Never present fallback as Mistral OCR 4

EN skill

Reuse KR ocr/ facts; re-OCR only when EN-only artwork differs.

Layout + schema build rules (v3.2)

  1. Build HTML without <style> tags.
  2. First child inside .evas-pdp-ai: visible .evas-pdp-seo-lead pure-text blurb (ingredient ppm, texture, volume).
  3. Emit clean-summary.txt + product-v3.jsonld.json + faq-v3.jsonld.json + graph-v3.2.jsonld.json (@graph).
  4. Product.description = clean-summary only; never concatenate Froala/HTML/CSS.
  5. Always set cosmetics additionalProperty from OCR/disclosure facts only.
  6. Header inject snippet must be one IIFE writing one application/ld+json with @graph.

Structured data guards (critical)

Confirmed failure modes on Imweb:

  1. CSS leak into platform Product.description
    If detail HTML contains a <style> block, Imweb may scrape it into auto Product JSON-LD.
    Rule: no <style> tags in deployed-*.html. Use inline styles only. Imweb may still inject lazy-image styles (ignore those).

  2. Dual Product nodes
    Imweb always emits its own Product (no @id). We inject a canonical Product with @id#product.
    Do not invent a second custom Product. Prefer one inject @graph = [Product, FAQPage].
    Platform Product cannot be deleted; keep its description clean by (1) no style blocks (2) pure-text SEO lead paragraph at top of detail.

  3. description must be pure text
    Reject any description matching /evas-pdp|summary::|\{display|font-family/.
    Prefer explicit clean-summary.txt / SEO meta over scraping Froala HTML.

  4. additionalProperty required for cosmetics GEO
    Include at least: key ingredient + concentration (if disclosed), skin concern, texture, volume, mildness positioning.
    Do not invent ppm/counts not on artwork/disclosure (e.g. do not invent "17 extracts" if page says otherwise).

  5. @id policy

    • Product: https://www.evasmall.co.kr/shop_view/?idx={n}#product
    • FAQPage: …#faq with about → Product @id
    • brand/manufacturer: https://www.evascosmetic.com/#brand-… / #organization (site-wide graph)
  6. Shipping/return in Offer only when live page states them (e.g. 2,500원 / 2만원 이상 무료 / 14일 반품).

  7. Verify live after deploy:

    • inject Product descCss=false and additionalProperty.length >= 5
    • Imweb Product descCss=false
    • FAQPage question count matches body

Field placement (critical)

Imweb product form has two HTML fields:

FieldDOM / admin labelWhat goes here
요약 설명simple_content / first Froala / live .goods_summaryShort pure text only (clean-summary.txt) — no images, no full widget
상품 상세 설명prod_content / Froala under "상품 상세 설명" / live ._prod_detail_detail_lazy_loadFull deployed-*.html widget

Wrong placement symptom

  • Full AI panel appears beside price / in summary column (goods_summary)
  • Detail tab lower on page is empty or short

Deploy targeting rules

  1. Identify editors by section label, not only by size
  2. Summary editor: set clean-summary text only (one short paragraph)
  3. Detail editor: set full widget HTML
  4. Never put evas-pdp-ai full layout into summary
  5. After save, live-check:
    • .goods_summary .evas-pdp-ai must be absent
    • detail lazy load must contain .evas-pdp-ai

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.