[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"articles-index":3},[4,144],{"id":5,"title":6,"body":7,"cover":130,"date":131,"description":132,"draft":133,"extension":134,"meta":135,"navigation":136,"path":137,"pinned":136,"seo":138,"stem":139,"tags":140,"__hash__":143,"readingMins":45},"articles\u002Farticles\u002Fprep-first-agents.md","The prep-first approach to agentic development",{"type":8,"value":9,"toc":124},"minimark",[10,15,24,28,31,113,117,120],[11,12,14],"h2",{"id":13},"the-shortcut-tax","The shortcut tax",[16,17,18,19,23],"p",{},"Agents are fast. That is exactly why teams pay a ",[20,21,22],"strong",{},"shortcut tax",": mock data that never gets replaced, silent failures, tests that assert the wrong thing.",[11,25,27],{"id":26},"prep-as-a-system","Prep as a system",[16,29,30],{},"Prep-first work means: clarify the goal, name constraints, gather references, then prompt. The model does synthesis — you own the specification.",[32,33,38],"pre",{"className":34,"code":35,"language":36,"meta":37,"style":37},"language-typescript shiki shiki-themes github-dark github-dark","type Task = { goal: string; constraints: string[]; done: (out: unknown) => boolean }\n","typescript","",[39,40,41],"code",{"__ignoreMap":37},[42,43,46,50,54,57,61,65,68,72,75,78,80,82,85,88,90,93,96,98,101,104,107,110],"span",{"class":44,"line":45},"line",1,[42,47,49],{"class":48},"sOPea","type",[42,51,53],{"class":52},"sFR8T"," Task",[42,55,56],{"class":48}," =",[42,58,60],{"class":59},"suv1-"," { ",[42,62,64],{"class":63},"s-3mD","goal",[42,66,67],{"class":48},":",[42,69,71],{"class":70},"s8ozJ"," string",[42,73,74],{"class":59},"; ",[42,76,77],{"class":63},"constraints",[42,79,67],{"class":48},[42,81,71],{"class":70},[42,83,84],{"class":59},"[]; ",[42,86,87],{"class":52},"done",[42,89,67],{"class":48},[42,91,92],{"class":59}," (",[42,94,95],{"class":63},"out",[42,97,67],{"class":48},[42,99,100],{"class":70}," unknown",[42,102,103],{"class":59},") ",[42,105,106],{"class":48},"=>",[42,108,109],{"class":70}," boolean",[42,111,112],{"class":59}," }\n",[11,114,116],{"id":115},"what-changes-on-teams","What changes on teams",[16,118,119],{},"You review specs, not vibes. You measure whether the output is testable, observable, and aligned with production rules — the same bar you would use without AI.",[121,122,123],"style",{},"html pre.shiki code .sOPea, html code.shiki .sOPea{--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .sFR8T, html code.shiki .sFR8T{--shiki-default:#B392F0;--shiki-dark:#B392F0}html pre.shiki code .suv1-, html code.shiki .suv1-{--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .s-3mD, html code.shiki .s-3mD{--shiki-default:#FFAB70;--shiki-dark:#FFAB70}html pre.shiki code .s8ozJ, html code.shiki .s8ozJ{--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":37,"searchDepth":125,"depth":125,"links":126},2,[127,128,129],{"id":13,"depth":125,"text":14},{"id":26,"depth":125,"text":27},{"id":115,"depth":125,"text":116},null,"2026-03-10","Why research-before-prompting beats “just ask the model” when you care about shipping quality.",false,"md",{},true,"\u002Farticles\u002Fprep-first-agents",{"title":6,"description":132},"articles\u002Fprep-first-agents",[141,142],"agentic-ai","engineering","CYeGWmCH8B4rlpp7AuadJt1VTcqlSivFhpOflP4xWXs",{"id":145,"title":146,"body":147,"cover":130,"date":179,"description":180,"draft":133,"extension":134,"meta":181,"navigation":136,"path":182,"pinned":133,"seo":183,"stem":184,"tags":185,"__hash__":188,"readingMins":45},"articles\u002Farticles\u002Fbbc-micro-2026.md","Why I still care about the BBC Micro in 2026",{"type":8,"value":148,"toc":174},[149,153,160,164,167,171],[11,150,152],{"id":151},"memory-maps-and-patience","Memory maps and patience",[16,154,155,156,159],{},"A small machine forces you to understand what lives where. That sounds quaint until you debug a production incident where ",[20,157,158],{},"implicit assumptions"," were the bug.",[11,161,163],{"id":162},"demo-scene-as-engineering-culture","Demo scene as engineering culture",[16,165,166],{},"Sceners optimize for effect under limits. Product teams optimize for outcomes under constraints. The mindset rhymes.",[11,168,170],{"id":169},"back-to-bytefern","Back to ByteFern",[16,172,173],{},"This site is partly a love letter to that culture: editorial rigour, a lab that will feel like a demo, and tools that respect the craft.",{"title":37,"searchDepth":125,"depth":125,"links":175},[176,177,178],{"id":151,"depth":125,"text":152},{"id":162,"depth":125,"text":163},{"id":169,"depth":125,"text":170},"2026-02-20","Constraints, BASIC, and what retro machines teach about craft when everything else moves at hype speed.",{},"\u002Farticles\u002Fbbc-micro-2026",{"title":146,"description":180},"articles\u002Fbbc-micro-2026",[186,187],"retro","builds","tjv_oYuPokK8hwKlEI1FRJ00A_pr7VJ8prK4dZdco_k",1775422462256]