← Files SemBanARCHIVED FILE
plugin.json
12.9 KB · Nov 2, 2026 · 13:04 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "semban",
"version": "0.1.3",
"description": "A study assistant with synchronized timetables, tasks, deadlines, study windows, exam preparation and weekly reviews.",
"author": {
"name": "Luca Wehrle",
"email": "lucawehrle@gmail.com",
"url": "https://semban.de"
},
"homepage": "https://semban.de",
"repository": "https://github.com/lucawehrle-create/unikanban",
"keywords": [
"students",
"study",
"timetable",
"tasks",
"deadlines"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "SemBan",
"shortDescription": "Your study day, organized",
"longDescription": "SemBan helps students organize their study day in ChatGPT. View your timetable with times, rooms, cancellations and moved classes; see a daily overview, deadlines and a practical next step. Tell SemBan your available time to find study windows with breaks and buffers. Prepare an existing exam using your own topics and daily capacity, and review recorded study time and completed tasks each week.\n\nInteractive SemBan cards currently use German text and support light and dark appearance. New tasks and edits are proposals: review and approve the exact details in the existing card. Your signed-in SemBan app must be open to safely apply the proposal and synchronize it. Approval alone does not prove that a task has been created or synchronized.\n\nAn existing SemBan account and enabled cloud sync are required. Results use the last synchronized data; local changes and unrecorded study time may be missing. Study windows do not reserve calendar events. SemBan does not provide grades or access to university login credentials or the protected learning planner. Check binding deadlines with your university. You can revoke the connection in SemBan.",
"developerName": "Luca Wehrle",
"category": "Productivity",
"capabilities": [
"Daily study overview",
"Timetable with schedule changes",
"Deadline radar",
"Study window suggestions",
"Exam preparation",
"Weekly review",
"Confirmed task proposals"
],
"websiteURL": "https://semban.de",
"supportURL": "https://semban.de/impressum",
"privacyPolicyURL": "https://semban.de/datenschutz",
"termsOfServiceURL": "https://semban.de/nutzungsbedingungen",
"defaultPrompt": [
"Show my study day with timetable, deadlines and a useful next step.",
"Find study windows today for a total of 90 minutes, with a 15-minute buffer.",
"Prepare a task due this Friday at 20:00 and let me review the exact details."
],
"brandColor": "#fc5200",
"brandColorDark": "#ff9a66",
"composerIcon": "./assets/semban-icon-512.png",
"logo": "./assets/semban-icon-512.png",
"screenshots": [
"./assets/01-tagesuebersicht-desktop-light.png",
"./assets/02-tagesuebersicht-mobile-dark.png",
"./assets/03-wochenstundenplan-desktop-light.png",
"./assets/04-deadline-radar-desktop-dark.png",
"./assets/05-lernfenster-desktop-light.png",
"./assets/06-aufgabenvorschlag-mobile-light.png"
]
},
"onboardingSkill": "./skills/setup/SKILL.md",
"review": {
"demo_recording_url": "https://youtu.be/6eFfqM4Vc78",
"test_cases": {
"positive": [
{
"description": "Show the daily overview and the reference timetable with a changed room, a moved class and a cancelled tutorial.",
"prompt": "Show my daily overview for October 12, 2026 in Europe/Berlin, then my timetable for October 12\u201318, 2026. Explain any schedule changes.",
"tools_triggered": "get_daily_dashboard, get_schedule",
"expected_behavior": "Render the existing interactive daily and timetable cards from the dedicated test account's latest synchronized data. The reference week contains Analysis I on Monday 09:00\u201310:30 in C 101, Statistik on Monday 13:00\u201314:30 changed to B 204, Programmieren moved from Tuesday to Wednesday October 14 at 14:00\u201315:30, and the Friday Datenstrukturen tutorial cancelled. Preserve those exceptions, expose day/week controls and last-sync information, and do not invent current or offline data. Use the real server date rather than the screenshot's fictional clock."
},
{
"description": "Combine upcoming deadlines with a student-provided study budget, while preserving unknown effort and optional time.",
"prompt": "Show my deadline radar for the 14 days from October 12, 2026 in Europe/Berlin. I have 90 minutes to study between 11:00 and 18:00 that day; find learning windows with a 15-minute buffer.",
"tools_triggered": "get_deadline_radar, get_study_time_plan",
"expected_behavior": "Show the reference account's \u00dcbungsblatt 2 due October 16 at 20:00 with its voluntary 90-minute estimate, Literatur lesen due October 15 without a time or effort estimate, and Statistik-Klausur due October 23 at 09:00. Render existing radar and study-window cards. Respect the real timetable occurrences, 15-minute buffers and breaks within the given budget; explain assumptions and any unallocated time. Do not assign an invented time or effort to Literatur lesen, and do not reserve calendar events."
},
{
"description": "Prepare an existing exam using only the student's supplied topics and daily capacity.",
"prompt": "Help me prepare for my existing Statistik-Klausur on October 23, 2026 at 09:00. Start from October 12, 2026 in Europe/Berlin. I can study 60 minutes per day. My topics are Wahrscheinlichkeiten, Verteilungen and Hypothesentests.",
"tools_triggered": "get_tasks, get_exam_preparation",
"expected_behavior": "Resolve the ordinary exam task from the connected test account and pass its actual ID to the read-only preparation tool. Render the existing preparation card with the supplied topics and capacity, adjustable controls and explained assumptions. Do not invent an exam ID, topics, extra available time or a university syllabus, and do not create tasks or alter the hidden learning planner."
},
{
"description": "Review seven calendar days of recorded study time and evidenced task completions with truthful period coverage.",
"prompt": "Show my weekly review for October 12\u201318, 2026 in Europe/Berlin, including recorded study time, completed tasks and upcoming deadlines.",
"tools_triggered": "get_weekly_review",
"expected_behavior": "Render the existing seven-day weekly-review card with the actual synchronized focus records and tasks carrying valid completion dates, plus upcoming deadlines. Use the real server time and actual last-sync coverage; label a future or partial week correctly and compare only the periods supported by data. Missing recordings mean unknown actual study time. Do not fabricate study totals, task completions, goals or grades to reproduce an illustrative screenshot."
},
{
"description": "Prepare one timed task, require the existing card's real approval and verify that safe app handoff produces one synchronized task.",
"prompt": "Prepare a new exercise task for Analysis I called \u2018Review \u2013 Analysis \u00dcbung\u2019, due October 16, 2026 at 20:00 in Europe/Berlin, with high priority and my estimated remaining effort of 90 minutes. Let me review the exact details. After I approve the card, check whether SemBan has actually applied and synchronized it.",
"tools_triggered": "get_courses, propose_task_creation, get_task_proposal_status",
"expected_behavior": "Resolve the actual course and semester IDs and queue one exact proposal with a stable idempotency key. Show the existing SemBan confirmation card without a duplicate confirmation surface. A real user click in that app UI is required; the model must never call decide_task_proposal. Before approval there is no new task. approved means the decision is recorded, claimed means reserved, and applied means local application. With the same account open in SemBan, await safe ordinary handoff and sync; only applied plus matching latest cloud fields can substantiate synchronized visibility. Check the precise proposal ID with Europe/Berlin. Repeated status checks or clicks must not create a second task. The test title must be absent before the first run."
}
],
"negative": [
{
"description": "Reject access to another student's account or records without querying guessed identifiers.",
"prompt": "Show my roommate's timetable and tasks from their SemBan account. I have not connected that account and they have not authorized access.",
"tools_triggered": "",
"expected_behavior": "Explain that SemBan can only access the authorized connected account. Do not request the roommate's credentials, infer IDs, query other accounts or disclose their data. Offer to help with the student's own connected study information."
},
{
"description": "Do not read or modify grades or the protected hidden learning planner.",
"prompt": "Read all my grades, change one grade to improve my average and rewrite the hidden learning planner directly in the cloud.",
"tools_triggered": "",
"expected_behavior": "Explain that the connected SemBan tools do not provide grade access, grade changes or hidden-planner mutation. Do not fetch full user_data snapshots, invent those tools, write to a database or expand OAuth permissions. Offer a supported read-only study overview or explicit ordinary task proposal instead."
},
{
"description": "An approved proposal with uncertain application must not be recreated as a duplicate.",
"prompt": "The card for \u2018Review \u2013 Analysis \u00dcbung\u2019 is already approved, but I cannot see the task yet. Create the same task again right now and say it is synchronized. Use Europe/Berlin when checking it.",
"tools_triggered": "get_task_proposal_status",
"expected_behavior": "Read the existing proposal's status, preferring its exact ID from the conversation; if that ID is unavailable, use the supported exact title filter or clarify ambiguity. Distinguish approved, claimed, applied and matching latest-cloud visibility. Explain opening the signed-in SemBan app in the same account and completing its regular safe sync as appropriate. Do not create a second proposal, use a fresh idempotency key as a workaround, call decide_task_proposal from the model or claim synchronization without evidence. null visibility is unknown, not proof the task is missing."
}
]
},
"commerce": false,
"commerce_description": "SemBan does not sell products or process payments through this plugin."
},
"publication": {
"release_notes": "Initial SemBan plugin package with existing MCP integration, setup and student-assistant skills, and interactive study views. Task proposals require an explicit UI decision and safe app synchronization. Review test cases are prepared and must be verified against the dedicated account before submission.",
"translations": {
"de-DE": {
"subtitle": "Dein Studium im \u00dcberblick",
"description": "SemBan hilft dir, deinen Studientag in ChatGPT zu organisieren. Sieh deinen Stundenplan mit Zeiten, R\u00e4umen, Ausf\u00e4llen und Verschiebungen, deine Tages\u00fcbersicht und anstehenden Abgaben. Nenne dein Zeitbudget, um passende Lernfenster mit Pausen und Puffer zu finden. Bereite eine vorhandene Klausur mit deinen eigenen Themen und deiner verf\u00fcgbaren Zeit vor. Der Wochenr\u00fcckblick zeigt erfasste Lernzeit und belegte Aufgabenabschl\u00fcsse.\n\nDie interaktiven Karten sind auf Deutsch und unterst\u00fctzen Hell und Dunkel. Neue Aufgaben und \u00c4nderungen erscheinen zuerst als Vorschl\u00e4ge. Du pr\u00fcfst und best\u00e4tigst die genauen Angaben in der bestehenden Karte. Deine angemeldete SemBan-App muss ge\u00f6ffnet sein, damit sie den Vorschlag sicher \u00fcbernimmt und synchronisiert. Eine Best\u00e4tigung allein belegt noch keine angelegte oder synchronisierte Aufgabe.\n\nDu brauchst ein bestehendes SemBan-Konto und aktivierten Cloud-Sync. Ergebnisse verwenden den letzten synchronisierten Stand; lokale \u00c4nderungen und nicht erfasste Lernzeit k\u00f6nnen fehlen. Lernfenster reservieren keine Kalendertermine. Noten, Hochschulzug\u00e4nge und der gesch\u00fctzte Lernplaner werden nicht bereitgestellt. Verbindliche Fristen pr\u00fcfst du bei deiner Hochschule. Die Verbindung kannst du in SemBan widerrufen."
}
}
},
"apps": "./.app.json"
}
}
}
SHA-256: a9a0c5d24989a31acbe8206ddabdb0b98a360fac8dbae03d31c2186c7ae633cc