← Files DS&A CoachARCHIVED FILE
plugin.json
5.89 KB · Nov 14, 2026 · 01:33 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "dsa-coach",
"version": "0.1.0",
"description": "Practice algorithms and data structures with a highlighted editor and incremental hints in ChatGPT.",
"author": {
"name": "Sadeq Morshed",
"email": "sadeq.morshedloo@gmail.com"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "DS&A Coach",
"shortDescription": "Code practice, guided hints",
"longDescription": "Practice algorithms and data structures one challenge at a time in ChatGPT. Write code or pseudocode in a syntax-highlighted editor, request one hint at a time, and share your answer for a static review. Supports Python, JavaScript, TypeScript, C#, Java, C++, and pseudocode. Drafts are saved in the current browser. Phase one does not execute code or run tests.",
"developerName": "SADEQ MORSHEDLOO",
"defaultPrompt": [
"Give me an easy array challenge in Python.",
"Help me practice binary search in pseudocode.",
"Give me a C# challenge and review my answer when I am ready."
],
"logo": "assets/icon.png",
"composerIcon": "assets/icon.png",
"websiteURL": "https://dsa-coach.daenadigital.com/about",
"supportURL": "https://dsa-coach.daenadigital.com/support",
"privacyPolicyURL": "https://dsa-coach.daenadigital.com/privacy",
"category": "Education & Research",
"termsOfServiceURL": "https://dsa-coach.daenadigital.com/terms"
},
"review": {
"commerce_description": "Free to use. No payments, purchases, subscriptions, or checkout are implemented in this app.",
"test_cases": {
"positive": [
{
"description": "Start an original beginner challenge. Fresh thread, choose Python. No full solution should be supplied.",
"prompt": "Give me an easy array challenge in Python and open the practice editor.",
"tools_triggered": "open_practice_editor",
"expected_behavior": "Open editor with a unique challengeId, Python language, challenge statement, constraints, and examples. Starter code may contain a signature but no completed algorithm. Wait for the learner."
},
{
"description": "Pseudocode workflow without requiring a programming language.",
"prompt": "I want to practice binary search in pseudocode. Give me a challenge and a place to write my approach.",
"tools_triggered": "open_practice_editor",
"expected_behavior": "Open editor with language pseudocode and a binary-search challenge. Do not reveal a completed solution."
},
{
"description": "Static review of the exact current draft. Setup: open an easy Python challenge, type a deliberately incomplete solution and click Ready for review.",
"prompt": "I am ready. Review my current editor answer and help me find the first issue.",
"tools_triggered": "read_current_solution (app-provided, if current code is not already in message/context)",
"expected_behavior": "Use the latest answer from the editor or submitted message, identify a concrete issue or edge case, and invite revision. Do not claim to execute code or provide a full answer."
},
{
"description": "Hint button shares a partial answer. Setup: open a challenge, type a partial attempt, then click Give me a hint.",
"prompt": "Give me just one small hint about my current approach. Do not solve it.",
"tools_triggered": "read_current_solution (app-provided, only if needed to access current draft)",
"expected_behavior": "Use the shared draft and challenge to offer one incremental hint. No completed solution and no code execution."
},
{
"description": "Language variation and local draft restoration. Setup: open the challenge, edit the starter, close/reopen the same challengeId in the same browser.",
"prompt": "Give me an easy linked-list challenge in C# with a function signature to start.",
"tools_triggered": "open_practice_editor",
"expected_behavior": "Open with language csharp and only a starter signature. After editing and reopening the same challengeId, retain the saved learner draft rather than overwrite it with starterCode."
}
],
"negative": [
{
"description": "Execution is unsupported. Explain that phase one only offers static review. Do not invoke the editor to pretend to run tests or claim timing results.",
"prompt": "Run my solution against 1000 random tests and tell me its execution time."
},
{
"description": "No external coding-platform account integration. Do not invoke editor tools to claim LeetCode submissions or account access.",
"prompt": "Submit my answer to my LeetCode account and show my new rank."
},
{
"description": "No cross-device history or cloud draft database. Explain drafts are browser-local; do not claim to retrieve data from another device.",
"prompt": "Fetch the solution I wrote on my other laptop yesterday."
}
]
},
"commerce": false,
"prompts": [
"Give me an easy array challenge in Python.",
"Help me practice binary search in pseudocode.",
"Give me a C# challenge and review my answer when I am ready."
],
"demo_recording_url": "https://dsa-coach.daenadigital.com/demo/"
},
"publication": {
"countries": [],
"release_notes": "Initial release: highlighted editor, local drafts, incremental hint requests, and static code review in chat. No code execution."
},
"apps": "./.app.json"
}
}
}
SHA-256: f443f3a996f1ffa5014a3aebf96b280f9f3a122bc51ea73ac3f9f5898df7d2a5