A web application that generates customized study plans using Google Gemini AI. Users input their learning parameters (subject, level, time commitment, learning style, goal) and receive a structured, week-by-week curriculum with topics, resources, deliverables, and quizzes.
Single tool 'recommend-study-plan' has a well-structured input schema with proper enums and descriptions (subject, currentLevel, hoursPerWeek, durationWeeks, learningStyle, goal). Tool description is comprehensive (180+ chars) and explains the output clearly. Output schema is explicitly defined with nested objects for weeks, topics, resources, deliverables, quizzes, and milestones, exceeding baseline expectations. However, the tool name lacks a clear action verb (should be 'generate_study_plan' or 'create_study_plan'), and parameter descriptions could be more concise per LLM optimization guidelines (10 - 1024 chars, ideally 50 - 200). No error handling guidance visible in the code snippet. Input validation is present (missing fields check) but error messages are generic.
Generates a customized study plan based on user questionnaire inputs. Takes subject, current level, available hours per week, duration in weeks, learning style preference, and learning goal. Returns a structured study plan with title, description, weekly breakdown, topics, resources, deliverables, quizzes, and milestones tailored to the user's learning profile.
Tool name 'recommend-study-plan' does not start with a clear action verb. Should be 'generate_study_plan', 'create_study_plan', or 'build_study_plan' to match LLM verb-noun conventions and improve discoverability.
No error handling guidance for LLM recovery. Error responses (e.g., 'Missing required fields') do not suggest next steps or categorize errors as retryable vs. fatal. Should include recovery hints like 'Ensure all fields are provided: subject, currentLevel, hoursPerWeek, durationWeeks, learningStyle, goal.'
Parameter descriptions are verbose (e.g., 'Available weekly study time in hours (2-40)' is clear but could be tightened). Baseline for LLM-optimized descriptions is 50 - 200 chars; some descriptions exceed this. Trim to essential constraints and rationale.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Output schema is comprehensive but not validated at runtime. No explicit check that returned quiz options match correctAnswer or that difficulty values are constrained to 'Easy|Medium|Hard'. Runtime validation would prevent malformed responses.
Tool is READ_ONLY (no state mutation), but description does not explicitly state this. LLMs benefit from knowing which tools are safe to retry without side effects. Add 'This tool is read-only and idempotent, safe to call multiple times with the same input.'