Evas pdp geo en
EVAS PDP GEO/AEO agent skills for Aside: OpenSEO demand → OCR HTML → Imweb deploy + JSON-LD. Includes vendored OpenSEO skills.
npx -y skills add passeth/evas-pdp-geo-skills --skill evas-pdp-geo-enAssembled 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.
- Prefer images already used on the EN unit / GLOBAL site before convert
- Or discover EN hashes under the same Imweb media path (English text on image)
- Save
source-en-images.jsonwith the EN image list - KR hashes for idx=19 wormwood cream (do not use on EN):
882b30495a0eb,f2f22b502d596,9680c7840ac0d,9a35008ba5e55,db5069640ffa1 - 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
- Open product:
https://evasmall.imweb.me/admin/shopping/product/detail?idx={N} - Confirm current flag: KR selected has underline under 🇰🇷
- Click 🇺🇸 US flag to enter EN content unit for product fields (name / summary / detail HTML / SEO fields that are language-scoped)
- Wait for editor to reload EN content (do not paste while still on KR)
- Snapshot: EN product name / English body should show; Korean body must not be the active editor content
- Paste
deployed-en.htmlinto EN detail editor only - Set EN SEO title/meta if those fields switch with the flag
- Save once on EN unit
- Immediately click 🇰🇷 again only if you need KR — but prefer close the tab after EN save to avoid accidental KR overwrite
- Live verify:
https://www.evascosmetic.com/.../?idx={N}(global), notevasmall.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:
- User explicitly asks for EN, or
evas-pdp-geo-krfinished a SKU and hands off withhandoff_en: trueand EN gate is met
EN gate (default)
- KR live verified for this SKU (details open + KR FAQ/JSON-LD)
- KR
related-prompts.jsonhassource: 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
| Topic | KR | EN |
|---|---|---|
| Site | evasmall.co.kr | evascosmetic.com (or Imweb EN unit) |
| OpenSEO market | KR / ko (e.g. location 2410) | EN market (US or target country) — own seeds + metrics |
| Demand language | Korean prompts | English prompts |
| Imweb language unit | KR only | EN only — never same edit session as KR |
| Claims | Korean disclosure + OCR | Same 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)
- Confirm project + EN market (do not assume KR location 2410)
- Seeds examples:
wormwood cream,calming watery cream,combination skin moisturizer, brandfraijour research_keywords/get_keyword_metrics/ small SERP sample- 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": "..." }
]
}
save_keywordsonly 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:
| Field | DOM / admin label | What goes here |
|---|---|---|
| 요약 설명 | simple_content / first Froala / live .goods_summary | Short pure text only (clean-summary.txt) — no images, no full widget |
| 상품 상세 설명 | prod_content / Froala under "상품 상세 설명" / live ._prod_detail_detail_lazy_load | Full 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
- Identify editors by section label, not only by size
- Summary editor: set
clean-summarytext only (one short paragraph) - Detail editor: set full widget HTML
- Never put
evas-pdp-aifull layout into summary - After save, live-check:
.goods_summary .evas-pdp-aimust be absent- detail lazy load must contain
.evas-pdp-ai
Step 3 — Deploy EN only
- Open global site admin / EN language unit
- Paste
deployed-en.html - EN SEO title/meta from EN demand terms
- Save; do not open KR unit
Step 4 — Verify
- EN body live
-
detailsopen - 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
| Failure | Action |
|---|---|
| KR not verified | Block EN; fix KR first |
| Only KR OpenSEO market available | Research EN with explicit locationCode/languageCode or pause |
| Imweb tab switched to KR | Abort; re-verify KR live |
| Claim not in OCR/disclosure | Omit or mark REVIEW |
Related
evas-pdp-geo-kr— must finish (or user override) before thispdp-ai-readable— layout mechanicskeyword-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:
- No
<style>indeployed-en.html— CSS leaks into platform Product.description - Visible pure-text SEO lead (
.evas-pdp-seo-lead) at top; writeclean-summary.en.txt - One inject
@graph=[Product, FAQPage]with stable@ids on the EN product URL additionalPropertyrequired (ingredient concentration, concern, texture, volume, mildness) — facts from KR OCR/disclosure, EN wording- Do not invent clinicals or extract counts
- brand/manufacturer keep
https://www.evascosmetic.com/#…ids - Deploy EN language unit / global site only; never edit KR unit in this job
- 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.