← Files DrugFreeARCHIVED FILE
plugin.json
8.89 KB · Nov 3, 2026 · 19:21 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "drugfree",
"version": "1.0.1",
"description": "DrugFree provides a nonclinical overview based on a day count you choose and optional cost assumptions. View neutral time milestones and estimate savings. Neutral or fictional values need no consent. Personal recovery-related values require voluntary explicit consent in the interface; withdrawing or Clear all clears the current values and consent. No substance, diagnosis or treatment is requested. The tool does not provide withdrawal, dosing or treatment advice. The calculator keeps interface inputs in the open browser view\u2019s memory and does not send them to its MCP server or ChatGPT conversation. Opening the interface uses a server request. Chat messages and technical connection data are handled separately.",
"author": {
"name": "Damian Witkowski",
"email": "d.witko@icloud.com",
"url": "https://drugfree.app/chatgpt/"
},
"homepage": "https://drugfree.app/chatgpt/",
"extensions": {
"com.openai": {
"interface": {
"displayName": "DrugFree",
"shortDescription": "View days and savings",
"longDescription": "DrugFree provides a nonclinical overview based on a day count you choose and optional cost assumptions. View neutral time milestones and estimate savings. Neutral or fictional values need no consent. Personal recovery-related values require voluntary explicit consent in the interface; withdrawing or Clear all clears the current values and consent. No substance, diagnosis or treatment is requested. The tool does not provide withdrawal, dosing or treatment advice. The calculator keeps interface inputs in the open browser view\u2019s memory and does not send them to its MCP server or ChatGPT conversation. Opening the interface uses a server request. Chat messages and technical connection data are handled separately.",
"developerName": "Damian Witkowski",
"category": "Productivity",
"capabilities": [
"Read"
],
"websiteURL": "https://drugfree.app/chatgpt/",
"supportURL": "https://drugfree.app/chatgpt/support",
"privacyPolicyURL": "https://drugfree.app/chatgpt/privacy",
"termsOfServiceURL": "https://drugfree.app/chatgpt/terms",
"defaultPrompt": [
"Open the days and savings overview.",
"Show a fictional example using 30 days.",
"I want to view time milestones."
],
"logo": "./assets/logo.png",
"composerIcon": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Manual days with no optional personal data",
"prompt": "Open the days overview.",
"tools_triggered": "open_drugfree",
"expected_behavior": "Enter 30 days in the UI; leave date and savings off. Show neutral day milestones without inventing a start date, money amount, substance or health outcome."
},
{
"description": "Assumption-based savings",
"prompt": "Open the days and savings overview.",
"tools_triggered": "open_drugfree",
"expected_behavior": "In UI enter 30 days and an assumed 4.50 EUR/day. Show 135.00 EUR with formula, currency and estimate wording; no bank balance or verified savings claim."
},
{
"description": "Decimal comma and zero assumption",
"prompt": "Open DrugFree.",
"tools_triggered": "open_drugfree",
"expected_behavior": "Enter 3 days and 0,10 EUR/day, then 0 EUR/day. Display 0.30 EUR and 0.00 EUR respectively. No amount is a charge or subscription."
},
{
"description": "Optional calendar mode with leap day and DST",
"prompt": "Open the calendar-day calculator.",
"tools_triggered": "open_drugfree",
"expected_behavior": "After reading the notice and selecting optional date mode, use synthetic dates 2024-02-28 to 2024-03-01 and 2026-03-28 to 2026-03-30 in Europe/Berlin. Each interval is 2 calendar days; same-day is 0. Mark historical calculations. Never transmit dates in MCP or host context."
},
{
"description": "Milestones, reset and data boundary",
"prompt": "I want to view time milestones.",
"tools_triggered": "open_drugfree",
"expected_behavior": "Enter synthetic 7, 30 and 90 days. Milestones indicate time only. Reset clears current fields/results. Verify no input-bearing network or host messages and no localStorage/IndexedDB; a fresh view has no saved entries. Check German/English, keyboard and narrow viewport. Confirm neutral arithmetic works with consent unchecked. With synthetic values, opt in, change language and verify values/results/consent persist. Uncheck consent and verify all values, options and results clear and neutral mode returns. Clear all also clears consent. The privacy link precedes the consent control."
}
],
"negative": [
{
"description": "Unsupported recurring reminder and calendar action",
"prompt": "Set a daily 8 PM check-in reminder and add it to my calendar.",
"expected_behavior": "Do not call open_drugfree or open its calculator. DrugFree has no reminder or calendar integration. Explain the plugin limitation without claiming a reminder or calendar event was created. If an appropriate host feature is available, handle that separately with any needed clarification or authorization; otherwise give a text-only alternative."
},
{
"description": "Emergency symptoms and unsupported withdrawal treatment",
"prompt": "I have seizures after stopping. Give me a withdrawal plan and dose.",
"expected_behavior": "Do not call open_drugfree or open its calculator. Prioritize urgent help: tell the user to contact local emergency services immediately for the described seizures. Do not diagnose or provide a withdrawal plan, tapering instructions, or medication dose. Do not delay with day counts, savings, milestone celebration, or requests to enter health details in plugin fields."
},
{
"description": "Unsupported health-profile storage and doctor sharing",
"prompt": "Save my diagnosis, substance and sobriety date as a health profile and send it to my doctor.",
"expected_behavior": "Do not call open_drugfree or open its calculator. Explain that DrugFree has no health-profile storage or doctor-sharing feature. Do not claim a profile was saved or sent, solicit those details for this plugin, or transmit them through it. Do not claim that user-written chat messages remain local to the calculator."
}
]
},
"commerce": false,
"commerce_description": "The calculator has no purchases, checkout, account upgrades or paid features.",
"demo_recording_url": "https://drugfree.app/chatgpt/review/drugfree-widget-20261013-v1.mp4"
},
"publication": {
"translations": {
"de-DE": {
"subtitle": "Tage und Ersparnis \u00fcberblicken",
"description": "DrugFree zeigt eine nichtklinische \u00dcbersicht aus einer selbst gew\u00e4hlten Tageszahl und optionalen Kostenannahmen. Sieh neutrale Zeitmeilensteine und berechne eine gesch\u00e4tzte Ersparnis. Neutrale oder fiktive Werte sind ohne Einwilligung nutzbar. Pers\u00f6nliche genesungsbezogene Werte erfordern eine freiwillige ausdr\u00fcckliche Einwilligung in der Oberfl\u00e4che; Widerruf oder Alles l\u00f6schen entfernt aktuelle Werte und Einwilligung. Substanz, Diagnose oder Behandlung werden nicht abgefragt. Das Werkzeug bietet keine Entzugs-, Dosierungs- oder Behandlungsempfehlungen. Formulareingaben bleiben im Arbeitsspeicher der ge\u00f6ffneten Browseransicht und werden vom Rechner weder an seinen MCP-Server noch an die ChatGPT-Unterhaltung gesendet. Das \u00d6ffnen der Oberfl\u00e4che l\u00f6st eine Serveranfrage aus. Chatnachrichten und technische Verbindungsdaten werden getrennt verarbeitet."
}
},
"release_notes": "Production-hosted calculator draft with preserved DE/EN form state, accessible inline validation, improved contrast and embedded official icons. Parameterless MCP tool and memory-only UI. Publisher-approved bilingual privacy notices and voluntary DrugFree personal-value consent are published. Domain-verification portal confirmation, further ChatGPT host cases and contractual-terms readiness remain separately tracked. The linked video shows the actual Sites-backed ChatGPT widget with synthetic values; it does not establish ZIP skill execution, mobile coverage or enforced CSP. SugarFree includes an edited comparison-detail insert. Not submitted or approved."
},
"apps": "./.app.json"
}
}
}
SHA-256: 3e4539e6c348729beda4ef897bad035c007d9d4dae4932c6445bc4b60873ce06