agentsclimarketplace

Evas pdp geo en

Skill passeth/evas-pdp-geo-skills/skills/evas-pdp-geo-en

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 evas-pdp-geo-en

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

English EVAS PDP GEO/AEO pipeline for evascosmetic.com (or Imweb EN unit): separate OpenSEO EN demand research, EN related-prompts, EN HTML/FAQ/JSON-LD, EN-only deploy. Use when user says idx={N} EN PDP GEO, after KR handoff, or English product-page AI optimization. Never edit KR unit in the same session.

SKILL.md

10.0 KB, as published. Nobody here has run it

EVAS PDP GEO (EN — separate job)

One-line run

idx={N} EN PDP GEO

Or after KR: idx={N} EN 핸드오프 / 풀 파이프라인 EN

Agent contract: resolve idx → require KR folder artifacts/pdp/{brand}/idx-{N}/ with verified KR when possible → run EN demand + convert + EN-unit deploy only. Never open KR language tab.

English product-page GEO/AEO for EVAS global property.

Hard rule: EN is a separate job from KR.

EN detail images (do not reuse KR)

EN product detail artwork is language-specific. Never copy KR upload/... image URLs into deployed-en.html.

  1. Prefer images already used on the EN unit / GLOBAL site before convert
  2. Or discover EN hashes under the same Imweb media path (English text on image)
  3. Save source-en-images.json with the EN image list
  4. KR hashes for idx=19 wormwood cream (do not use on EN): 882b30495a0eb, f2f22b502d596, 9680c7840ac0d, 9a35008ba5e55, db5069640ffa1
  5. Known EN hashes for idx=19: 83f3c877bcf61, 903a87a9ffee2, fd7f4cd08cee5, 2240289f9cef3

Imweb language switch (critical UI)

EN content is not a separate admin site only. On the same product edit screen:

상품 상세 편집 화면
  ┌──────────────┐
  │ 🇰🇷   🇺🇸      │  ← language tabs (flag)
  └──────────────┘
  Froala 상세 에디터 (이 플래그에 묶인 HTML만 저장됨)

How to deploy EN safely

  1. Open product: https://evasmall.imweb.me/admin/shopping/product/detail?idx={N}
  2. Confirm current flag: KR selected has underline under 🇰🇷
  3. Click 🇺🇸 US flag to enter EN content unit for product fields (name / summary / detail HTML / SEO fields that are language-scoped)
  4. Wait for editor to reload EN content (do not paste while still on KR)
  5. Snapshot: EN product name / English body should show; Korean body must not be the active editor content
  6. Paste deployed-en.html into EN detail editor only
  7. Set EN SEO title/meta if those fields switch with the flag
  8. Save once on EN unit
  9. Immediately click 🇰🇷 again only if you need KR — but prefer close the tab after EN save to avoid accidental KR overwrite
  10. Live verify: https://www.evascosmetic.com/.../?idx={N} (global), not evasmall.co.kr

Hard rules

  • While 🇺🇸 is active, never open/save KR-looking HTML
  • While 🇰🇷 is active, this skill must stop (hand back to evas-pdp-geo-kr)
  • If unsure which flag is active: snapshot for underline under the flag circle before any paste
  • Sidebar "nation-flag EVAS COSMETICS" site switcher (if present) is different from in-editor 🇰🇷/🇺🇸 content tabs — prefer the in-editor product language flags for PDP body HTML

Do not reuse KR OpenSEO volumes, KR FAQ wording, or KR Imweb language unit.
Do not open KR product tabs while deploying EN.

When to run

Call this skill when:

  1. User explicitly asks for EN, or
  2. evas-pdp-geo-kr finished a SKU and hands off with handoff_en: true and EN gate is met

EN gate (default)

  • KR live verified for this SKU (details open + KR FAQ/JSON-LD)
  • KR related-prompts.json has source: openseo|gsc|hybrid (not market_theme guess)
  • User did not set skip_en: true
  • Prefer ≥1 successful KR SKU before batch EN; for pilot, user override is OK

If gate fails: write artifacts/pdp/{brand}/idx-{n}/EN_BLOCKED.md and stop.

Why separate from KR

TopicKREN
Siteevasmall.co.krevascosmetic.com (or Imweb EN unit)
OpenSEO marketKR / ko (e.g. location 2410)EN market (US or target country) — own seeds + metrics
Demand languageKorean promptsEnglish prompts
Imweb language unitKR onlyEN only — never same edit session as KR
ClaimsKorean disclosure + OCRSame product facts, EN wording, no new clinicals

OpenSEO is market-specific. Saving KR keywords does not cover EN. Run research_keywords / metrics again for EN seeds.

End-to-end loop

0) Prerequisites
   OpenSEO MCP + EN-capable project (or same project with EN location/language)
   Optional GSC for global domain
   KR artifact folder exists: artifacts/pdp/{brand}/idx-{n}/

