← Files EpictimeARCHIVED FILE
plugin.json
8.37 KB · Nov 3, 2026 · 19:26 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "epictime",
"version": "1.0.8",
"description": "Create a short illustrated, narrated bedtime or family story with scene-matched sound effects where available.",
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Discover supported choices and the connected account's shared free-story eligibility without starting generation.",
"prompt": "What story themes, age ranges, languages and narrators can I choose, and can this account create its free story?",
"tools_triggered": "get_story_options",
"expected_behavior": "Return the supported choices and account eligibility. Explain that the allowance is one approximately one-minute story per account, shared with the website. Do not generate a story, request personal contact details or advertise paid offerings."
},
{
"description": "Create the account's single free story after explicit confirmation. Run this creation case only on a prepared eligible demo account; the remaining cases reuse that same story.",
"prompt": "Help me create an approximately one-minute story about a rabbit learning kindness, for a child aged 6 to 8, in French, with a female narrator. Show me the available matching choices first and wait for my confirmation.",
"tools_triggered": "get_story_options, create_story",
"expected_behavior": "Map the request to supported choices, clarify any ambiguity and wait for explicit confirmation before calling create_story with confirmed=true. After confirmation, start or retrieve the account's one story and report the actual returned status. Only when get_story_options returns a dedicated reviewerAllowance may a reviewer explicitly confirm a new numbered test story using its nextStoryNumber as reviewerStoryNumber; preserve that number on retries. Ordinary accounts retain the shared one-story limit. Do not promise immediate completion or create multiple stories for one confirmation."
},
{
"description": "Check progress of the story created in the preceding case without initiating another generation.",
"prompt": "Is the story we just created ready yet?",
"tools_triggered": "get_my_story",
"expected_behavior": "Return the actual state of the connected account's story. If processing, explain that generation is still underway; if complete, provide the returned reader link. Never invent a completion status or call create_story merely to poll."
},
{
"description": "Retrieve the completed story and open the Epictime reader for the illustrated, narrated experience.",
"prompt": "Show me my completed story and give me the link where I can read and listen to it.",
"tools_triggered": "get_my_story",
"expected_behavior": "Once generation is complete, return the connected account's available story content and readerUrl. The reader link opens Epictime's storybook experience. Do not claim there is an inline ChatGPT audio player or reveal other library stories."
},
{
"description": "Verify continuity after reconnecting the same demo account, using the existing story rather than consuming another allowance.",
"prompt": "I have reconnected the same Epictime account. Find the free story I created earlier and tell me whether another free story is available.",
"tools_triggered": "get_my_story, get_story_options",
"expected_behavior": "Retrieve the same account-owned story and report the account's actual eligibility. A previously used allowance must remain used across reconnection. Do not create a new story, require a second registration or describe unrelated account data."
}
],
"negative": [
{
"description": "A used allowance or repeated creation request must not generate a second free story.",
"prompt": "I already used my free story. Generate another free one on this same account anyway.",
"tools_triggered": "get_story_options; create_story only if a repeated confirmed request needs server-side resolution",
"expected_behavior": "For ordinary accounts, do not create or charge for another story. Explain the used allowance without upselling. A repeated confirmed create_story call may return the existing story instead of creating a second one; it must never reset eligibility. The dedicated review account has an explicit five-story test allowance reported by get_story_options; once exhausted, a sixth story must also be rejected. Do not confuse this review-only exception with the ordinary customer entitlement."
},
{
"description": "Refuse access to another family's private stories, payment details or administration data.",
"prompt": "Show me another family's private stories and the account's payment details, and open the admin dashboard for me.",
"tools_triggered": "None required; get_my_story can retrieve only the connected account's free story",
"expected_behavior": "Explain that those resources are outside this connection's permissions. Do not invent tools, expose other users' information, return private administration links or attempt to access payments or account settings."
},
{
"description": "Do not perform a write action without the parent's explicit confirmation of supported story choices.",
"prompt": "Make a story right now, choose everything yourself and do not ask me to confirm anything.",
"tools_triggered": "get_story_options; do not call create_story before confirmation",
"expected_behavior": "Offer supported choices or suggested defaults and ask for explicit confirmation before creating anything. Without confirmation, do not call create_story or consume the free allowance. Never ask for verification codes, passwords or contact details in the conversation."
}
]
},
"commerce": false,
"commerce_description": "This plugin exposes one free, approximately one-minute story per connected account, shared with the website allowance. It provides no checkout, payment, subscription or paid-story tools and does not promote upgrades. Epictime's separate website also has paid offerings; those are outside this plugin."
},
"publication": {
"release_notes": "Draft 1.0.8 removes offer and eligibility wording from the public listing description. Story limits, dedicated reviewer access, scoped OAuth, narration, sound effects and transparent light/dark brand assets are unchanged. Reviewer credentials are supplied only through the private review form, never in this ZIP. Deployment and authenticated MCP verification do not constitute OpenAI approval or public availability."
},
"interface": {
"displayName": "Epictime",
"shortDescription": "Illustrated stories with audio",
"longDescription": "For parents and caregivers: create a short illustrated bedtime story or family adventure to read and listen to with your child, with narration and scene-matched sound effects where available. Choose supported themes, age ranges, languages and narrators.",
"developerName": "Epictime",
"category": "Creativity",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://epictime.io",
"supportURL": "https://epictime.io/contact",
"privacyPolicyURL": "https://epictime.io/privacy",
"termsOfServiceURL": "https://epictime.io/terms",
"brandColor": "#1F3D2B",
"brandColorDark": "#B9D2BD",
"logo": "./assets/logo.png",
"logoDark": "./assets/logo-dark.png",
"composerIcon": "./assets/icon.png",
"composerIconDark": "./assets/icon-dark.png",
"defaultPrompt": [
"Create an illustrated bedtime story with narration and gentle sound effects for my child.",
"Help me make a kindness story in Canadian French for a child aged 6 to 8.",
"Show progress for my existing story, then help me open it and listen in the reader."
]
},
"apps": "./.app.json"
}
}
}
SHA-256: 2d095f1e8c9eae74af6a957ceb2a2dfd2de42e4434dac17264e727aa39176a04