[{"data":1,"prerenderedAt":63},["ShallowReactive",2],{"project-robbie-en":3,"titles-en":62},{"project":4,"notes":61},{"id":5,"title":6,"body":7,"cover":43,"date":44,"demo":43,"description":13,"draft":45,"extension":46,"featured":45,"meta":47,"navigation":48,"order":38,"path":49,"repo":50,"seo":51,"status":52,"stem":53,"summary":54,"tags":55,"__hash__":60,"translated":48},"projects\u002Fprojects\u002Frobbie.md","robbie",{"type":8,"value":9,"toc":36},"minimark",[10,14,19,22,26,29,33],[11,12,13],"p",{},"An English coach that lives in your terminal. You talk to it like you'd talk to a friend. It corrects your grammar as you go, tracks every mistake over time, and scores each session.",[15,16,18],"h2",{"id":17},"the-split","The split",[11,20,21],{},"The interesting part is the split. An LLM handles recognition, because judging whether a sentence \"sounds right\" needs fuzzy, human-grade reasoning. Everything after that is plain deterministic code: parsing, counting, rating. Same session, same numbers, every time. Tune the scoring weights later and every past session re-scores consistently, since the rating is never stored, only recomputed.",[15,23,25],{"id":24},"vocabulary","Vocabulary",[11,27,28],{},"It also builds a spaced-repetition deck for you along the way. Every word you gap on mid-sentence becomes a flashcard, reviewed with a self-built SM-2 engine and exportable straight to Anki.",[15,30,32],{"id":31},"shape","Shape",[11,34,35],{},"Three coaching modes (casual, formal, interview), Postgres for storage, a SQLite branch if you don't want to run Docker. Built out of genuinely wanting something to fix my own English, not a wrapper around a prompt.",{"title":37,"searchDepth":38,"depth":38,"links":39},"",2,[40,41,42],{"id":17,"depth":38,"text":18},{"id":24,"depth":38,"text":25},{"id":31,"depth":38,"text":32},null,"2026-08-21",false,"md",{},true,"\u002Fprojects\u002Frobbie","https:\u002F\u002Fgithub.com\u002Falmeidaota\u002Frobbie",{"title":6,"description":13},"active","projects\u002Frobbie","An English coach that lives in your terminal. LLM for recognition, deterministic code for everything after it.",[56,57,58,59],"python","rust","cli","llm","R33A0NwdItt5shI5kf6t1tY5gqRoZBRSAnBQksT4gZM",[],{},1793409193662]