1) Demand (OpenSEO EN)
   Seeds from EN product name + problem intents
   research_keywords + get_keyword_metrics (EN location/language)
   SERP sample for top candidates
   → artifacts/seo-aeo/keywords/{date}-en-idx{n}.json
   → artifacts/pdp/{brand}/idx-{n}/related-prompts.en.json

2) Convert
   Reuse KR **Mistral OCR 4** facts under `ocr/` (do not re-OCR unless EN-only artwork differs; if re-OCR, use `mistral-ocr-4-0`)
   Build EN layout v3 from KR structure
   FAQ from related-prompts.en.json; answers only from product facts
   → deployed-en.html, product-v3.en.jsonld.json, faq-v3.en.jsonld.json

3) Deploy (EN unit only)
   Imweb EN language unit / global site only
   Never touch KR detail HTML in this session
   Header inject only if global site shares registry pattern

4) Verify EN live
   EN text, details open, Product+FAQ JSON-LD if applicable

Inputs from KR handoff

Expect from KR folder:

artifacts/pdp/{brand}/idx-{n}/
  INDEX.json
  deployed-kr.html          # reference structure only
  product-v3.jsonld.json    # facts
  faq-v3.jsonld.json        # KR FAQ (do not copy questions blindly)
  related-prompts.json      # KR demand (do not reuse volumes for EN SERP claims)
  ocr/                      # fact source
  source.json

Handoff note (optional):

{
  "from_skill": "evas-pdp-geo-kr",
  "idx": "19",
  "brand": "fraijour",
  "kr_verified_live": true,
  "handoff_en": true,
  "skip_en": false
}

Step 1 — EN demand (OpenSEO)

  1. Confirm project + EN market (do not assume KR location 2410)
  2. Seeds examples: wormwood cream, calming watery cream, combination skin moisturizer, brand fraijour
  3. research_keywords / get_keyword_metrics / small SERP sample
  4. Write related-prompts.en.json:
{
  "product_idx": "19",
  "lang": "en",
  "source": "openseo",
  "market": "US/en or as configured",
  "prompts": [
    { "prompt": "...", "intent": "...", "volume": null, "kd": null, "seed_keyword": "..." }
  ]
}
  1. save_keywords only after user confirm, tags e.g. lang:en, sku:idx-19, line:wormwood

Step 2 — EN convert

  • Layout same as KR v3: images first + <details open> text panel
  • Translate/adapt copy; keep numbers (12,000ppm, 100ml, price if shown) only if on disclosure
  • FAQ questions follow EN demand prompts; answers stay fact-grounded
  • Do not invent US-only clinical claims

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

Step 3 — Deploy EN only

  1. Open global site admin / EN language unit
  2. Paste deployed-en.html
  3. EN SEO title/meta from EN demand terms
  4. Save; do not open KR unit

Step 4 — Verify

  • EN body live
  • details open
  • No accidental KR overwrite on evasmall.co.kr
  • Artifacts saved: deployed-en.html, related-prompts.en.json, meta-en.md

OpenSEO note (saved keywords)

save_keywords stores terms on the OpenSEO project for later:

  • list_saved_keywords — resume without re-research
  • Tag filters (lang:en, sku:idx-19) — cluster per page
  • Other skills (keyword-clustering, competitor, content briefs) read saved sets
  • Does not auto-publish to Imweb or change live pages

KR saved keywords ≠ EN saved keywords. Tag by lang:.

Failure modes

FailureAction
KR not verifiedBlock EN; fix KR first
Only KR OpenSEO market availableResearch EN with explicit locationCode/languageCode or pause
Imweb tab switched to KRAbort; re-verify KR live
Claim not in OCR/disclosureOmit or mark REVIEW

Related

  • evas-pdp-geo-kr — must finish (or user override) before this
  • pdp-ai-readable — layout mechanics
  • keyword-research — OpenSEO demand
  • Pilot: artifacts/pdp/fraijour/idx-19/

Structured data guards (same as KR, EN surface)

EN inherits the same failure modes on Imweb/global:

  1. No <style> in deployed-en.html — CSS leaks into platform Product.description
  2. Visible pure-text SEO lead (.evas-pdp-seo-lead) at top; write clean-summary.en.txt
  3. One inject @graph = [Product, FAQPage] with stable @ids on the EN product URL
  4. additionalProperty required (ingredient concentration, concern, texture, volume, mildness) — facts from KR OCR/disclosure, EN wording
  5. Do not invent clinicals or extract counts
  6. brand/manufacturer keep https://www.evascosmetic.com/#… ids
  7. Deploy EN language unit / global site only; never edit KR unit in this job
  8. Verify live: inject Product description has no CSS; additionalProperty.length >= 5

Header inject: prefer a single EN-safe registry or separate global header — do not corrupt KR Header Code 상단 when editing global.

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.