[{"data":1,"prerenderedAt":815},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fagent\u002Fsrc\u002Fprompts":3},{"id":4,"title":5,"body":6,"description":16,"extension":808,"meta":809,"navigation":298,"path":811,"seo":812,"stem":813,"__hash__":814},"docs\u002Fdocs\u002Fv2\u002Fagent\u002Fsrc\u002Fprompts\u002Findex.md","prompts\u002F",{"type":7,"value":8,"toc":800},"minimark",[9,13,17,25,31,80,83,96,101,112,136,140,163,166,170,445,458,461,465,472,586,590,600,603,632,703,709,713,722,782,785,788,796],[10,11,5],"h1",{"id":12},"prompts",[14,15,16],"p",{},"Prompts are reusable context loaded at invocation time. A prompt renders to a markdown\nstring that Axon passes into the agent's context for that call. It is not part of the\nstanding boot prompt — it's task-specific context loaded when a script or route decides\nthe agent needs it.",[14,18,19,20,24],{},"You don't assemble context by hand or pass raw strings into ",[21,22,23],"code",{},"axon.request()",". You write\nprompts, load them by name, and compose them. The runtime handles rendering, concatenation,\nand context budget from there.",[14,26,27,28,30],{},"The name is the file path relative to ",[21,29,5],{},", without the extension:",[32,33,38],"pre",{"className":34,"code":35,"language":36,"meta":37,"style":37},"language-bash shiki shiki-themes dark-plus","src\u002Fprompts\u002Fcode-review.md        → \"code-review\"\nsrc\u002Fprompts\u002Fsession.vue           → \"session\"\nsrc\u002Fprompts\u002Fpersonas\u002Flinus.md     → \"personas\u002Flinus\"\n","bash","",[21,39,40,56,68],{"__ignoreMap":37},[41,42,45,49,53],"span",{"class":43,"line":44},"line",1,[41,46,48],{"class":47},"sCudf","src\u002Fprompts\u002Fcode-review.md",[41,50,52],{"class":51},"sKc5r","        →",[41,54,55],{"class":51}," \"code-review\"\n",[41,57,59,62,65],{"class":43,"line":58},2,[41,60,61],{"class":47},"src\u002Fprompts\u002Fsession.vue",[41,63,64],{"class":51},"           →",[41,66,67],{"class":51}," \"session\"\n",[41,69,71,74,77],{"class":43,"line":70},3,[41,72,73],{"class":47},"src\u002Fprompts\u002Fpersonas\u002Flinus.md",[41,75,76],{"class":51},"     →",[41,78,79],{"class":51}," \"personas\u002Flinus\"\n",[14,81,82],{},"No registration. Add a file, get a prompt.",[14,84,85,86,91,92,95],{},"These prompts belong to this agent. The same files can also be published on\ntheir own as a ",[87,88,90],"a",{"href":89},"\u002Fdocs\u002Fv2\u002Fecosystem\u002Fprompts","prompt package"," — same formats,\nsame authoring rules, but the folder becomes the artifact and anyone can\ninstall it. Moving one out is a matter of putting a ",[21,93,94],{},"prompt.config.ts"," beside\nit.",[97,98,100],"h2",{"id":99},"two-kinds","Two kinds",[14,102,103,111],{},[104,105,106,107,110],"strong",{},"Static (",[21,108,109],{},".md",")"," — plain markdown with optional frontmatter. What you write is what the\nagent gets, with any declared args interpolated.",[14,113,114,120,121,124,125,128,129,135],{},[104,115,116,117,110],{},"Dynamic (",[21,118,119],{},".vue"," — template files that run ",[21,122,123],{},"\u003Cscript setup>"," before rendering. Fetch\nlive data with ",[21,126,127],{},"axon.tools",", branch on conditions, compose from components. The template\nrenders to a markdown string the agent receives fully populated. These are not web\ncomponents — ",[87,130,132,134],{"href":131},"\u002Fdocs\u002Fv2\u002Fconcepts\u002Fvuedown",[21,133,119],{}," here is a text template format",".",[97,137,139],{"id":138},"static-prompts","Static prompts",[32,141,145],{"className":142,"code":143,"language":144,"meta":37,"style":37},"language-markdown shiki shiki-themes dark-plus","Load the full context for issue {{issueId}}.\nRun the show tool and read the output carefully.\nSummarise the title, current status, and any open questions.\n","markdown",[21,146,147,153,158],{"__ignoreMap":37},[41,148,149],{"class":43,"line":44},[41,150,152],{"class":151},"sTNBD","Load the full context for issue {{issueId}}.\n",[41,154,155],{"class":43,"line":58},[41,156,157],{"class":151},"Run the show tool and read the output carefully.\n",[41,159,160],{"class":43,"line":70},[41,161,162],{"class":151},"Summarise the title, current status, and any open questions.\n",[14,164,165],{},"Use static prompts for instructions that don't depend on live data — personas, checklists,\nworkflow steps, reference guides.",[97,167,169],{"id":168},"dynamic-prompts","Dynamic prompts",[32,171,175],{"className":172,"code":173,"language":174,"meta":37,"style":37},"language-vue shiki shiki-themes dark-plus","\u003C!-- src\u002Fprompts\u002Fsession.vue -->\n\u003Cscript setup lang=\"ts\">\nconst task = await kanban.nextTask()\nconst { proposals, accepted, done } = await axon.tools.kanban.list()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n    \u003Csection>\n        \u003Ch2>Current Kanban State\u003C\u002Fh2>\n        \u003Cp>Proposals: {{ proposals.length }} · Accepted: {{ accepted.length }} · Done: {{ done.length }}\u003C\u002Fp>\n    \u003C\u002Fsection>\n\n    \u003Csection v-if=\"task\">\n        \u003Ch2>Next Task\u003C\u002Fh2>\n        \u003Cpre>{{ task.content }}\u003C\u002Fpre>\n    \u003C\u002Fsection>\n\u003C\u002Ftemplate>\n","vue",[21,176,177,183,209,236,283,293,300,310,321,341,359,369,374,391,409,427,436],{"__ignoreMap":37},[41,178,179],{"class":43,"line":44},[41,180,182],{"class":181},"sOLPB","\u003C!-- src\u002Fprompts\u002Fsession.vue -->\n",[41,184,185,189,193,197,200,203,206],{"class":43,"line":58},[41,186,188],{"class":187},"srRes","\u003C",[41,190,192],{"class":191},"scz_3","script",[41,194,196],{"class":195},"s3F5K"," setup",[41,198,199],{"class":195}," lang",[41,201,202],{"class":151},"=",[41,204,205],{"class":51},"\"ts\"",[41,207,208],{"class":187},">\n",[41,210,211,214,218,221,225,228,230,233],{"class":43,"line":70},[41,212,213],{"class":191},"const",[41,215,217],{"class":216},"s9McN"," task",[41,219,220],{"class":151}," = ",[41,222,224],{"class":223},"sYbnZ","await",[41,226,227],{"class":195}," kanban",[41,229,135],{"class":151},[41,231,232],{"class":47},"nextTask",[41,234,235],{"class":151},"()\n",[41,237,239,241,244,247,250,253,255,258,261,263,266,268,271,273,276,278,281],{"class":43,"line":238},4,[41,240,213],{"class":191},[41,242,243],{"class":151}," { ",[41,245,246],{"class":216},"proposals",[41,248,249],{"class":151},", ",[41,251,252],{"class":216},"accepted",[41,254,249],{"class":151},[41,256,257],{"class":216},"done",[41,259,260],{"class":151}," } = ",[41,262,224],{"class":223},[41,264,265],{"class":195}," axon",[41,267,135],{"class":151},[41,269,270],{"class":195},"tools",[41,272,135],{"class":151},[41,274,275],{"class":195},"kanban",[41,277,135],{"class":151},[41,279,280],{"class":47},"list",[41,282,235],{"class":151},[41,284,286,289,291],{"class":43,"line":285},5,[41,287,288],{"class":187},"\u003C\u002F",[41,290,192],{"class":191},[41,292,208],{"class":187},[41,294,296],{"class":43,"line":295},6,[41,297,299],{"emptyLinePlaceholder":298},true,"\n",[41,301,303,305,308],{"class":43,"line":302},7,[41,304,188],{"class":187},[41,306,307],{"class":191},"template",[41,309,208],{"class":187},[41,311,313,316,319],{"class":43,"line":312},8,[41,314,315],{"class":187},"    \u003C",[41,317,318],{"class":191},"section",[41,320,208],{"class":187},[41,322,324,327,329,332,335,337,339],{"class":43,"line":323},9,[41,325,326],{"class":187},"        \u003C",[41,328,97],{"class":191},[41,330,331],{"class":187},">",[41,333,334],{"class":151},"Current Kanban State",[41,336,288],{"class":187},[41,338,97],{"class":191},[41,340,208],{"class":187},[41,342,344,346,348,350,353,355,357],{"class":43,"line":343},10,[41,345,326],{"class":187},[41,347,14],{"class":191},[41,349,331],{"class":187},[41,351,352],{"class":151},"Proposals: {{ proposals.length }} · Accepted: {{ accepted.length }} · Done: {{ done.length }}",[41,354,288],{"class":187},[41,356,14],{"class":191},[41,358,208],{"class":187},[41,360,362,365,367],{"class":43,"line":361},11,[41,363,364],{"class":187},"    \u003C\u002F",[41,366,318],{"class":191},[41,368,208],{"class":187},[41,370,372],{"class":43,"line":371},12,[41,373,299],{"emptyLinePlaceholder":298},[41,375,377,379,381,384,386,389],{"class":43,"line":376},13,[41,378,315],{"class":187},[41,380,318],{"class":191},[41,382,383],{"class":195}," v-if",[41,385,202],{"class":151},[41,387,388],{"class":51},"\"task\"",[41,390,208],{"class":187},[41,392,394,396,398,400,403,405,407],{"class":43,"line":393},14,[41,395,326],{"class":187},[41,397,97],{"class":191},[41,399,331],{"class":187},[41,401,402],{"class":151},"Next Task",[41,404,288],{"class":187},[41,406,97],{"class":191},[41,408,208],{"class":187},[41,410,412,414,416,418,421,423,425],{"class":43,"line":411},15,[41,413,326],{"class":187},[41,415,32],{"class":191},[41,417,331],{"class":187},[41,419,420],{"class":151},"{{ task.content }}",[41,422,288],{"class":187},[41,424,32],{"class":191},[41,426,208],{"class":187},[41,428,430,432,434],{"class":43,"line":429},16,[41,431,364],{"class":187},[41,433,318],{"class":191},[41,435,208],{"class":187},[41,437,439,441,443],{"class":43,"line":438},17,[41,440,288],{"class":187},[41,442,307],{"class":191},[41,444,208],{"class":187},[14,446,447,450,451,453,454,457],{},[21,448,449],{},"axon"," is available in ",[21,452,123],{}," — no import needed. Props declared via\n",[21,455,456],{},"defineProps\u003C{}>()"," are the prompt's arguments, typed and validated before render.",[14,459,460],{},"Use dynamic prompts when the instruction quality depends on current state — live data,\nfetched content, conditional structure.",[97,462,464],{"id":463},"loading-prompts","Loading prompts",[14,466,467,468,471],{},"Load from scripts and routes with ",[21,469,470],{},"axon.prompt()",":",[32,473,477],{"className":474,"code":475,"language":476,"meta":37,"style":37},"language-ts shiki shiki-themes dark-plus","const session = await axon.prompt(\"session\")\nconst review = await axon.prompt(\"code-review\", { issueId: \"bd-42\" })\n\n\u002F\u002F compose — Axon concatenates in order\nconst { stream } = axon.stream({ prompt: [session, review] })\n","ts",[21,478,479,506,540,544,549],{"__ignoreMap":37},[41,480,481,483,486,488,490,492,494,497,500,503],{"class":43,"line":44},[41,482,213],{"class":191},[41,484,485],{"class":216}," session",[41,487,220],{"class":151},[41,489,224],{"class":223},[41,491,265],{"class":195},[41,493,135],{"class":151},[41,495,496],{"class":47},"prompt",[41,498,499],{"class":151},"(",[41,501,502],{"class":51},"\"session\"",[41,504,505],{"class":151},")\n",[41,507,508,510,513,515,517,519,521,523,525,528,531,534,537],{"class":43,"line":58},[41,509,213],{"class":191},[41,511,512],{"class":216}," review",[41,514,220],{"class":151},[41,516,224],{"class":223},[41,518,265],{"class":195},[41,520,135],{"class":151},[41,522,496],{"class":47},[41,524,499],{"class":151},[41,526,527],{"class":51},"\"code-review\"",[41,529,530],{"class":151},", { ",[41,532,533],{"class":195},"issueId:",[41,535,536],{"class":51}," \"bd-42\"",[41,538,539],{"class":151}," })\n",[41,541,542],{"class":43,"line":70},[41,543,299],{"emptyLinePlaceholder":298},[41,545,546],{"class":43,"line":238},[41,547,548],{"class":181},"\u002F\u002F compose — Axon concatenates in order\n",[41,550,551,553,555,558,560,562,564,566,569,572,575,578,580,583],{"class":43,"line":285},[41,552,213],{"class":191},[41,554,243],{"class":151},[41,556,557],{"class":216},"stream",[41,559,260],{"class":151},[41,561,449],{"class":195},[41,563,135],{"class":151},[41,565,557],{"class":47},[41,567,568],{"class":151},"({ ",[41,570,571],{"class":195},"prompt:",[41,573,574],{"class":151}," [",[41,576,577],{"class":195},"session",[41,579,249],{"class":151},[41,581,582],{"class":195},"review",[41,584,585],{"class":151},"] })\n",[97,587,589],{"id":588},"components","Components",[14,591,592,595,596,599],{},[21,593,594],{},"src\u002Fprompts\u002Fcomponents\u002F"," holds reusable Vue fragments auto-imported globally into\n",[21,597,598],{},"boot.vue"," and all dynamic prompts. No import statements needed.",[14,601,602],{},"Filename → PascalCase component name:",[604,605,606,616,624],"ul",{},[607,608,609,612,613],"li",{},[21,610,611],{},"identity.vue"," → ",[21,614,615],{},"\u003CIdentity \u002F>",[607,617,618,612,621],{},[21,619,620],{},"working-practices.vue",[21,622,623],{},"\u003CWorkingPractices \u002F>",[607,625,626,612,629],{},[21,627,628],{},"kanban-usage.vue",[21,630,631],{},"\u003CKanbanUsage \u002F>",[32,633,635],{"className":172,"code":634,"language":174,"meta":37,"style":37},"\u003C!-- boot.vue — components available without imports -->\n\u003Ctemplate>\n    \u003Ch1>Barry\u003C\u002Fh1>\n    \u003CIdentity \u002F>\n    \u003CPersonality \u002F>\n    \u003CWorkingPractices \u002F>\n\u003C\u002Ftemplate>\n",[21,636,637,642,650,667,677,686,695],{"__ignoreMap":37},[41,638,639],{"class":43,"line":44},[41,640,641],{"class":181},"\u003C!-- boot.vue — components available without imports -->\n",[41,643,644,646,648],{"class":43,"line":58},[41,645,188],{"class":187},[41,647,307],{"class":191},[41,649,208],{"class":187},[41,651,652,654,656,658,661,663,665],{"class":43,"line":70},[41,653,315],{"class":187},[41,655,10],{"class":191},[41,657,331],{"class":187},[41,659,660],{"class":151},"Barry",[41,662,288],{"class":187},[41,664,10],{"class":191},[41,666,208],{"class":187},[41,668,669,671,674],{"class":43,"line":238},[41,670,315],{"class":187},[41,672,673],{"class":191},"Identity",[41,675,676],{"class":187}," \u002F>\n",[41,678,679,681,684],{"class":43,"line":285},[41,680,315],{"class":187},[41,682,683],{"class":191},"Personality",[41,685,676],{"class":187},[41,687,688,690,693],{"class":43,"line":295},[41,689,315],{"class":187},[41,691,692],{"class":191},"WorkingPractices",[41,694,676],{"class":187},[41,696,697,699,701],{"class":43,"line":302},[41,698,288],{"class":187},[41,700,307],{"class":191},[41,702,208],{"class":187},[14,704,705,706,708],{},"Components are not prompts. They can't be loaded via ",[21,707,470],{}," — they're building\nblocks for boot and dynamic prompts only.",[97,710,712],{"id":711},"tui-palette","TUI palette",[14,714,715,716,718,719,721],{},"Press ",[21,717,331],{}," in the TUI, search for the prompt name, select it. Static prompts with declared\nargs show a text form. Dynamic prompts with typed ",[21,720,456],{}," show typed controls:",[723,724,725,738],"table",{},[726,727,728],"thead",{},[729,730,731,735],"tr",{},[732,733,734],"th",{},"Prop type",[732,736,737],{},"Control",[739,740,741,752,762,772],"tbody",{},[729,742,743,749],{},[744,745,746],"td",{},[21,747,748],{},"string",[744,750,751],{},"Text input",[729,753,754,759],{},[744,755,756],{},[21,757,758],{},"number",[744,760,761],{},"Number input",[729,763,764,769],{},[744,765,766],{},[21,767,768],{},"boolean",[744,770,771],{},"Toggle",[729,773,774,779],{},[744,775,776],{},[21,777,778],{},"\"a\" | \"b\"",[744,780,781],{},"Dropdown",[14,783,784],{},"The rendered prompt loads into the current session context and sends with the next message.",[786,787],"hr",{},[14,789,790,791,795],{},"Next: ",[87,792,794],{"href":793},"\u002Fdocs\u002Fv2\u002Fagent\u002Fbuild\u002Fscripts","Scripts"," — orchestrating the work.",[797,798,799],"style",{},"html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}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);}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}html pre.shiki code .srRes, html code.shiki .srRes{--shiki-default:#808080}html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .s9McN, html code.shiki .s9McN{--shiki-default:#4FC1FF}html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}",{"title":37,"searchDepth":58,"depth":58,"links":801},[802,803,804,805,806,807],{"id":99,"depth":58,"text":100},{"id":138,"depth":58,"text":139},{"id":168,"depth":58,"text":169},{"id":463,"depth":58,"text":464},{"id":588,"depth":58,"text":589},{"id":711,"depth":58,"text":712},"md",{"icon":810},"vscode-icons:default-folder","\u002Fdocs\u002Fv2\u002Fagent\u002Fsrc\u002Fprompts",{"title":5,"description":16},"docs\u002Fv2\u002Fagent\u002Fsrc\u002Fprompts\u002Findex","UPGkbClbU80lJAE9McuRhRs7Kx38gNqcSNPUsNP9HBA",1785671806124]