[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fguides\u002Fwrite-a-brief":3},{"id":4,"title":5,"body":6,"description":323,"extension":324,"meta":325,"navigation":326,"path":327,"seo":328,"stem":329,"__hash__":330},"docs\u002Fdocs\u002Fguides\u002Fwrite-a-brief.md","Write a brief Slo can run with",{"type":7,"value":8,"toc":314},"minimark",[9,13,17,20,25,152,155,159,162,172,175,179,185,191,203,209,215,221,228,232,243,247,250,269,285,289,297],[10,11,5],"h1",{"id":12},"write-a-brief-slo-can-run-with",[14,15,16],"p",{},"\"Fix the payments bug\" works for a two-minute job. For anything bigger, the prompt is the plan, and a vague plan gets you a vague result.",[14,18,19],{},"The people who get the most out of Slo write briefs, not prompts. A brief is what you'd hand a new senior engineer on their first day: what we're doing, where the truth lives, what not to touch, and how we'll know it's finished. It takes five minutes to write and saves you an afternoon of corrections.",[21,22,24],"h2",{"id":23},"the-six-parts","The six parts",[26,27,28,44],"table",{},[29,30,31],"thead",{},[32,33,34,38,41],"tr",{},[35,36,37],"th",{},"Part",[35,39,40],{},"Answers",[35,42,43],{},"Example",[45,46,47,62,80,101,118,135],"tbody",{},[32,48,49,56,59],{},[50,51,52],"td",{},[53,54,55],"strong",{},"Outcome",[50,57,58],{},"What should exist when this is done?",[50,60,61],{},"\"Implement task 12.b only: the refund endpoint.\"",[32,63,64,69,72],{},[50,65,66],{},[53,67,68],{},"Sources of truth",[50,70,71],{},"Which documents win if anything disagrees?",[50,73,74,75,79],{},"\"The spec in ",[76,77,78],"code",{},"specifications\u002F12-refunds\u002F"," is authoritative.\"",[32,81,82,87,90],{},[50,83,84],{},[53,85,86],{},"Required reading",[50,88,89],{},"What should Slo read before touching code?",[50,91,92,93,96,97,100],{},"\"Read ",[76,94,95],{},"AGENTS.md",", ",[76,98,99],{},"docs\u002FRESEARCH.md"," and the task's spec file first.\"",[32,102,103,108,111],{},[50,104,105],{},[53,106,107],{},"Boundaries",[50,109,110],{},"What is off limits?",[50,112,113,114,117],{},"\"Don't commit. Don't touch ",[76,115,116],{},"deploy\u002F",". Keep untracked files.\"",[32,119,120,125,128],{},[50,121,122],{},[53,123,124],{},"Deliverables",[50,126,127],{},"What do you want back besides code?",[50,129,130,131,134],{},"\"Update ",[76,132,133],{},"RESEARCH.md"," if you learn something durable.\"",[32,136,137,142,145],{},[50,138,139],{},[53,140,141],{},"Done means",[50,143,144],{},"How will you both know it's finished?",[50,146,147,148,151],{},"\"All tests pass and ",[76,149,150],{},"make lint"," is clean. Finish with a list of what's left.\"",[14,153,154],{},"You don't need headings or a fixed format. You need all six answered somewhere.",[21,156,158],{"id":157},"a-brief-that-works","A brief that works",[14,160,161],{},"Here's a real-shaped brief for a sample payments service:",[163,164,170],"pre",{"className":165,"code":167,"language":168,"meta":169},[166],"language-text","Implement task 12.b (refund endpoint) in ~\u002Fcode\u002Fpayments on the\nexisting branch feature\u002Frefunds. Nothing else from the spec.\n\nThe spec in specifications\u002F12-refunds\u002F is authoritative. Read\noverview.md and 12.b-refund-endpoint.md before writing code.\nAlso read AGENTS.md and docs\u002FRESEARCH.md.\n\nBoundaries:\n- Don't commit or push.\n- Don't change anything under deploy\u002F or migrations\u002F that already exists.\n- The worktree has uncommitted work from me. Inspect it and build on it\n  if it matches the spec. Never discard it.\n\nDeliverables:\n- The endpoint, its service method and tests for every decision point.\n- A short note in docs\u002FRESEARCH.md about the idempotency key rule.\n\nDone means: `make test` and `make lint` pass. End with a summary of\nwhat changed, what you verified, and anything you're unsure about.\n","text","",[76,171,167],{"__ignoreMap":169},[14,173,174],{},"Slo reads that, loads the matching skills (routers, services, tests, docstrings), and starts with the reading list. You'll see it cite the spec as it goes.",[21,176,178],{"id":177},"why-each-part-matters","Why each part matters",[14,180,181,184],{},[53,182,183],{},"Outcome keeps the scope honest."," Agents are eager. Say \"task 12.b only\" and Slo won't helpfully start 12.c.",[14,186,187,190],{},[53,188,189],{},"Sources of truth settle arguments before they happen."," If the spec and an old README disagree, you've already said which one wins.",[14,192,193,196,197,202],{},[53,194,195],{},"Required reading is cheap context."," Pointing at three files costs you one sentence and gives Slo your architecture, conventions and history. See ",[198,199,201],"a",{"href":200},"\u002Fdocs\u002Fguides\u002Fproject-memory","Give Slo a memory"," for what to keep in those files.",[14,204,205,208],{},[53,206,207],{},"Boundaries are where most damage is avoided."," \"Don't commit\", \"don't touch deployments\" and \"keep my untracked files\" show up in hundreds of real briefs for good reason.",[14,210,211,214],{},[53,212,213],{},"Deliverables stop useful knowledge from evaporating."," If Slo figured out something non-obvious, ask it to write that down where the next session will find it.",[14,216,217,220],{},[53,218,219],{},"Done means gives the run a finish line."," Without one, you'll end up asking \"are we done?\" and getting a guess. With one, Slo checks its own work against something concrete and tells you what's left.",[222,223,225],"note",{"kind":224},"tip",[14,226,227],{},"Name the skills or workflows you care about when it matters. \"Use the code-test-review workflow\" or \"follow our Go conventions skill\" removes any doubt about which playbook applies.",[21,229,231],{"id":230},"say-it-once-not-every-time","Say it once, not every time",[14,233,234,235,238,239,242],{},"If you find yourself repeating the same boundaries in every brief, move them into ",[76,236,237],{},"SLO.md"," at the project root (or ",[76,240,241],{},"~\u002F.slo\u002FSLO.md"," for all projects). Slo loads those files at the start of every session, so your brief can shrink to the parts that change.",[21,244,246],{"id":245},"follow-ups-that-work","Follow-ups that work",[14,248,249],{},"Once a brief is running, short messages are fine because the context is already there:",[251,252,253,257,260,263,266],"ul",{},[254,255,256],"li",{},"\"Proceed to the next task in the breakdown.\"",[254,258,259],{},"\"What's left? Check against the task list, not from memory.\"",[254,261,262],{},"\"Run the full test suite and tell me what fails before fixing anything.\"",[254,264,265],{},"\"Explain the change to the retry logic in plain terms.\"",[254,267,268],{},"\"Commit this with a message that says what changed and why.\"",[14,270,271,272,275,276,279,280,284],{},"While Slo is mid-run you can add direction without stopping it with ",[76,273,274],{},"\u002Fsteer",", or stop the current step with ",[76,277,278],{},"\u002Fabort",". See ",[198,281,283],{"href":282},"\u002Fdocs\u002Freference\u002Fslash-commands","Slash commands",".",[21,286,288],{"id":287},"scaling-a-brief-up","Scaling a brief up",[14,290,291,292,296],{},"A brief with several independent tasks is a good fit for a ",[198,293,295],{"href":294},"\u002Fdocs\u002Ffeatures\u002Fdynamic-workflows","dynamic workflow",". Add \"use dynamic workflows\" and Slo turns your brief into phases, hands each to its own sub-agent, and checks their work. The six parts matter even more there: every sub-agent gets its own copy of your boundaries.",[222,298,300],{"kind":299},"check",[251,301,302,305,311],{},[254,303,304],{},"Your brief states the outcome, sources of truth, reading list, boundaries, deliverables and finish line.",[254,306,307,308,310],{},"Anything you repeat in every brief lives in ",[76,309,237],{}," instead.",[254,312,313],{},"You know how to ask \"what's left?\" in a way Slo can check.",{"title":169,"searchDepth":315,"depth":315,"links":316},2,[317,318,319,320,321,322],{"id":23,"depth":315,"text":24},{"id":157,"depth":315,"text":158},{"id":177,"depth":315,"text":178},{"id":230,"depth":315,"text":231},{"id":245,"depth":315,"text":246},{"id":287,"depth":315,"text":288},"The six parts of a prompt that lets Slo work for an hour without asking what you meant.","md",{},true,"\u002Fdocs\u002Fguides\u002Fwrite-a-brief",{"title":5,"description":323},"docs\u002Fguides\u002Fwrite-a-brief","uI_iI7hzYH4gwO1dk_sbQFpd4mgzC92_aj-spdNGjf4",1791641282711]