[{"data":1,"prerenderedAt":790},["ShallowReactive",2],{"academy-lessons":3},[4,95,222,373,393,547,673],{"id":5,"title":6,"body":7,"description":82,"draft":83,"estimatedMinutes":84,"extension":85,"meta":86,"module":87,"moduleOrder":88,"moduleTitle":89,"navigation":90,"order":88,"path":91,"seo":92,"stem":93,"__hash__":94},"academy\u002Facademy\u002Ffoundations\u002F01-what-is-agentic.md","What Is Agentic Development?",{"type":8,"value":9,"toc":73},"minimark",[10,15,19,22,26,34,37,41,44,51,55,62,66],[11,12,14],"h2",{"id":13},"the-shift-nobody-prepared-you-for","The shift nobody prepared you for",[16,17,18],"p",{},"Copilot autocompletes a line. An agent executes a plan.",[16,20,21],{},"That difference sounds small. It is not. When your AI can read files, run commands, write and test code, and call external APIs — often without you touching the keyboard for minutes at a time — the relationship between developer and tool changes fundamentally. You are no longer the sole author of every edit. You are a reviewer, a spec holder, and sometimes a firefighter when the agent drifts.",[11,23,25],{"id":24},"from-suggestion-to-delegation","From suggestion to delegation",[16,27,28,29,33],{},"Classic IDE assistance stays inside the current file and the current moment. Agentic tools carry ",[30,31,32],"strong",{},"intent across steps",": they can try an approach, see a failing test, adjust, and try again. That loop is powerful and dangerous. Powerful because it removes boilerplate and speeds exploration. Dangerous because each step can introduce subtle wrong assumptions that compound.",[16,35,36],{},"Engineering with agents still requires the same mental model you use for junior contributors: clear goals, verifiable outcomes, and boundaries on what “done” means. The difference is scale. A junior might need a day to refactor a module. An agent might do it in ten minutes — including the wrong abstraction you did not notice until production.",[11,38,40],{"id":39},"what-agentic-is-not","What “agentic” is not",[16,42,43],{},"It is not “the model writes all the code so I can disengage.” It is not unlimited trust in tool output. It is not a replacement for architecture, security review, or product judgment.",[16,45,46,47,50],{},"Healthy agentic development treats the agent as a ",[30,48,49],{},"high-throughput collaborator"," that needs the same constraints you would give a human: access rules, style guides, tests that fail loudly, and specs that say what not to change.",[11,52,54],{"id":53},"why-standards-matter-more-not-less","Why standards matter more, not less",[16,56,57,58,61],{},"When edits arrive in large batches, diff fatigue is real. Without standards — naming, error handling, testing discipline — you either rubber-stamp garbage or burn out reviewing every line. The teams that win set ",[30,59,60],{},"quality gates"," up front: linters, type checks, CI, and explicit “definition of done” in the task itself.",[11,63,65],{"id":64},"how-you-will-work-through-this-academy","How you will work through this Academy",[16,67,68,69,72],{},"The following modules build a single pipeline: understand the tools, ",[30,70,71],{},"prep before prompting",", enforce quality, manage context, align teams, then push into advanced patterns. The through-line is simple: agents amplify whatever process you already have. Make that process intentional.",{"title":74,"searchDepth":75,"depth":75,"links":76},"",2,[77,78,79,80,81],{"id":13,"depth":75,"text":14},{"id":24,"depth":75,"text":25},{"id":39,"depth":75,"text":40},{"id":53,"depth":75,"text":54},{"id":64,"depth":75,"text":65},"Understanding the shift from copilot to autonomous agent — and why it changes everything about how you work.",false,8,"md",{},"foundations",1,"Foundations",true,"\u002Facademy\u002Ffoundations\u002F01-what-is-agentic",{"title":6,"description":82},"academy\u002Ffoundations\u002F01-what-is-agentic","6UHuGEzkIrzSGEFTpFCY2Dlt2wdjGkQCTTU_Y0ouOo8",{"id":96,"title":97,"body":98,"description":215,"draft":83,"estimatedMinutes":216,"extension":85,"meta":217,"module":87,"moduleOrder":88,"moduleTitle":89,"navigation":90,"order":75,"path":218,"seo":219,"stem":220,"__hash__":221},"academy\u002Facademy\u002Ffoundations\u002F02-tool-landscape.md","The Tool Landscape",{"type":8,"value":99,"toc":209},[100,104,111,117,127,133,137,152,159,163,166,191,198,202],[11,101,103],{"id":102},"three-layers-of-assistance","Three layers of assistance",[16,105,106,107,110],{},"Most teams juggle ",[30,108,109],{},"at least three ideas",": inline completion in the editor, chat that reasons across files, and autonomous agents that run terminals and multi-step tasks. Vendors blur the lines every quarter, but the mental model still helps.",[16,112,113,116],{},[30,114,115],{},"Inline completion"," (classic Copilot-style) is best for local edits: finishing a line, sketching a small function from a comment, repeating patterns you already established. It fails when the change needs repo-wide consistency or a test plan — it simply does not hold enough context or intent.",[16,118,119,122,123,126],{},[30,120,121],{},"Chat in the IDE"," adds breadth: you can paste errors, ask for refactors, and iterate on explanations. It is still usually ",[30,124,125],{},"reactive"," — you drive each turn. Good for learning, debugging, and medium-sized edits when you stay in the loop.",[16,128,129,132],{},[30,130,131],{},"Agentic runners"," (Cursor agent mode, Claude Code, and similar) treat the session as a workspace: they read multiple files, propose commands, and chain steps. That is where prep-first work pays off: without a spec, they optimize for “something that runs,” not “something that belongs in your codebase.”",[11,134,136],{"id":135},"what-to-use-when","What to use when",[16,138,139,140,143,144,147,148,151],{},"Use ",[30,141,142],{},"completion"," when you are in flow inside one file and the pattern is obvious. Use ",[30,145,146],{},"chat"," when you need reasoning, comparisons, or a second pair of eyes on an error message. Use ",[30,149,150],{},"agents"," when the task has a clear scope, verifiable checks (tests, linters), and you are ready to review a batch of changes.",[16,153,154,155,158],{},"No tool absolves you of ",[30,156,157],{},"integration responsibility",". The agent does not own your deployment topology, your threat model, or your naming history. You do.",[11,160,162],{"id":161},"avoiding-tool-tribalism","Avoiding tool tribalism",[16,164,165],{},"Teams waste energy arguing which logo is “best.” Better questions:",[167,168,169,177,184],"ul",{},[170,171,172,173,176],"li",{},"Can we standardize ",[30,174,175],{},"project context"," (README, architecture notes, coding rules) so any tool sees the same ground truth?",[170,178,179,180,183],{},"Do we have ",[30,181,182],{},"automated checks"," that catch regressions regardless of who — or what — wrote the patch?",[170,185,186,187,190],{},"Is our ",[30,188,189],{},"review culture"," tuned for larger diffs, or are we pretending every PR is still twenty lines?",[16,192,193,194,197],{},"Pick defaults for the team, allow controlled exceptions, and document ",[30,195,196],{},"why"," in plain language. The Academy modules that follow assume you can run tests and linters locally — that is your neutral referee.",[11,199,201],{"id":200},"practical-starting-point","Practical starting point",[16,203,204,205,208],{},"If you are unsure, start with ",[30,206,207],{},"one"," agentic workflow on a non-critical repo: a bug with a reproduction, a failing test, and a written definition of done. Measure time-to-merge and defect rate. Scale what works; do not mandate tools before you have shared standards.",{"title":74,"searchDepth":75,"depth":75,"links":210},[211,212,213,214],{"id":102,"depth":75,"text":103},{"id":135,"depth":75,"text":136},{"id":161,"depth":75,"text":162},{"id":200,"depth":75,"text":201},"Claude Code, Cursor, Copilot — what each class of tool is good for and how to choose without religious wars.",10,{},"\u002Facademy\u002Ffoundations\u002F02-tool-landscape",{"title":97,"description":215},"academy\u002Ffoundations\u002F02-tool-landscape","qa-vtfDyOIcUAX2r479TxNsM9pDaMdkkRX5e0P-AHHc",{"id":223,"title":224,"body":225,"description":365,"draft":83,"estimatedMinutes":366,"extension":85,"meta":367,"module":87,"moduleOrder":88,"moduleTitle":89,"navigation":90,"order":368,"path":369,"seo":370,"stem":371,"__hash__":372},"academy\u002Facademy\u002Ffoundations\u002F03-setup-properly.md","Set Up Properly",{"type":8,"value":226,"toc":358},[227,231,243,246,250,253,283,290,294,309,323,326,330,337,344,348,351],[11,228,230],{"id":229},"why-setup-is-a-feature-not-paperwork","Why setup is a feature, not paperwork",[16,232,233,234,238,239,242],{},"Agents read what you give them. If your repo has ambiguous scripts, secret env vars with no ",[235,236,237],"code",{},".env.example",", and tribal knowledge in one person’s head, the agent will ",[30,240,241],{},"invent"," plausible glue — wrong paths, mocked endpoints, “temporary” flags that live forever.",[16,244,245],{},"A proper setup reduces hallucinated project structure. It is the same reason senior engineers maintain good READMEs: not for ceremony, but to shrink the search space of mistakes.",[11,247,249],{"id":248},"baseline-checklist","Baseline checklist",[16,251,252],{},"Before you lean on agents for real work, tighten the basics:",[167,254,255,261,267,273],{},[170,256,257,260],{},[30,258,259],{},"Install and test commands"," are documented and match CI.",[170,262,263,266],{},[30,264,265],{},"Lint and typecheck"," run locally in under a few minutes.",[170,268,269,272],{},[30,270,271],{},"Environment"," has a sample file listing required keys without secrets.",[170,274,275,278,279,282],{},[30,276,277],{},"Architecture note"," answers: where does data flow, what is forbidden (e.g. no ",[235,280,281],{},"fetch"," in server secrets), and where tests live.",[16,284,285,286,289],{},"You do not need a novel. You need ",[30,287,288],{},"stable anchors"," the agent can verify against.",[11,291,293],{"id":292},"project-memory-files","Project memory files",[16,295,296,297,300,301,304,305,308],{},"Many teams add a root instruction file (for example ",[235,298,299],{},"CLAUDE.md",", ",[235,302,303],{},"AGENTS.md",", or tool-specific equivalents). Treat it as ",[30,306,307],{},"constraints and map",", not a diary:",[167,310,311,314,317,320],{},[170,312,313],{},"Stack and package manager",[170,315,316],{},"Commands that must pass before a change is “ready”",[170,318,319],{},"Directory conventions",[170,321,322],{},"Security rules (no logging tokens, no disabling TLS for convenience)",[16,324,325],{},"Update it when reality drifts. Stale instructions are worse than none — they train everyone, human or model, to ignore the file.",[11,327,329],{"id":328},"a-first-workflow-that-works","A first workflow that works",[16,331,332,333,336],{},"Pick a ",[30,334,335],{},"small, test-backed task",": fix a failing unit test, rename a module with compiler-guided renames, or add a feature flag that defaults off. Write a short spec: inputs, outputs, files likely touched, and “done means tests X and Y pass.”",[16,338,339,340,343],{},"Run the agent. Review the diff like a human teammate: suspicious imports, broad retries, disabled checks. If something is wrong, ",[30,341,342],{},"fix the spec"," and the guardrails, not just the line of code.",[11,345,347],{"id":346},"when-to-pause-and-reset","When to pause and reset",[16,349,350],{},"If the agent starts looping on the same error, stops running tests, or proposes disabling lint rules — stop. That is a signal your context or task boundary is broken. Shrink the task, add a failing test that encodes intent, or switch to a narrower tool (chat or inline) until the path is clear.",[16,352,353,354,357],{},"Setup is never finished; it ",[30,355,356],{},"compounds",". Every time you correct a repeated mistake, add one line to project memory or a script so the next session starts smarter.",{"title":74,"searchDepth":75,"depth":75,"links":359},[360,361,362,363,364],{"id":229,"depth":75,"text":230},{"id":248,"depth":75,"text":249},{"id":292,"depth":75,"text":293},{"id":328,"depth":75,"text":329},{"id":346,"depth":75,"text":347},"Environment baselines, project memory files like CLAUDE.md, and a first agent workflow that does not end in chaos.",9,{},3,"\u002Facademy\u002Ffoundations\u002F03-setup-properly",{"title":224,"description":365},"academy\u002Ffoundations\u002F03-setup-properly","8ZgecsdqmIYJG0oAl_Fwt-8zEH1TeuCBK_kGsMaOHQw",{"id":374,"title":375,"body":376,"description":386,"draft":83,"estimatedMinutes":387,"extension":85,"meta":388,"module":387,"moduleOrder":387,"moduleTitle":387,"navigation":90,"order":387,"path":389,"seo":390,"stem":391,"__hash__":392},"academy\u002Facademy\u002Findex.md","ByteFern Academy",{"type":8,"value":377,"toc":384},[378,381],[16,379,380],{},"ByteFern Academy teaches disciplined, quality-first agentic development. Not vibe coding — the prep-first approach, anti-shortcut rules, and the workflows that separate engineers who ship production code with AI from those who generate technical debt.",[16,382,383],{},"Six modules. Self-paced. Free.",{"title":74,"searchDepth":75,"depth":75,"links":385},[],"Learn to build with AI agents — without losing your engineering standards.",null,{},"\u002Facademy",{"title":375,"description":386},"academy\u002Findex","7tfn9At3qmULrdCoqtjXoNhNhUjVsOtS32tYBtZMcTU",{"id":394,"title":395,"body":396,"description":539,"draft":83,"estimatedMinutes":216,"extension":85,"meta":540,"module":541,"moduleOrder":75,"moduleTitle":542,"navigation":90,"order":88,"path":543,"seo":544,"stem":545,"__hash__":546},"academy\u002Facademy\u002Fprep-first\u002F01-research-before-prompting.md","Research Before Prompting",{"type":8,"value":397,"toc":532},[398,402,405,411,415,418,444,447,451,454,487,490,494,514,517,521],[11,399,401],{"id":400},"the-void-problem","The void problem",[16,403,404],{},"A vague prompt gets a plausible answer. Plausible is the enemy when correctness matters. The model will fill gaps with defaults: imaginary APIs, made-up config keys, patterns that match “most GitHub repos” but not yours.",[16,406,407,410],{},[30,408,409],{},"Research before prompting"," means you spend minutes (sometimes tens of minutes) shrinking the problem space before you spend tokens generating code. You are not slowing down — you are avoiding the shortcut tax of rewrites, bad merges, and silent behavioral drift.",[11,412,414],{"id":413},"what-counts-as-research","What counts as research",[16,416,417],{},"At minimum:",[167,419,420,426,432,438],{},[170,421,422,425],{},[30,423,424],{},"Reproduce"," the bug or define the feature in one paragraph a teammate could follow.",[170,427,428,431],{},[30,429,430],{},"Locate"," the relevant modules, entry points, and existing tests.",[170,433,434,437],{},[30,435,436],{},"List constraints",": backwards compatibility, performance budget, security boundaries, and what must not change.",[170,439,440,443],{},[30,441,442],{},"Collect references",": error messages, stack traces, links to internal docs, prior PRs that solved something similar.",[16,445,446],{},"If you cannot point to a file or a test that should change, you are not ready to delegate a multi-step agent run.",[11,448,450],{"id":449},"a-lightweight-prep-template","A lightweight prep template",[16,452,453],{},"Use a scratch note or ticket comment:",[455,456,457,463,469,475,481],"ol",{},[170,458,459,462],{},[30,460,461],{},"Goal"," — one sentence outcome.",[170,464,465,468],{},[30,466,467],{},"Non-goals"," — what we are explicitly not doing.",[170,470,471,474],{},[30,472,473],{},"Acceptance"," — observable checks (tests, CLI output, UI state).",[170,476,477,480],{},[30,478,479],{},"Risks"," — migrations, auth, data loss, flaky infra.",[170,482,483,486],{},[30,484,485],{},"First step"," — the smallest edit that moves the needle.",[16,488,489],{},"Hand that block to the agent as the top of the session. It beats a paragraph of vibes.",[11,491,493],{"id":492},"common-failure-modes","Common failure modes",[167,495,496,502,508],{},[170,497,498,501],{},[30,499,500],{},"Prompting the symptom"," instead of the mechanism (“it is slow”) without profiling data.",[170,503,504,507],{},[30,505,506],{},"Skipping tests"," because “the agent will add them” — sometimes it adds theater, not coverage.",[170,509,510,513],{},[30,511,512],{},"Mixing multiple features"," in one run so failures are untraceable.",[16,515,516],{},"When you catch yourself doing any of these, pause. Prep is cheaper than untangling a bad merge.",[11,518,520],{"id":519},"habit-over-heroics","Habit over heroics",[16,522,523,524,527,528,531],{},"Prep-first is a ",[30,525,526],{},"team sport",". Capture prep notes in issues so reviewers see intent. Over time, your project memory files absorb recurring constraints so even quick prompts inherit guardrails. The next module covers how to turn prep into ",[30,529,530],{},"specs"," agents can actually execute.",{"title":74,"searchDepth":75,"depth":75,"links":533},[534,535,536,537,538],{"id":400,"depth":75,"text":401},{"id":413,"depth":75,"text":414},{"id":449,"depth":75,"text":450},{"id":492,"depth":75,"text":493},{"id":519,"depth":75,"text":520},"The core methodology — gather context, name constraints, then delegate; never prompt into a void.",{},"prep-first","The Prep-First Method","\u002Facademy\u002Fprep-first\u002F01-research-before-prompting",{"title":395,"description":539},"academy\u002Fprep-first\u002F01-research-before-prompting","ooHcrguYgTBdMeevr7SAloYL8PZP2msrEM48beqaI2s",{"id":548,"title":549,"body":550,"description":666,"draft":83,"estimatedMinutes":667,"extension":85,"meta":668,"module":541,"moduleOrder":75,"moduleTitle":542,"navigation":90,"order":75,"path":669,"seo":670,"stem":671,"__hash__":672},"academy\u002Facademy\u002Fprep-first\u002F02-spec-driven-dev.md","Spec-Driven Development",{"type":8,"value":551,"toc":659},[552,556,563,574,578,581,613,620,624,631,634,638,645,648,652],[11,553,555],{"id":554},"why-specs-beat-adjectives","Why specs beat adjectives",[16,557,558,559,562],{},"“We need it to be robust” is not a spec. Neither is “make it cleaner.” Agents, like humans, optimize for what you measure. A good spec names ",[30,560,561],{},"inputs, outputs, invariants, and failure behavior"," — the things you can test or inspect.",[16,564,565,566,569,570,573],{},"Spec-driven development with agents is not waterfall paperwork. It is a ",[30,567,568],{},"short, durable contract"," for a slice of work. You can write it in markdown in the issue, in a ",[235,571,572],{},"design\u002F"," note, or inline above the task in your tool — wherever your team will actually read it.",[11,575,577],{"id":576},"anatomy-of-an-agent-executable-spec","Anatomy of an agent-executable spec",[16,579,580],{},"Strong specs usually include:",[167,582,583,589,595,601,607],{},[170,584,585,588],{},[30,586,587],{},"User-visible behavior"," or API shape — function signatures, CLI flags, HTTP routes.",[170,590,591,594],{},[30,592,593],{},"Data rules"," — validation, idempotency, what happens on conflict.",[170,596,597,600],{},[30,598,599],{},"Performance and scale"," — only when it matters; “must handle 10k rows” beats “fast.”",[170,602,603,606],{},[30,604,605],{},"Compatibility"," — migrations, feature flags, deprecation windows.",[170,608,609,612],{},[30,610,611],{},"Verification"," — exact test files or commands that must pass; new tests required for new behavior.",[16,614,615,616,619],{},"If verification is missing, the agent will guess “green enough” — sometimes by weakening tests. Your spec should say ",[30,617,618],{},"what must not be removed",".",[11,621,623],{"id":622},"interfaces-first","Interfaces first",[16,625,626,627,630],{},"When building a new subsystem, sketch the ",[30,628,629],{},"public surface"," before implementation: types, modules, error codes. Agents handle boilerplate well when the boundaries are clear. They struggle when the boundary is “figure out the right abstraction” without constraints — that is design work you still own.",[16,632,633],{},"Use examples. Concrete JSON, sample CLI sessions, and “given \u002F when \u002F then” blocks reduce ambiguity faster than paragraphs.",[11,635,637],{"id":636},"living-specs","Living specs",[16,639,640,641,644],{},"Specs ",[30,642,643],{},"decay",". When code diverges, update the spec or delete it. A misleading spec is worse than none because it trains everyone to ignore written intent.",[16,646,647],{},"Link specs to PRs. In review, ask: does this diff match the spec’s verification section? If not, either the spec or the code is wrong — resolve which before merge.",[11,649,651],{"id":650},"connection-to-research","Connection to research",[16,653,654,655,658],{},"Research collects facts; specs ",[30,656,657],{},"commit"," to decisions. Together they define the funnel: broad exploration, narrow contract, implementation, verification. Skip the middle step and you get high-speed thrash.",{"title":74,"searchDepth":75,"depth":75,"links":660},[661,662,663,664,665],{"id":554,"depth":75,"text":555},{"id":576,"depth":75,"text":577},{"id":622,"depth":75,"text":623},{"id":636,"depth":75,"text":637},{"id":650,"depth":75,"text":651},"Writing specs that agents (and humans) can execute — interfaces, invariants, and done definitions.",11,{},"\u002Facademy\u002Fprep-first\u002F02-spec-driven-dev",{"title":549,"description":666},"academy\u002Fprep-first\u002F02-spec-driven-dev","jcevU7nh-hH4Zaj_MDFbIcJJIGkoiv6eMcV6m49k6gc",{"id":674,"title":675,"body":676,"description":784,"draft":83,"estimatedMinutes":366,"extension":85,"meta":785,"module":541,"moduleOrder":75,"moduleTitle":542,"navigation":90,"order":368,"path":786,"seo":787,"stem":788,"__hash__":789},"academy\u002Facademy\u002Fprep-first\u002F03-task-breakdown.md","Task Breakdown",{"type":8,"value":677,"toc":776},[678,682,689,696,700,703,726,729,733,740,744,751,755,765,769],[11,679,681],{"id":680},"the-mega-prompt-trap","The mega-prompt trap",[16,683,684,685,688],{},"It is tempting to paste a wall of text: “refactor the auth layer, migrate sessions, update the admin UI, and add metrics.” Large undifferentiated tasks produce ",[30,686,687],{},"large undifferentiated diffs",". Reviewers glaze over. CI failures become archeology.",[16,690,691,692,695],{},"Agents work best on ",[30,693,694],{},"bounded slices"," with a clear checkpoint — usually a green test run or a compile — between slices.",[11,697,699],{"id":698},"sizing-tasks","Sizing tasks",[16,701,702],{},"A useful chunk:",[167,704,705,712,719],{},[170,706,707,708,711],{},"Touches a ",[30,709,710],{},"small, named set"," of modules (you can list them upfront).",[170,713,714,715,718],{},"Has a ",[30,716,717],{},"single primary outcome"," (behavior change, extraction, performance fix).",[170,720,721,722,725],{},"Ends with ",[30,723,724],{},"automated proof"," (tests, typecheck, or a scripted smoke command).",[16,727,728],{},"If you cannot name the files likely to change, the task is still fuzzy — do more research or spec work.",[11,730,732],{"id":731},"checkpoints-are-psychological-and-technical","Checkpoints are psychological and technical",[16,734,735,736,739],{},"Checkpoints give you ",[30,737,738],{},"natural review boundaries",": merge or continue. They also reset context in long sessions. After each checkpoint, refresh the spec snippet at the top of the agent thread: what changed, what is next, what must stay true.",[11,741,743],{"id":742},"dependency-order","Dependency order",[16,745,746,747,750],{},"Order tasks so ",[30,748,749],{},"foundations land first",": types and data models before UI polish; server contracts before client consumption. Parallelizing sounds fast until two agent runs fight over the same file. Serialize contentious areas; parallelize independent packages if your tooling supports it.",[11,752,754],{"id":753},"when-to-split-vs-batch","When to split vs. batch",[16,756,757,758,761,762,619],{},"Batch tiny mechanical edits (rename across files with compiler help). Split ",[30,759,760],{},"semantic"," changes (behavior, security, persistence). The question is not line count — it is ",[30,763,764],{},"risk surface",[11,766,768],{"id":767},"handoffs","Handoffs",[16,770,771,772,775],{},"When switching humans or sessions, leave a ",[30,773,774],{},"handoff note",": current branch, commands run, failing tests, and the next intended slice. The Context Management module goes deeper; for now, treat every finished chunk as a mini-handoff to your future self.",{"title":74,"searchDepth":75,"depth":75,"links":777},[778,779,780,781,782,783],{"id":680,"depth":75,"text":681},{"id":698,"depth":75,"text":699},{"id":731,"depth":75,"text":732},{"id":742,"depth":75,"text":743},{"id":753,"depth":75,"text":754},{"id":767,"depth":75,"text":768},"Breaking work into agent-sized chunks — boundaries, checkpoints, and avoiding mega-prompts.",{},"\u002Facademy\u002Fprep-first\u002F03-task-breakdown",{"title":675,"description":784},"academy\u002Fprep-first\u002F03-task-breakdown","VBqCam17FSdkcORNg4p_LaW8gfVy8KR-OPTPhEziaYE",1775422461858]