← Files Smarty PANCEARCHIVED FILE
plugin.json
9.85 KB · Nov 6, 2026 · 18:19 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "smarty-pance",
"version": "1.1.0",
"description": "PANCE, PANRE and EOR board review: QBank questions, weak areas, flashcards and PEARLS.",
"author": {
"name": "The PA Life, INC",
"email": "stephen@smartypance.com",
"url": "https://smartypance.com"
},
"homepage": "https://smartypance.com/ai-connect/",
"keywords": [
"education",
"PANCE",
"PANRE",
"EOR",
"physician assistant",
"board review"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Smarty PANCE",
"shortDescription": "PANCE, PANRE & EOR review",
"longDescription": "Smarty PANCE connects ChatGPT to your Smarty PANCE membership. Find your weakest areas from your own QBank results, weighted by the NCCPA blueprint; get board-style practice questions with explanations; build custom quizzes and exams; make high-yield flashcards and clinical PEARLS cards; and search the PANCE, PANRE, PAEA EOR and EOC blueprints with links to matching lessons. Content is written by PAs and mapped to the official blueprints.\n\nEligible Program Portal directors can view study summaries for their authorized cohorts when cohort AI access is enabled. Requires an active Smarty PANCE membership or eligible Program Portal director access.\n\nFor education and exam preparation, not patient-specific medical advice. Do not use it while answering PANRE-LA questions; NCCPA does not allow AI-generated answers during PANRE-LA.",
"developerName": "Smarty PANCE",
"category": "Education & Research",
"capabilities": [
"Blueprint search",
"Practice questions and grading",
"Flashcards and PEARLS",
"Personalized study review",
"Authorized program summaries"
],
"websiteURL": "https://smartypance.com",
"supportURL": "https://smartypance.com/contact/",
"privacyPolicyURL": "https://smartypance.com/privacy-policy/",
"termsOfServiceURL": "https://smartypance.com/terms-and-conditions/",
"defaultPrompt": [
"Quiz me on atrial fibrillation.",
"What are my weakest areas?",
"Make 6 flashcards on asthma."
],
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"review": {
"commerce": false,
"commerce_description": "Requires an existing active Smarty PANCE membership or eligible Program Portal director access. This plugin does not sell memberships, process payments, show advertising, or provide checkout.",
"test_cases": {
"positive": [
{
"description": "P1: Request one atrial-fibrillation practice question and grade the member's response. Use the dedicated active reviewer account. Wait for the complete question before sending the follow-up letter. Then send B as a separate follow-up message.",
"prompt": "@Smarty PANCE give me a practice question on atrial fibrillation.",
"tools_triggered": "smartypance_get_practice_question, then smartypance_check_practice_answer",
"expected_behavior": "Return one relevant question with every option supplied by the QBank. Hide the correct answer and explanation until the member replies. Grade B using the attempt identifier returned for that question, correctly report whether B is right or wrong, and return the correct answer, explanation, and matching lesson link. Do not assume B is the correct answer. Do not omit an option if the QBank supplies more than five."
},
{
"description": "P2: Retrieve the dedicated reviewer's own weak areas. Before running this case, provide representative synthetic QBank history for the reviewer account so the personalized result can be demonstrated.",
"prompt": "@Smarty PANCE what are my weakest areas?",
"tools_triggered": "smartypance_my_study_profile",
"expected_behavior": "Return PANCE organ-system accuracy, blueprint context, weak areas, and recommended study priorities grounded in the signed-in reviewer's own synthetic QBank history. Do not expose another member's individual results. If history is insufficient, say so and avoid inventing scores; that fallback does not by itself demonstrate the populated-history scenario."
},
{
"description": "P3: Retrieve an exact number of topic-specific flashcards.",
"prompt": "@Smarty PANCE make 6 flashcards on asthma.",
"tools_triggered": "smartypance_get_flashcards",
"expected_behavior": "Call the flashcard tool with topic_query asthma and count 6. Return exactly six relevant question-and-answer cards, each focused on one fact. Do not claim a persistent deck was saved unless a separate, explicitly authorized saving operation actually occurred."
},
{
"description": "P4: Retrieve a clinical PEARLS study card and its source lesson.",
"prompt": "@Smarty PANCE give me the PEARLS card for pulmonary embolism.",
"tools_triggered": "smartypance_get_clinical_topic",
"expected_behavior": "Retrieve pulmonary embolism and present the returned board-review material, including presentation, diagnosis, treatment, high-yield pearls, and the matching Smarty PANCE lesson link. Keep the response faithful to the tool result and framed as exam preparation."
},
{
"description": "P5: Retrieve the cohorts and a cohort summary available to the dedicated Program Portal reviewer. The reviewer must be restricted to the fictional Demo Program.",
"prompt": "@Smarty PANCE list my cohorts, then summarize the Demo Program.",
"tools_triggered": "smartypance_faculty_list_cohorts, then smartypance_faculty_cohort_summary",
"expected_behavior": "List only cohorts available to the demo-only reviewer, then summarize the fictional Demo Program using the identifier returned by the list call. Return fictional aggregate study metrics and no real program's roster, scores, or student details."
},
{
"description": "P6: Plain study request with no tool names, to confirm the study-coach skill routes to the QBank instead of an AI-written question. Use the dedicated active reviewer account.",
"prompt": "@Smarty PANCE quiz me on hyperkalemia.",
"tools_triggered": "smartypance_get_practice_question",
"expected_behavior": "Call the practice-question tool and present the QBank question labeled as coming from the Smarty PANCE QBank, with every option and no answer, then wait for the member's letter. Do not write an original question or cite outside guidelines as its source."
}
],
"negative": [
{
"description": "N1: Reject duplicate grading. Immediately after P1, replay the grading request with the same attempt identifier within its 6-hour lifetime. A conversational refusal without a tool call does not establish that the server guard was tested.",
"prompt": "@Smarty PANCE grade that same question again with B.",
"tools_triggered": "smartypance_check_practice_answer if the model retries; also verify the server with an authorized direct replay of the same attempt",
"expected_behavior": "Refuse a second grading of the consumed attempt with an already-answered or expired-attempt message, and do not record a second answer or score."
},
{
"description": "N2: Enforce cohort authorization for the demo-only reviewer. Test the conversational request and an authorized direct tool call using an out-of-scope cohort name. No real student data should be returned.",
"prompt": "@Smarty PANCE summarize Campbell University - 2027 Cohort.",
"tools_triggered": "smartypance_faculty_cohort_summary, or a clarification/refusal limited to the permitted cohorts",
"expected_behavior": "Reject the out-of-scope cohort request or explain that only permitted cohorts are available. Do not return that real cohort's roster, scores, student details, or other protected records. A model refusal alone is not proof of server-side authorization; confirm the direct tool denial separately."
},
{
"description": "N3: Require authentication before protected MCP access. Send a protected JSON-RPC POST to https://smartypance.com/mcp without an Authorization header. Also check the disconnected ChatGPT experience separately; a browser GET is not an equivalent server test.",
"prompt": "While disconnected from Smarty PANCE, ask: @Smarty PANCE give me a practice question on atrial fibrillation.",
"tools_triggered": "No successful protected tool execution before authentication",
"expected_behavior": "The unauthenticated protected POST returns HTTP 401 and an OAuth authentication challenge without protected content or study records. The disconnected ChatGPT experience offers the member a sign-in flow. Server transport behavior and ChatGPT sign-in presentation are separate checks."
}
]
}
},
"publication": {
"release_notes": "Adds two skills. smarty-pance-study-coach routes every study request (practice questions, quiz me, flashcards, PEARLS, weak areas, custom reviews, blueprint lookups) through the Smarty PANCE tools so members get real QBank questions and lesson links instead of AI-written content, and keeps the PANRE-LA rule up front. smarty-pance-program-director guides authorized Program Portal directors through their own cohort summaries with confidentiality rules. Metadata, sign-in and MCP server are unchanged except updated starter prompts and a new test case (P6)."
},
"apps": "./.app.json"
}
}
}
SHA-256: 75dff0ef96fa68e6e6d96999e3c3f7351f100607c8885c329a6caddf5c777a76