[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fgetting-started\u002Fcore-concepts":3},{"id":4,"title":5,"body":6,"description":376,"extension":377,"meta":378,"navigation":379,"path":380,"seo":381,"stem":382,"__hash__":383},"docs\u002Fdocs\u002Fgetting-started\u002Fcore-concepts.md","Core concepts",{"type":7,"value":8,"toc":366},"minimark",[9,13,17,22,35,38,44,55,58,63,68,71,75,81,97,100,105,110,114,117,127,134,140,175,182,196,217,221,224,242,249,252,257,260,264,271,290,301,304,324,330,334,337,348,352,359,362],[10,11,5],"h1",{"id":12},"core-concepts",[14,15,16],"p",{},"Understanding these concepts unlocks everything Slo does.",[18,19,21],"h2",{"id":20},"skills","Skills",[14,23,24,25,29,30,34],{},"A ",[26,27,28],"strong",{},"skill"," is a structured prompt document that teaches Slo a repeatable task. Skills live in ",[31,32,33],"code",{},"~\u002F.slo\u002Fskills\u002F"," and cover topics like writing domain services, building routers, running tests, or generating swagger docs.",[14,36,37],{},"You don't invoke skills by name. You describe what you want and Slo automatically loads the relevant skills:",[39,40,41],"blockquote",{},[14,42,43],{},"\"Write me a FastAPI router for user authentication with named arguments.\"",[14,45,46,47,50,51,54],{},"Slo sees a routing task, loads ",[31,48,49],{},"build-routers"," and ",[31,52,53],{},"named-arguments-and-type-hints",", and applies both.",[14,56,57],{},"You can always ask Slo which skills it has for a given topic:",[39,59,60],{},[14,61,62],{},"\"What skills do you have for working with databases?\"",[39,64,65],{},[14,66,67],{},"\"What skills do you have for building Vue components?\"",[14,69,70],{},"Skills are the building blocks. Workflows compose them.",[18,72,74],{"id":73},"workflows","Workflows",[14,76,24,77,80],{},[26,78,79],{},"workflow"," is an orchestrated sequence of skill invocations that produces a structured output. Slo ships with two:",[82,83,84,91],"ol",{},[85,86,87,90],"li",{},[26,88,89],{},"Feature Specifications"," — turns a rough request into a verified, task-broken spec",[85,92,93,96],{},[26,94,95],{},"Code-Test-Review"," — guides a feature from code to tests to reviewed PR",[14,98,99],{},"Workflows are triggered the same way — just describe the goal in plain language:",[39,101,102],{},[14,103,104],{},"\"Write a feature specification for the beta signup page.\"",[39,106,107],{},[14,108,109],{},"\"Help me test the payment module and open a pull request when it's done.\"",[18,111,113],{"id":112},"sessions","Sessions",[14,115,116],{},"The TUI persists your full conversation history by default. Each session is stored under:",[118,119,124],"pre",{"className":120,"code":122,"language":123},[121],"language-text","~\u002F.slo\u002Fsessions\u002Fhistory\u002F\u003Csession_id>\u002F\n","text",[31,125,122],{"__ignoreMap":126},"",[14,128,129,130,133],{},"Each session directory contains a ",[31,131,132],{},"session.json"," (metadata) and an append-only JSONL file of tool call events.",[14,135,136,139],{},[26,137,138],{},"Resume a past session"," at any time:",[118,141,145],{"className":142,"code":143,"language":144,"meta":126,"style":126},"language-bash shiki shiki-themes github-dark-high-contrast","slo --resume \u003Csession_id_or_name>\n","bash",[31,146,147],{"__ignoreMap":126},[148,149,152,156,160,164,168,172],"span",{"class":150,"line":151},"line",1,[148,153,155],{"class":154},"s_sBn","slo",[148,157,159],{"class":158},"sCcAr"," --resume",[148,161,163],{"class":162},"sWyjQ"," \u003C",[148,165,167],{"class":166},"sTRMh","session_id_or_nam",[148,169,171],{"class":170},"sMAXC","e",[148,173,174],{"class":162},">\n",[14,176,177,178,181],{},"You can override the storage location by setting the ",[31,179,180],{},"SLO_HOME"," environment variable.",[14,183,184,187,188,191,192,195],{},[26,185,186],{},"Headless runs"," (",[31,189,190],{},"slo run -p \"...\"",") do not persist history by default. Add ",[31,193,194],{},"--enable-history"," to opt in:",[118,197,199],{"className":142,"code":198,"language":144,"meta":126,"style":126},"slo run --enable-history -p \"Refactor the auth module.\"\n",[31,200,201],{"__ignoreMap":126},[148,202,203,205,208,211,214],{"class":150,"line":151},[148,204,155],{"class":154},[148,206,207],{"class":166}," run",[148,209,210],{"class":158}," --enable-history",[148,212,213],{"class":158}," -p",[148,215,216],{"class":166}," \"Refactor the auth module.\"\n",[18,218,220],{"id":219},"project-context","Project context",[14,222,223],{},"Slo automatically reads context files from your project to understand your team's conventions, architecture, and ground rules. It walks up the directory tree from your working directory looking for:",[225,226,227,232,237],"ul",{},[85,228,229],{},[31,230,231],{},"SLO.md",[85,233,234],{},[31,235,236],{},"AGENTS.md",[85,238,239],{},[31,240,241],{},"CLAUDE.md",[14,243,244,245,248],{},"A global ",[31,246,247],{},"~\u002F.slo\u002FSLO.md"," (if present) is prepended first, so user-level preferences are always in scope.",[14,250,251],{},"If your project has no context file yet, ask Slo to generate one:",[39,253,254],{},[14,255,256],{},"\"Generate a RESEARCH.md and AGENTS.md for this project.\"",[14,258,259],{},"These generated files give Slo a map of your codebase structure, key conventions, and agent operating instructions that persist across sessions.",[18,261,263],{"id":262},"knowledge-base","Knowledge base",[14,265,266,267,270],{},"Set the ",[31,268,269],{},"SLO_KB_DIR"," environment variable to point Slo at a curated markdown knowledge base:",[118,272,274],{"className":142,"code":273,"language":144,"meta":126,"style":126},"export SLO_KB_DIR=~\u002FCode\u002FKnowledgeBase\u002FKB\n",[31,275,276],{"__ignoreMap":126},[148,277,278,281,284,287],{"class":150,"line":151},[148,279,280],{"class":162},"export",[148,282,283],{"class":170}," SLO_KB_DIR",[148,285,286],{"class":162},"=~",[148,288,289],{"class":170},"\u002FCode\u002FKnowledgeBase\u002FKB\n",[14,291,292,293,296,297,300],{},"Slo reads the knowledge base using the same tools it uses to read project code — ",[31,294,295],{},"read",", ",[31,298,299],{},"grep",", and related file tools. This means it can navigate folders, follow cross-links, and search by symptom.",[14,302,303],{},"A knowledge base is useful for:",[225,305,306,312,318],{},[85,307,308,311],{},[26,309,310],{},"Cross-project patterns"," — distilled architecture decisions that apply across multiple repos",[85,313,314,317],{},[26,315,316],{},"Failure-mode lookups"," — known pitfalls and their fixes, accumulated over time",[85,319,320,323],{},[26,321,322],{},"Team conventions"," — anything too broad to belong in a single project's context file",[14,325,326,327,329],{},"If ",[31,328,269],{}," is not set, Slo works without it — the variable is optional.",[18,331,333],{"id":332},"conventions","Conventions",[14,335,336],{},"Slo's built-in skills enforce conventions: named arguments, type hints, declarative method structure, and more. These conventions apply to every file Slo touches.",[14,338,339,340,343,344,347],{},"You can ",[26,341,342],{},"override any convention"," by placing your own skill file in ",[31,345,346],{},"~\u002F.slo\u002Fuser_skills\u002F",".",[18,349,351],{"id":350},"the-override-model","The override model",[14,353,354,355,358],{},"Built-in skills live in the Slo package. User skills shadow them. If Slo finds ",[31,356,357],{},"~\u002F.slo\u002Fuser_skills\u002Ftypescript-named-arguments\u002FSKILL.md",", it uses that instead of the built-in.",[14,360,361],{},"This means you can adopt Slo's defaults for your team and override only what needs to be different.",[363,364,365],"style",{},"html pre.shiki code .s_sBn, html code.shiki .s_sBn{--shiki-default:#FFB757}html pre.shiki code .sCcAr, html code.shiki .sCcAr{--shiki-default:#91CBFF}html pre.shiki code .sWyjQ, html code.shiki .sWyjQ{--shiki-default:#FF9492}html pre.shiki code .sTRMh, html code.shiki .sTRMh{--shiki-default:#ADDCFF}html pre.shiki code .sMAXC, html code.shiki .sMAXC{--shiki-default:#F0F3F6}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":126,"searchDepth":367,"depth":367,"links":368},2,[369,370,371,372,373,374,375],{"id":20,"depth":367,"text":21},{"id":73,"depth":367,"text":74},{"id":112,"depth":367,"text":113},{"id":219,"depth":367,"text":220},{"id":262,"depth":367,"text":263},{"id":332,"depth":367,"text":333},{"id":350,"depth":367,"text":351},"Skills, workflows, sessions, project context, knowledge base, conventions, and how they fit together in Slo.","md",{},true,"\u002Fdocs\u002Fgetting-started\u002Fcore-concepts",{"title":5,"description":376},"docs\u002Fgetting-started\u002Fcore-concepts","EJo4t-X_TZEXmYQkEXyqUe4TlTgL1JMSYF7oGR5GyUY",1782392848391]