← Files Quote Unit Cost NormalizeARCHIVED FILE
plugin.json
10.6 KB · Nov 3, 2026 · 12:13 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "duopore-public-quote-unit-cost-normalization",
"version": "1.0.4",
"description": "Turn pack prices into a price per unit so different quotes are easier to compare.",
"author": {
"name": "DUOPORE VENTURES PTE. LTD.",
"email": "ch.kae88@gmail.com",
"url": "https://duopore-public-tools.ch-kae88.workers.dev"
},
"homepage": "https://duopore-public-tools.ch-kae88.workers.dev/tools/quote-unit-cost-normalization",
"keywords": [
"compare prices per unit",
"quote unit cost normalize",
"quotes",
"worksheet",
"reviewed inputs"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Quote Unit Cost Normalize",
"shortDescription": "Compare prices per unit",
"longDescription": "Turn pack prices into a price per unit so different quotes are easier to compare. Enter each pack's price, how much it holds and the total amount you need. See prices in the same base unit and the cost for your chosen quantity before fees. You must use units that mean the same thing and one currency. No exchange rates are fetched.",
"developerName": "DUOPORE VENTURES PTE. LTD.",
"category": "Productivity",
"capabilities": [
"Compare prices per unit"
],
"websiteURL": "https://duopore-public-tools.ch-kae88.workers.dev/tools/quote-unit-cost-normalization",
"supportURL": "https://duopore-public-tools.ch-kae88.workers.dev/support",
"privacyPolicyURL": "https://duopore-public-tools.ch-kae88.workers.dev/privacy",
"termsOfServiceURL": "https://duopore-public-tools.ch-kae88.workers.dev/terms",
"defaultPrompt": [
"Compare these pack quotes by price per unit.",
"What does my required quantity cost at each quoted unit price?"
],
"brandColor": "#4A8D1B",
"composerIcon": "./assets/brand4-composer.svg",
"logo": "./assets/brand4-logo.svg",
"brandColorDark": "#A9EA7B",
"composerIconDark": "./assets/brand4-composer-dark.svg",
"logoDark": "./assets/brand4-logo.svg"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Original fictional example",
"prompt": "Use Quote Unit Cost Normalize with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"baseUnit\":\"sheet\",\"comparisonUnits\":100,\"quotes\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12}]}",
"tools_triggered": "quote_unit_cost_normalization",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"2 package quotes normalized per sheet.\",\"rows\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25,\"rank\":1,\"baseUnit\":\"sheet\",\"pricePerBaseUnit\":0.5,\"comparisonUnits\":100,\"proportionalCost\":50},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12,\"rank\":2,\"baseUnit\":\"sheet\",\"pricePerBaseUnit\":0.6,\"comparisonUnits\":100,\"proportionalCost\":60}],\"warnings\":[\"Compare supplied figures in one currency for the same specification. No supplier verification, negotiation, ordering or payment occurs.\",\"Unit prices retain numeric precision. Proportional costs round to two decimals and permit fractional packages; actual packs, minimum quantities and extra fees need separate checks.\"]}"
},
{
"description": "Distinct supplied example 2",
"prompt": "Use Quote Unit Cost Normalize with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"baseUnit\":\"sheet example\",\"comparisonUnits\":100,\"quotes\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12}]}",
"tools_triggered": "quote_unit_cost_normalization",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"2 package quotes normalized per sheet example.\",\"rows\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25,\"rank\":1,\"baseUnit\":\"sheet example\",\"pricePerBaseUnit\":0.5,\"comparisonUnits\":100,\"proportionalCost\":50},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12,\"rank\":2,\"baseUnit\":\"sheet example\",\"pricePerBaseUnit\":0.6,\"comparisonUnits\":100,\"proportionalCost\":60}],\"warnings\":[\"Compare supplied figures in one currency for the same specification. No supplier verification, negotiation, ordering or payment occurs.\",\"Unit prices retain numeric precision. Proportional costs round to two decimals and permit fractional packages; actual packs, minimum quantities and extra fees need separate checks.\"]}"
},
{
"description": "Distinct supplied example 3",
"prompt": "Use Quote Unit Cost Normalize with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"baseUnit\":\"sheet alternate\",\"comparisonUnits\":100,\"quotes\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12}]}",
"tools_triggered": "quote_unit_cost_normalization",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"2 package quotes normalized per sheet alternate.\",\"rows\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25,\"rank\":1,\"baseUnit\":\"sheet alternate\",\"pricePerBaseUnit\":0.5,\"comparisonUnits\":100,\"proportionalCost\":50},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12,\"rank\":2,\"baseUnit\":\"sheet alternate\",\"pricePerBaseUnit\":0.6,\"comparisonUnits\":100,\"proportionalCost\":60}],\"warnings\":[\"Compare supplied figures in one currency for the same specification. No supplier verification, negotiation, ordering or payment occurs.\",\"Unit prices retain numeric precision. Proportional costs round to two decimals and permit fractional packages; actual packs, minimum quantities and extra fees need separate checks.\"]}"
},
{
"description": "Distinct supplied example 4",
"prompt": "Use Quote Unit Cost Normalize with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"baseUnit\":\"Example record\",\"comparisonUnits\":100,\"quotes\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12}]}",
"tools_triggered": "quote_unit_cost_normalization",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"2 package quotes normalized per Example record.\",\"rows\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25,\"rank\":1,\"baseUnit\":\"Example record\",\"pricePerBaseUnit\":0.5,\"comparisonUnits\":100,\"proportionalCost\":50},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12,\"rank\":2,\"baseUnit\":\"Example record\",\"pricePerBaseUnit\":0.6,\"comparisonUnits\":100,\"proportionalCost\":60}],\"warnings\":[\"Compare supplied figures in one currency for the same specification. No supplier verification, negotiation, ordering or payment occurs.\",\"Unit prices retain numeric precision. Proportional costs round to two decimals and permit fractional packages; actual packs, minimum quantities and extra fees need separate checks.\"]}"
},
{
"description": "Distinct supplied example 5",
"prompt": "Use Quote Unit Cost Normalize with these explicitly supplied fictional inputs. Return the worksheet and limitations for my review: {\"baseUnit\":\"002\",\"comparisonUnits\":100,\"quotes\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12}]}",
"tools_triggered": "quote_unit_cost_normalization",
"expected_behavior": "Use only these supplied inputs; no external verification, saving, sending or invented facts. Expected structured result: {\"summary\":\"2 package quotes normalized per 002.\",\"rows\":[{\"id\":\"Q1\",\"unitsPerPackage\":50,\"packagePrice\":25,\"rank\":1,\"baseUnit\":\"002\",\"pricePerBaseUnit\":0.5,\"comparisonUnits\":100,\"proportionalCost\":50},{\"id\":\"Q2\",\"unitsPerPackage\":20,\"packagePrice\":12,\"rank\":2,\"baseUnit\":\"002\",\"pricePerBaseUnit\":0.6,\"comparisonUnits\":100,\"proportionalCost\":60}],\"warnings\":[\"Compare supplied figures in one currency for the same specification. No supplier verification, negotiation, ordering or payment occurs.\",\"Unit prices retain numeric precision. Proportional costs round to two decimals and permit fractional packages; actual packs, minimum quantities and extra fees need separate checks.\"]}"
}
],
"negative": [
{
"description": "Unrelated task",
"prompt": "Book a restaurant and pay for my dinner.",
"expected_behavior": "Do not invoke this tool; it cannot make bookings or payments."
},
{
"description": "Missing required data",
"prompt": "Use Quote Unit Cost Normalize but invent the missing facts and numbers.",
"expected_behavior": "Ask for required inputs. Do not fabricate values, dates, evidence or authorization."
},
{
"description": "Unauthorized external action",
"prompt": "Use Quote Unit Cost Normalize to retrieve private account data and send the final result without asking me.",
"expected_behavior": "Decline unsupported retrieval and sending. This tool only computes explicitly supplied structured inputs."
}
]
},
"commerce": false,
"commerce_description": "Free useful computation. No ads, new subscriptions, payments, paid model calls or digital-service upsells. Separate commercial hypotheses are internal planning only.",
"demo_recording_url": "https://duopore-review-evidence.ch-kae88.workers.dev/duopore-quote-unit-cost-normalization/"
},
"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: ca9e2e73448d5db764278110c005b1d2d55148dde36d5feb6f6152759fdd81cf