pabal-web-mcp 1.4.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/mcp-server.js +45 -34
- package/package.json +1 -1
package/dist/bin/mcp-server.js
CHANGED
|
@@ -1434,7 +1434,7 @@ function generateKeywordLocalizationPrompt(args) {
|
|
|
1434
1434
|
`;
|
|
1435
1435
|
prompt += `1. Use SAVED keyword research (see per-locale data below). Do NOT invent keywords.
|
|
1436
1436
|
`;
|
|
1437
|
-
prompt += `2. Replace keywords
|
|
1437
|
+
prompt += `2. **Replace ONLY keywords with optimized keywords** - keep ALL existing content, structure, tone, and context unchanged. Only swap keywords for better ASO keywords.
|
|
1438
1438
|
`;
|
|
1439
1439
|
prompt += `3. Validate character limits + store rules (${FIELD_LIMITS_DOC_PATH2}) + keyword duplication
|
|
1440
1440
|
`;
|
|
@@ -1520,18 +1520,21 @@ ${researchSections.join(
|
|
|
1520
1520
|
});
|
|
1521
1521
|
prompt += `## Keyword Replacement Strategy
|
|
1522
1522
|
|
|
1523
|
+
`;
|
|
1524
|
+
prompt += `**CRITICAL: Keep ALL existing content unchanged. Only replace keywords with optimized keywords.**
|
|
1525
|
+
|
|
1523
1526
|
`;
|
|
1524
1527
|
prompt += `For EACH locale:
|
|
1525
1528
|
`;
|
|
1526
1529
|
prompt += `- Priority: Keep iOS-sourced keywords first; add Android keywords only if there is remaining space after iOS keywords fit within field limits.
|
|
1527
1530
|
`;
|
|
1528
|
-
prompt += `1. Take the
|
|
1531
|
+
prompt += `1. Take the EXISTING translated content (below) - **DO NOT change the content itself**
|
|
1529
1532
|
`;
|
|
1530
|
-
prompt += `2. Replace \`aso.keywords\` array with
|
|
1533
|
+
prompt += `2. Replace \`aso.keywords\` array with optimized keywords (keep same count/structure)
|
|
1531
1534
|
`;
|
|
1532
1535
|
prompt += `3. **TITLE FORMAT**: \`aso.title\` must follow **"App Name: Primary Keyword"** format:
|
|
1533
1536
|
`;
|
|
1534
|
-
prompt += ` - App name: **ALWAYS in English** (e.g., "Aurora EOS", "Timeline", "Recaply
|
|
1537
|
+
prompt += ` - App name: **ALWAYS in English** (e.g., "Aurora EOS", "Timeline", "Recaply)
|
|
1535
1538
|
`;
|
|
1536
1539
|
prompt += ` - Primary keyword: **In target language** (e.g., "\uC624\uB85C\uB77C \uC608\uBCF4" for Korean, "\u30AA\u30FC\u30ED\u30E9\u4E88\u5831" for Japanese)
|
|
1537
1540
|
`;
|
|
@@ -1540,52 +1543,56 @@ ${researchSections.join(
|
|
|
1540
1543
|
prompt += ` - The keyword after the colon must start with an uppercase letter
|
|
1541
1544
|
`;
|
|
1542
1545
|
prompt += ` - **Do NOT translate/rename the app name**; keep the original English app name across all locales.
|
|
1546
|
+
`;
|
|
1547
|
+
prompt += ` - **Only replace the keyword part** - keep the app name and format structure unchanged
|
|
1543
1548
|
`;
|
|
1544
1549
|
prompt += `4. Deduplicate keywords: final \`aso.keywords\` must be unique and should not repeat title/subtitle terms verbatim
|
|
1545
1550
|
`;
|
|
1546
|
-
prompt += `5.
|
|
1551
|
+
prompt += `5. **Replace keywords in existing sentences** - swap ONLY the keywords, keep everything else:
|
|
1547
1552
|
`;
|
|
1548
|
-
prompt += ` -
|
|
1553
|
+
prompt += ` - **Keep original sentence structure exactly as is**
|
|
1549
1554
|
`;
|
|
1550
|
-
prompt += ` -
|
|
1555
|
+
prompt += ` - **Keep original tone and messaging unchanged**
|
|
1551
1556
|
`;
|
|
1552
|
-
prompt += ` -
|
|
1557
|
+
prompt += ` - **Keep original context and flow unchanged**
|
|
1553
1558
|
`;
|
|
1554
|
-
prompt += ` -
|
|
1559
|
+
prompt += ` - **Only swap individual keywords** for better ASO keywords
|
|
1560
|
+
`;
|
|
1561
|
+
prompt += ` - Maintain character limits
|
|
1555
1562
|
|
|
1556
1563
|
`;
|
|
1557
|
-
prompt += `6. **CRITICAL**: Update ALL \`landing\` sections:
|
|
1564
|
+
prompt += `6. **CRITICAL**: Update keywords in ALL \`landing\` sections (replace keywords only, keep content structure):
|
|
1558
1565
|
`;
|
|
1559
|
-
prompt += ` - \`landing.hero.title\` and \`landing.hero.description\`:
|
|
1566
|
+
prompt += ` - \`landing.hero.title\` and \`landing.hero.description\`: Replace keywords only, keep existing text structure
|
|
1560
1567
|
`;
|
|
1561
|
-
prompt += ` - \`landing.screenshots.images[].title\`:
|
|
1568
|
+
prompt += ` - \`landing.screenshots.images[].title\`: Replace keywords in existing titles, keep structure
|
|
1562
1569
|
`;
|
|
1563
|
-
prompt += ` - \`landing.screenshots.images[].description\`:
|
|
1570
|
+
prompt += ` - \`landing.screenshots.images[].description\`: Replace keywords in existing descriptions, keep structure
|
|
1564
1571
|
`;
|
|
1565
|
-
prompt += ` - \`landing.features.items[].title\`:
|
|
1572
|
+
prompt += ` - \`landing.features.items[].title\`: Replace keywords in existing titles, keep structure
|
|
1566
1573
|
`;
|
|
1567
|
-
prompt += ` - \`landing.features.items[].body\`:
|
|
1574
|
+
prompt += ` - \`landing.features.items[].body\`: Replace keywords in existing descriptions, keep structure
|
|
1568
1575
|
`;
|
|
1569
|
-
prompt += ` - \`landing.reviews.title\` and \`landing.reviews.description\`:
|
|
1576
|
+
prompt += ` - \`landing.reviews.title\` and \`landing.reviews.description\`: Replace keywords if applicable, keep structure
|
|
1570
1577
|
`;
|
|
1571
|
-
prompt += ` - \`landing.cta.headline\` and \`landing.cta.description\`:
|
|
1578
|
+
prompt += ` - \`landing.cta.headline\` and \`landing.cta.description\`: Replace keywords if applicable, keep structure
|
|
1572
1579
|
`;
|
|
1573
|
-
prompt += ` - Maintain original context and
|
|
1580
|
+
prompt += ` - **Maintain ALL original context, meaning, and structure**
|
|
1574
1581
|
`;
|
|
1575
|
-
prompt += ` - Use
|
|
1582
|
+
prompt += ` - Use optimized keywords that users actually search for
|
|
1576
1583
|
`;
|
|
1577
|
-
prompt += ` - **DO NOT
|
|
1584
|
+
prompt += ` - **DO NOT rewrite or restructure content** - only replace keywords
|
|
1578
1585
|
|
|
1579
1586
|
`;
|
|
1580
|
-
prompt += `**Example
|
|
1587
|
+
prompt += `**Example** (keyword replacement only, content unchanged):
|
|
1581
1588
|
`;
|
|
1582
1589
|
prompt += `- Original: "Track aurora with real-time forecasts"
|
|
1583
1590
|
`;
|
|
1584
|
-
prompt += `-
|
|
1591
|
+
prompt += `- Optimized keywords: \uC624\uB85C\uB77C, \uC608\uBCF4, \uC2E4\uC2DC\uAC04
|
|
1585
1592
|
`;
|
|
1586
|
-
prompt += `- Result: "\uC2E4\uC2DC\uAC04 \uC608\uBCF4
|
|
1593
|
+
prompt += `- Result: "Track \uC624\uB85C\uB77C with \uC2E4\uC2DC\uAC04 \uC608\uBCF4" (keywords replaced, structure kept)
|
|
1587
1594
|
`;
|
|
1588
|
-
prompt += ` (
|
|
1595
|
+
prompt += ` OR: "\uC2E4\uC2DC\uAC04 \uC608\uBCF4\uB85C \uC624\uB85C\uB77C \uCD94\uC801" (if natural keyword placement requires minor word order, but keep meaning identical)
|
|
1589
1596
|
|
|
1590
1597
|
`;
|
|
1591
1598
|
prompt += `## Current Translated Locales (This Batch)
|
|
@@ -1606,7 +1613,7 @@ ${researchSections.join(
|
|
|
1606
1613
|
`;
|
|
1607
1614
|
prompt += `1. Use saved keyword research (in target language) OR **TRANSLATE English keywords from primary locale** if missing (see fallback strategy above - MUST translate, not use English directly)
|
|
1608
1615
|
`;
|
|
1609
|
-
prompt += `2. Replace keywords in ALL fields (
|
|
1616
|
+
prompt += `2. **Replace keywords ONLY** in ALL fields (keep existing content structure unchanged):
|
|
1610
1617
|
`;
|
|
1611
1618
|
prompt += ` - \`aso.keywords\` array
|
|
1612
1619
|
`;
|
|
@@ -1622,7 +1629,7 @@ ${researchSections.join(
|
|
|
1622
1629
|
`;
|
|
1623
1630
|
prompt += ` - \`landing.reviews.title\` and \`landing.reviews.description\`
|
|
1624
1631
|
`;
|
|
1625
|
-
prompt += ` -
|
|
1632
|
+
prompt += ` - **For each field: Replace keywords only, keep existing content structure and meaning unchanged**
|
|
1626
1633
|
`;
|
|
1627
1634
|
prompt += `3. **CRITICAL**: Ensure ALL landing fields are translated (not English)
|
|
1628
1635
|
`;
|
|
@@ -1669,23 +1676,27 @@ ${researchSections.join(
|
|
|
1669
1676
|
prompt += ` - Show final 10 keywords **IN TARGET LANGUAGE** with tier assignments - DO NOT show English keywords
|
|
1670
1677
|
|
|
1671
1678
|
`;
|
|
1672
|
-
prompt += `**2. Updated JSON** (complete locale structure with keyword replacements)
|
|
1679
|
+
prompt += `**2. Updated JSON** (complete locale structure with keyword replacements only)
|
|
1680
|
+
`;
|
|
1681
|
+
prompt += ` - **CRITICAL**: Keep ALL existing content structure and meaning unchanged - only replace keywords
|
|
1673
1682
|
`;
|
|
1674
|
-
prompt += ` - MUST include complete \`aso\` object
|
|
1683
|
+
prompt += ` - MUST include complete \`aso\` object (keywords replaced, content structure kept)
|
|
1675
1684
|
`;
|
|
1676
|
-
prompt += ` - MUST include complete \`landing\` object with ALL sections:
|
|
1685
|
+
prompt += ` - MUST include complete \`landing\` object with ALL sections (keywords replaced, content structure kept):
|
|
1677
1686
|
`;
|
|
1678
|
-
prompt += ` * hero (title, description, titleHighlight)
|
|
1687
|
+
prompt += ` * hero (title, description, titleHighlight) - replace keywords only
|
|
1679
1688
|
`;
|
|
1680
|
-
prompt += ` * screenshots.images[] (all items with
|
|
1689
|
+
prompt += ` * screenshots.images[] (all items with keywords replaced in existing titles/descriptions)
|
|
1681
1690
|
`;
|
|
1682
|
-
prompt += ` * features.items[] (all items with
|
|
1691
|
+
prompt += ` * features.items[] (all items with keywords replaced in existing titles/bodies)
|
|
1683
1692
|
`;
|
|
1684
|
-
prompt += ` * reviews (title, description, icons, rating, testimonials)
|
|
1693
|
+
prompt += ` * reviews (title, description, icons, rating, testimonials) - replace keywords if applicable
|
|
1685
1694
|
`;
|
|
1686
|
-
prompt += ` * cta (headline, icons, rating, description)
|
|
1695
|
+
prompt += ` * cta (headline, icons, rating, description) - replace keywords if applicable
|
|
1687
1696
|
`;
|
|
1688
1697
|
prompt += ` - **NO English text in landing sections** - everything must be translated
|
|
1698
|
+
`;
|
|
1699
|
+
prompt += ` - **DO NOT rewrite or restructure content** - only swap keywords for optimized keywords
|
|
1689
1700
|
|
|
1690
1701
|
`;
|
|
1691
1702
|
prompt += `**3. Validation**
|