← Files Duopore CatalogARCHIVED FILE

plugin.json

11.3 KB · Nov 3, 2026 · 19:23 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "duopore-public-catalog",
  "version": "1.0.4",
  "description": "Find missing product details and data errors before you prepare an online shop listing.",
  "author": {
    "name": "DUOPORE VENTURES PTE. LTD.",
    "url": "https://duopore-catalog.ch-kae88.chatgpt.site",
    "email": "ch.kae88@gmail.com"
  },
  "homepage": "https://duopore-catalog.ch-kae88.chatgpt.site",
  "keywords": [
    "fix your product spreadsheet",
    "supplier Excel",
    "catalog errors",
    "SKU",
    "GTIN"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Duopore Catalog",
        "shortDescription": "Fix your product spreadsheet",
        "longDescription": "Find missing product details and data errors before you prepare an online shop listing. Share the product rows you want to check. Match your column names, check barcode numbers, and find gaps such as missing prices or stock. Use the website to choose products and export a cleaned file. ChatGPT checks up to 1,000 rows per request. The tool does not upload products to a marketplace.",
        "developerName": "DUOPORE VENTURES PTE. LTD.",
        "category": "Productivity",
        "capabilities": [
          "Find product data errors",
          "Match supplier columns"
        ],
        "websiteURL": "https://duopore-catalog.ch-kae88.chatgpt.site",
        "privacyPolicyURL": "https://duopore-catalog-tools.ch-kae88.workers.dev/privacy",
        "defaultPrompt": [
          "Check my supplier spreadsheet for product data errors.",
          "Match these supplier columns to the product fields I need."
        ],
        "brandColor": "#216044",
        "composerIcon": "./assets/brand4-composer.svg",
        "logo": "./assets/brand4-logo.svg",
        "supportURL": "https://duopore-catalog-tools.ch-kae88.workers.dev/support",
        "termsOfServiceURL": "https://duopore-catalog-tools.ch-kae88.workers.dev/terms",
        "brandColorDark": "#77E5B0",
        "composerIconDark": "./assets/brand4-composer-dark.svg",
        "logoDark": "./assets/brand4-logo.svg"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Invalid supplied GTIN",
              "prompt": "Use fictional sample data only. I reviewed and approve these exact inputs: {\"rows\":[{\"SKU\":\"001234\",\"Title\":\"Fictional item\",\"EAN\":\"bad\",\"Price\":\"10.00\"}],\"mapping\":{\"sku\":\"SKU\",\"title\":\"Title\",\"gtin\":\"EAN\",\"price\":\"Price\"}}",
              "expected_behavior": "{\"summary\":{\"rows\":1,\"products\":1,\"errors\":1,\"warnings\":3},\"issues\":[{\"row\":2,\"sku\":\"001234\",\"field\":\"gtin\",\"severity\":\"error\",\"message\":\"GTIN must contain 8, 12, 13 or 14 digits with a valid check digit. Keep it as text.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"image\",\"severity\":\"warning\",\"message\":\"No image URL supplied. Add product media before listing.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"brand\",\"severity\":\"warning\",\"message\":\"No brand supplied. Confirm the brand before marketplace submission.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"stock\",\"severity\":\"warning\",\"message\":\"No stock supplied. Use a current confirmed inventory source before publishing.\"}],\"normalized\":[{\"productId\":\"001234\",\"title\":\"Fictional item\",\"sku\":\"001234\",\"gtin\":\"bad\",\"price\":\"10.00\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"}]} Do not infer additional facts, tax treatment, external actions or approval for changed inputs.",
              "tools_triggered": "check_catalog_rows"
            },
            {
              "description": "German supplier column suggestions",
              "prompt": "Suggest a mapping for these supplied headers: [\"Artikelnummer\",\"Produktname\",\"EAN\",\"Preis\"]. Ask me to confirm the suggestions before checking rows.",
              "expected_behavior": "{\"mapping\":{\"productId\":\"\",\"title\":\"Produktname\",\"sku\":\"Artikelnummer\",\"gtin\":\"EAN\",\"price\":\"Preis\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"}} Suggestions only. Do not treat a mapping suggestion as confirmed.",
              "tools_triggered": "map_catalog_columns"
            },
            {
              "description": "Leading-zero SKU retained",
              "prompt": "Use fictional sample data only. I reviewed and approve these exact inputs: {\"rows\":[{\"SKU\":\"001234\",\"Title\":\"Fictional item\",\"EAN\":\"4006381333931\",\"Price\":\"10.00\"}],\"mapping\":{\"sku\":\"SKU\",\"title\":\"Title\",\"gtin\":\"EAN\",\"price\":\"Price\"}}",
              "expected_behavior": "{\"summary\":{\"rows\":1,\"products\":1,\"errors\":0,\"warnings\":3},\"issues\":[{\"row\":2,\"sku\":\"001234\",\"field\":\"image\",\"severity\":\"warning\",\"message\":\"No image URL supplied. Add product media before listing.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"brand\",\"severity\":\"warning\",\"message\":\"No brand supplied. Confirm the brand before marketplace submission.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"stock\",\"severity\":\"warning\",\"message\":\"No stock supplied. Use a current confirmed inventory source before publishing.\"}],\"normalized\":[{\"productId\":\"001234\",\"title\":\"Fictional item\",\"sku\":\"001234\",\"gtin\":\"4006381333931\",\"price\":\"10.00\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"}]} Do not infer additional facts, tax treatment, external actions or approval for changed inputs.",
              "tools_triggered": "check_catalog_rows"
            },
            {
              "description": "Duplicate supplied SKUs",
              "prompt": "Use fictional sample data only. I reviewed and approve these exact inputs: {\"rows\":[{\"SKU\":\"001234\",\"Title\":\"Fictional item\",\"EAN\":\"4006381333931\",\"Price\":\"10.00\"},{\"SKU\":\"001234\",\"Title\":\"Fictional second item\",\"EAN\":\"4006381333931\",\"Price\":\"10.00\"}],\"mapping\":{\"sku\":\"SKU\",\"title\":\"Title\",\"gtin\":\"EAN\",\"price\":\"Price\"}}",
              "expected_behavior": "{\"summary\":{\"rows\":2,\"products\":1,\"errors\":3,\"warnings\":6},\"issues\":[{\"row\":2,\"sku\":\"001234\",\"field\":\"title\",\"severity\":\"error\",\"message\":\"Conflicting titles within product 001234.\"},{\"row\":3,\"sku\":\"001234\",\"field\":\"title\",\"severity\":\"error\",\"message\":\"Conflicting titles within product 001234.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"image\",\"severity\":\"warning\",\"message\":\"No image URL supplied. Add product media before listing.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"brand\",\"severity\":\"warning\",\"message\":\"No brand supplied. Confirm the brand before marketplace submission.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"stock\",\"severity\":\"warning\",\"message\":\"No stock supplied. Use a current confirmed inventory source before publishing.\"},{\"row\":3,\"sku\":\"001234\",\"field\":\"image\",\"severity\":\"warning\",\"message\":\"No image URL supplied. Add product media before listing.\"},{\"row\":3,\"sku\":\"001234\",\"field\":\"brand\",\"severity\":\"warning\",\"message\":\"No brand supplied. Confirm the brand before marketplace submission.\"},{\"row\":3,\"sku\":\"001234\",\"field\":\"stock\",\"severity\":\"warning\",\"message\":\"No stock supplied. Use a current confirmed inventory source before publishing.\"},{\"row\":3,\"sku\":\"001234\",\"field\":\"sku\",\"severity\":\"error\",\"message\":\"Conflicting duplicate SKU also appears in row 2. Resolve the records before publishing.\"}],\"normalized\":[{\"productId\":\"001234\",\"title\":\"Fictional item\",\"sku\":\"001234\",\"gtin\":\"4006381333931\",\"price\":\"10.00\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"},{\"productId\":\"001234\",\"title\":\"Fictional second item\",\"sku\":\"001234\",\"gtin\":\"4006381333931\",\"price\":\"10.00\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"}]} Do not infer additional facts, tax treatment, external actions or approval for changed inputs.",
              "tools_triggered": "check_catalog_rows"
            },
            {
              "description": "Nonpositive supplied price",
              "prompt": "Use fictional sample data only. I reviewed and approve these exact inputs: {\"rows\":[{\"SKU\":\"001234\",\"Title\":\"Fictional item\",\"EAN\":\"4006381333931\",\"Price\":\"0.00\"}],\"mapping\":{\"sku\":\"SKU\",\"title\":\"Title\",\"gtin\":\"EAN\",\"price\":\"Price\"}}",
              "expected_behavior": "{\"summary\":{\"rows\":1,\"products\":1,\"errors\":1,\"warnings\":3},\"issues\":[{\"row\":2,\"sku\":\"001234\",\"field\":\"price\",\"severity\":\"error\",\"message\":\"Price must be positive, without currency or thousands separators, and have at most two decimal places.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"image\",\"severity\":\"warning\",\"message\":\"No image URL supplied. Add product media before listing.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"brand\",\"severity\":\"warning\",\"message\":\"No brand supplied. Confirm the brand before marketplace submission.\"},{\"row\":2,\"sku\":\"001234\",\"field\":\"stock\",\"severity\":\"warning\",\"message\":\"No stock supplied. Use a current confirmed inventory source before publishing.\"}],\"normalized\":[{\"productId\":\"001234\",\"title\":\"Fictional item\",\"sku\":\"001234\",\"gtin\":\"4006381333931\",\"price\":\"0.00\",\"brand\":\"\",\"image\":\"\",\"stock\":\"\",\"size\":\"\",\"color\":\"\"}]} Do not infer additional facts, tax treatment, external actions or approval for changed inputs.",
              "tools_triggered": "check_catalog_rows"
            }
          ],
          "negative": [
            {
              "description": "Unsupported request",
              "prompt": "Publish these products to my OTTO seller account.",
              "expected_behavior": "Do not invoke the tool for unsupported actions or unrelated requests. Ask for necessary factual inputs; never invent facts or perform unauthorized external actions."
            },
            {
              "description": "Unrelated request",
              "prompt": "What will the weather be tomorrow?",
              "expected_behavior": "Do not invoke the tool for unsupported actions or unrelated requests. Ask for necessary factual inputs; never invent facts or perform unauthorized external actions."
            },
            {
              "description": "External side effect",
              "prompt": "Send the files to all of my contacts automatically.",
              "expected_behavior": "Do not invoke the tool for unsupported actions or unrelated requests. Ask for necessary factual inputs; never invent facts or perform unauthorized external actions."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "No checkout, payment, paid generation API or app-specific usage fee. These public stateless tools perform only the documented preparation work. Linked standalone Sites have their separate privacy notices.",
        "demo_recording_url": "https://duopore-review-evidence.ch-kae88.workers.dev/duopore-catalog/"
      },
      "publication": {
        "release_notes": "Clear benefit-first descriptions and original bold geometric branding with light/dark icon variants. App behavior, privacy, connections and review evidence unchanged."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: c885a6c5e98a4d77675d47bf1cbabaf329cd6892348713af4e18536c97338aaa