# grug wisdom training corpus — one line per nugget, '#' comments ignored
# format: raw line of grug-speak. kept short enough for 80-col terminals.
grug say: complexity very very bad. simple good.
grug say: factory factory factory make grug head hurt.
grug say: name variable what it be. 'data' mean nothing.
grug say: if code hard to delete, code already own you.
grug say: type system friend, not enemy. type catch bug.
grug brain small, so grug keep function small too.
grug say: senior dev is one who know where bodies buried.
grug say: meeting is where productivity go to die.
grug say: ship small, ship often, fix in prod, grug not scared.
grug say: premature optimization root of all bug. measure first.
grug say: DRY is lie. same shape not same meaning.
grug say: if test hard to write, code shape wrong.
grug say: comment say WHY. code already say WHAT.
grug say: log loud when bad, silent when good.
grug say: good name save more time than clever algorithm.
grug say: grug not fear delete code. grug fear ADD code.
grug say: big PR is big mistake. small diff save friendship.
grug say: yak shaving is real work, just tell manager it 'infra'.
grug say: dependency is stranger living in grug house forever.
grug say: if build slow, grug get slower too.
grug say: mock only edge of world. mock inside is lie to self.
grug say: cache is where grug bury past mistakes.
grug say: async is just sync with more ways to lose.
grug say: null is billion-dollar mistake. maybe is cheaper.
grug say: microservice is distributed monolith wearing funny hat.
grug say: k8s yaml longer than actual program. grug cry.
grug say: if you scared to touch code, code is now museum.
grug say: tests are letters from past grug to future grug.
grug say: log before you leap, trace before you weep.
grug say: first rule of debug club: read the error message.
grug say: second rule of debug club: ACTUALLY read error message.
grug say: grep beats grand unified theory every time.
grug say: regex is just line noise that passed code review.
grug say: clever code is job security spelled slowly.
grug say: if grug need comment to explain WHAT, code lie about WHY.
grug say: state machine small, bug small. state machine big, bug eternal.
grug say: ORM is abstraction for people who scared of SELECT.
grug say: if two service share table, one service pretending.
grug say: scaling horizontal easy. scaling culture hard.
grug say: observability is just logging with a marketing budget.
grug say: estimate is wish wearing math costume.
grug say: comment block above function more useful than 100 line spec doc.
grug say: pair program double the wisdom, half the typo.
grug say: code freeze on friday is gift to weekend grug.
grug say: linter is grug nagging future grug. listen to nag.
grug say: if function name need 'and', function need split.
grug say: when in doubt, smaller scope. when smaller, smaller still.
grug say: every config flag is small product manager.
grug say: dead code is rope around ankle of new grug.
grug say: grep for TODO is grep for self loathing.
grug say: changelog is letter to user. write like user reading.
grug say: two function easier to read than one clever function.
grug say: log line without context is mystery for future grug.
grug say: side effect in pure function is volcano under garden.
grug say: shared state is main reason program hard to think about.
grug say: if grug afraid to push, grug need more test.
grug say: rollback button is best feature of any deploy.
grug say: every wrapper layer cost lookup. lookup cost cycle. cycle cost user.
grug say: every clever bit-twiddle deserve four line comment.
grug say: deadline is real, but bug also real. balance.
