{"id":"07-prompting","number":7,"slug":"prompting-coding-agents","title":"Talking to agents","short":"Talking to agents","module":"Working with one agent","summary":"Good prompts aren't clever. They answer one question: how is the model supposed to know what I mean? Learn the habits of people who prompt agents all day: point to where knowledge lives, show a gold standard, state constraints and exit criteria, and use the short phrases that carry a lot of discipline.","voice":"Eric","scenes":[{"template":"title","chapter":"Intro","narration":"The best prompts for coding agents aren't clever. There are no magic words. They just answer one question better than most people bother to.","params":{"kicker":"Lesson 7","module":"Module 2 · Working with one agent","title":"Talking to *agents*","subtitle":"How is the model supposed to know what you mean?","bubble":"Tell me more…","mood":"happy"},"start":0.5,"dur":9.559,"words":[{"text":"The","s":0.8,"e":0.96},{"text":"best","s":1.12,"e":1.28},{"text":"prompts","s":1.4,"e":1.68},{"text":"for","s":1.76,"e":1.84},{"text":"coding","s":1.92,"e":2.16},{"text":"agents","s":2.24,"e":2.64},{"text":"aren't","s":2.72,"e":2.88},{"text":"clever.","s":2.96,"e":3.84},{"text":"There","s":3.92,"e":4},{"text":"are","s":4.08,"e":4.16},{"text":"no","s":4.24,"e":4.4},{"text":"magic","s":4.48,"e":4.8},{"text":"words.","s":4.88,"e":5.76},{"text":"They","s":5.84,"e":5.92},{"text":"just","s":6.04,"e":6.16},{"text":"answer","s":6.36,"e":6.56},{"text":"one","s":6.64,"e":6.8},{"text":"question","s":6.88,"e":7.36},{"text":"better","s":7.44,"e":7.6},{"text":"than","s":7.72,"e":7.84},{"text":"most","s":7.96,"e":8.08},{"text":"people","s":8.24,"e":8.4},{"text":"bother","s":8.44,"e":8.72},{"text":"to.","s":8.84,"e":9.2}]},{"template":"statement","chapter":"The kidnapped engineer","narration":"Thorsten Ball, who builds the Amp agent, uses this picture. Imagine a brilliant senior engineer, kidnapped and locked in a room, with only a computer and your note: fix the bug with the upload. What do they know? What are they missing?","params":{"eyebrow":"Thorsten Ball's thought experiment","text":"A brilliant engineer, locked in a room, with a computer and your note: “*fix the bug with the upload*.”","sub":"What do they know? What are they missing?","sub_at":"missing","art":"agent","size":"m","sync":false},"start":10.059,"dur":16.597,"words":[{"text":"Thorsten","s":10.359,"e":10.839},{"text":"Ball,","s":10.919,"e":11.479},{"text":"who","s":11.559,"e":11.639},{"text":"builds","s":11.719,"e":11.959},{"text":"the","s":11.999,"e":12.039},{"text":"Amp","s":12.119,"e":12.279},{"text":"agent,","s":12.359,"e":12.919},{"text":"uses","s":12.999,"e":13.319},{"text":"this","s":13.399,"e":13.479},{"text":"picture.","s":13.559,"e":13.959},{"text":"Imagine","s":14.599,"e":14.999},{"text":"a","s":15.079,"e":15.159},{"text":"brilliant","s":15.319,"e":15.799},{"text":"senior","s":15.879,"e":16.199},{"text":"engineer,","s":16.279,"e":17.079},{"text":"kidnapped","s":17.159,"e":17.639},{"text":"and","s":17.719,"e":17.799},{"text":"locked","s":17.879,"e":18.119},{"text":"in","s":18.199,"e":18.239},{"text":"a","s":18.279,"e":18.319},{"text":"room,","s":18.359,"e":18.999},{"text":"with","s":19.079,"e":19.159},{"text":"only","s":19.239,"e":19.479},{"text":"a","s":19.519,"e":19.559},{"text":"computer","s":19.839,"e":20.119},{"text":"and","s":20.199,"e":20.359},{"text":"your","s":20.439,"e":20.599},{"text":"note:","s":20.679,"e":21.479},{"text":"fix","s":21.639,"e":21.879},{"text":"the","s":21.919,"e":21.959},{"text":"bug","s":22.039,"e":22.279},{"text":"with","s":22.359,"e":22.439},{"text":"the","s":22.479,"e":22.519},{"text":"upload.","s":22.599,"e":23.399},{"text":"What","s":23.719,"e":23.799},{"text":"do","s":23.879,"e":23.959},{"text":"they","s":24.039,"e":24.119},{"text":"know?","s":24.199,"e":24.919},{"text":"What","s":24.959,"e":24.999},{"text":"are","s":25.079,"e":25.119},{"text":"they","s":25.159,"e":25.239},{"text":"missing?","s":25.319,"e":26.039}]},{"template":"list","chapter":"Where knowledge comes from","narration":"His core question is: how is the model supposed to know what I mean? There are only four places the answer can come from. Its training data, which knows general programming. Your codebase, if it can find the right part. Whatever is already in its context. And your head, which it can only reach through your prompt.","params":{"title":"Where the agent's knowledge comes from","style":"num","items":[{"text":"Training data","sub":"general programming, popular libraries","at":"training"},{"text":"Your codebase","sub":"only if it finds the right part","at":"codebase"},{"text":"Its context","sub":"what's already loaded","at":"context"},{"text":"Your head","sub":"reachable only through your prompt","at":"head"}],"hnote":{"text":"the intent lives here!","at":"only reach","p":[62,78],"pp":[55,82]}},"start":26.656,"dur":19.784,"words":[{"text":"His","s":26.956,"e":27.196},{"text":"core","s":27.316,"e":27.436},{"text":"question","s":27.516,"e":27.916},{"text":"is:","s":27.996,"e":28.556},{"text":"how","s":28.636,"e":28.716},{"text":"is","s":28.796,"e":28.876},{"text":"the","s":28.956,"e":29.036},{"text":"model","s":29.116,"e":29.356},{"text":"supposed","s":29.436,"e":29.756},{"text":"to","s":29.836,"e":29.916},{"text":"know","s":29.996,"e":30.076},{"text":"what","s":30.156,"e":30.236},{"text":"I","s":30.316,"e":30.476},{"text":"mean?","s":30.636,"e":31.356},{"text":"There","s":31.436,"e":31.516},{"text":"are","s":31.556,"e":31.596},{"text":"only","s":31.676,"e":31.996},{"text":"four","s":32.116,"e":32.236},{"text":"places","s":32.316,"e":32.716},{"text":"the","s":32.796,"e":32.876},{"text":"answer","s":33.036,"e":33.196},{"text":"can","s":33.276,"e":33.356},{"text":"come","s":33.476,"e":33.596},{"text":"from.","s":33.716,"e":34.316},{"text":"Its","s":34.436,"e":34.556},{"text":"training","s":34.716,"e":34.876},{"text":"data,","s":34.956,"e":35.436},{"text":"which","s":35.556,"e":35.676},{"text":"knows","s":35.756,"e":35.996},{"text":"general","s":36.076,"e":36.396},{"text":"programming.","s":36.476,"e":37.436},{"text":"Your","s":37.516,"e":37.596},{"text":"codebase,","s":37.676,"e":38.476},{"text":"if","s":38.556,"e":38.636},{"text":"it","s":38.676,"e":38.716},{"text":"can","s":38.796,"e":38.876},{"text":"find","s":38.956,"e":39.116},{"text":"the","s":39.156,"e":39.196},{"text":"right","s":39.316,"e":39.436},{"text":"part.","s":39.596,"e":40.236},{"text":"Whatever","s":40.396,"e":40.556},{"text":"is","s":40.636,"e":40.796},{"text":"already","s":40.876,"e":41.276},{"text":"in","s":41.316,"e":41.356},{"text":"its","s":41.476,"e":41.596},{"text":"context.","s":41.916,"e":42.636},{"text":"And","s":42.796,"e":42.956},{"text":"your","s":43.036,"e":43.116},{"text":"head,","s":43.236,"e":43.676},{"text":"which","s":43.756,"e":43.836},{"text":"it","s":43.916,"e":43.996},{"text":"can","s":44.076,"e":44.156},{"text":"only","s":44.236,"e":44.476},{"text":"reach","s":44.556,"e":44.796},{"text":"through","s":44.876,"e":44.956},{"text":"your","s":45.036,"e":45.116},{"text":"prompt.","s":45.196,"e":45.836}]},{"template":"chat","chapter":"A better prompt","narration":"Compare two prompts. The first is the note in the locked room. The second answers the question. It describes the symptom, points to the files, names a working example to copy, states the constraint, and says what done looks like.","params":{"messages":[{"from":"you","text":"fix the bug with the upload","label":"the note","at":"first"},{"from":"you","text":"Uploads over 10MB fail with a 413 in prod. Look at `api/upload.ts` and `nginx.conf`. The avatar uploader handles large files correctly, use it as the gold standard. Don't change the public API. Done when a 40MB upload works and the tests pass.","label":"the briefing","at":"second"}]},"start":46.44,"dur":16.258,"words":[{"text":"Compare","s":46.74,"e":47.14},{"text":"two","s":47.3,"e":47.46},{"text":"prompts.","s":47.54,"e":48.1},{"text":"The","s":48.58,"e":48.66},{"text":"first","s":48.74,"e":49.14},{"text":"is","s":49.22,"e":49.38},{"text":"the","s":49.42,"e":49.46},{"text":"note","s":49.54,"e":49.78},{"text":"in","s":49.86,"e":49.94},{"text":"the","s":49.98,"e":50.02},{"text":"locked","s":50.1,"e":50.34},{"text":"room.","s":50.42,"e":50.74},{"text":"The","s":51.22,"e":51.3},{"text":"second","s":51.38,"e":51.78},{"text":"answers","s":51.94,"e":52.26},{"text":"the","s":52.34,"e":52.38},{"text":"question.","s":52.42,"e":52.98},{"text":"It","s":53.46,"e":53.54},{"text":"describes","s":53.62,"e":54.02},{"text":"the","s":54.1,"e":54.18},{"text":"symptom,","s":54.26,"e":54.98},{"text":"points","s":55.14,"e":55.3},{"text":"to","s":55.34,"e":55.38},{"text":"the","s":55.46,"e":55.54},{"text":"files,","s":55.62,"e":56.42},{"text":"names","s":56.5,"e":56.74},{"text":"a","s":56.78,"e":56.82},{"text":"working","s":56.98,"e":57.14},{"text":"example","s":57.22,"e":57.62},{"text":"to","s":57.66,"e":57.7},{"text":"copy,","s":57.78,"e":58.5},{"text":"states","s":58.58,"e":58.9},{"text":"the","s":58.98,"e":59.02},{"text":"constraint,","s":59.06,"e":59.86},{"text":"and","s":60.02,"e":60.18},{"text":"says","s":60.34,"e":60.58},{"text":"what","s":60.66,"e":60.82},{"text":"done","s":60.98,"e":61.3},{"text":"looks","s":61.38,"e":61.54},{"text":"like.","s":61.62,"e":62.1}]},{"template":"code","chapter":"A better prompt","narration":"Look at what each part does. The symptom says what's wrong. The pointers save the agent from reading the whole repo. The gold standard shows what good looks like. The constraint closes a gap. And the exit criteria tell it when to stop.","params":{"file":"a good prompt, annotated","lang":"text","lines":["Uploads over 10MB fail with a 413 in prod.","Look at api/upload.ts and nginx.conf.","The avatar uploader handles large files correctly:","use it as the gold standard.","Don't change the public API.","Done when a 40MB upload works and the tests pass."],"hl":[{"from":1,"to":1,"at":"symptom","label":"symptom","tone":"bad"},{"from":2,"to":2,"at":"pointers","label":"where to look","tone":"human"},{"from":3,"to":4,"at":"gold standard","label":"what good looks like","tone":"good"},{"from":5,"to":5,"at":"constraint","label":"a closed gap","tone":"agent"},{"from":6,"to":6,"at":"exit criteria","label":"when to stop","tone":"good"}]},"start":62.698,"dur":16.258,"words":[{"text":"Look","s":62.998,"e":63.238},{"text":"at","s":63.278,"e":63.318},{"text":"what","s":63.398,"e":63.558},{"text":"each","s":63.638,"e":63.798},{"text":"part","s":63.958,"e":64.118},{"text":"does.","s":64.278,"e":64.918},{"text":"The","s":65.158,"e":65.238},{"text":"symptom","s":65.318,"e":65.718},{"text":"says","s":65.878,"e":66.038},{"text":"what's","s":66.118,"e":66.318},{"text":"wrong.","s":66.358,"e":66.838},{"text":"The","s":67.238,"e":67.318},{"text":"pointers","s":67.398,"e":67.958},{"text":"save","s":68.038,"e":68.278},{"text":"the","s":68.318,"e":68.358},{"text":"agent","s":68.438,"e":68.758},{"text":"from","s":68.838,"e":68.918},{"text":"reading","s":68.998,"e":69.238},{"text":"the","s":69.318,"e":69.398},{"text":"whole","s":69.478,"e":69.718},{"text":"repo.","s":69.798,"e":70.278},{"text":"The","s":70.758,"e":70.838},{"text":"gold","s":70.918,"e":71.158},{"text":"standard","s":71.238,"e":71.638},{"text":"shows","s":71.718,"e":71.958},{"text":"what","s":72.038,"e":72.198},{"text":"good","s":72.278,"e":72.438},{"text":"looks","s":72.518,"e":72.758},{"text":"like.","s":72.878,"e":73.078},{"text":"The","s":73.558,"e":73.598},{"text":"constraint","s":73.638,"e":74.198},{"text":"closes","s":74.358,"e":74.758},{"text":"a","s":74.798,"e":74.838},{"text":"gap.","s":74.918,"e":75.478},{"text":"And","s":75.718,"e":75.878},{"text":"the","s":75.918,"e":75.958},{"text":"exit","s":76.038,"e":76.278},{"text":"criteria","s":76.358,"e":76.998},{"text":"tell","s":77.078,"e":77.238},{"text":"it","s":77.318,"e":77.398},{"text":"when","s":77.478,"e":77.558},{"text":"to","s":77.638,"e":77.718},{"text":"stop.","s":77.918,"e":78.358}]},{"template":"flow","chapter":"The one-two punch","narration":"Thorsten's favorite trick is the one-two punch. Instead of cramming everything into the first prompt, he first asks the agent to find the relevant code. That loads the right files into its context. Then he makes the real request.","params":{"nodes":[{"label":"Prompt 1: find it","sub":"“Find where we handle uploads and how the avatar uploader works.”","kind":"human","at":"first asks"},{"label":"Context loads","sub":"the right files, read","kind":"agent","at":"loads"},{"label":"Prompt 2: the ask","sub":"“Now make uploads work the same way.”","kind":"human","at":"real request"}]},"start":78.956,"dur":15.161,"words":[{"text":"Thorsten's","s":79.256,"e":79.896},{"text":"favorite","s":80.096,"e":80.296},{"text":"trick","s":80.376,"e":80.616},{"text":"is","s":80.776,"e":80.856},{"text":"the","s":80.936,"e":81.016},{"text":"one-two","s":81.096,"e":81.576},{"text":"punch.","s":81.656,"e":82.056},{"text":"Instead","s":82.616,"e":82.936},{"text":"of","s":82.976,"e":83.016},{"text":"cramming","s":83.096,"e":83.496},{"text":"everything","s":83.576,"e":83.976},{"text":"into","s":84.096,"e":84.216},{"text":"the","s":84.256,"e":84.296},{"text":"first","s":84.456,"e":84.696},{"text":"prompt,","s":84.776,"e":85.416},{"text":"he","s":85.536,"e":85.656},{"text":"first","s":85.816,"e":85.976},{"text":"asks","s":86.056,"e":86.376},{"text":"the","s":86.416,"e":86.456},{"text":"agent","s":86.536,"e":86.776},{"text":"to","s":86.856,"e":86.936},{"text":"find","s":87.016,"e":87.176},{"text":"the","s":87.256,"e":87.296},{"text":"relevant","s":87.336,"e":87.736},{"text":"code.","s":87.936,"e":88.416},{"text":"That","s":88.696,"e":88.856},{"text":"loads","s":89.016,"e":89.176},{"text":"the","s":89.216,"e":89.256},{"text":"right","s":89.336,"e":89.576},{"text":"files","s":89.656,"e":89.976},{"text":"into","s":90.056,"e":90.216},{"text":"its","s":90.296,"e":90.376},{"text":"context.","s":90.456,"e":91.256},{"text":"Then","s":91.496,"e":91.816},{"text":"he","s":91.896,"e":91.976},{"text":"makes","s":92.056,"e":92.216},{"text":"the","s":92.296,"e":92.376},{"text":"real","s":92.456,"e":92.616},{"text":"request.","s":92.696,"e":93.496}]},{"template":"statement","chapter":"Show, don't describe","narration":"Notice how much work examples do. Simon Willison often tells the agent to imitate existing logic elsewhere in the project, instead of describing the rules. And Thorsten says ninety percent of his prompts include a screenshot: a bug, a design, a customer message. Pictures and examples are cheap, dense context.","params":{"text":"Point at an *example*. Paste a *screenshot*. Skip the essay.","sub":"“90% of my prompts have screenshots in them.” — Thorsten Ball","sub_at":"ninety","art":"eye","tone":"human","sync":false},"start":94.117,"dur":21.639,"words":[{"text":"Notice","s":94.417,"e":94.817},{"text":"how","s":94.897,"e":94.977},{"text":"much","s":95.057,"e":95.217},{"text":"work","s":95.377,"e":95.697},{"text":"examples","s":95.777,"e":96.417},{"text":"do.","s":96.577,"e":97.057},{"text":"Simon","s":97.377,"e":97.697},{"text":"Willison","s":97.777,"e":98.257},{"text":"often","s":98.337,"e":98.577},{"text":"tells","s":98.657,"e":98.897},{"text":"the","s":98.937,"e":98.977},{"text":"agent","s":99.057,"e":99.377},{"text":"to","s":99.417,"e":99.457},{"text":"imitate","s":99.617,"e":100.097},{"text":"existing","s":100.377,"e":100.657},{"text":"logic","s":100.737,"e":101.137},{"text":"elsewhere","s":101.217,"e":101.617},{"text":"in","s":101.657,"e":101.697},{"text":"the","s":101.737,"e":101.777},{"text":"project,","s":101.857,"e":102.497},{"text":"instead","s":102.697,"e":102.897},{"text":"of","s":102.937,"e":102.977},{"text":"describing","s":103.057,"e":103.537},{"text":"the","s":103.577,"e":103.617},{"text":"rules.","s":103.697,"e":104.337},{"text":"And","s":104.577,"e":104.737},{"text":"Thorsten","s":104.817,"e":105.217},{"text":"says","s":105.297,"e":105.537},{"text":"ninety","s":105.777,"e":106.017},{"text":"percent","s":106.097,"e":106.417},{"text":"of","s":106.457,"e":106.497},{"text":"his","s":106.577,"e":106.657},{"text":"prompts","s":106.737,"e":107.057},{"text":"include","s":107.137,"e":107.377},{"text":"a","s":107.457,"e":107.497},{"text":"screenshot:","s":107.537,"e":108.577},{"text":"a","s":108.617,"e":108.657},{"text":"bug,","s":108.737,"e":109.297},{"text":"a","s":109.324,"e":109.35},{"text":"design,","s":109.377,"e":110.177},{"text":"a","s":110.23,"e":110.284},{"text":"customer","s":110.337,"e":110.657},{"text":"message.","s":110.737,"e":111.217},{"text":"Pictures","s":111.697,"e":112.177},{"text":"and","s":112.217,"e":112.257},{"text":"examples","s":112.337,"e":112.897},{"text":"are","s":113.017,"e":113.137},{"text":"cheap,","s":113.297,"e":113.777},{"text":"dense","s":113.937,"e":114.097},{"text":"context.","s":114.177,"e":115.057}]},{"template":"statement","chapter":"Guardrails and exit","narration":"How much detail is right? Boris Cherny warns against scripting every step. With modern models, describe the task, describe the guardrails, describe the exit criteria, and then let the model cook. He even suggests giving it tasks slightly harder than you think it can do.","params":{"eyebrow":"Boris Cherny's advice","text":"Describe the task, the guardrails and the *exit criteria*. Then let the model cook.","sub":"Don't script every step. Try tasks slightly harder than you think it can do.","sub_at":"harder","art":"target","tone":"agent","size":"m","sync":false},"start":115.756,"dur":18.504,"words":[{"text":"How","s":116.056,"e":116.296},{"text":"much","s":116.376,"e":116.536},{"text":"detail","s":116.616,"e":117.016},{"text":"is","s":117.096,"e":117.176},{"text":"right?","s":117.256,"e":117.736},{"text":"Boris","s":118.296,"e":118.616},{"text":"Cherny","s":118.696,"e":119.176},{"text":"warns","s":119.296,"e":119.496},{"text":"against","s":119.576,"e":119.816},{"text":"scripting","s":119.976,"e":120.376},{"text":"every","s":120.456,"e":120.696},{"text":"step.","s":120.776,"e":121.416},{"text":"With","s":121.656,"e":121.816},{"text":"modern","s":121.896,"e":122.136},{"text":"models,","s":122.216,"e":122.856},{"text":"describe","s":123.096,"e":123.336},{"text":"the","s":123.376,"e":123.416},{"text":"task,","s":123.496,"e":124.136},{"text":"describe","s":124.216,"e":124.536},{"text":"the","s":124.616,"e":124.656},{"text":"guardrails,","s":124.696,"e":125.656},{"text":"describe","s":125.856,"e":126.056},{"text":"the","s":126.136,"e":126.216},{"text":"exit","s":126.296,"e":126.536},{"text":"criteria,","s":126.616,"e":127.496},{"text":"and","s":127.616,"e":127.736},{"text":"then","s":127.856,"e":127.976},{"text":"let","s":128.216,"e":128.376},{"text":"the","s":128.416,"e":128.456},{"text":"model","s":128.536,"e":128.776},{"text":"cook.","s":128.856,"e":129.416},{"text":"He","s":129.656,"e":129.816},{"text":"even","s":129.896,"e":130.056},{"text":"suggests","s":130.136,"e":130.616},{"text":"giving","s":130.656,"e":130.856},{"text":"it","s":130.896,"e":130.936},{"text":"tasks","s":131.016,"e":131.496},{"text":"slightly","s":131.576,"e":131.976},{"text":"harder","s":132.056,"e":132.376},{"text":"than","s":132.456,"e":132.536},{"text":"you","s":132.616,"e":132.696},{"text":"think","s":132.776,"e":132.856},{"text":"it","s":132.896,"e":132.936},{"text":"can","s":133.016,"e":133.096},{"text":"do.","s":133.176,"e":133.656}]},{"template":"terminal","chapter":"Phrases that pack a punch","narration":"Some short phrases carry a surprising amount of discipline, because the habits are already baked into the models. Simon Willison starts sessions with: first run the tests. That's four words, and the agent will keep running them. Use red green TDD. Ask me questions if anything is unclear, because agents rarely ask on their own. And copy how another part of the code does it.","params":{"title":"prompts that punch above their weight","typing":true,"lines":[{"k":"you","text":"First run the tests.","at":"first run"},{"k":"dim","text":"  # it learns the suite exists, and keeps using it"},{"k":"you","text":"Use red/green TDD.","at":"TDD"},{"k":"dim","text":"  # write a failing test first, then make it pass"},{"k":"you","text":"Ask me questions if anything is unclear.","at":"questions"},{"k":"dim","text":"  # agents rarely ask on their own"},{"k":"you","text":"Do it the way the billing module does.","at":"copy"},{"k":"dim","text":"  # an example beats a paragraph of rules"}]},"start":134.26,"dur":25.401,"words":[{"text":"Some","s":134.56,"e":134.8},{"text":"short","s":134.88,"e":135.12},{"text":"phrases","s":135.2,"e":135.6},{"text":"carry","s":135.68,"e":135.92},{"text":"a","s":135.96,"e":136},{"text":"surprising","s":136.08,"e":136.72},{"text":"amount","s":136.84,"e":136.96},{"text":"of","s":137,"e":137.04},{"text":"discipline,","s":137.12,"e":137.76},{"text":"because","s":137.92,"e":138.08},{"text":"the","s":138.12,"e":138.16},{"text":"habits","s":138.24,"e":138.56},{"text":"are","s":138.68,"e":138.8},{"text":"already","s":139,"e":139.2},{"text":"baked","s":139.36,"e":139.6},{"text":"into","s":139.72,"e":139.84},{"text":"the","s":139.88,"e":139.92},{"text":"models.","s":140,"e":140.72},{"text":"Simon","s":141.04,"e":141.36},{"text":"Willison","s":141.44,"e":141.92},{"text":"starts","s":142.08,"e":142.24},{"text":"sessions","s":142.44,"e":142.64},{"text":"with:","s":142.8,"e":143.04},{"text":"first","s":143.52,"e":143.84},{"text":"run","s":144.08,"e":144.24},{"text":"the","s":144.28,"e":144.32},{"text":"tests.","s":144.4,"e":145.12},{"text":"That's","s":145.36,"e":145.6},{"text":"four","s":145.68,"e":145.92},{"text":"words,","s":146,"e":146.56},{"text":"and","s":146.6,"e":146.64},{"text":"the","s":146.72,"e":146.8},{"text":"agent","s":146.88,"e":147.12},{"text":"will","s":147.2,"e":147.28},{"text":"keep","s":147.44,"e":147.6},{"text":"running","s":147.68,"e":147.92},{"text":"them.","s":148,"e":148.16},{"text":"Use","s":148.8,"e":149.04},{"text":"red","s":149.2,"e":149.36},{"text":"green","s":149.52,"e":149.76},{"text":"TDD.","s":149.84,"e":150.48},{"text":"Ask","s":151.04,"e":151.2},{"text":"me","s":151.28,"e":151.36},{"text":"questions","s":151.44,"e":151.92},{"text":"if","s":152,"e":152.08},{"text":"anything","s":152.24,"e":152.4},{"text":"is","s":152.48,"e":152.56},{"text":"unclear,","s":152.64,"e":153.36},{"text":"because","s":153.52,"e":153.68},{"text":"agents","s":153.76,"e":154.16},{"text":"rarely","s":154.32,"e":154.72},{"text":"ask","s":154.8,"e":155.04},{"text":"on","s":155.08,"e":155.12},{"text":"their","s":155.2,"e":155.36},{"text":"own.","s":155.48,"e":155.84},{"text":"And","s":156.08,"e":156.32},{"text":"copy","s":156.8,"e":157.12},{"text":"how","s":157.2,"e":157.28},{"text":"another","s":157.36,"e":157.68},{"text":"part","s":157.76,"e":157.92},{"text":"of","s":157.96,"e":158},{"text":"the","s":158.04,"e":158.08},{"text":"code","s":158.16,"e":158.4},{"text":"does","s":158.52,"e":158.64},{"text":"it.","s":158.72,"e":159.04}]},{"template":"list","chapter":"Just talk to it","narration":"And remember you can just talk to it. Cat Wu from the Claude Code team says even experts forget this. Output too complicated? Say: simplify it. Something looks off? Ask why it made that choice. Airbnb's engineers found that after a few rounds of pushing back, the agent often admits it was wrong. You can even dictate by voice. What matters is how much information you give, not how polished it sounds.","params":{"title":"You can just talk to it","items":[{"text":"“Simplify it.”","sub":"when the output is overbuilt","at":"simplify"},{"text":"“Why did you do it this way?”","sub":"push back on anything odd","at":"why"},{"text":"Ramble by voice","sub":"information beats polish","at":"voice"}]},"start":159.661,"dur":27.151,"words":[{"text":"And","s":159.961,"e":160.121},{"text":"remember","s":160.361,"e":160.601},{"text":"you","s":160.841,"e":160.921},{"text":"can","s":161.001,"e":161.081},{"text":"just","s":161.161,"e":161.241},{"text":"talk","s":161.321,"e":161.561},{"text":"to","s":161.641,"e":161.721},{"text":"it.","s":161.801,"e":161.961},{"text":"Cat","s":162.441,"e":162.681},{"text":"Wu","s":162.761,"e":163.001},{"text":"from","s":163.081,"e":163.161},{"text":"the","s":163.201,"e":163.241},{"text":"Claude","s":163.321,"e":163.561},{"text":"Code","s":163.641,"e":163.881},{"text":"team","s":164.041,"e":164.201},{"text":"says","s":164.281,"e":164.521},{"text":"even","s":164.681,"e":164.921},{"text":"experts","s":165.081,"e":165.481},{"text":"forget","s":165.561,"e":165.801},{"text":"this.","s":165.881,"e":166.441},{"text":"Output","s":166.681,"e":167.001},{"text":"too","s":167.081,"e":167.161},{"text":"complicated?","s":167.241,"e":167.881},{"text":"Say:","s":168.281,"e":168.601},{"text":"simplify","s":168.921,"e":169.401},{"text":"it.","s":169.441,"e":169.641},{"text":"Something","s":170.041,"e":170.281},{"text":"looks","s":170.361,"e":170.521},{"text":"off?","s":170.601,"e":171.121},{"text":"Ask","s":171.321,"e":171.561},{"text":"why","s":171.721,"e":171.881},{"text":"it","s":171.961,"e":172.041},{"text":"made","s":172.121,"e":172.201},{"text":"that","s":172.281,"e":172.441},{"text":"choice.","s":172.521,"e":173.201},{"text":"Airbnb's","s":173.481,"e":174.121},{"text":"engineers","s":174.281,"e":174.681},{"text":"found","s":174.761,"e":174.921},{"text":"that","s":175.001,"e":175.161},{"text":"after","s":175.241,"e":175.481},{"text":"a","s":175.561,"e":175.721},{"text":"few","s":175.801,"e":175.881},{"text":"rounds","s":175.961,"e":176.201},{"text":"of","s":176.281,"e":176.361},{"text":"pushing","s":176.441,"e":176.681},{"text":"back,","s":176.761,"e":177.321},{"text":"the","s":177.401,"e":177.481},{"text":"agent","s":177.561,"e":177.881},{"text":"often","s":177.961,"e":178.281},{"text":"admits","s":178.361,"e":178.681},{"text":"it","s":178.721,"e":178.761},{"text":"was","s":178.841,"e":178.921},{"text":"wrong.","s":179.001,"e":179.561},{"text":"You","s":179.801,"e":179.881},{"text":"can","s":179.961,"e":180.041},{"text":"even","s":180.161,"e":180.281},{"text":"dictate","s":180.361,"e":180.681},{"text":"by","s":180.761,"e":180.841},{"text":"voice.","s":180.921,"e":181.561},{"text":"What","s":181.801,"e":181.961},{"text":"matters","s":182.041,"e":182.441},{"text":"is","s":182.521,"e":182.681},{"text":"how","s":182.761,"e":182.841},{"text":"much","s":182.921,"e":183.081},{"text":"information","s":183.401,"e":183.721},{"text":"you","s":183.801,"e":183.881},{"text":"give,","s":184.001,"e":184.441},{"text":"not","s":184.561,"e":184.681},{"text":"how","s":184.761,"e":184.921},{"text":"polished","s":185.001,"e":185.401},{"text":"it","s":185.441,"e":185.481},{"text":"sounds.","s":185.561,"e":186.201}]},{"template":"quote","chapter":"Executive communication","narration":"Thariq Shihipar from the Claude Code team sums it up. Sufficiently advanced prompting is indistinguishable from sufficiently advanced executive communication. Clear context, clear goal, clear constraints. The same things that make a great brief for a human.","params":{"text":"Sufficiently advanced prompting is indistinguishable from sufficiently advanced *executive communication*.","who":"Thariq Shihipar","role":"Claude Code team, Anthropic","src":"Claude Code's Bitter Lesson · Latent Space","t":1911},"start":186.812,"dur":16.832,"words":[{"text":"Thariq","s":187.112,"e":187.432},{"text":"Shihipar","s":187.512,"e":188.072},{"text":"from","s":188.152,"e":188.232},{"text":"the","s":188.272,"e":188.312},{"text":"Claude","s":188.392,"e":188.632},{"text":"Code","s":188.712,"e":188.952},{"text":"team","s":189.112,"e":189.272},{"text":"sums","s":189.352,"e":189.552},{"text":"it","s":189.592,"e":189.672},{"text":"up.","s":189.792,"e":190.232},{"text":"Sufficiently","s":190.552,"e":191.112},{"text":"advanced","s":191.312,"e":191.512},{"text":"prompting","s":191.592,"e":192.152},{"text":"is","s":192.232,"e":192.472},{"text":"indistinguishable","s":192.592,"e":193.512},{"text":"from","s":193.592,"e":193.752},{"text":"sufficiently","s":193.832,"e":194.392},{"text":"advanced","s":194.632,"e":194.872},{"text":"executive","s":194.952,"e":195.432},{"text":"communication.","s":195.512,"e":196.512},{"text":"Clear","s":196.792,"e":197.032},{"text":"context,","s":197.112,"e":197.912},{"text":"clear","s":197.992,"e":198.232},{"text":"goal,","s":198.312,"e":198.952},{"text":"clear","s":199.032,"e":199.192},{"text":"constraints.","s":199.272,"e":200.152},{"text":"The","s":200.392,"e":200.552},{"text":"same","s":200.672,"e":200.792},{"text":"things","s":200.872,"e":201.112},{"text":"that","s":201.192,"e":201.272},{"text":"make","s":201.352,"e":201.432},{"text":"a","s":201.472,"e":201.512},{"text":"great","s":201.592,"e":201.832},{"text":"brief","s":201.912,"e":202.152},{"text":"for","s":202.192,"e":202.232},{"text":"a","s":202.312,"e":202.352},{"text":"human.","s":202.392,"e":203.032}]},{"template":"quiz","chapter":"Quick check","narration":"Quick check. Which addition would most improve the prompt: fix the flaky checkout test? Tap your answer.","params":{"q":"Which addition most improves “fix the flaky checkout test”?","options":["“Please, this is really urgent!”","Writing it in ALL CAPS","The failing output, the file to look at, and a test that's known to be stable","“You are a world-class senior engineer.”"],"answer":2,"explain":"It answers “how is the model supposed to know?” Urgency, caps and role-play add no information."},"start":203.644,"dur":12.657,"words":[{"text":"Quick","s":203.944,"e":204.184},{"text":"check.","s":204.264,"e":204.584},{"text":"Which","s":205.064,"e":205.224},{"text":"addition","s":205.304,"e":205.704},{"text":"would","s":205.784,"e":205.864},{"text":"most","s":206.024,"e":206.264},{"text":"improve","s":206.344,"e":206.664},{"text":"the","s":206.704,"e":206.744},{"text":"prompt:","s":206.824,"e":207.704},{"text":"fix","s":207.864,"e":208.104},{"text":"the","s":208.184,"e":208.264},{"text":"flaky","s":208.344,"e":208.664},{"text":"checkout","s":208.744,"e":209.144},{"text":"test?","s":209.344,"e":209.824},{"text":"Tap","s":210.104,"e":210.344},{"text":"your","s":210.424,"e":210.504},{"text":"answer.","s":210.584,"e":211.144}]},{"template":"exercise","chapter":"Try it","narration":"Try this with a prompt you'd normally send. Instead of running it, ask the agent what it would be missing and where it would look. You'll quickly learn which parts of your intent never made it out of your head.","params":{"title":"Try it with your agent","intro":"Take a prompt you'd normally fire off:","prompt":"Here's a request: \"[your usual one-liner]\"\nDon't do it yet. Tell me what information you'd be missing\nto do it well, where in the codebase you'd look for it,\nand ask me up to 3 questions to fill the gaps."},"start":216.301,"dur":12.261,"words":[{"text":"Try","s":216.601,"e":216.921},{"text":"this","s":217.001,"e":217.081},{"text":"with","s":217.161,"e":217.241},{"text":"a","s":217.321,"e":217.401},{"text":"prompt","s":217.561,"e":217.721},{"text":"you'd","s":217.761,"e":217.961},{"text":"normally","s":218.161,"e":218.361},{"text":"send.","s":218.441,"e":219.241},{"text":"Instead","s":219.401,"e":219.561},{"text":"of","s":219.641,"e":219.721},{"text":"running","s":219.801,"e":220.041},{"text":"it,","s":220.121,"e":220.521},{"text":"ask","s":220.601,"e":220.841},{"text":"the","s":220.921,"e":221.001},{"text":"agent","s":221.081,"e":221.401},{"text":"what","s":221.561,"e":221.641},{"text":"it","s":221.681,"e":221.721},{"text":"would","s":221.801,"e":221.881},{"text":"be","s":221.961,"e":222.041},{"text":"missing","s":222.121,"e":222.601},{"text":"and","s":222.721,"e":222.841},{"text":"where","s":222.921,"e":223.001},{"text":"it","s":223.041,"e":223.081},{"text":"would","s":223.161,"e":223.241},{"text":"look.","s":223.321,"e":224.121},{"text":"You'll","s":224.161,"e":224.361},{"text":"quickly","s":224.481,"e":224.761},{"text":"learn","s":224.881,"e":225.001},{"text":"which","s":225.081,"e":225.321},{"text":"parts","s":225.441,"e":225.561},{"text":"of","s":225.601,"e":225.641},{"text":"your","s":225.721,"e":225.801},{"text":"intent","s":226.041,"e":226.281},{"text":"never","s":226.441,"e":226.761},{"text":"made","s":226.841,"e":226.921},{"text":"it","s":226.961,"e":227.001},{"text":"out","s":227.081,"e":227.161},{"text":"of","s":227.201,"e":227.241},{"text":"your","s":227.321,"e":227.401},{"text":"head.","s":227.561,"e":227.961}]},{"template":"recap","chapter":"Recap","narration":"Recap. Ask how the model is supposed to know what you mean. Point it at files, examples and screenshots. Give guardrails and exit criteria, then let it cook. And talk to it like a colleague. Next: the habit that makes agents trustworthy. Giving them a way to check their own work.","params":{"items":["“How is it supposed to *know* what I mean?”","Point at files, examples, screenshots","Task + guardrails + exit criteria","Talk to it: simplify, why, ask me"],"next":"Close the loop: let agents check their work","next_at":"Next"},"start":228.562,"dur":22.014,"words":[{"text":"Recap.","s":228.862,"e":229.502},{"text":"Ask","s":230.062,"e":230.382},{"text":"how","s":230.462,"e":230.542},{"text":"the","s":230.582,"e":230.622},{"text":"model","s":230.702,"e":230.942},{"text":"is","s":231.022,"e":231.182},{"text":"supposed","s":231.302,"e":231.662},{"text":"to","s":231.742,"e":231.822},{"text":"know","s":231.902,"e":232.062},{"text":"what","s":232.142,"e":232.222},{"text":"you","s":232.302,"e":232.382},{"text":"mean.","s":232.462,"e":232.782},{"text":"Point","s":233.262,"e":233.502},{"text":"it","s":233.582,"e":233.622},{"text":"at","s":233.662,"e":233.742},{"text":"files,","s":233.902,"e":234.462},{"text":"examples","s":234.782,"e":235.102},{"text":"and","s":235.182,"e":235.262},{"text":"screenshots.","s":235.342,"e":236.342},{"text":"Give","s":236.622,"e":236.782},{"text":"guardrails","s":236.862,"e":237.502},{"text":"and","s":237.582,"e":237.662},{"text":"exit","s":237.742,"e":237.982},{"text":"criteria,","s":238.062,"e":239.022},{"text":"then","s":239.102,"e":239.342},{"text":"let","s":239.582,"e":239.662},{"text":"it","s":239.742,"e":239.822},{"text":"cook.","s":239.982,"e":240.222},{"text":"And","s":240.702,"e":241.022},{"text":"talk","s":241.262,"e":241.502},{"text":"to","s":241.542,"e":241.582},{"text":"it","s":241.662,"e":241.742},{"text":"like","s":241.822,"e":241.902},{"text":"a","s":241.942,"e":241.982},{"text":"colleague.","s":242.062,"e":243.102},{"text":"Next:","s":243.662,"e":244.102},{"text":"the","s":244.142,"e":244.222},{"text":"habit","s":244.542,"e":244.622},{"text":"that","s":244.702,"e":244.822},{"text":"makes","s":244.942,"e":245.022},{"text":"agents","s":245.422,"e":245.502},{"text":"trustworthy.","s":245.822,"e":246.702},{"text":"Giving","s":246.942,"e":247.022},{"text":"them","s":247.102,"e":247.129},{"text":"a","s":247.155,"e":247.182},{"text":"way","s":247.422,"e":247.502},{"text":"to","s":247.582,"e":247.662},{"text":"check","s":247.902,"e":248.022},{"text":"their","s":248.142,"e":248.222},{"text":"own","s":248.382,"e":248.462},{"text":"work.","s":248.782,"e":249.022}]}],"total":250.976,"audio":"/audio/07-prompting.mp3"}