{"id":"12-decompose","number":12,"slug":"decompose-judgments","title":"Decompose: many small questions","short":"Decompose","module":"Composing judgments","summary":"TypeSafe calls it the most important concept in its guide: break one broad judgment into narrow questions and combine the answers in code. Here is what decomposition buys you (reasons, control, per-signal thresholds), why decision science has recommended it for seventy years, and the case where it made things worse.","voice":"Jessica","scenes":[{"template":"title","chapter":"Intro","narration":"If you remember one technique from this course, make it this one. Don't ask one big question. Ask several small ones, and combine the answers in code.","params":{"kicker":"Lesson 12","module":"Module 4 · Composing judgments","title":"Decompose: *many small questions*","subtitle":"The most important idea in the TypeSafe guide.","cast":["snap","curly"]},"start":0.5,"dur":11.466,"words":[{"text":"If","s":0.8,"e":0.96},{"text":"you","s":1,"e":1.04},{"text":"remember","s":1.12,"e":1.52},{"text":"one","s":1.76,"e":1.92},{"text":"technique","s":2,"e":2.4},{"text":"from","s":2.48,"e":2.56},{"text":"this","s":2.64,"e":2.72},{"text":"course,","s":2.8,"e":3.52},{"text":"make","s":3.6,"e":3.76},{"text":"it","s":3.84,"e":3.92},{"text":"this","s":4,"e":4.24},{"text":"one.","s":4.32,"e":4.64},{"text":"Don't","s":5.12,"e":5.28},{"text":"ask","s":5.44,"e":5.6},{"text":"one","s":5.76,"e":5.92},{"text":"big","s":6.08,"e":6.24},{"text":"question.","s":6.32,"e":6.96},{"text":"Ask","s":7.2,"e":7.52},{"text":"several","s":7.6,"e":8},{"text":"small","s":8.08,"e":8.4},{"text":"ones,","s":8.48,"e":9.04},{"text":"and","s":9.08,"e":9.12},{"text":"combine","s":9.2,"e":9.6},{"text":"the","s":9.64,"e":9.68},{"text":"answers","s":9.76,"e":10.16},{"text":"in","s":10.24,"e":10.32},{"text":"code.","s":10.4,"e":11.12}]},{"template":"decompose","chapter":"Small questions","narration":"Take spam. You could ask one question: is this message spam? Point nine seven. Fine, but why? Split it into narrow questions instead. Does it ask for a password? Point nine nine. Does it promise an unexpected reward? Point nine seven. Does it pressure you to act fast? Point nine eight. Does the sender's name clash with their domain? Point seven two. Now combine them in code, with weights you control.","params":{"big":{"text":"Is `message` spam?","p":0.97},"parts":[{"text":"Asks for a password or login credential?","p":0.99,"w":0.45},{"text":"Promises an unexpected reward?","p":0.97,"w":0.25},{"text":"Pressures the reader to act quickly?","p":0.98},{"text":"Sender name clashes with the email domain?","p":0.72,"w":0.3}],"split_at":"Split it","values_at":"ask for a password","result":{"formula":"risk = 0.45 × 0.99 + 0.25 × 0.97 + 0.30 × 0.72","label":"spam risk","value":"0.90","at":"combine them"}},"start":11.966,"dur":29.554,"words":[{"text":"Take","s":12.266,"e":12.476},{"text":"spam.","s":12.506,"e":13.066},{"text":"You","s":13.466,"e":13.546},{"text":"could","s":13.626,"e":13.706},{"text":"ask","s":13.826,"e":13.946},{"text":"one","s":14.106,"e":14.266},{"text":"question:","s":14.346,"e":15.146},{"text":"is","s":15.226,"e":15.306},{"text":"this","s":15.386,"e":15.546},{"text":"message","s":15.626,"e":15.946},{"text":"spam?","s":16.026,"e":16.506},{"text":"Point","s":16.986,"e":17.146},{"text":"nine","s":17.306,"e":17.546},{"text":"seven.","s":17.626,"e":18.426},{"text":"Fine,","s":18.666,"e":19.146},{"text":"but","s":19.266,"e":19.386},{"text":"why?","s":19.626,"e":20.266},{"text":"Split","s":20.506,"e":20.746},{"text":"it","s":20.826,"e":20.906},{"text":"into","s":21.026,"e":21.146},{"text":"narrow","s":21.306,"e":21.546},{"text":"questions","s":21.706,"e":22.106},{"text":"instead.","s":22.186,"e":22.746},{"text":"Does","s":23.146,"e":23.306},{"text":"it","s":23.346,"e":23.386},{"text":"ask","s":23.506,"e":23.626},{"text":"for","s":23.666,"e":23.706},{"text":"a","s":23.786,"e":23.826},{"text":"password?","s":23.866,"e":24.426},{"text":"Point","s":24.746,"e":24.986},{"text":"nine","s":25.066,"e":25.306},{"text":"nine.","s":25.466,"e":26.026},{"text":"Does","s":26.106,"e":26.186},{"text":"it","s":26.266,"e":26.346},{"text":"promise","s":26.546,"e":26.746},{"text":"an","s":26.826,"e":26.906},{"text":"unexpected","s":26.986,"e":27.626},{"text":"reward?","s":27.906,"e":28.506},{"text":"Point","s":28.626,"e":28.746},{"text":"nine","s":28.826,"e":28.986},{"text":"seven.","s":29.066,"e":29.786},{"text":"Does","s":29.866,"e":29.946},{"text":"it","s":30.026,"e":30.106},{"text":"pressure","s":30.186,"e":30.506},{"text":"you","s":30.586,"e":30.666},{"text":"to","s":30.746,"e":30.786},{"text":"act","s":30.826,"e":31.066},{"text":"fast?","s":31.146,"e":31.946},{"text":"Point","s":32.066,"e":32.186},{"text":"nine","s":32.266,"e":32.506},{"text":"eight.","s":32.666,"e":33.226},{"text":"Does","s":33.306,"e":33.386},{"text":"the","s":33.466,"e":33.546},{"text":"sender's","s":33.626,"e":34.026},{"text":"name","s":34.106,"e":34.426},{"text":"clash","s":34.506,"e":34.906},{"text":"with","s":34.986,"e":35.066},{"text":"their","s":35.146,"e":35.226},{"text":"domain?","s":35.466,"e":36.026},{"text":"Point","s":36.146,"e":36.266},{"text":"seven","s":36.346,"e":36.666},{"text":"two.","s":36.786,"e":37.386},{"text":"Now","s":37.466,"e":37.706},{"text":"combine","s":37.866,"e":38.266},{"text":"them","s":38.346,"e":38.426},{"text":"in","s":38.506,"e":38.586},{"text":"code,","s":38.666,"e":39.226},{"text":"with","s":39.306,"e":39.386},{"text":"weights","s":39.466,"e":39.786},{"text":"you","s":39.946,"e":40.026},{"text":"control.","s":40.106,"e":40.906}]},{"template":"quote","chapter":"Small questions","narration":"The TypeSafe guide is blunt about it. This is probably the most important concept in this guide. Broad questions hide several judgments behind one answer. Atomic questions expose those judgments, so you can inspect, tune, and combine them in code.","params":{"text":"This is probably *the most important concept* in this guide. Broad questions hide several judgments behind one answer.","who":"TypeSafe docs","role":"How to build with TypeSafe","src":"docs.typesafe.ai"},"start":41.52,"dur":17.146,"words":[{"text":"The","s":41.82,"e":41.9},{"text":"TypeSafe","s":41.98,"e":42.54},{"text":"guide","s":42.62,"e":42.86},{"text":"is","s":42.94,"e":43.1},{"text":"blunt","s":43.18,"e":43.5},{"text":"about","s":43.58,"e":43.82},{"text":"it.","s":43.94,"e":44.46},{"text":"This","s":44.54,"e":44.62},{"text":"is","s":44.7,"e":44.86},{"text":"probably","s":45.1,"e":45.34},{"text":"the","s":45.46,"e":45.58},{"text":"most","s":45.66,"e":45.9},{"text":"important","s":45.98,"e":46.46},{"text":"concept","s":46.7,"e":46.94},{"text":"in","s":46.98,"e":47.02},{"text":"this","s":47.1,"e":47.18},{"text":"guide.","s":47.26,"e":48.14},{"text":"Broad","s":48.22,"e":48.46},{"text":"questions","s":48.54,"e":49.1},{"text":"hide","s":49.18,"e":49.5},{"text":"several","s":49.58,"e":49.9},{"text":"judgments","s":49.98,"e":50.46},{"text":"behind","s":50.54,"e":50.86},{"text":"one","s":50.94,"e":51.1},{"text":"answer.","s":51.18,"e":52.06},{"text":"Atomic","s":52.3,"e":52.54},{"text":"questions","s":52.62,"e":53.1},{"text":"expose","s":53.18,"e":53.74},{"text":"those","s":53.86,"e":53.98},{"text":"judgments,","s":54.06,"e":54.7},{"text":"so","s":54.78,"e":54.86},{"text":"you","s":54.9,"e":54.94},{"text":"can","s":55.02,"e":55.1},{"text":"inspect,","s":55.38,"e":55.98},{"text":"tune,","s":56.02,"e":56.46},{"text":"and","s":56.54,"e":56.62},{"text":"combine","s":56.82,"e":57.02},{"text":"them","s":57.1,"e":57.26},{"text":"in","s":57.34,"e":57.42},{"text":"code.","s":57.5,"e":58.06}]},{"template":"request","chapter":"Reasons, not just verdicts","narration":"Here's where it pays off. An agent was asked for tomorrow's weather in Seattle, in Fahrenheit. Ask the broad question, are these tool calls correct, and you get point one. Something's wrong, but what? Ask six narrow questions, and five come back near one. One doesn't: does the unit match the request? Point oh two. The agent asked for Celsius.","params":{"model":"jev-1.13.0","latency":0.3,"state":{"request":{"text":"Weather in Seattle tomorrow in Fahrenheit?","unit":"fahrenheit"},"trace":{"tool_calls":[{"name":"geocode_city","arguments":{"city":"Seattle, WA"}},{"name":"get_weather","arguments":{"latitude":47.6062,"longitude":-122.3321,"unit":"celsius"}}]}},"questions":[{"id":"broad","type":"noul","text":"Are `trace.tool_calls` correct for `request`?","ans":{"v":0.1},"at":"broad question"},{"id":"geo","type":"noul","text":"Geocode call matches `request.location`?","ans":{"v":0.99}},{"id":"coords","type":"noul","text":"Weather call uses the geocoded coordinates?","ans":{"v":0.99}},{"id":"date","type":"noul","text":"Weather call date matches `request.date`?","ans":{"v":0.99}},{"id":"unit","type":"noul","text":"Weather call unit matches `request.unit`?","ans":{"v":0.02},"say_at":"does the unit match"}],"send_at":"Ask six narrow","ans_at":"five come back","hl":"unit","hl_at":"point oh two","footer":"Real answers, jev-1.13.0. Two more narrow questions (tool relevance) came back 0.97 and 0.89."},"start":58.666,"dur":24.512,"words":[{"text":"Here's","s":58.966,"e":59.286},{"text":"where","s":59.366,"e":59.446},{"text":"it","s":59.486,"e":59.526},{"text":"pays","s":59.606,"e":59.846},{"text":"off.","s":59.926,"e":60.446},{"text":"An","s":60.646,"e":60.806},{"text":"agent","s":60.886,"e":61.126},{"text":"was","s":61.246,"e":61.366},{"text":"asked","s":61.446,"e":61.686},{"text":"for","s":61.726,"e":61.766},{"text":"tomorrow's","s":61.846,"e":62.326},{"text":"weather","s":62.406,"e":62.726},{"text":"in","s":62.766,"e":62.806},{"text":"Seattle,","s":62.966,"e":63.686},{"text":"in","s":63.766,"e":63.846},{"text":"Fahrenheit.","s":64.006,"e":64.646},{"text":"Ask","s":64.966,"e":65.206},{"text":"the","s":65.286,"e":65.326},{"text":"broad","s":65.366,"e":65.686},{"text":"question,","s":65.766,"e":66.566},{"text":"are","s":66.646,"e":66.726},{"text":"these","s":66.846,"e":66.966},{"text":"tool","s":67.046,"e":67.206},{"text":"calls","s":67.286,"e":67.526},{"text":"correct,","s":67.606,"e":68.326},{"text":"and","s":68.406,"e":68.486},{"text":"you","s":68.526,"e":68.566},{"text":"get","s":68.646,"e":68.806},{"text":"point","s":68.926,"e":69.046},{"text":"one.","s":69.126,"e":69.766},{"text":"Something's","s":69.926,"e":70.246},{"text":"wrong,","s":70.326,"e":70.966},{"text":"but","s":71.086,"e":71.206},{"text":"what?","s":71.366,"e":72.086},{"text":"Ask","s":72.286,"e":72.486},{"text":"six","s":72.566,"e":72.806},{"text":"narrow","s":72.966,"e":73.206},{"text":"questions,","s":73.286,"e":74.006},{"text":"and","s":74.086,"e":74.166},{"text":"five","s":74.246,"e":74.566},{"text":"come","s":74.646,"e":74.726},{"text":"back","s":74.806,"e":74.966},{"text":"near","s":75.046,"e":75.286},{"text":"one.","s":75.366,"e":76.006},{"text":"One","s":76.126,"e":76.246},{"text":"doesn't:","s":76.326,"e":77.126},{"text":"does","s":77.206,"e":77.366},{"text":"the","s":77.406,"e":77.446},{"text":"unit","s":77.606,"e":77.846},{"text":"match","s":77.926,"e":78.166},{"text":"the","s":78.206,"e":78.246},{"text":"request?","s":78.566,"e":79.206},{"text":"Point","s":79.286,"e":79.366},{"text":"oh","s":79.526,"e":79.686},{"text":"two.","s":79.766,"e":80.406},{"text":"The","s":80.486,"e":80.566},{"text":"agent","s":80.766,"e":80.966},{"text":"asked","s":81.046,"e":81.286},{"text":"for","s":81.366,"e":81.446},{"text":"Celsius.","s":81.526,"e":82.566}]},{"template":"statement","chapter":"Reasons, not just verdicts","narration":"Simon Willison worried, when Jev launched, that it's a black box. If it marks something as spam, which signals tipped it off? Decomposition is the answer. Each narrow question is a reason you can log, show to a reviewer, and test on its own.","params":{"eyebrow":"Simon Willison, on black boxes","text":"“Which content signals tipped it off?” *Ask them one by one.*","sub":"Every narrow question is a reason you can log, show, and test.","sub_at":"Each narrow question","art":"eye","tone":"s2","punch":"Decomposition is the answer"},"start":83.178,"dur":17.146,"words":[{"text":"Simon","s":83.478,"e":83.878},{"text":"Willison","s":83.958,"e":84.358},{"text":"worried,","s":84.438,"e":85.078},{"text":"when","s":85.158,"e":85.238},{"text":"Jev","s":85.318,"e":85.558},{"text":"launched,","s":85.638,"e":86.278},{"text":"that","s":86.398,"e":86.518},{"text":"it's","s":86.598,"e":86.758},{"text":"a","s":86.798,"e":86.838},{"text":"black","s":86.918,"e":87.238},{"text":"box.","s":87.318,"e":87.878},{"text":"If","s":88.278,"e":88.358},{"text":"it","s":88.398,"e":88.438},{"text":"marks","s":88.518,"e":88.758},{"text":"something","s":88.918,"e":89.078},{"text":"as","s":89.158,"e":89.238},{"text":"spam,","s":89.518,"e":90.038},{"text":"which","s":90.158,"e":90.278},{"text":"signals","s":90.358,"e":90.758},{"text":"tipped","s":90.838,"e":90.998},{"text":"it","s":91.078,"e":91.158},{"text":"off?","s":91.358,"e":91.798},{"text":"Decomposition","s":92.038,"e":92.918},{"text":"is","s":92.998,"e":93.078},{"text":"the","s":93.158,"e":93.238},{"text":"answer.","s":93.318,"e":93.798},{"text":"Each","s":94.278,"e":94.518},{"text":"narrow","s":94.598,"e":94.838},{"text":"question","s":94.918,"e":95.398},{"text":"is","s":95.478,"e":95.558},{"text":"a","s":95.598,"e":95.638},{"text":"reason","s":95.718,"e":96.038},{"text":"you","s":96.078,"e":96.118},{"text":"can","s":96.198,"e":96.278},{"text":"log,","s":96.358,"e":96.998},{"text":"show","s":97.118,"e":97.238},{"text":"to","s":97.318,"e":97.398},{"text":"a","s":97.438,"e":97.478},{"text":"reviewer,","s":97.558,"e":98.198},{"text":"and","s":98.278,"e":98.358},{"text":"test","s":98.438,"e":98.758},{"text":"on","s":98.838,"e":98.918},{"text":"its","s":98.998,"e":99.078},{"text":"own.","s":99.158,"e":99.718}]},{"template":"code","chapter":"Combine in code","narration":"Then combine them in code. For factors that trade off against each other, use a weighted sum. But don't let a weighted sum average away a serious violation. If a message asks for credentials, that should block it on its own, whatever else is true. Rules and weights both live in your code.","params":{"file":"spam.py","lang":"py","lines":["a = {k: v.noul for k, v in response.answers.items()}","","if a[\"requests_credentials\"] > 0.9:      # a veto, not a weight","    return quarantine(msg, reason=\"asks for credentials\")","","risk = (0.45 * a[\"offers_unexpected_reward\"]","        + 0.30 * a[\"sender_identity_mismatch\"]","        + 0.25 * a[\"creates_time_pressure\"])","if risk > 0.6:","    return quarantine(msg, reason=top_signals(a))"],"hl":[{"from":3,"to":4,"label":"hard rule","tone":"bad","at":"block it on its own"},{"from":6,"to":8,"label":"weights trade off","tone":"agent","at":"weighted sum"}]},"start":100.324,"dur":19.236,"words":[{"text":"Then","s":100.624,"e":101.024},{"text":"combine","s":101.264,"e":101.664},{"text":"them","s":101.744,"e":101.824},{"text":"in","s":101.904,"e":101.984},{"text":"code.","s":102.064,"e":102.544},{"text":"For","s":102.944,"e":103.024},{"text":"factors","s":103.104,"e":103.504},{"text":"that","s":103.544,"e":103.584},{"text":"trade","s":103.664,"e":103.824},{"text":"off","s":103.904,"e":103.984},{"text":"against","s":104.064,"e":104.384},{"text":"each","s":104.464,"e":104.624},{"text":"other,","s":104.784,"e":105.104},{"text":"use","s":105.184,"e":105.344},{"text":"a","s":105.424,"e":105.464},{"text":"weighted","s":105.504,"e":105.824},{"text":"sum.","s":105.984,"e":106.544},{"text":"But","s":106.784,"e":106.944},{"text":"don't","s":107.024,"e":107.184},{"text":"let","s":107.264,"e":107.344},{"text":"a","s":107.384,"e":107.424},{"text":"weighted","s":107.504,"e":107.744},{"text":"sum","s":107.824,"e":108.144},{"text":"average","s":108.304,"e":108.624},{"text":"away","s":108.784,"e":108.944},{"text":"a","s":109.024,"e":109.104},{"text":"serious","s":109.264,"e":109.664},{"text":"violation.","s":109.744,"e":110.464},{"text":"If","s":110.864,"e":110.944},{"text":"a","s":111.024,"e":111.064},{"text":"message","s":111.104,"e":111.424},{"text":"asks","s":111.504,"e":111.824},{"text":"for","s":111.864,"e":111.904},{"text":"credentials,","s":111.984,"e":112.864},{"text":"that","s":112.944,"e":113.104},{"text":"should","s":113.184,"e":113.264},{"text":"block","s":113.344,"e":113.584},{"text":"it","s":113.624,"e":113.664},{"text":"on","s":113.744,"e":113.824},{"text":"its","s":113.904,"e":113.984},{"text":"own,","s":114.064,"e":114.544},{"text":"whatever","s":114.744,"e":114.944},{"text":"else","s":115.064,"e":115.184},{"text":"is","s":115.264,"e":115.344},{"text":"true.","s":115.424,"e":115.744},{"text":"Rules","s":116.304,"e":116.624},{"text":"and","s":116.704,"e":116.784},{"text":"weights","s":116.864,"e":117.264},{"text":"both","s":117.344,"e":117.584},{"text":"live","s":117.664,"e":117.904},{"text":"in","s":117.984,"e":118.064},{"text":"your","s":118.144,"e":118.224},{"text":"code.","s":118.304,"e":118.944}]},{"template":"quote","chapter":"Seventy years of evidence","narration":"This isn't new. Since Paul Meehl's work in the 1950s, study after study has found that simple mechanical rules beat expert intuition at many prediction tasks. As decision researcher Olivier Sibony puts it: even the simplest rule will typically make fewer mistakes than the humans who think they are much smarter than the simple rule.","params":{"text":"Even the simplest rule will typically make *fewer mistakes* than the humans who think they are much smarter than the simple rule.","who":"Olivier Sibony","role":"co-author of Noise, with Daniel Kahneman","src":"CFA Institute talk","t":680},"start":119.56,"dur":22.736,"words":[{"text":"This","s":119.86,"e":120.1},{"text":"isn't","s":120.18,"e":120.34},{"text":"new.","s":120.5,"e":121.1},{"text":"Since","s":121.3,"e":121.54},{"text":"Paul","s":121.62,"e":121.78},{"text":"Meehl's","s":121.86,"e":122.18},{"text":"work","s":122.3,"e":122.42},{"text":"in","s":122.5,"e":122.54},{"text":"the","s":122.58,"e":122.66},{"text":"1950s,","s":122.7,"e":124.02},{"text":"study","s":124.1,"e":124.5},{"text":"after","s":124.58,"e":124.82},{"text":"study","s":124.98,"e":125.38},{"text":"has","s":125.5,"e":125.62},{"text":"found","s":125.74,"e":125.86},{"text":"that","s":125.98,"e":126.1},{"text":"simple","s":126.3,"e":126.5},{"text":"mechanical","s":126.58,"e":127.14},{"text":"rules","s":127.22,"e":127.62},{"text":"beat","s":127.86,"e":128.18},{"text":"expert","s":128.38,"e":128.58},{"text":"intuition","s":128.66,"e":129.3},{"text":"at","s":129.42,"e":129.54},{"text":"many","s":129.62,"e":129.86},{"text":"prediction","s":129.94,"e":130.34},{"text":"tasks.","s":130.42,"e":131.46},{"text":"As","s":131.54,"e":131.62},{"text":"decision","s":131.82,"e":132.02},{"text":"researcher","s":132.1,"e":132.66},{"text":"Olivier","s":132.74,"e":133.14},{"text":"Sibony","s":133.22,"e":133.7},{"text":"puts","s":133.82,"e":133.94},{"text":"it:","s":134.02,"e":134.58},{"text":"even","s":134.7,"e":134.82},{"text":"the","s":134.94,"e":135.06},{"text":"simplest","s":135.22,"e":135.54},{"text":"rule","s":135.62,"e":135.86},{"text":"will","s":135.94,"e":136.18},{"text":"typically","s":136.42,"e":136.66},{"text":"make","s":136.74,"e":136.82},{"text":"fewer","s":136.98,"e":137.22},{"text":"mistakes","s":137.3,"e":137.78},{"text":"than","s":137.86,"e":137.94},{"text":"the","s":138.02,"e":138.1},{"text":"humans","s":138.18,"e":138.5},{"text":"who","s":138.62,"e":138.74},{"text":"think","s":138.9,"e":139.06},{"text":"they","s":139.14,"e":139.3},{"text":"are","s":139.42,"e":139.54},{"text":"much","s":139.62,"e":139.86},{"text":"smarter","s":139.94,"e":140.34},{"text":"than","s":140.42,"e":140.5},{"text":"the","s":140.58,"e":140.62},{"text":"simple","s":140.66,"e":140.98},{"text":"rule.","s":141.06,"e":141.7}]},{"template":"table","chapter":"Seventy years of evidence","narration":"The classic example is the Apgar score, from 1952. Instead of a doctor's overall impression of a newborn, five quick judgments: appearance, pulse, grimace, activity, breathing. Each zero to two, added up. Seven or more is normal. Three or below means act now. Narrow judgments, a sum, and bands for action. That's the pattern.","params":{"title":"The Apgar score (1952): five small judgments, one sum","cols":["Judged separately","0","1","2"],"widths":"1.3fr 1fr 1fr 1fr","rows":[{"cells":["Appearance","blue all over","blue extremities","pink"],"at":"appearance"},{"cells":["Pulse","absent","< 100","≥ 100"],"at":"pulse"},{"cells":["Grimace","none","grimace","cry"]},{"cells":["Activity","none","some flexion","active"]},{"cells":["Respiration","absent","weak","strong cry"],"at":"breathing"},{"cells":["*Total 0–10*","*≤ 3: act now*","*4–6: low*","*≥ 7: normal*"],"hl":true,"at":"Seven or more"}]},"start":142.296,"dur":26.028,"words":[{"text":"The","s":142.596,"e":142.756},{"text":"classic","s":142.956,"e":143.156},{"text":"example","s":143.236,"e":143.716},{"text":"is","s":143.796,"e":143.956},{"text":"the","s":144.036,"e":144.116},{"text":"Apgar","s":144.156,"e":144.516},{"text":"score,","s":144.596,"e":145.156},{"text":"from","s":145.236,"e":145.316},{"text":"1952.","s":145.396,"e":146.836},{"text":"Instead","s":146.916,"e":147.236},{"text":"of","s":147.276,"e":147.316},{"text":"a","s":147.356,"e":147.396},{"text":"doctor's","s":147.476,"e":147.956},{"text":"overall","s":148.036,"e":148.356},{"text":"impression","s":148.436,"e":148.836},{"text":"of","s":148.916,"e":148.956},{"text":"a","s":148.996,"e":149.036},{"text":"newborn,","s":149.076,"e":149.956},{"text":"five","s":150.036,"e":150.356},{"text":"quick","s":150.516,"e":150.756},{"text":"judgments:","s":150.836,"e":151.716},{"text":"appearance,","s":151.796,"e":152.676},{"text":"pulse,","s":152.916,"e":153.476},{"text":"grimace,","s":153.596,"e":154.276},{"text":"activity,","s":154.596,"e":155.236},{"text":"breathing.","s":155.316,"e":155.796},{"text":"Each","s":156.196,"e":156.436},{"text":"zero","s":156.596,"e":156.836},{"text":"to","s":156.876,"e":156.916},{"text":"two,","s":157.076,"e":157.396},{"text":"added","s":157.556,"e":157.796},{"text":"up.","s":157.876,"e":158.196},{"text":"Seven","s":158.596,"e":158.836},{"text":"or","s":158.876,"e":158.916},{"text":"more","s":158.996,"e":159.236},{"text":"is","s":159.316,"e":159.396},{"text":"normal.","s":159.476,"e":159.956},{"text":"Three","s":160.276,"e":160.436},{"text":"or","s":160.476,"e":160.516},{"text":"below","s":160.596,"e":160.996},{"text":"means","s":161.076,"e":161.396},{"text":"act","s":161.556,"e":161.876},{"text":"now.","s":162.036,"e":162.716},{"text":"Narrow","s":162.996,"e":163.316},{"text":"judgments,","s":163.396,"e":164.116},{"text":"a","s":164.156,"e":164.196},{"text":"sum,","s":164.356,"e":164.916},{"text":"and","s":164.996,"e":165.076},{"text":"bands","s":165.156,"e":165.556},{"text":"for","s":165.636,"e":165.716},{"text":"action.","s":165.956,"e":166.276},{"text":"That's","s":166.596,"e":166.836},{"text":"the","s":166.876,"e":166.916},{"text":"pattern.","s":166.996,"e":167.716}]},{"template":"statement","chapter":"Where it fails","narration":"But decomposition is not magic. Mike Ramos tested Jev on poker decisions, where the right move depends on game theory. Six narrow judgments instead of one question changed forty seven actions. Twelve got better. Twenty one got worse. Poker strategy is a System Two problem, and splitting it into fast judgments didn't change that.","params":{"eyebrow":"Mike Ramos, “Jev is the fish at the poker table”","text":"Decomposing changed 47 poker actions: *12 better, 21 worse*.","sub":"It can't turn a System Two problem into System One answers. Validate the combination on labeled data.","sub_at":"System Two problem","art":"dice","tone":"bad","punch":"Twenty one got worse"},"start":168.324,"dur":23.546,"words":[{"text":"But","s":168.624,"e":168.824},{"text":"decomposition","s":168.864,"e":169.766},{"text":"is","s":169.824,"e":170.064},{"text":"not","s":170.144,"e":170.384},{"text":"magic.","s":170.464,"e":171.184},{"text":"Mike","s":171.664,"e":171.824},{"text":"Ramos","s":171.904,"e":172.304},{"text":"tested","s":172.384,"e":172.704},{"text":"Jev","s":172.784,"e":173.024},{"text":"on","s":173.104,"e":173.184},{"text":"poker","s":173.264,"e":173.584},{"text":"decisions,","s":173.664,"e":174.304},{"text":"where","s":174.384,"e":174.544},{"text":"the","s":174.584,"e":174.624},{"text":"right","s":174.704,"e":174.944},{"text":"move","s":175.024,"e":175.264},{"text":"depends","s":175.464,"e":175.664},{"text":"on","s":175.744,"e":175.824},{"text":"game","s":175.984,"e":176.144},{"text":"theory.","s":176.304,"e":176.944},{"text":"Six","s":177.264,"e":177.504},{"text":"narrow","s":177.664,"e":177.984},{"text":"judgments","s":178.064,"e":178.624},{"text":"instead","s":178.784,"e":178.944},{"text":"of","s":178.984,"e":179.024},{"text":"one","s":179.184,"e":179.344},{"text":"question","s":179.424,"e":179.904},{"text":"changed","s":180.064,"e":180.384},{"text":"forty","s":180.544,"e":180.904},{"text":"seven","s":181.024,"e":181.264},{"text":"actions.","s":181.424,"e":182.184},{"text":"Twelve","s":182.384,"e":182.624},{"text":"got","s":182.704,"e":182.784},{"text":"better.","s":182.864,"e":183.584},{"text":"Twenty","s":183.704,"e":183.824},{"text":"one","s":183.904,"e":184.144},{"text":"got","s":184.304,"e":184.464},{"text":"worse.","s":184.544,"e":185.264},{"text":"Poker","s":185.504,"e":185.744},{"text":"strategy","s":185.824,"e":186.304},{"text":"is","s":186.384,"e":186.464},{"text":"a","s":186.544,"e":186.584},{"text":"System","s":186.624,"e":187.024},{"text":"Two","s":187.184,"e":187.344},{"text":"problem,","s":187.424,"e":188.064},{"text":"and","s":188.144,"e":188.224},{"text":"splitting","s":188.304,"e":188.624},{"text":"it","s":188.664,"e":188.704},{"text":"into","s":188.784,"e":188.944},{"text":"fast","s":189.104,"e":189.344},{"text":"judgments","s":189.424,"e":189.984},{"text":"didn't","s":190.064,"e":190.304},{"text":"change","s":190.384,"e":190.624},{"text":"that.","s":190.704,"e":191.264}]},{"template":"quiz","chapter":"Quick check","narration":"Quick check. A content policy says: any threat of violence means removal, whatever else the post contains. How should that rule appear in code?","params":{"q":"Policy: **any** threat of violence means removal. How do you encode it?","options":["As one weight in a weighted risk score","As its own Noul with a hard rule in code that removes on its own","Ask one broad question: does this break the policy?","Average three runs of the broad question"],"answer":1,"explain":"A veto shouldn't be averaged away by other factors. Ask it as its own narrow question and enforce it with a separate rule in code."},"start":191.87,"dur":15.139,"words":[{"text":"Quick","s":192.17,"e":192.41},{"text":"check.","s":192.49,"e":193.01},{"text":"A","s":193.21,"e":193.29},{"text":"content","s":193.37,"e":193.69},{"text":"policy","s":193.77,"e":194.25},{"text":"says:","s":194.45,"e":194.73},{"text":"any","s":195.13,"e":195.29},{"text":"threat","s":195.37,"e":195.61},{"text":"of","s":195.65,"e":195.69},{"text":"violence","s":195.77,"e":196.25},{"text":"means","s":196.33,"e":196.57},{"text":"removal,","s":196.65,"e":197.45},{"text":"whatever","s":197.53,"e":197.93},{"text":"else","s":198.01,"e":198.25},{"text":"the","s":198.29,"e":198.33},{"text":"post","s":198.41,"e":198.65},{"text":"contains.","s":198.97,"e":199.37},{"text":"How","s":199.77,"e":199.93},{"text":"should","s":200.01,"e":200.09},{"text":"that","s":200.17,"e":200.25},{"text":"rule","s":200.33,"e":200.57},{"text":"appear","s":200.73,"e":200.89},{"text":"in","s":200.93,"e":200.97},{"text":"code?","s":201.13,"e":201.85}]},{"template":"exercise","chapter":"Try it","narration":"Try it. Have your agent decompose one broad judgment in your code, and compare it with the original on labeled data.","params":{"title":"Decompose one judgment","intro":"Paste this into your coding agent:","prompt":"Pick one broad judgment we ask a model to make (spam, risk, quality,\npolicy violation). Split it into 4-8 narrow questions, each a few-second\njudgment for an expert, asked in ONE request. Combine them in code:\nhard rules for vetoes, weights for factors that trade off. Then run\nboth versions on 100 labeled examples and report accuracy, plus 5\nexamples where the narrow answers explain a decision the broad one got\nwrong (or right)."},"start":207.009,"dur":8.421,"words":[{"text":"Try","s":207.309,"e":207.629},{"text":"it.","s":207.709,"e":207.869},{"text":"Have","s":208.189,"e":208.349},{"text":"your","s":208.429,"e":208.509},{"text":"agent","s":208.589,"e":208.909},{"text":"decompose","s":208.989,"e":209.629},{"text":"one","s":209.789,"e":210.029},{"text":"broad","s":210.109,"e":210.429},{"text":"judgment","s":210.509,"e":210.909},{"text":"in","s":210.989,"e":211.069},{"text":"your","s":211.149,"e":211.229},{"text":"code,","s":211.389,"e":211.869},{"text":"and","s":211.949,"e":212.029},{"text":"compare","s":212.229,"e":212.429},{"text":"it","s":212.469,"e":212.509},{"text":"with","s":212.589,"e":212.669},{"text":"the","s":212.709,"e":212.749},{"text":"original","s":212.829,"e":213.389},{"text":"on","s":213.469,"e":213.549},{"text":"labeled","s":213.629,"e":213.949},{"text":"data.","s":214.029,"e":214.749}]},{"template":"recap","chapter":"Recap","narration":"So: ask many small questions and combine them in code. You get reasons, not just verdicts, and control over weights and vetoes. Decision science has backed this for seventy years. But it's not magic: validate it on your data. Next: asking all those questions at once.","params":{"items":["Narrow questions expose the judgments a broad one hides.","You get reasons: which signal fired, which argument was wrong.","Weights for trade-offs; separate rules for vetoes.","Not magic: validate the combination on labeled data."],"next":"Ask everything at once","next_at":"Next"},"start":215.43,"dur":21.466,"words":[{"text":"So:","s":215.73,"e":216.45},{"text":"ask","s":216.53,"e":216.85},{"text":"many","s":217.01,"e":217.25},{"text":"small","s":217.41,"e":217.65},{"text":"questions","s":217.73,"e":218.37},{"text":"and","s":218.45,"e":218.53},{"text":"combine","s":218.61,"e":219.01},{"text":"them","s":219.05,"e":219.09},{"text":"in","s":219.17,"e":219.25},{"text":"code.","s":219.33,"e":220.13},{"text":"You","s":220.17,"e":220.21},{"text":"get","s":220.29,"e":220.45},{"text":"reasons,","s":220.53,"e":221.25},{"text":"not","s":221.33,"e":221.41},{"text":"just","s":221.49,"e":221.57},{"text":"verdicts,","s":221.65,"e":222.45},{"text":"and","s":222.53,"e":222.61},{"text":"control","s":222.89,"e":223.17},{"text":"over","s":223.25,"e":223.49},{"text":"weights","s":223.69,"e":223.89},{"text":"and","s":223.97,"e":224.05},{"text":"vetoes.","s":224.13,"e":225.17},{"text":"Decision","s":225.25,"e":225.57},{"text":"science","s":225.73,"e":226.05},{"text":"has","s":226.17,"e":226.29},{"text":"backed","s":226.37,"e":226.53},{"text":"this","s":226.61,"e":226.77},{"text":"for","s":226.85,"e":227.09},{"text":"seventy","s":227.17,"e":227.57},{"text":"years.","s":227.65,"e":228.53},{"text":"But","s":228.57,"e":228.61},{"text":"it's","s":228.69,"e":228.85},{"text":"not","s":228.97,"e":229.09},{"text":"magic:","s":229.33,"e":229.89},{"text":"validate","s":229.97,"e":230.37},{"text":"it","s":230.45,"e":230.61},{"text":"on","s":230.69,"e":230.77},{"text":"your","s":230.85,"e":230.93},{"text":"data.","s":231.01,"e":231.97},{"text":"Next:","s":232.05,"e":232.93},{"text":"asking","s":233.17,"e":233.41},{"text":"all","s":233.49,"e":233.65},{"text":"those","s":233.73,"e":233.89},{"text":"questions","s":233.97,"e":234.37},{"text":"at","s":234.45,"e":234.53},{"text":"once.","s":234.61,"e":235.33}]}],"total":237.296,"audio":"/audio/12-decompose.mp3"}