A personal knowledge management system that processes notes using Gemini AI, saves them to Notion, and provides chat/search capabilities over a knowledge base. Includes Gmail/Calendar integration and reminder management.
Critical failures across naming, descriptions, and schemas. Tool names are generic (process, handle, chat) and lack action verbs. Most tools lack parameter descriptions entirely. Input schemas are either missing or incomplete. No output schemas documented. Error handling is absent. This server would not pass code review.
POST /chat - Ask questions about notes with optional brainstorming mode using Gemini AI
POST /delete-notion - Archive a Notion page
GET /reminders - Retrieve all reminders from Notion database
POST /process - Process a note with Gemini AI and save to Notion
Authenticate user with password and return session token
Invalidate the current session token
Process a note: analyze with Gemini AI to extract metadata (title, type, summary, tags, actions, insights), save to Notion, and return structured result with Notion URL
Generic tool names lack action verbs. 'process', 'handle', 'chat' do not convey intent. LLMs cannot distinguish between process (main.py), handle (web/app.py), and reprocess without reading full descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., process() returns a dict with 'url' field, but this is not formally specified.
Parameter descriptions missing or trivial. 'content' param in process/handle/reprocess lacks format guidance. 'date' in set_reminder says 'ISO date string' but no validation or error handling shown. 'page_id' in delete_notion/set_reminder lacks context on format.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | <=2025-11-25 | v2 |
Analyze a note with Gemini AI and extract structured metadata (title, type, summary, tags, actions, insights)
POST /reprocess - Reprocess an existing note with Gemini AI
Save parsed note to local Obsidian vault as markdown file
Save processed note data to Notion database with formatted blocks and properties
POST /set-reminder - Set or clear a reminder date on a Notion page
Watch inbox directory for markdown files and process them automatically with 30-second debounce
No error handling guidance. Exceptions caught and returned as JSON {'error': str(e)}, but no recovery hints. E.g., if Notion API fails, LLM gets a 500 with no actionable next step.
Destructive operations (delete_notion) lack confirmation or dry-run support. An agent could accidentally archive Notion pages without a safety gate.