[ { "input": "buy milk on the way home", "expected_type": "todo", "expected_time": null, "expected_body": "buy milk on the way home", "expected_rrule": null, "notes": "plain todo, no time signal" }, { "input": "pick up dry cleaning", "expected_type": "todo", "expected_time": null, "expected_body": "pick up dry cleaning", "expected_rrule": null, "notes": null }, { "input": "fix the leaky tap in the bathroom", "expected_type": "todo", "expected_time": null, "expected_body": "fix the leaky tap in the bathroom", "expected_rrule": null, "notes": "starts with 'fix'" }, { "input": "write release notes for v0.2", "expected_type": "todo", "expected_time": null, "expected_body": "write release notes for v0.2", "expected_rrule": null, "notes": "starts with 'write'" }, { "input": "email the accountant about last quarter", "expected_type": "todo", "expected_time": null, "expected_body": "email the accountant about last quarter", "expected_rrule": null, "notes": "starts with 'email'" }, { "input": "check the breadpad logs for errors", "expected_type": "todo", "expected_time": null, "expected_body": "check the breadpad logs for errors", "expected_rrule": null, "notes": "starts with 'check'" }, { "input": "finish implementing the notification popup", "expected_type": "todo", "expected_time": null, "expected_body": "finish implementing the notification popup", "expected_rrule": null, "notes": "starts with 'finish'" }, { "input": "update the workspace dependencies", "expected_type": "todo", "expected_time": null, "expected_body": "update the workspace dependencies", "expected_rrule": null, "notes": "starts with 'update'" }, { "input": "clean up the old git branches", "expected_type": "todo", "expected_time": null, "expected_body": "clean up the old git branches", "expected_rrule": null, "notes": "contains 'clean '" }, { "input": "call mum at 7pm", "expected_type": "reminder", "expected_time": "19:00", "expected_body": "call mum", "expected_rrule": null, "notes": "12h reminder; body should have time phrase stripped" }, { "input": "dentist appointment at 3pm", "expected_type": "reminder", "expected_time": "15:00", "expected_body": "dentist appointment", "expected_rrule": null, "notes": null }, { "input": "pack calculator in bag at 7pm", "expected_type": "reminder", "expected_time": "19:00", "expected_body": "pack calculator in bag", "expected_rrule": null, "notes": "time stripped from middle of sentence" }, { "input": "meeting prep at 14:30", "expected_type": "reminder", "expected_time": "14:30", "expected_body": "meeting prep", "expected_rrule": null, "notes": "24h time with minutes" }, { "input": "check the deploy at 23:00", "expected_type": "reminder", "expected_time": "23:00", "expected_body": "check the deploy", "expected_rrule": null, "notes": "24h late-night reminder" }, { "input": "lunch at 12pm", "expected_type": "reminder", "expected_time": "12:00", "expected_body": "lunch", "expected_rrule": null, "notes": "noon edge case" }, { "input": "buy milk at the store", "expected_type": "todo", "expected_time": null, "expected_body": "buy milk at the store", "expected_rrule": null, "notes": "'at the store' has no digit — should not be parsed as time" }, { "input": "take a break in 20 minutes", "expected_type": "reminder", "expected_time": null, "expected_body": "take a break", "expected_rrule": null, "notes": "numeric relative time; expected_time null because offset from now is not assertable" }, { "input": "review the PR in 2 hours", "expected_type": "reminder", "expected_time": null, "expected_body": "review the PR", "expected_rrule": null, "notes": "relative hours" }, { "input": "follow up in 3 days", "expected_type": "reminder", "expected_time": null, "expected_body": "follow up", "expected_rrule": null, "notes": "relative days" }, { "input": "check on the deployment in an hour", "expected_type": "reminder", "expected_time": null, "expected_body": "check on the deployment", "expected_rrule": null, "notes": "word-form duration: 'an hour' = 1h" }, { "input": "in a couple of hours remind me to check the oven", "expected_type": "reminder", "expected_time": null, "expected_body": "remind me to check the oven", "expected_rrule": null, "notes": "word-form duration: 'a couple of hours' = 2h" }, { "input": "in a few hours I need to submit this form", "expected_type": "reminder", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "word-form duration: 'a few hours' = 3h" }, { "input": "in half an hour submit the report", "expected_type": "reminder", "expected_time": null, "expected_body": "submit the report", "expected_rrule": null, "notes": "word-form duration: 'half an hour' = 30 min" }, { "input": "standup tomorrow morning", "expected_type": "reminder", "expected_time": null, "expected_body": "standup", "expected_rrule": null, "notes": "tomorrow morning → tomorrow at 08:00; time not asserted (date-relative)" }, { "input": "dentist appointment tomorrow", "expected_type": "reminder", "expected_time": null, "expected_body": "dentist appointment", "expected_rrule": null, "notes": "bare 'tomorrow' uses morning default" }, { "input": "call family tomorrow evening", "expected_type": "reminder", "expected_time": null, "expected_body": "call family", "expected_rrule": null, "notes": "tomorrow evening → tomorrow at 18:00" }, { "input": "dentist next monday", "expected_type": "reminder", "expected_time": null, "expected_body": "dentist", "expected_rrule": null, "notes": "next weekday; time not asserted (date-relative)" }, { "input": "team lunch next friday", "expected_type": "reminder", "expected_time": null, "expected_body": "team lunch", "expected_rrule": null, "notes": null }, { "input": "tonight put the bins out", "expected_type": "reminder", "expected_time": "21:00", "expected_body": "put the bins out", "expected_rrule": null, "notes": "'tonight' anchors to 21:00; word stripped from body" }, { "input": "watch the football tonight", "expected_type": "reminder", "expected_time": "21:00", "expected_body": "watch the football", "expected_rrule": null, "notes": "'tonight' at end of sentence" }, { "input": "this evening water the plants", "expected_type": "reminder", "expected_time": "21:00", "expected_body": "water the plants", "expected_rrule": null, "notes": "'this evening' synonym for tonight" }, { "input": "call dad tonight at 8pm", "expected_type": "reminder", "expected_time": "20:00", "expected_body": "call dad", "expected_rrule": null, "notes": "explicit 'at 8pm' overrides 'tonight'; at_time takes precedence" }, { "input": "later today sort out the inbox", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "vague relative time; Tier 1 cannot parse 'later today' — no assertion" }, { "input": "every sunday night check the bins", "expected_type": "reminder", "expected_time": null, "expected_body": "check the bins", "expected_rrule": "BYDAY=SU", "notes": "weekly recurrence; 'night' stripped from body via morning_evening cleanup" }, { "input": "every weekday morning check email", "expected_type": "reminder", "expected_time": null, "expected_body": "check email", "expected_rrule": "BYDAY=MO,TU,WE,TH,FR", "notes": "Mon–Fri recurrence; 'morning' maps to default_morning time" }, { "input": "every weekday at 9am standup", "expected_type": "reminder", "expected_time": null, "expected_body": "standup", "expected_rrule": "BYDAY=MO,TU,WE,TH,FR", "notes": "Mon–Fri recurrence with explicit time" }, { "input": "every tuesday at 6pm call dad", "expected_type": "reminder", "expected_time": null, "expected_body": "call dad", "expected_rrule": "BYDAY=TU", "notes": "named weekday recurrence with time" }, { "input": "every friday at 1pm team lunch", "expected_type": "reminder", "expected_time": null, "expected_body": "team lunch", "expected_rrule": "BYDAY=FR", "notes": null }, { "input": "every saturday morning review the week", "expected_type": "reminder", "expected_time": null, "expected_body": "review the week", "expected_rrule": "BYDAY=SA", "notes": "named weekday recurrence; 'morning' stripped from body" }, { "input": "take my meds every day at 8am", "expected_type": "reminder", "expected_time": null, "expected_body": "take my meds", "expected_rrule": "FREQ=DAILY", "notes": "daily recurrence with explicit time" }, { "input": "every day take vitamins", "expected_type": "reminder", "expected_time": null, "expected_body": "take vitamins", "expected_rrule": "FREQ=DAILY", "notes": "daily recurrence; 'every day' at start" }, { "input": "retro every week at 4pm", "expected_type": "reminder", "expected_time": null, "expected_body": "retro", "expected_rrule": "FREQ=WEEKLY", "notes": "every_week pattern still works after adding every_weekdays" }, { "input": "what if breadman had a calendar view", "expected_type": "idea", "expected_time": null, "expected_body": "what if breadman had a calendar view", "expected_rrule": null, "notes": "classic what-if idea" }, { "input": "idea: dark mode toggle in breadman", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "explicit idea: prefix" }, { "input": "maybe we could add export to CSV", "expected_type": "idea", "expected_time": null, "expected_body": "maybe we could add export to CSV", "expected_rrule": null, "notes": "contains 'maybe'" }, { "input": "could the sidebar show counts per type", "expected_type": "idea", "expected_time": null, "expected_body": "could the sidebar show counts per type", "expected_rrule": null, "notes": "contains 'could'" }, { "input": "should we add a dark mode to breadman", "expected_type": "idea", "expected_time": null, "expected_body": "should we add a dark mode to breadman", "expected_rrule": null, "notes": "contains 'should we '" }, { "input": "what if we switched to SQLite instead of JSONL", "expected_type": "idea", "expected_time": null, "expected_body": "what if we switched to SQLite instead of JSONL", "expected_rrule": null, "notes": "starts with 'what if'" }, { "input": "why does nmcli drop on suspend?", "expected_type": "question", "expected_time": null, "expected_body": "why does nmcli drop on suspend?", "expected_rrule": null, "notes": "starts with 'why'" }, { "input": "how do I configure zbus async", "expected_type": "question", "expected_time": null, "expected_body": "how do I configure zbus async", "expected_rrule": null, "notes": "starts with 'how'" }, { "input": "what is the best way to handle GTK signals in Rust?", "expected_type": "question", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "starts with 'what' (not 'what if') — question, not idea" }, { "input": "is this thread safe?", "expected_type": "question", "expected_time": null, "expected_body": "is this thread safe?", "expected_rrule": null, "notes": "ends with ? without a known question-word prefix" }, { "input": "does the ONNX runtime cache model weights between runs?", "expected_type": "question", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "ends with ?" }, { "input": "meeting went well, follow up needed", "expected_type": "note", "expected_time": null, "expected_body": "meeting went well, follow up needed", "expected_rrule": null, "notes": "plain observation; no action verbs, no time, no question" }, { "input": "the new mechanical keyboard is noisy but I like it", "expected_type": "note", "expected_time": null, "expected_body": "the new mechanical keyboard is noisy but I like it", "expected_rrule": null, "notes": "general note, no strong signals" }, { "input": "finally got the ONNX model running on CPU", "expected_type": "note", "expected_time": null, "expected_body": "finally got the ONNX model running on CPU", "expected_rrule": null, "notes": "observation without actionable signal" }, { "input": "i should probably sort out that thing with the lights", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "ambiguous; Tier 1 returns note — no assertion, good Tier 2 test case" }, { "input": "get around to fixing the shelf at some point", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'at some point' has no digit after 'at' so time not extracted; 'fixing' not a recognised prefix" }, { "input": "idea: remind me to think about this every monday", "expected_type": "reminder", "expected_time": null, "expected_body": null, "expected_rrule": "BYDAY=MO", "notes": "mixed signals: idea: prefix but recurrence takes precedence — type must be reminder" }, { "input": "buy milk tonight and remind me to call the doctor tomorrow", "expected_type": "reminder", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "multi-intent: 'tomorrow' triggers time extraction; 'tonight' word stripped from body" }, { "input": "sort out that thing with the router at some point", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "unstructured; 'at some point' not parsed as time" }, { "input": "rmind me abt dentist appt tmrw", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "typo-heavy; Tier 1 cannot parse this; Tier 2/3 may or may not handle it" }, { "input": "pls remind me abt the call at 3pm", "expected_type": "reminder", "expected_time": "15:00", "expected_body": null, "expected_rrule": null, "notes": "'at 3pm' matches rule-based despite informal phrasing around it" }, { "input": "prepare the presentation for tomorrow", "expected_type": "reminder", "expected_time": null, "expected_body": "prepare the presentation for", "expected_rrule": null, "notes": "'tomorrow' triggers time extraction → Reminder; body has 'tomorrow' stripped" }, { "input": "schedule a meeting with the team", "expected_type": "todo", "expected_time": null, "expected_body": "schedule a meeting with the team", "expected_rrule": null, "notes": "starts with 'schedule'" }, { "input": "organize the files in the cabinet", "expected_type": "todo", "expected_time": null, "expected_body": "organize the files in the cabinet", "expected_rrule": null, "notes": "starts with 'organize'" }, { "input": "create a backup of the database", "expected_type": "todo", "expected_time": null, "expected_body": "create a backup of the database", "expected_rrule": null, "notes": "starts with 'create'" }, { "input": "setup the new development environment", "expected_type": "todo", "expected_time": null, "expected_body": "setup the new development environment", "expected_rrule": null, "notes": "starts with 'setup'" }, { "input": "deploy the latest version to production", "expected_type": "todo", "expected_time": null, "expected_body": "deploy the latest version to production", "expected_rrule": null, "notes": "starts with 'deploy'" }, { "input": "test the new feature on staging", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'test' not a recognized prefix (test results / test suite false-positive risk); Tier 1 → note" }, { "input": "review the submitted pull requests", "expected_type": "todo", "expected_time": null, "expected_body": "review the submitted pull requests", "expected_rrule": null, "notes": "starts with 'review'" }, { "input": "approve the design mockups from UX", "expected_type": "todo", "expected_time": null, "expected_body": "approve the design mockups from UX", "expected_rrule": null, "notes": "starts with 'approve'" }, { "input": "merge the feature branch into main", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'merge' not a recognized prefix (merge conflict / merge request false-positive risk); Tier 1 → note" }, { "input": "configure the CI/CD pipeline settings", "expected_type": "todo", "expected_time": null, "expected_body": "configure the CI/CD pipeline settings", "expected_rrule": null, "notes": "starts with 'configure'" }, { "input": "optimize the database queries", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'optimize' not a recognized prefix; Tier 1 → note" }, { "input": "refactor the authentication module", "expected_type": "todo", "expected_time": null, "expected_body": "refactor the authentication module", "expected_rrule": null, "notes": "starts with 'refactor'" }, { "input": "document the API endpoints in the README", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'document' not a recognized prefix (document is ready / document outlines… false-positive risk); Tier 1 → note" }, { "input": "install the new version of Node.js", "expected_type": "todo", "expected_time": null, "expected_body": "install the new version of Node.js", "expected_rrule": null, "notes": "starts with 'install'" }, { "input": "verify the data migration was successful", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'verify' not a recognized prefix; Tier 1 → note" }, { "input": "validate the user input on the form", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'validate' not a recognized prefix; Tier 1 → note" }, { "input": "export the data to a CSV file", "expected_type": "todo", "expected_time": null, "expected_body": "export the data to a CSV file", "expected_rrule": null, "notes": "starts with 'export'" }, { "input": "import the user data from the old system", "expected_type": "todo", "expected_time": null, "expected_body": "import the user data from the old system", "expected_rrule": null, "notes": "starts with 'import'" }, { "input": "restore the database from last backup", "expected_type": "todo", "expected_time": null, "expected_body": "restore the database from last backup", "expected_rrule": null, "notes": "starts with 'restore'" }, { "input": "archive the old project files", "expected_type": "todo", "expected_time": null, "expected_body": "archive the old project files", "expected_rrule": null, "notes": "starts with 'archive'" }, { "input": "setup meeting at 9am", "expected_type": "reminder", "expected_time": "09:00", "expected_body": "setup meeting", "expected_rrule": null, "notes": "time stripped for setup + time combo" }, { "input": "review code at 2pm", "expected_type": "reminder", "expected_time": "14:00", "expected_body": "review code", "expected_rrule": null, "notes": "time stripped for review + time combo" }, { "input": "deploy release at 4pm", "expected_type": "reminder", "expected_time": "16:00", "expected_body": "deploy release", "expected_rrule": null, "notes": "time stripped for deploy + time combo" }, { "input": "call at 1pm", "expected_type": "reminder", "expected_time": "13:00", "expected_body": "call", "expected_rrule": null, "notes": "minimal reminder with time" }, { "input": "at 5pm check status", "expected_type": "reminder", "expected_time": "17:00", "expected_body": "check status", "expected_rrule": null, "notes": "time at start of sentence" }, { "input": "standup at 10:00", "expected_type": "reminder", "expected_time": "10:00", "expected_body": "standup", "expected_rrule": null, "notes": "24h time in HH:MM format" }, { "input": "presentation at 11:45", "expected_type": "reminder", "expected_time": "11:45", "expected_body": "presentation", "expected_rrule": null, "notes": "24h time with minutes" }, { "input": "therapy at 4pm tomorrow", "expected_type": "reminder", "expected_time": null, "expected_body": "therapy", "expected_rrule": null, "notes": "time on specific day (not assertable)" }, { "input": "breakfast at 7:30 in the morning", "expected_type": "reminder", "expected_time": "07:30", "expected_body": "breakfast", "expected_rrule": null, "notes": "explicit time with morning modifier" }, { "input": "dinner at 6pm in the evening", "expected_type": "reminder", "expected_time": "18:00", "expected_body": "dinner", "expected_rrule": null, "notes": "explicit time with evening modifier" }, { "input": "in 15 minutes finish the report", "expected_type": "reminder", "expected_time": null, "expected_body": "finish the report", "expected_rrule": null, "notes": "relative time at start" }, { "input": "in 5 minutes go to the meeting", "expected_type": "reminder", "expected_time": null, "expected_body": "go to the meeting", "expected_rrule": null, "notes": "relative 5 minute timer" }, { "input": "in 30 seconds alert the team", "expected_type": "reminder", "expected_time": null, "expected_body": "alert the team", "expected_rrule": null, "notes": "relative seconds" }, { "input": "in 1 day start the project", "expected_type": "reminder", "expected_time": null, "expected_body": "start the project", "expected_rrule": null, "notes": "relative 1 day" }, { "input": "in 2 weeks review progress", "expected_type": "reminder", "expected_time": null, "expected_body": "review progress", "expected_rrule": null, "notes": "relative weeks" }, { "input": "monday morning call the plumber", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "bare weekday without 'next'/'every' prefix not parsed by Tier 1; Tier 1 → note" }, { "input": "wednesday at 2pm budget review", "expected_type": "reminder", "expected_time": null, "expected_body": "budget review", "expected_rrule": null, "notes": "specific day with explicit time" }, { "input": "thursday evening pack for trip", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "bare weekday without 'next'/'every' prefix not parsed by Tier 1; Tier 1 → note" }, { "input": "every monday morning team standup", "expected_type": "reminder", "expected_time": null, "expected_body": "team standup", "expected_rrule": "BYDAY=MO", "notes": "day + morning in recurrence" }, { "input": "every wednesday at 10am planning session", "expected_type": "reminder", "expected_time": null, "expected_body": "planning session", "expected_rrule": "BYDAY=WE", "notes": "day + explicit time in recurrence" }, { "input": "every thursday evening review tickets", "expected_type": "reminder", "expected_time": null, "expected_body": "review tickets", "expected_rrule": "BYDAY=TH", "notes": "day + evening in recurrence" }, { "input": "every saturday at 2pm grocery shopping", "expected_type": "reminder", "expected_time": null, "expected_body": "grocery shopping", "expected_rrule": "BYDAY=SA", "notes": "weekend recurrence with time" }, { "input": "every sunday at 6pm family dinner", "expected_type": "reminder", "expected_time": null, "expected_body": "family dinner", "expected_rrule": "BYDAY=SU", "notes": "weekly family event" }, { "input": "every month on the 15th pay rent", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "monthly recurrence not supported by Tier 1 parser; Tier 1 → note" }, { "input": "every 2 weeks sync with manager", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "biweekly 'every N weeks' not supported by Tier 1 parser; Tier 1 → note" }, { "input": "twice a week go to gym", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "frequency phrase 'twice a week' not supported by Tier 1 parser; Tier 1 → note" }, { "input": "three times a day take pills", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "frequency phrase 'three times a day' not supported by Tier 1 parser; Tier 1 → note" }, { "input": "what if we used Rust for the backend", "expected_type": "idea", "expected_time": null, "expected_body": "what if we used Rust for the backend", "expected_rrule": null, "notes": "what if idea about tech choice" }, { "input": "what if notifications were real-time", "expected_type": "idea", "expected_time": null, "expected_body": "what if notifications were real-time", "expected_rrule": null, "notes": "what if idea about features" }, { "input": "what if users could customize the theme", "expected_type": "idea", "expected_time": null, "expected_body": "what if users could customize the theme", "expected_rrule": null, "notes": "what if idea about customization" }, { "input": "maybe add a search feature", "expected_type": "idea", "expected_time": null, "expected_body": "maybe add a search feature", "expected_rrule": null, "notes": "maybe idea" }, { "input": "could we improve performance", "expected_type": "idea", "expected_time": null, "expected_body": "could we improve performance", "expected_rrule": null, "notes": "could idea" }, { "input": "should we migrate to PostgreSQL", "expected_type": "idea", "expected_time": null, "expected_body": "should we migrate to PostgreSQL", "expected_rrule": null, "notes": "should idea" }, { "input": "idea: add file upload support", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "idea: prefix" }, { "input": "idea: implement caching layer", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "idea: prefix 2" }, { "input": "idea: mobile app version", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "idea: prefix 3" }, { "input": "why is the tests failing", "expected_type": "question", "expected_time": null, "expected_body": "why is the tests failing", "expected_rrule": null, "notes": "why question" }, { "input": "why does it timeout on large datasets", "expected_type": "question", "expected_time": null, "expected_body": "why does it timeout on large datasets", "expected_rrule": null, "notes": "why question 2" }, { "input": "how can we reduce memory usage", "expected_type": "question", "expected_time": null, "expected_body": "how can we reduce memory usage", "expected_rrule": null, "notes": "how question" }, { "input": "how do I run the dev server", "expected_type": "question", "expected_time": null, "expected_body": "how do I run the dev server", "expected_rrule": null, "notes": "how question 2" }, { "input": "what time is the meeting tomorrow", "expected_type": "reminder", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'tomorrow' triggers time extraction → Reminder overrides the 'what' question signal; time not asserted (date-relative)" }, { "input": "what should we do next", "expected_type": "question", "expected_time": null, "expected_body": "what should we do next", "expected_rrule": null, "notes": "what question" }, { "input": "can we ship this today", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'can' not a recognized question prefix (can opener false-positive risk); Tier 1 → note" }, { "input": "will this break backward compatibility", "expected_type": "question", "expected_time": null, "expected_body": "will this break backward compatibility", "expected_rrule": null, "notes": "will question" }, { "input": "should I merge this PR", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'should I' not recognized ('should we' is Idea, but 'should I' is not a known pattern); Tier 1 → note" }, { "input": "could this cause issues", "expected_type": "idea", "expected_time": null, "expected_body": "could this cause issues", "expected_rrule": null, "notes": "contains 'could ' → Idea (Tier 1 cannot distinguish idea-could from question-could without ?)" }, { "input": "have we tested on production data", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'have' not a recognized question prefix ('have some coffee' false-positive risk); Tier 1 → note" }, { "input": "are the tests passing", "expected_type": "question", "expected_time": null, "expected_body": "are the tests passing", "expected_rrule": null, "notes": "are question" }, { "input": "did we document the API changes", "expected_type": "question", "expected_time": null, "expected_body": "did we document the API changes", "expected_rrule": null, "notes": "did question" }, { "input": "the bug is only on Firefox", "expected_type": "note", "expected_time": null, "expected_body": "the bug is only on Firefox", "expected_rrule": null, "notes": "observation note" }, { "input": "build time increased after adding new dependency", "expected_type": "note", "expected_time": null, "expected_body": "build time increased after adding new dependency", "expected_rrule": null, "notes": "observation about build" }, { "input": "need to research caching strategies", "expected_type": "note", "expected_time": null, "expected_body": "need to research caching strategies", "expected_rrule": null, "notes": "research note" }, { "input": "the PR has merge conflicts", "expected_type": "note", "expected_time": null, "expected_body": "the PR has merge conflicts", "expected_rrule": null, "notes": "status note" }, { "input": "performance improved by 40% after optimization", "expected_type": "note", "expected_time": null, "expected_body": "performance improved by 40% after optimization", "expected_rrule": null, "notes": "achievement note" }, { "input": "saw the new UI design mockups", "expected_type": "note", "expected_time": null, "expected_body": "saw the new UI design mockups", "expected_rrule": null, "notes": "discovery note" }, { "input": "the server went down during the demo", "expected_type": "note", "expected_time": null, "expected_body": "the server went down during the demo", "expected_rrule": null, "notes": "incident note" }, { "input": "learned about the new feature from the docs", "expected_type": "note", "expected_time": null, "expected_body": "learned about the new feature from the docs", "expected_rrule": null, "notes": "learning note" }, { "input": "client prefers to use Postgres instead of MySQL", "expected_type": "note", "expected_time": null, "expected_body": "client prefers to use Postgres instead of MySQL", "expected_rrule": null, "notes": "preference note" }, { "input": "noticed the memory leak in the dev tools", "expected_type": "note", "expected_time": null, "expected_body": "noticed the memory leak in the dev tools", "expected_rrule": null, "notes": "problem observation" }, { "input": "buy groceries", "expected_type": "todo", "expected_time": null, "expected_body": "buy groceries", "expected_rrule": null, "notes": "simple buy action" }, { "input": "send the invoice to the client", "expected_type": "todo", "expected_time": null, "expected_body": "send the invoice to the client", "expected_rrule": null, "notes": "starts with send" }, { "input": "read the documentation", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'read' not a recognized prefix (read-only, read-write ambiguity); Tier 1 → note" }, { "input": "submit the report by EOD", "expected_type": "todo", "expected_time": null, "expected_body": "submit the report by EOD", "expected_rrule": null, "notes": "submit action" }, { "input": "start the project kick-off meeting", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'start' not a recognized prefix ('start time is 9am' false-positive risk); Tier 1 → note" }, { "input": "edit the markdown file", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'edit' not a recognized prefix ('edit mode' false-positive risk); Tier 1 → note" }, { "input": "at 11am review the slides", "expected_type": "reminder", "expected_time": "11:00", "expected_body": "review the slides", "expected_rrule": null, "notes": "time at start with todo action" }, { "input": "go to the store at 5pm", "expected_type": "reminder", "expected_time": "17:00", "expected_body": "go to the store", "expected_rrule": null, "notes": "go action with time" }, { "input": "walk the dog in 10 minutes", "expected_type": "reminder", "expected_time": null, "expected_body": "walk the dog", "expected_rrule": null, "notes": "relative time with action" }, { "input": "every day in the morning drink water", "expected_type": "reminder", "expected_time": null, "expected_body": "drink water", "expected_rrule": "FREQ=DAILY", "notes": "daily with morning time" }, { "input": "every other day exercise", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "every other day not parsed" }, { "input": "twice a month attend training", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "twice a month not parsed" }, { "input": "at 6am go running", "expected_type": "reminder", "expected_time": "06:00", "expected_body": "go running", "expected_rrule": null, "notes": "early morning reminder" }, { "input": "at 1am check the server", "expected_type": "reminder", "expected_time": "01:00", "expected_body": "check the server", "expected_rrule": null, "notes": "late night reminder" }, { "input": "at 00:30 backup files", "expected_type": "reminder", "expected_time": "00:30", "expected_body": "backup files", "expected_rrule": null, "notes": "midnight time" }, { "input": "at 12:01 meeting starts", "expected_type": "reminder", "expected_time": "12:01", "expected_body": "meeting starts", "expected_rrule": null, "notes": "edge case minute value" }, { "input": "check the deploy at 15:59", "expected_type": "reminder", "expected_time": "15:59", "expected_body": "check the deploy", "expected_rrule": null, "notes": "end of business hour" }, { "input": "every monday at 9:30 daily standup", "expected_type": "reminder", "expected_time": null, "expected_body": "daily standup", "expected_rrule": "BYDAY=MO", "notes": "weekday with specific minutes" }, { "input": "every tuesday at 15:15 sync meeting", "expected_type": "reminder", "expected_time": null, "expected_body": "sync meeting", "expected_rrule": "BYDAY=TU", "notes": "another day with minutes" }, { "input": "remind me to call john at 8am", "expected_type": "reminder", "expected_time": "08:00", "expected_body": "call john", "expected_rrule": null, "notes": "remind me prefix stripped" }, { "input": "make sure to backup at 11pm", "expected_type": "reminder", "expected_time": "23:00", "expected_body": "backup", "expected_rrule": null, "notes": "make sure to prefix" }, { "input": "don't forget the meeting at 2pm", "expected_type": "reminder", "expected_time": "14:00", "expected_body": null, "expected_rrule": null, "notes": "don't forget phrase" }, { "input": "next week start the new project", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'next week' not a recognized time pattern (only 'next ' is); Tier 1 → note" }, { "input": "next month renew the subscription", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "next month not parsed by Tier 1" }, { "input": "this week finish the report", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "this week not parsed by Tier 1" }, { "input": "tonight at 9pm movie night", "expected_type": "reminder", "expected_time": "21:00", "expected_body": "movie", "expected_rrule": null, "notes": "at 9pm fires first; morning_evening cleanup strips both 'tonight' and standalone 'night' → body becomes just 'movie'" }, { "input": "idea: add dark theme", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "idea: prefix minimal" }, { "input": "idea: fix the layout bug", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "idea: prefix with fix" }, { "input": "could we add a download button", "expected_type": "idea", "expected_time": null, "expected_body": "could we add a download button", "expected_rrule": null, "notes": "could we phrase" }, { "input": "should we use WebSockets instead", "expected_type": "idea", "expected_time": null, "expected_body": "should we use WebSockets instead", "expected_rrule": null, "notes": "should we idea" }, { "input": "what if we added analytics", "expected_type": "idea", "expected_time": null, "expected_body": "what if we added analytics", "expected_rrule": null, "notes": "what if idea with verb" }, { "input": "maybe implement logging", "expected_type": "idea", "expected_time": null, "expected_body": "maybe implement logging", "expected_rrule": null, "notes": "maybe idea" }, { "input": "why can't we use this library", "expected_type": "question", "expected_time": null, "expected_body": "why can't we use this library", "expected_rrule": null, "notes": "why with contraction" }, { "input": "how would we scale this", "expected_type": "question", "expected_time": null, "expected_body": "how would we scale this", "expected_rrule": null, "notes": "how question variant" }, { "input": "when is the deadline", "expected_type": "question", "expected_time": null, "expected_body": "when is the deadline", "expected_rrule": null, "notes": "when question" }, { "input": "where should we deploy this", "expected_type": "question", "expected_time": null, "expected_body": "where should we deploy this", "expected_rrule": null, "notes": "where question" }, { "input": "who is the project owner", "expected_type": "question", "expected_time": null, "expected_body": "who is the project owner", "expected_rrule": null, "notes": "who question" }, { "input": "is it backward compatible", "expected_type": "question", "expected_time": null, "expected_body": "is it backward compatible", "expected_rrule": null, "notes": "is question ending with ?" }, { "input": "does the site perform well on mobile", "expected_type": "question", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "does question ending with ?" }, { "input": "have you tried restarting the server", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "'have' not a recognized question prefix ('have some coffee' false-positive risk); Tier 1 → note" }, { "input": "going to be late to the meeting", "expected_type": "note", "expected_time": null, "expected_body": "going to be late to the meeting", "expected_rrule": null, "notes": "casual note observation" }, { "input": "the API response time is slow today", "expected_type": "note", "expected_time": null, "expected_body": "the API response time is slow today", "expected_rrule": null, "notes": "performance observation" }, { "input": "someone broke the tests yesterday", "expected_type": "note", "expected_time": null, "expected_body": "someone broke the tests yesterday", "expected_rrule": null, "notes": "incident note" }, { "input": "the client liked the new design", "expected_type": "note", "expected_time": null, "expected_body": "the client liked the new design", "expected_rrule": null, "notes": "feedback note" }, { "input": "found a typo in the documentation", "expected_type": "note", "expected_time": null, "expected_body": "found a typo in the documentation", "expected_rrule": null, "notes": "issue discovery note" }, { "input": "waiting for the deploy to finish", "expected_type": "note", "expected_time": null, "expected_body": "waiting for the deploy to finish", "expected_rrule": null, "notes": "status note" }, { "input": "coffee maker is broken again", "expected_type": "note", "expected_time": null, "expected_body": "coffee maker is broken again", "expected_rrule": null, "notes": "office note" }, { "input": "remember to backup the database", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "remember not a recognized prefix; Tier 1 returns note" }, { "input": "dont forget to update the changelog", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "don't forget not recognized; Tier 1 returns note" }, { "input": "need to review the design specs", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "need to not recognized; Tier 1 returns note" }, { "input": "have to attend the conference", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "have to not recognized; Tier 1 returns note" }, { "input": "must apply the security patch", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "must not recognized; Tier 1 returns note" }, { "input": "should sign the contract", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "should alone not recognized (not should we); Tier 1 returns note" }, { "input": "at 7:00 am wake up early", "expected_type": "reminder", "expected_time": "07:00", "expected_body": "wake up early", "expected_rrule": null, "notes": "time with am" }, { "input": "at 8:00 pm watch the show", "expected_type": "reminder", "expected_time": "20:00", "expected_body": "watch the show", "expected_rrule": null, "notes": "time with pm" }, { "input": "call the doctor in 1 hour", "expected_type": "reminder", "expected_time": null, "expected_body": "call the doctor", "expected_rrule": null, "notes": "in X hour variant" }, { "input": "finish work in 30 minutes please", "expected_type": "reminder", "expected_time": null, "expected_body": "finish work", "expected_rrule": null, "notes": "in X minutes with please" }, { "input": "every friday morning team huddle", "expected_type": "reminder", "expected_time": null, "expected_body": "team huddle", "expected_rrule": "BYDAY=FR", "notes": "friday + morning" }, { "input": "every monday evening standdown", "expected_type": "reminder", "expected_time": null, "expected_body": "standdown", "expected_rrule": "BYDAY=MO", "notes": "monday + evening (should work)" }, { "input": "every sunday at 10am brunch", "expected_type": "reminder", "expected_time": null, "expected_body": "brunch", "expected_rrule": "BYDAY=SU", "notes": "sunday + time" }, { "input": "what could possibly go wrong with this approach?", "expected_type": "idea", "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "what with could in sentence triggers idea pattern" }, { "input": "isn't this implementation simpler?", "expected_type": "question", "expected_time": null, "expected_body": "isn't this implementation simpler?", "expected_rrule": null, "notes": "isn't contraction question" }, { "input": "won't this break the API?", "expected_type": "question", "expected_time": null, "expected_body": "won't this break the API?", "expected_rrule": null, "notes": "won't contraction question" }, { "input": "shouldn't we test this first?", "expected_type": "question", "expected_time": null, "expected_body": "shouldn't we test this first?", "expected_rrule": null, "notes": "shouldn't contraction question" }, { "input": "maybe the caching will help performance", "expected_type": "idea", "expected_time": null, "expected_body": "maybe the caching will help performance", "expected_rrule": null, "notes": "maybe with will" }, { "input": "what if we added a webhook system", "expected_type": "idea", "expected_time": null, "expected_body": "what if we added a webhook system", "expected_rrule": null, "notes": "what if with system" }, { "input": "could we make this configurable", "expected_type": "idea", "expected_time": null, "expected_body": "could we make this configurable", "expected_rrule": null, "notes": "could we variant" }, { "input": "should consider adding rate limiting", "expected_type": null, "expected_time": null, "expected_body": null, "expected_rrule": null, "notes": "should consider not recognized; Tier 1 returns note" }, { "input": "maybe add a retry mechanism", "expected_type": "idea", "expected_time": null, "expected_body": "maybe add a retry mechanism", "expected_rrule": null, "notes": "maybe add phrase" }, { "input": "could try using gRPC instead", "expected_type": "idea", "expected_time": null, "expected_body": "could try using gRPC instead", "expected_rrule": null, "notes": "could try phrase" }, { "input": "why not use message queues", "expected_type": "question", "expected_time": null, "expected_body": "why not use message queues", "expected_rrule": null, "notes": "why not question" }, { "input": "how about we use environment variables", "expected_type": "question", "expected_time": null, "expected_body": "how about we use environment variables", "expected_rrule": null, "notes": "how about question" } ]