[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f1ga0lcc6y2b7w":3},{"entry":4,"body":9,"data":2798},{"slug":5,"title":6,"file":7,"description":8},"base-and-profiles","Base and profiles","base-and-profiles.md","How the wizard assembles CLAUDE.md, and how to add an axis or a profile.",{"type":10,"children":11},"root",[12,19,42,49,91,413,418,515,521,769,821,827,840,1036,1041,1143,1149,1176,1940,1945,2047,2053,2074,2364,2411,2417,2428,2583,2588,2594,2606,2717,2722,2755,2792],{"type":13,"tag":14,"props":15,"children":16},"element","h1",{"id":5},[17],{"type":18,"value":6},"text",{"type":13,"tag":20,"props":21,"children":22},"p",{},[23,25,31,33,40],{"type":18,"value":24},"The wizard does not paste a template into your project. It answers a short list of questions, collects one markdown ",{"type":13,"tag":26,"props":27,"children":28},"strong",{},[29],{"type":18,"value":30},"fragment",{"type":18,"value":32}," per answer, adds the ",{"type":13,"tag":34,"props":35,"children":37},"code",{"className":36},[],[38],{"type":18,"value":39},"CLAUDE.md",{"type":18,"value":41}," snippet from every bundle you picked, and merges them into a single file where each rule lands under the heading it belongs to. This page describes the pieces and how to add your own.",{"type":13,"tag":43,"props":44,"children":46},"h2",{"id":45},"the-section-convention",[47],{"type":18,"value":48},"The section convention",{"type":13,"tag":20,"props":50,"children":51},{},[52,58,60,65,67,73,75,81,83,89],{"type":13,"tag":34,"props":53,"children":55},{"className":54},[],[56],{"type":18,"value":57},"base\u002Fsections.yaml",{"type":18,"value":59}," defines the canonical, ordered sections. Every base fragment and every bundle ",{"type":13,"tag":34,"props":61,"children":63},{"className":62},[],[64],{"type":18,"value":39},{"type":18,"value":66}," snippet is markdown whose ",{"type":13,"tag":34,"props":68,"children":70},{"className":69},[],[71],{"type":18,"value":72},"##",{"type":18,"value":74}," headings must be canonical titles (or ",{"type":13,"tag":34,"props":76,"children":78},{"className":77},[],[79],{"type":18,"value":80},"## @\u003Cid>",{"type":18,"value":82},"); the content under a heading is that section's contribution. Content before any heading lands in ",{"type":13,"tag":34,"props":84,"children":86},{"className":85},[],[87],{"type":18,"value":88},"skills-and-rules",{"type":18,"value":90},". One snippet may contribute to several sections.",{"type":13,"tag":92,"props":93,"children":94},"table",{},[95,119],{"type":13,"tag":96,"props":97,"children":98},"thead",{},[99],{"type":13,"tag":100,"props":101,"children":102},"tr",{},[103,109,114],{"type":13,"tag":104,"props":105,"children":106},"th",{},[107],{"type":18,"value":108},"id",{"type":13,"tag":104,"props":110,"children":111},{},[112],{"type":18,"value":113},"heading",{"type":13,"tag":104,"props":115,"children":116},{},[117],{"type":18,"value":118},"typical content",{"type":13,"tag":120,"props":121,"children":122},"tbody",{},[123,150,172,194,216,238,260,282,304,326,348,370,391],{"type":13,"tag":100,"props":124,"children":125},{},[126,136,145],{"type":13,"tag":127,"props":128,"children":129},"td",{},[130],{"type":13,"tag":34,"props":131,"children":133},{"className":132},[],[134],{"type":18,"value":135},"intro",{"type":13,"tag":127,"props":137,"children":138},{},[139],{"type":13,"tag":140,"props":141,"children":142},"em",{},[143],{"type":18,"value":144},"(title line + one paragraph)",{"type":13,"tag":127,"props":146,"children":147},{},[148],{"type":18,"value":149},"project name and one-liner from the wizard",{"type":13,"tag":100,"props":151,"children":152},{},[153,162,167],{"type":13,"tag":127,"props":154,"children":155},{},[156],{"type":13,"tag":34,"props":157,"children":159},{"className":158},[],[160],{"type":18,"value":161},"read-first",{"type":13,"tag":127,"props":163,"children":164},{},[165],{"type":18,"value":166},"Read first",{"type":13,"tag":127,"props":168,"children":169},{},[170],{"type":18,"value":171},"pointers to handovers, wiki, specs",{"type":13,"tag":100,"props":173,"children":174},{},[175,184,189],{"type":13,"tag":127,"props":176,"children":177},{},[178],{"type":13,"tag":34,"props":179,"children":181},{"className":180},[],[182],{"type":18,"value":183},"stack",{"type":13,"tag":127,"props":185,"children":186},{},[187],{"type":18,"value":188},"Stack",{"type":13,"tag":127,"props":190,"children":191},{},[192],{"type":18,"value":193},"frameworks and versions",{"type":13,"tag":100,"props":195,"children":196},{},[197,206,211],{"type":13,"tag":127,"props":198,"children":199},{},[200],{"type":13,"tag":34,"props":201,"children":203},{"className":202},[],[204],{"type":18,"value":205},"commands",{"type":13,"tag":127,"props":207,"children":208},{},[209],{"type":18,"value":210},"Commands",{"type":13,"tag":127,"props":212,"children":213},{},[214],{"type":18,"value":215},"package manager, scripts",{"type":13,"tag":100,"props":217,"children":218},{},[219,228,233],{"type":13,"tag":127,"props":220,"children":221},{},[222],{"type":13,"tag":34,"props":223,"children":225},{"className":224},[],[226],{"type":18,"value":227},"workflow",{"type":13,"tag":127,"props":229,"children":230},{},[231],{"type":18,"value":232},"Workflow",{"type":13,"tag":127,"props":234,"children":235},{},[236],{"type":18,"value":237},"brainstorm → spec → plan → TDD → review",{"type":13,"tag":100,"props":239,"children":240},{},[241,250,255],{"type":13,"tag":127,"props":242,"children":243},{},[244],{"type":13,"tag":34,"props":245,"children":247},{"className":246},[],[248],{"type":18,"value":249},"testing",{"type":13,"tag":127,"props":251,"children":252},{},[253],{"type":18,"value":254},"Testing",{"type":13,"tag":127,"props":256,"children":257},{},[258],{"type":18,"value":259},"TDD rules, browser validation, test-account pointer",{"type":13,"tag":100,"props":261,"children":262},{},[263,272,277],{"type":13,"tag":127,"props":264,"children":265},{},[266],{"type":13,"tag":34,"props":267,"children":269},{"className":268},[],[270],{"type":18,"value":271},"docs",{"type":13,"tag":127,"props":273,"children":274},{},[275],{"type":18,"value":276},"Docs",{"type":13,"tag":127,"props":278,"children":279},{},[280],{"type":18,"value":281},"three-tier doc model, handover\u002Fwiki rules",{"type":13,"tag":100,"props":283,"children":284},{},[285,294,299],{"type":13,"tag":127,"props":286,"children":287},{},[288],{"type":13,"tag":34,"props":289,"children":291},{"className":290},[],[292],{"type":18,"value":293},"git",{"type":13,"tag":127,"props":295,"children":296},{},[297],{"type":18,"value":298},"Git",{"type":13,"tag":127,"props":300,"children":301},{},[302],{"type":18,"value":303},"commit\u002Fpush policy, conventions, no trailers",{"type":13,"tag":100,"props":305,"children":306},{},[307,316,321],{"type":13,"tag":127,"props":308,"children":309},{},[310],{"type":13,"tag":34,"props":311,"children":313},{"className":312},[],[314],{"type":18,"value":315},"deploy",{"type":13,"tag":127,"props":317,"children":318},{},[319],{"type":18,"value":320},"Deploy",{"type":13,"tag":127,"props":322,"children":323},{},[324],{"type":18,"value":325},"target, branch model, platform gotchas",{"type":13,"tag":100,"props":327,"children":328},{},[329,338,343],{"type":13,"tag":127,"props":330,"children":331},{},[332],{"type":13,"tag":34,"props":333,"children":335},{"className":334},[],[336],{"type":18,"value":337},"constraints",{"type":13,"tag":127,"props":339,"children":340},{},[341],{"type":18,"value":342},"Constraints that bit before",{"type":13,"tag":127,"props":344,"children":345},{},[346],{"type":18,"value":347},"hard rules and gotchas",{"type":13,"tag":100,"props":349,"children":350},{},[351,360,365],{"type":13,"tag":127,"props":352,"children":353},{},[354],{"type":13,"tag":34,"props":355,"children":357},{"className":356},[],[358],{"type":18,"value":359},"memory",{"type":13,"tag":127,"props":361,"children":362},{},[363],{"type":18,"value":364},"Memory",{"type":13,"tag":127,"props":366,"children":367},{},[368],{"type":18,"value":369},"MyMind rules",{"type":13,"tag":100,"props":371,"children":372},{},[373,381,386],{"type":13,"tag":127,"props":374,"children":375},{},[376],{"type":13,"tag":34,"props":377,"children":379},{"className":378},[],[380],{"type":18,"value":88},{"type":13,"tag":127,"props":382,"children":383},{},[384],{"type":18,"value":385},"Skills and rules",{"type":13,"tag":127,"props":387,"children":388},{},[389],{"type":18,"value":390},"which skill to invoke when; which rules exist",{"type":13,"tag":100,"props":392,"children":393},{},[394,403,408],{"type":13,"tag":127,"props":395,"children":396},{},[397],{"type":13,"tag":34,"props":398,"children":400},{"className":399},[],[401],{"type":18,"value":402},"self-improvement",{"type":13,"tag":127,"props":404,"children":405},{},[406],{"type":18,"value":407},"Self-improvement",{"type":13,"tag":127,"props":409,"children":410},{},[411],{"type":18,"value":412},"the relentless-improvement block",{"type":13,"tag":20,"props":414,"children":415},{},[416],{"type":18,"value":417},"Rendering rules:",{"type":13,"tag":419,"props":420,"children":421},"ul",{},[422,428,433,486,491,504],{"type":13,"tag":423,"props":424,"children":425},"li",{},[426],{"type":18,"value":427},"Only sections with content are emitted, in canonical order, each heading exactly once.",{"type":13,"tag":423,"props":429,"children":430},{},[431],{"type":18,"value":432},"Within a section: base fragments first (schema order), then bundles alphabetically by slug.",{"type":13,"tag":423,"props":434,"children":435},{},[436,438,444,446,452,454,460,462,468,470,476,478,484],{"type":18,"value":437},"Each contribution is wrapped in ",{"type":13,"tag":34,"props":439,"children":441},{"className":440},[],[442],{"type":18,"value":443},"\u003C!-- skills:\u003Csource-id> -->",{"type":18,"value":445}," … ",{"type":13,"tag":34,"props":447,"children":449},{"className":448},[],[450],{"type":18,"value":451},"\u003C!-- \u002Fskills:\u003Csource-id> -->",{"type":18,"value":453}," where ",{"type":13,"tag":34,"props":455,"children":457},{"className":456},[],[458],{"type":18,"value":459},"source-id",{"type":18,"value":461}," is ",{"type":13,"tag":34,"props":463,"children":465},{"className":464},[],[466],{"type":18,"value":467},"base:\u003Caxis>=\u003Coption>",{"type":18,"value":469},", ",{"type":13,"tag":34,"props":471,"children":473},{"className":472},[],[474],{"type":18,"value":475},"base:always\u002F\u003Cname>",{"type":18,"value":477},", or ",{"type":13,"tag":34,"props":479,"children":481},{"className":480},[],[482],{"type":18,"value":483},"bundle:\u003Cslug>",{"type":18,"value":485},".",{"type":13,"tag":423,"props":487,"children":488},{},[489],{"type":18,"value":490},"Text outside markers is the user's and is never modified. If the user already has a heading matching a canonical title, contributions are inserted under it instead of duplicating it.",{"type":13,"tag":423,"props":492,"children":493},{},[494,496,502],{"type":18,"value":495},"Placeholders (below) are rendered in snippets and in rule ",{"type":13,"tag":34,"props":497,"children":499},{"className":498},[],[500],{"type":18,"value":501},"paths:",{"type":18,"value":503}," frontmatter.",{"type":13,"tag":423,"props":505,"children":506},{},[507,513],{"type":13,"tag":34,"props":508,"children":510},{"className":509},[],[511],{"type":18,"value":512},"validate:skills",{"type":18,"value":514}," rejects a snippet whose headings are not canonical.",{"type":13,"tag":43,"props":516,"children":518},{"id":517},"placeholders",[519],{"type":18,"value":520},"Placeholders",{"type":13,"tag":92,"props":522,"children":523},{},[524,545],{"type":13,"tag":96,"props":525,"children":526},{},[527],{"type":13,"tag":100,"props":528,"children":529},{},[530,535,540],{"type":13,"tag":104,"props":531,"children":532},{},[533],{"type":18,"value":534},"Placeholder",{"type":13,"tag":104,"props":536,"children":537},{},[538],{"type":18,"value":539},"Renders to",{"type":13,"tag":104,"props":541,"children":542},{},[543],{"type":18,"value":544},"Use it for",{"type":13,"tag":120,"props":546,"children":547},{},[548,601,654,704,747],{"type":13,"tag":100,"props":549,"children":550},{},[551,560,590],{"type":13,"tag":127,"props":552,"children":553},{},[554],{"type":13,"tag":34,"props":555,"children":557},{"className":556},[],[558],{"type":18,"value":559},"{{pm}}",{"type":13,"tag":127,"props":561,"children":562},{},[563,569,570,576,577,583,584],{"type":13,"tag":34,"props":564,"children":566},{"className":565},[],[567],{"type":18,"value":568},"pnpm",{"type":18,"value":469},{"type":13,"tag":34,"props":571,"children":573},{"className":572},[],[574],{"type":18,"value":575},"npm",{"type":18,"value":469},{"type":13,"tag":34,"props":578,"children":580},{"className":579},[],[581],{"type":18,"value":582},"yarn",{"type":18,"value":469},{"type":13,"tag":34,"props":585,"children":587},{"className":586},[],[588],{"type":18,"value":589},"bun",{"type":13,"tag":127,"props":591,"children":592},{},[593,595],{"type":18,"value":594},"commands — ",{"type":13,"tag":34,"props":596,"children":598},{"className":597},[],[599],{"type":18,"value":600},"{{pm}} test",{"type":13,"tag":100,"props":602,"children":603},{},[604,613,643],{"type":13,"tag":127,"props":605,"children":606},{},[607],{"type":13,"tag":34,"props":608,"children":610},{"className":609},[],[611],{"type":18,"value":612},"{{pmx}}",{"type":13,"tag":127,"props":614,"children":615},{},[616,622,623,629,630,636,637],{"type":13,"tag":34,"props":617,"children":619},{"className":618},[],[620],{"type":18,"value":621},"pnpx",{"type":18,"value":469},{"type":13,"tag":34,"props":624,"children":626},{"className":625},[],[627],{"type":18,"value":628},"npx",{"type":18,"value":469},{"type":13,"tag":34,"props":631,"children":633},{"className":632},[],[634],{"type":18,"value":635},"yarn dlx",{"type":18,"value":469},{"type":13,"tag":34,"props":638,"children":640},{"className":639},[],[641],{"type":18,"value":642},"bunx",{"type":13,"tag":127,"props":644,"children":645},{},[646,648],{"type":18,"value":647},"one-off runners — ",{"type":13,"tag":34,"props":649,"children":651},{"className":650},[],[652],{"type":18,"value":653},"{{pmx}} tsx scripts\u002Fx.ts",{"type":13,"tag":100,"props":655,"children":656},{},[657,666,693],{"type":13,"tag":127,"props":658,"children":659},{},[660],{"type":13,"tag":34,"props":661,"children":663},{"className":662},[],[664],{"type":18,"value":665},"{{appDir}}",{"type":13,"tag":127,"props":667,"children":668},{},[669,675,677,683,685,691],{"type":13,"tag":34,"props":670,"children":672},{"className":671},[],[673],{"type":18,"value":674},"app",{"type":18,"value":676},", or the ",{"type":13,"tag":34,"props":678,"children":680},{"className":679},[],[681],{"type":18,"value":682},"appDir",{"type":18,"value":684}," answer (",{"type":13,"tag":34,"props":686,"children":688},{"className":687},[],[689],{"type":18,"value":690},"apps\u002Fweb\u002Fapp",{"type":18,"value":692},")",{"type":13,"tag":127,"props":694,"children":695},{},[696,698],{"type":18,"value":697},"app-code globs — ",{"type":13,"tag":34,"props":699,"children":701},{"className":700},[],[702],{"type":18,"value":703},"{{appDir}}\u002F**\u002F*.vue",{"type":13,"tag":100,"props":705,"children":706},{},[707,716,729],{"type":13,"tag":127,"props":708,"children":709},{},[710],{"type":13,"tag":34,"props":711,"children":713},{"className":712},[],[714],{"type":18,"value":715},"{{pkgDir}}",{"type":13,"tag":127,"props":717,"children":718},{},[719,721,727],{"type":18,"value":720},"nothing in a single-app repo; the package root with a trailing slash (",{"type":13,"tag":34,"props":722,"children":724},{"className":723},[],[725],{"type":18,"value":726},"apps\u002Fweb\u002F",{"type":18,"value":728},") in a monorepo",{"type":13,"tag":127,"props":730,"children":731},{},[732,734,740,741],{"type":18,"value":733},"every other path inside the package — ",{"type":13,"tag":34,"props":735,"children":737},{"className":736},[],[738],{"type":18,"value":739},"{{pkgDir}}server\u002F**",{"type":18,"value":469},{"type":13,"tag":34,"props":742,"children":744},{"className":743},[],[745],{"type":18,"value":746},"{{pkgDir}}nuxt.config.ts",{"type":13,"tag":100,"props":748,"children":749},{},[750,759,764],{"type":13,"tag":127,"props":751,"children":752},{},[753],{"type":13,"tag":34,"props":754,"children":756},{"className":755},[],[757],{"type":18,"value":758},"{{projectName}}",{"type":13,"tag":127,"props":760,"children":761},{},[762],{"type":18,"value":763},"the project name",{"type":13,"tag":127,"props":765,"children":766},{},[767],{"type":18,"value":768},"scaffold destinations and titles",{"type":13,"tag":20,"props":770,"children":771},{},[772,777,779,784,786,791,793,798,800,806,808,813,815,820],{"type":13,"tag":34,"props":773,"children":775},{"className":774},[],[776],{"type":18,"value":715},{"type":18,"value":778}," is written ",{"type":13,"tag":140,"props":780,"children":781},{},[782],{"type":18,"value":783},"immediately",{"type":18,"value":785}," before the path, with no slash of your own: it disappears in\na single-app repo and becomes ",{"type":13,"tag":34,"props":787,"children":789},{"className":788},[],[790],{"type":18,"value":726},{"type":18,"value":792}," when the app lives in ",{"type":13,"tag":34,"props":794,"children":796},{"className":795},[],[797],{"type":18,"value":690},{"type":18,"value":799},". Leave a path at the\nrepo root (",{"type":13,"tag":34,"props":801,"children":803},{"className":802},[],[804],{"type":18,"value":805},".claude\u002F**",{"type":18,"value":807},", CI config) unprefixed — those do not move. A text-input axis contributes a\nplaceholder of its own id as well, so ",{"type":13,"tag":34,"props":809,"children":811},{"className":810},[],[812],{"type":18,"value":682},{"type":18,"value":814}," is both an answer and ",{"type":13,"tag":34,"props":816,"children":818},{"className":817},[],[819],{"type":18,"value":665},{"type":18,"value":485},{"type":13,"tag":43,"props":822,"children":824},{"id":823},"writing-a-fragment",[825],{"type":18,"value":826},"Writing a fragment",{"type":13,"tag":20,"props":828,"children":829},{},[830,832,838],{"type":18,"value":831},"A fragment is a plain markdown file under ",{"type":13,"tag":34,"props":833,"children":835},{"className":834},[],[836],{"type":18,"value":837},"base\u002Ffragments\u002F\u003Caxis>\u002F\u003Coption>.md",{"type":18,"value":839},". It carries the rules for exactly one answer — one option, one fragment — so that picking a different option swaps the whole block cleanly.",{"type":13,"tag":841,"props":842,"children":847},"pre",{"className":843,"code":844,"language":845,"meta":846,"style":846},"language-md shiki shiki-themes material-theme-lighter github-light github-dark","## Commands\n- Always `pnpm` — never npm or yarn. If the project ever has a `package-lock.json` use npm; a `yarn.lock` means yarn.\n- `pnpm dev`, `pnpm test`, `pnpm typecheck`, `pnpm lint`, `pnpm build`.\n","md","",[848],{"type":13,"tag":34,"props":849,"children":850},{"__ignoreMap":846},[851,869,941],{"type":13,"tag":852,"props":853,"children":856},"span",{"class":854,"line":855},"line",1,[857,863],{"type":13,"tag":852,"props":858,"children":860},{"style":859},"--shiki-light:#39ADB5;--shiki-light-font-weight:inherit;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold",[861],{"type":18,"value":862},"## ",{"type":13,"tag":852,"props":864,"children":866},{"style":865},"--shiki-light:#E2931D;--shiki-light-font-weight:inherit;--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold",[867],{"type":18,"value":868},"Commands\n",{"type":13,"tag":852,"props":870,"children":872},{"class":854,"line":871},2,[873,879,885,891,896,900,905,909,914,918,923,927,932,936],{"type":13,"tag":852,"props":874,"children":876},{"style":875},"--shiki-light:#39ADB5;--shiki-default:#E36209;--shiki-dark:#FFAB70",[877],{"type":18,"value":878},"-",{"type":13,"tag":852,"props":880,"children":882},{"style":881},"--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[883],{"type":18,"value":884}," Always ",{"type":13,"tag":852,"props":886,"children":888},{"style":887},"--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[889],{"type":18,"value":890},"`",{"type":13,"tag":852,"props":892,"children":894},{"style":893},"--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[895],{"type":18,"value":568},{"type":13,"tag":852,"props":897,"children":898},{"style":887},[899],{"type":18,"value":890},{"type":13,"tag":852,"props":901,"children":902},{"style":881},[903],{"type":18,"value":904}," — never npm or yarn. If the project ever has a ",{"type":13,"tag":852,"props":906,"children":907},{"style":887},[908],{"type":18,"value":890},{"type":13,"tag":852,"props":910,"children":911},{"style":893},[912],{"type":18,"value":913},"package-lock.json",{"type":13,"tag":852,"props":915,"children":916},{"style":887},[917],{"type":18,"value":890},{"type":13,"tag":852,"props":919,"children":920},{"style":881},[921],{"type":18,"value":922}," use npm; a ",{"type":13,"tag":852,"props":924,"children":925},{"style":887},[926],{"type":18,"value":890},{"type":13,"tag":852,"props":928,"children":929},{"style":893},[930],{"type":18,"value":931},"yarn.lock",{"type":13,"tag":852,"props":933,"children":934},{"style":887},[935],{"type":18,"value":890},{"type":13,"tag":852,"props":937,"children":938},{"style":881},[939],{"type":18,"value":940}," means yarn.\n",{"type":13,"tag":852,"props":942,"children":944},{"class":854,"line":943},3,[945,949,954,959,963,967,971,976,980,984,988,993,997,1001,1005,1010,1014,1018,1022,1027,1031],{"type":13,"tag":852,"props":946,"children":947},{"style":875},[948],{"type":18,"value":878},{"type":13,"tag":852,"props":950,"children":951},{"style":887},[952],{"type":18,"value":953}," `",{"type":13,"tag":852,"props":955,"children":956},{"style":893},[957],{"type":18,"value":958},"pnpm dev",{"type":13,"tag":852,"props":960,"children":961},{"style":887},[962],{"type":18,"value":890},{"type":13,"tag":852,"props":964,"children":965},{"style":881},[966],{"type":18,"value":469},{"type":13,"tag":852,"props":968,"children":969},{"style":887},[970],{"type":18,"value":890},{"type":13,"tag":852,"props":972,"children":973},{"style":893},[974],{"type":18,"value":975},"pnpm test",{"type":13,"tag":852,"props":977,"children":978},{"style":887},[979],{"type":18,"value":890},{"type":13,"tag":852,"props":981,"children":982},{"style":881},[983],{"type":18,"value":469},{"type":13,"tag":852,"props":985,"children":986},{"style":887},[987],{"type":18,"value":890},{"type":13,"tag":852,"props":989,"children":990},{"style":893},[991],{"type":18,"value":992},"pnpm typecheck",{"type":13,"tag":852,"props":994,"children":995},{"style":887},[996],{"type":18,"value":890},{"type":13,"tag":852,"props":998,"children":999},{"style":881},[1000],{"type":18,"value":469},{"type":13,"tag":852,"props":1002,"children":1003},{"style":887},[1004],{"type":18,"value":890},{"type":13,"tag":852,"props":1006,"children":1007},{"style":893},[1008],{"type":18,"value":1009},"pnpm lint",{"type":13,"tag":852,"props":1011,"children":1012},{"style":887},[1013],{"type":18,"value":890},{"type":13,"tag":852,"props":1015,"children":1016},{"style":881},[1017],{"type":18,"value":469},{"type":13,"tag":852,"props":1019,"children":1020},{"style":887},[1021],{"type":18,"value":890},{"type":13,"tag":852,"props":1023,"children":1024},{"style":893},[1025],{"type":18,"value":1026},"pnpm build",{"type":13,"tag":852,"props":1028,"children":1029},{"style":887},[1030],{"type":18,"value":890},{"type":13,"tag":852,"props":1032,"children":1033},{"style":881},[1034],{"type":18,"value":1035},".\n",{"type":13,"tag":20,"props":1037,"children":1038},{},[1039],{"type":18,"value":1040},"Rules for the file:",{"type":13,"tag":419,"props":1042,"children":1043},{},[1044,1063,1083,1123],{"type":13,"tag":423,"props":1045,"children":1046},{},[1047,1049,1054,1056,1061],{"type":18,"value":1048},"Use only ",{"type":13,"tag":34,"props":1050,"children":1052},{"className":1051},[],[1053],{"type":18,"value":72},{"type":18,"value":1055}," headings, and only canonical titles (or ",{"type":13,"tag":34,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":18,"value":80},{"type":18,"value":1062},"). Anything else fails validation.",{"type":13,"tag":423,"props":1064,"children":1065},{},[1066,1068,1074,1076,1081],{"type":18,"value":1067},"Go straight to the rules. There is no ",{"type":13,"tag":34,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":18,"value":1073},"#",{"type":18,"value":1075}," title: the heading structure of the finished ",{"type":13,"tag":34,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":18,"value":39},{"type":18,"value":1082}," comes from the section convention, not from the fragment.",{"type":13,"tag":423,"props":1084,"children":1085},{},[1086,1088,1093,1095,1100,1102,1107,1109,1114,1116,1121],{"type":18,"value":1087},"Reach for the placeholders instead of hardcoding: ",{"type":13,"tag":34,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":18,"value":559},{"type":18,"value":1094}," and ",{"type":13,"tag":34,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":18,"value":612},{"type":18,"value":1101}," for the package manager, ",{"type":13,"tag":34,"props":1103,"children":1105},{"className":1104},[],[1106],{"type":18,"value":665},{"type":18,"value":1108}," for the app's source directory, ",{"type":13,"tag":34,"props":1110,"children":1112},{"className":1111},[],[1113],{"type":18,"value":715},{"type":18,"value":1115}," before any other path inside the package, ",{"type":13,"tag":34,"props":1117,"children":1119},{"className":1118},[],[1120],{"type":18,"value":758},{"type":18,"value":1122}," for the project.",{"type":13,"tag":423,"props":1124,"children":1125},{},[1126,1128,1134,1136,1141],{"type":18,"value":1127},"Files under ",{"type":13,"tag":34,"props":1129,"children":1131},{"className":1130},[],[1132],{"type":18,"value":1133},"base\u002Falways\u002F",{"type":18,"value":1135}," follow the same rules but skip the questions — every generated ",{"type":13,"tag":34,"props":1137,"children":1139},{"className":1138},[],[1140],{"type":18,"value":39},{"type":18,"value":1142}," gets them.",{"type":13,"tag":43,"props":1144,"children":1146},{"id":1145},"axes",[1147],{"type":18,"value":1148},"Axes",{"type":13,"tag":20,"props":1150,"children":1151},{},[1152,1158,1160,1166,1168,1174],{"type":13,"tag":34,"props":1153,"children":1155},{"className":1154},[],[1156],{"type":18,"value":1157},"base\u002Fquestions.yaml",{"type":18,"value":1159}," is the ordered list of questions. Each axis has an id, a question, a default, and either a set of ",{"type":13,"tag":34,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":18,"value":1165},"options",{"type":18,"value":1167}," or a free-text ",{"type":13,"tag":34,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":18,"value":1173},"input",{"type":18,"value":1175},":",{"type":13,"tag":841,"props":1177,"children":1181},{"className":1178,"code":1179,"language":1180,"meta":846,"style":846},"language-yaml shiki shiki-themes material-theme-lighter github-light github-dark","version: 1\naxes:\n  - id: docs\n    question: How should project docs be kept?\n    default: mechanical\n    options:\n      - { id: mechanical, label: \"Three-tier docs with a wiki-parity test\", fragment: docs\u002Fmechanical.md, selects: [docs-discipline] }\n      - { id: reminder, label: \"Three-tier docs, reminder only\", fragment: docs\u002Freminder.md }\n      - { id: none, label: None }\n\n  - id: browser\n    question: How is UI work validated?\n    default: playwright-cli\n    options:\n      - id: playwright-cli\n        label: playwright-cli in a real browser\n        fragment: testing\u002Fplaywright-cli.md\n        selects: [browser-testing]\n        scaffolds:\n          - { template: browser-testing-project.md, to: \".claude\u002Fskills\u002F{{projectName}}-browser-testing\u002FSKILL.md\" }\n      - { id: none, label: No browser validation }\n\n  - id: appDir\n    question: Where does the app's srcDir live, relative to the repo root?\n    when: { axis: layout, option: monorepo }\n    input: { placeholder: apps\u002Fweb\u002Fapp, default: apps\u002Fweb\u002Fapp }\n","yaml",[1182],{"type":13,"tag":34,"props":1183,"children":1184},{"__ignoreMap":846},[1185,1205,1217,1240,1258,1276,1289,1397,1468,1514,1524,1545,1562,1579,1591,1611,1629,1647,1674,1687,1744,1789,1797,1818,1835,1888],{"type":13,"tag":852,"props":1186,"children":1187},{"class":854,"line":855},[1188,1194,1199],{"type":13,"tag":852,"props":1189,"children":1191},{"style":1190},"--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D",[1192],{"type":18,"value":1193},"version",{"type":13,"tag":852,"props":1195,"children":1197},{"style":1196},"--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8",[1198],{"type":18,"value":1175},{"type":13,"tag":852,"props":1200,"children":1202},{"style":1201},"--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[1203],{"type":18,"value":1204}," 1\n",{"type":13,"tag":852,"props":1206,"children":1207},{"class":854,"line":871},[1208,1212],{"type":13,"tag":852,"props":1209,"children":1210},{"style":1190},[1211],{"type":18,"value":1145},{"type":13,"tag":852,"props":1213,"children":1214},{"style":1196},[1215],{"type":18,"value":1216},":\n",{"type":13,"tag":852,"props":1218,"children":1219},{"class":854,"line":943},[1220,1225,1230,1234],{"type":13,"tag":852,"props":1221,"children":1222},{"style":1196},[1223],{"type":18,"value":1224},"  -",{"type":13,"tag":852,"props":1226,"children":1227},{"style":1190},[1228],{"type":18,"value":1229}," id",{"type":13,"tag":852,"props":1231,"children":1232},{"style":1196},[1233],{"type":18,"value":1175},{"type":13,"tag":852,"props":1235,"children":1237},{"style":1236},"--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[1238],{"type":18,"value":1239}," docs\n",{"type":13,"tag":852,"props":1241,"children":1243},{"class":854,"line":1242},4,[1244,1249,1253],{"type":13,"tag":852,"props":1245,"children":1246},{"style":1190},[1247],{"type":18,"value":1248},"    question",{"type":13,"tag":852,"props":1250,"children":1251},{"style":1196},[1252],{"type":18,"value":1175},{"type":13,"tag":852,"props":1254,"children":1255},{"style":1236},[1256],{"type":18,"value":1257}," How should project docs be kept?\n",{"type":13,"tag":852,"props":1259,"children":1261},{"class":854,"line":1260},5,[1262,1267,1271],{"type":13,"tag":852,"props":1263,"children":1264},{"style":1190},[1265],{"type":18,"value":1266},"    default",{"type":13,"tag":852,"props":1268,"children":1269},{"style":1196},[1270],{"type":18,"value":1175},{"type":13,"tag":852,"props":1272,"children":1273},{"style":1236},[1274],{"type":18,"value":1275}," mechanical\n",{"type":13,"tag":852,"props":1277,"children":1279},{"class":854,"line":1278},6,[1280,1285],{"type":13,"tag":852,"props":1281,"children":1282},{"style":1190},[1283],{"type":18,"value":1284},"    options",{"type":13,"tag":852,"props":1286,"children":1287},{"style":1196},[1288],{"type":18,"value":1216},{"type":13,"tag":852,"props":1290,"children":1292},{"class":854,"line":1291},7,[1293,1298,1303,1307,1311,1316,1321,1326,1330,1336,1341,1346,1350,1355,1359,1364,1368,1373,1377,1382,1387,1392],{"type":13,"tag":852,"props":1294,"children":1295},{"style":1196},[1296],{"type":18,"value":1297},"      -",{"type":13,"tag":852,"props":1299,"children":1300},{"style":1196},[1301],{"type":18,"value":1302}," {",{"type":13,"tag":852,"props":1304,"children":1305},{"style":1190},[1306],{"type":18,"value":1229},{"type":13,"tag":852,"props":1308,"children":1309},{"style":1196},[1310],{"type":18,"value":1175},{"type":13,"tag":852,"props":1312,"children":1313},{"style":1236},[1314],{"type":18,"value":1315}," mechanical",{"type":13,"tag":852,"props":1317,"children":1318},{"style":1196},[1319],{"type":18,"value":1320},",",{"type":13,"tag":852,"props":1322,"children":1323},{"style":1190},[1324],{"type":18,"value":1325}," label",{"type":13,"tag":852,"props":1327,"children":1328},{"style":1196},[1329],{"type":18,"value":1175},{"type":13,"tag":852,"props":1331,"children":1333},{"style":1332},"--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[1334],{"type":18,"value":1335}," \"",{"type":13,"tag":852,"props":1337,"children":1338},{"style":1236},[1339],{"type":18,"value":1340},"Three-tier docs with a wiki-parity test",{"type":13,"tag":852,"props":1342,"children":1343},{"style":1332},[1344],{"type":18,"value":1345},"\"",{"type":13,"tag":852,"props":1347,"children":1348},{"style":1196},[1349],{"type":18,"value":1320},{"type":13,"tag":852,"props":1351,"children":1352},{"style":1190},[1353],{"type":18,"value":1354}," fragment",{"type":13,"tag":852,"props":1356,"children":1357},{"style":1196},[1358],{"type":18,"value":1175},{"type":13,"tag":852,"props":1360,"children":1361},{"style":1236},[1362],{"type":18,"value":1363}," docs\u002Fmechanical.md",{"type":13,"tag":852,"props":1365,"children":1366},{"style":1196},[1367],{"type":18,"value":1320},{"type":13,"tag":852,"props":1369,"children":1370},{"style":1190},[1371],{"type":18,"value":1372}," selects",{"type":13,"tag":852,"props":1374,"children":1375},{"style":1196},[1376],{"type":18,"value":1175},{"type":13,"tag":852,"props":1378,"children":1379},{"style":1196},[1380],{"type":18,"value":1381}," [",{"type":13,"tag":852,"props":1383,"children":1384},{"style":1236},[1385],{"type":18,"value":1386},"docs-discipline",{"type":13,"tag":852,"props":1388,"children":1389},{"style":1196},[1390],{"type":18,"value":1391},"]",{"type":13,"tag":852,"props":1393,"children":1394},{"style":1196},[1395],{"type":18,"value":1396}," }\n",{"type":13,"tag":852,"props":1398,"children":1400},{"class":854,"line":1399},8,[1401,1405,1409,1413,1417,1422,1426,1430,1434,1438,1443,1447,1451,1455,1459,1464],{"type":13,"tag":852,"props":1402,"children":1403},{"style":1196},[1404],{"type":18,"value":1297},{"type":13,"tag":852,"props":1406,"children":1407},{"style":1196},[1408],{"type":18,"value":1302},{"type":13,"tag":852,"props":1410,"children":1411},{"style":1190},[1412],{"type":18,"value":1229},{"type":13,"tag":852,"props":1414,"children":1415},{"style":1196},[1416],{"type":18,"value":1175},{"type":13,"tag":852,"props":1418,"children":1419},{"style":1236},[1420],{"type":18,"value":1421}," reminder",{"type":13,"tag":852,"props":1423,"children":1424},{"style":1196},[1425],{"type":18,"value":1320},{"type":13,"tag":852,"props":1427,"children":1428},{"style":1190},[1429],{"type":18,"value":1325},{"type":13,"tag":852,"props":1431,"children":1432},{"style":1196},[1433],{"type":18,"value":1175},{"type":13,"tag":852,"props":1435,"children":1436},{"style":1332},[1437],{"type":18,"value":1335},{"type":13,"tag":852,"props":1439,"children":1440},{"style":1236},[1441],{"type":18,"value":1442},"Three-tier docs, reminder only",{"type":13,"tag":852,"props":1444,"children":1445},{"style":1332},[1446],{"type":18,"value":1345},{"type":13,"tag":852,"props":1448,"children":1449},{"style":1196},[1450],{"type":18,"value":1320},{"type":13,"tag":852,"props":1452,"children":1453},{"style":1190},[1454],{"type":18,"value":1354},{"type":13,"tag":852,"props":1456,"children":1457},{"style":1196},[1458],{"type":18,"value":1175},{"type":13,"tag":852,"props":1460,"children":1461},{"style":1236},[1462],{"type":18,"value":1463}," docs\u002Freminder.md",{"type":13,"tag":852,"props":1465,"children":1466},{"style":1196},[1467],{"type":18,"value":1396},{"type":13,"tag":852,"props":1469,"children":1471},{"class":854,"line":1470},9,[1472,1476,1480,1484,1488,1493,1497,1501,1505,1510],{"type":13,"tag":852,"props":1473,"children":1474},{"style":1196},[1475],{"type":18,"value":1297},{"type":13,"tag":852,"props":1477,"children":1478},{"style":1196},[1479],{"type":18,"value":1302},{"type":13,"tag":852,"props":1481,"children":1482},{"style":1190},[1483],{"type":18,"value":1229},{"type":13,"tag":852,"props":1485,"children":1486},{"style":1196},[1487],{"type":18,"value":1175},{"type":13,"tag":852,"props":1489,"children":1490},{"style":1236},[1491],{"type":18,"value":1492}," none",{"type":13,"tag":852,"props":1494,"children":1495},{"style":1196},[1496],{"type":18,"value":1320},{"type":13,"tag":852,"props":1498,"children":1499},{"style":1190},[1500],{"type":18,"value":1325},{"type":13,"tag":852,"props":1502,"children":1503},{"style":1196},[1504],{"type":18,"value":1175},{"type":13,"tag":852,"props":1506,"children":1507},{"style":1236},[1508],{"type":18,"value":1509}," None",{"type":13,"tag":852,"props":1511,"children":1512},{"style":1196},[1513],{"type":18,"value":1396},{"type":13,"tag":852,"props":1515,"children":1517},{"class":854,"line":1516},10,[1518],{"type":13,"tag":852,"props":1519,"children":1521},{"emptyLinePlaceholder":1520},true,[1522],{"type":18,"value":1523},"\n",{"type":13,"tag":852,"props":1525,"children":1527},{"class":854,"line":1526},11,[1528,1532,1536,1540],{"type":13,"tag":852,"props":1529,"children":1530},{"style":1196},[1531],{"type":18,"value":1224},{"type":13,"tag":852,"props":1533,"children":1534},{"style":1190},[1535],{"type":18,"value":1229},{"type":13,"tag":852,"props":1537,"children":1538},{"style":1196},[1539],{"type":18,"value":1175},{"type":13,"tag":852,"props":1541,"children":1542},{"style":1236},[1543],{"type":18,"value":1544}," browser\n",{"type":13,"tag":852,"props":1546,"children":1548},{"class":854,"line":1547},12,[1549,1553,1557],{"type":13,"tag":852,"props":1550,"children":1551},{"style":1190},[1552],{"type":18,"value":1248},{"type":13,"tag":852,"props":1554,"children":1555},{"style":1196},[1556],{"type":18,"value":1175},{"type":13,"tag":852,"props":1558,"children":1559},{"style":1236},[1560],{"type":18,"value":1561}," How is UI work validated?\n",{"type":13,"tag":852,"props":1563,"children":1565},{"class":854,"line":1564},13,[1566,1570,1574],{"type":13,"tag":852,"props":1567,"children":1568},{"style":1190},[1569],{"type":18,"value":1266},{"type":13,"tag":852,"props":1571,"children":1572},{"style":1196},[1573],{"type":18,"value":1175},{"type":13,"tag":852,"props":1575,"children":1576},{"style":1236},[1577],{"type":18,"value":1578}," playwright-cli\n",{"type":13,"tag":852,"props":1580,"children":1582},{"class":854,"line":1581},14,[1583,1587],{"type":13,"tag":852,"props":1584,"children":1585},{"style":1190},[1586],{"type":18,"value":1284},{"type":13,"tag":852,"props":1588,"children":1589},{"style":1196},[1590],{"type":18,"value":1216},{"type":13,"tag":852,"props":1592,"children":1594},{"class":854,"line":1593},15,[1595,1599,1603,1607],{"type":13,"tag":852,"props":1596,"children":1597},{"style":1196},[1598],{"type":18,"value":1297},{"type":13,"tag":852,"props":1600,"children":1601},{"style":1190},[1602],{"type":18,"value":1229},{"type":13,"tag":852,"props":1604,"children":1605},{"style":1196},[1606],{"type":18,"value":1175},{"type":13,"tag":852,"props":1608,"children":1609},{"style":1236},[1610],{"type":18,"value":1578},{"type":13,"tag":852,"props":1612,"children":1614},{"class":854,"line":1613},16,[1615,1620,1624],{"type":13,"tag":852,"props":1616,"children":1617},{"style":1190},[1618],{"type":18,"value":1619},"        label",{"type":13,"tag":852,"props":1621,"children":1622},{"style":1196},[1623],{"type":18,"value":1175},{"type":13,"tag":852,"props":1625,"children":1626},{"style":1236},[1627],{"type":18,"value":1628}," playwright-cli in a real browser\n",{"type":13,"tag":852,"props":1630,"children":1632},{"class":854,"line":1631},17,[1633,1638,1642],{"type":13,"tag":852,"props":1634,"children":1635},{"style":1190},[1636],{"type":18,"value":1637},"        fragment",{"type":13,"tag":852,"props":1639,"children":1640},{"style":1196},[1641],{"type":18,"value":1175},{"type":13,"tag":852,"props":1643,"children":1644},{"style":1236},[1645],{"type":18,"value":1646}," testing\u002Fplaywright-cli.md\n",{"type":13,"tag":852,"props":1648,"children":1650},{"class":854,"line":1649},18,[1651,1656,1660,1664,1669],{"type":13,"tag":852,"props":1652,"children":1653},{"style":1190},[1654],{"type":18,"value":1655},"        selects",{"type":13,"tag":852,"props":1657,"children":1658},{"style":1196},[1659],{"type":18,"value":1175},{"type":13,"tag":852,"props":1661,"children":1662},{"style":1196},[1663],{"type":18,"value":1381},{"type":13,"tag":852,"props":1665,"children":1666},{"style":1236},[1667],{"type":18,"value":1668},"browser-testing",{"type":13,"tag":852,"props":1670,"children":1671},{"style":1196},[1672],{"type":18,"value":1673},"]\n",{"type":13,"tag":852,"props":1675,"children":1677},{"class":854,"line":1676},19,[1678,1683],{"type":13,"tag":852,"props":1679,"children":1680},{"style":1190},[1681],{"type":18,"value":1682},"        scaffolds",{"type":13,"tag":852,"props":1684,"children":1685},{"style":1196},[1686],{"type":18,"value":1216},{"type":13,"tag":852,"props":1688,"children":1690},{"class":854,"line":1689},20,[1691,1696,1700,1705,1709,1714,1718,1723,1727,1731,1736,1740],{"type":13,"tag":852,"props":1692,"children":1693},{"style":1196},[1694],{"type":18,"value":1695},"          -",{"type":13,"tag":852,"props":1697,"children":1698},{"style":1196},[1699],{"type":18,"value":1302},{"type":13,"tag":852,"props":1701,"children":1702},{"style":1190},[1703],{"type":18,"value":1704}," template",{"type":13,"tag":852,"props":1706,"children":1707},{"style":1196},[1708],{"type":18,"value":1175},{"type":13,"tag":852,"props":1710,"children":1711},{"style":1236},[1712],{"type":18,"value":1713}," browser-testing-project.md",{"type":13,"tag":852,"props":1715,"children":1716},{"style":1196},[1717],{"type":18,"value":1320},{"type":13,"tag":852,"props":1719,"children":1720},{"style":1190},[1721],{"type":18,"value":1722}," to",{"type":13,"tag":852,"props":1724,"children":1725},{"style":1196},[1726],{"type":18,"value":1175},{"type":13,"tag":852,"props":1728,"children":1729},{"style":1332},[1730],{"type":18,"value":1335},{"type":13,"tag":852,"props":1732,"children":1733},{"style":1236},[1734],{"type":18,"value":1735},".claude\u002Fskills\u002F{{projectName}}-browser-testing\u002FSKILL.md",{"type":13,"tag":852,"props":1737,"children":1738},{"style":1332},[1739],{"type":18,"value":1345},{"type":13,"tag":852,"props":1741,"children":1742},{"style":1196},[1743],{"type":18,"value":1396},{"type":13,"tag":852,"props":1745,"children":1747},{"class":854,"line":1746},21,[1748,1752,1756,1760,1764,1768,1772,1776,1780,1785],{"type":13,"tag":852,"props":1749,"children":1750},{"style":1196},[1751],{"type":18,"value":1297},{"type":13,"tag":852,"props":1753,"children":1754},{"style":1196},[1755],{"type":18,"value":1302},{"type":13,"tag":852,"props":1757,"children":1758},{"style":1190},[1759],{"type":18,"value":1229},{"type":13,"tag":852,"props":1761,"children":1762},{"style":1196},[1763],{"type":18,"value":1175},{"type":13,"tag":852,"props":1765,"children":1766},{"style":1236},[1767],{"type":18,"value":1492},{"type":13,"tag":852,"props":1769,"children":1770},{"style":1196},[1771],{"type":18,"value":1320},{"type":13,"tag":852,"props":1773,"children":1774},{"style":1190},[1775],{"type":18,"value":1325},{"type":13,"tag":852,"props":1777,"children":1778},{"style":1196},[1779],{"type":18,"value":1175},{"type":13,"tag":852,"props":1781,"children":1782},{"style":1236},[1783],{"type":18,"value":1784}," No browser validation",{"type":13,"tag":852,"props":1786,"children":1787},{"style":1196},[1788],{"type":18,"value":1396},{"type":13,"tag":852,"props":1790,"children":1792},{"class":854,"line":1791},22,[1793],{"type":13,"tag":852,"props":1794,"children":1795},{"emptyLinePlaceholder":1520},[1796],{"type":18,"value":1523},{"type":13,"tag":852,"props":1798,"children":1800},{"class":854,"line":1799},23,[1801,1805,1809,1813],{"type":13,"tag":852,"props":1802,"children":1803},{"style":1196},[1804],{"type":18,"value":1224},{"type":13,"tag":852,"props":1806,"children":1807},{"style":1190},[1808],{"type":18,"value":1229},{"type":13,"tag":852,"props":1810,"children":1811},{"style":1196},[1812],{"type":18,"value":1175},{"type":13,"tag":852,"props":1814,"children":1815},{"style":1236},[1816],{"type":18,"value":1817}," appDir\n",{"type":13,"tag":852,"props":1819,"children":1821},{"class":854,"line":1820},24,[1822,1826,1830],{"type":13,"tag":852,"props":1823,"children":1824},{"style":1190},[1825],{"type":18,"value":1248},{"type":13,"tag":852,"props":1827,"children":1828},{"style":1196},[1829],{"type":18,"value":1175},{"type":13,"tag":852,"props":1831,"children":1832},{"style":1236},[1833],{"type":18,"value":1834}," Where does the app's srcDir live, relative to the repo root?\n",{"type":13,"tag":852,"props":1836,"children":1838},{"class":854,"line":1837},25,[1839,1844,1848,1852,1857,1861,1866,1870,1875,1879,1884],{"type":13,"tag":852,"props":1840,"children":1841},{"style":1190},[1842],{"type":18,"value":1843},"    when",{"type":13,"tag":852,"props":1845,"children":1846},{"style":1196},[1847],{"type":18,"value":1175},{"type":13,"tag":852,"props":1849,"children":1850},{"style":1196},[1851],{"type":18,"value":1302},{"type":13,"tag":852,"props":1853,"children":1854},{"style":1190},[1855],{"type":18,"value":1856}," axis",{"type":13,"tag":852,"props":1858,"children":1859},{"style":1196},[1860],{"type":18,"value":1175},{"type":13,"tag":852,"props":1862,"children":1863},{"style":1236},[1864],{"type":18,"value":1865}," layout",{"type":13,"tag":852,"props":1867,"children":1868},{"style":1196},[1869],{"type":18,"value":1320},{"type":13,"tag":852,"props":1871,"children":1872},{"style":1190},[1873],{"type":18,"value":1874}," option",{"type":13,"tag":852,"props":1876,"children":1877},{"style":1196},[1878],{"type":18,"value":1175},{"type":13,"tag":852,"props":1880,"children":1881},{"style":1236},[1882],{"type":18,"value":1883}," monorepo",{"type":13,"tag":852,"props":1885,"children":1886},{"style":1196},[1887],{"type":18,"value":1396},{"type":13,"tag":852,"props":1889,"children":1891},{"class":854,"line":1890},26,[1892,1897,1901,1905,1910,1914,1919,1923,1928,1932,1936],{"type":13,"tag":852,"props":1893,"children":1894},{"style":1190},[1895],{"type":18,"value":1896},"    input",{"type":13,"tag":852,"props":1898,"children":1899},{"style":1196},[1900],{"type":18,"value":1175},{"type":13,"tag":852,"props":1902,"children":1903},{"style":1196},[1904],{"type":18,"value":1302},{"type":13,"tag":852,"props":1906,"children":1907},{"style":1190},[1908],{"type":18,"value":1909}," placeholder",{"type":13,"tag":852,"props":1911,"children":1912},{"style":1196},[1913],{"type":18,"value":1175},{"type":13,"tag":852,"props":1915,"children":1916},{"style":1236},[1917],{"type":18,"value":1918}," apps\u002Fweb\u002Fapp",{"type":13,"tag":852,"props":1920,"children":1921},{"style":1196},[1922],{"type":18,"value":1320},{"type":13,"tag":852,"props":1924,"children":1925},{"style":1190},[1926],{"type":18,"value":1927}," default",{"type":13,"tag":852,"props":1929,"children":1930},{"style":1196},[1931],{"type":18,"value":1175},{"type":13,"tag":852,"props":1933,"children":1934},{"style":1236},[1935],{"type":18,"value":1918},{"type":13,"tag":852,"props":1937,"children":1938},{"style":1196},[1939],{"type":18,"value":1396},{"type":13,"tag":20,"props":1941,"children":1942},{},[1943],{"type":18,"value":1944},"The keys that do the work:",{"type":13,"tag":419,"props":1946,"children":1947},{},[1948,1981,1992,2019,2037],{"type":13,"tag":423,"props":1949,"children":1950},{},[1951,1956,1958,1964,1966,1972,1973,1979],{"type":13,"tag":34,"props":1952,"children":1954},{"className":1953},[],[1955],{"type":18,"value":30},{"type":18,"value":1957}," — the file under ",{"type":13,"tag":34,"props":1959,"children":1961},{"className":1960},[],[1962],{"type":18,"value":1963},"base\u002Ffragments\u002F",{"type":18,"value":1965}," this option contributes. An option with no fragment (",{"type":13,"tag":34,"props":1967,"children":1969},{"className":1968},[],[1970],{"type":18,"value":1971},"none",{"type":18,"value":469},{"type":13,"tag":34,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":18,"value":1978},"off",{"type":18,"value":1980},") simply contributes nothing.",{"type":13,"tag":423,"props":1982,"children":1983},{},[1984,1990],{"type":13,"tag":34,"props":1985,"children":1987},{"className":1986},[],[1988],{"type":18,"value":1989},"selects",{"type":18,"value":1991}," — bundles to pre-tick in the bundle step when this option is chosen.",{"type":13,"tag":423,"props":1993,"children":1994},{},[1995,2001,2003,2009,2011,2017],{"type":13,"tag":34,"props":1996,"children":1998},{"className":1997},[],[1999],{"type":18,"value":2000},"scaffolds",{"type":18,"value":2002}," — files the CLI writes from ",{"type":13,"tag":34,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":18,"value":2008},"base\u002Ftemplates\u002F",{"type":18,"value":2010},", with placeholders rendered in both the template and the destination path. ",{"type":13,"tag":34,"props":2012,"children":2014},{"className":2013},[],[2015],{"type":18,"value":2016},"mode: append",{"type":18,"value":2018}," adds to a file an earlier scaffold created.",{"type":13,"tag":423,"props":2020,"children":2021},{},[2022,2028,2030,2035],{"type":13,"tag":34,"props":2023,"children":2025},{"className":2024},[],[2026],{"type":18,"value":2027},"when",{"type":18,"value":2029}," — asks the question only if an ",{"type":13,"tag":26,"props":2031,"children":2032},{},[2033],{"type":18,"value":2034},"earlier",{"type":18,"value":2036}," axis has a given answer, so follow-ups stay hidden until they are relevant.",{"type":13,"tag":423,"props":2038,"children":2039},{},[2040,2045],{"type":13,"tag":34,"props":2041,"children":2043},{"className":2042},[],[2044],{"type":18,"value":1173},{"type":18,"value":2046}," — a free-text answer instead of options; the value is available as a placeholder.",{"type":13,"tag":43,"props":2048,"children":2050},{"id":2049},"profiles",[2051],{"type":18,"value":2052},"Profiles",{"type":13,"tag":20,"props":2054,"children":2055},{},[2056,2058,2064,2066,2072],{"type":18,"value":2057},"A profile is a named starting point: a set of answers plus a set of bundles. One file per profile under ",{"type":13,"tag":34,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":18,"value":2063},"profiles\u002F\u003Cname>.yaml",{"type":18,"value":2065},", with ",{"type":13,"tag":34,"props":2067,"children":2069},{"className":2068},[],[2070],{"type":18,"value":2071},"name",{"type":18,"value":2073}," matching the file name.",{"type":13,"tag":841,"props":2075,"children":2077},{"className":1178,"code":2076,"language":1180,"meta":846,"style":846},"name: library\ndescription: A package or library — lightweight process, hooks, no browser validation.\nanswers: { pm: pnpm, layout: single, workflow: lightweight, docs: reminder, memory: \"on\", commits: proactive, pushes: ask, browser: none, enforcement: hooks, deploy: none, domain: \"off\" }\nbundles: [quality-hooks]\n",[2078],{"type":13,"tag":34,"props":2079,"children":2080},{"__ignoreMap":846},[2081,2097,2114,2339],{"type":13,"tag":852,"props":2082,"children":2083},{"class":854,"line":855},[2084,2088,2092],{"type":13,"tag":852,"props":2085,"children":2086},{"style":1190},[2087],{"type":18,"value":2071},{"type":13,"tag":852,"props":2089,"children":2090},{"style":1196},[2091],{"type":18,"value":1175},{"type":13,"tag":852,"props":2093,"children":2094},{"style":1236},[2095],{"type":18,"value":2096}," library\n",{"type":13,"tag":852,"props":2098,"children":2099},{"class":854,"line":871},[2100,2105,2109],{"type":13,"tag":852,"props":2101,"children":2102},{"style":1190},[2103],{"type":18,"value":2104},"description",{"type":13,"tag":852,"props":2106,"children":2107},{"style":1196},[2108],{"type":18,"value":1175},{"type":13,"tag":852,"props":2110,"children":2111},{"style":1236},[2112],{"type":18,"value":2113}," A package or library — lightweight process, hooks, no browser validation.\n",{"type":13,"tag":852,"props":2115,"children":2116},{"class":854,"line":943},[2117,2122,2126,2130,2135,2139,2144,2148,2152,2156,2161,2165,2170,2174,2179,2183,2188,2192,2196,2200,2205,2209,2213,2218,2222,2226,2231,2235,2240,2244,2249,2253,2258,2262,2267,2271,2275,2279,2284,2288,2293,2297,2302,2306,2310,2314,2319,2323,2327,2331,2335],{"type":13,"tag":852,"props":2118,"children":2119},{"style":1190},[2120],{"type":18,"value":2121},"answers",{"type":13,"tag":852,"props":2123,"children":2124},{"style":1196},[2125],{"type":18,"value":1175},{"type":13,"tag":852,"props":2127,"children":2128},{"style":1196},[2129],{"type":18,"value":1302},{"type":13,"tag":852,"props":2131,"children":2132},{"style":1190},[2133],{"type":18,"value":2134}," pm",{"type":13,"tag":852,"props":2136,"children":2137},{"style":1196},[2138],{"type":18,"value":1175},{"type":13,"tag":852,"props":2140,"children":2141},{"style":1236},[2142],{"type":18,"value":2143}," pnpm",{"type":13,"tag":852,"props":2145,"children":2146},{"style":1196},[2147],{"type":18,"value":1320},{"type":13,"tag":852,"props":2149,"children":2150},{"style":1190},[2151],{"type":18,"value":1865},{"type":13,"tag":852,"props":2153,"children":2154},{"style":1196},[2155],{"type":18,"value":1175},{"type":13,"tag":852,"props":2157,"children":2158},{"style":1236},[2159],{"type":18,"value":2160}," single",{"type":13,"tag":852,"props":2162,"children":2163},{"style":1196},[2164],{"type":18,"value":1320},{"type":13,"tag":852,"props":2166,"children":2167},{"style":1190},[2168],{"type":18,"value":2169}," workflow",{"type":13,"tag":852,"props":2171,"children":2172},{"style":1196},[2173],{"type":18,"value":1175},{"type":13,"tag":852,"props":2175,"children":2176},{"style":1236},[2177],{"type":18,"value":2178}," lightweight",{"type":13,"tag":852,"props":2180,"children":2181},{"style":1196},[2182],{"type":18,"value":1320},{"type":13,"tag":852,"props":2184,"children":2185},{"style":1190},[2186],{"type":18,"value":2187}," docs",{"type":13,"tag":852,"props":2189,"children":2190},{"style":1196},[2191],{"type":18,"value":1175},{"type":13,"tag":852,"props":2193,"children":2194},{"style":1236},[2195],{"type":18,"value":1421},{"type":13,"tag":852,"props":2197,"children":2198},{"style":1196},[2199],{"type":18,"value":1320},{"type":13,"tag":852,"props":2201,"children":2202},{"style":1190},[2203],{"type":18,"value":2204}," memory",{"type":13,"tag":852,"props":2206,"children":2207},{"style":1196},[2208],{"type":18,"value":1175},{"type":13,"tag":852,"props":2210,"children":2211},{"style":1332},[2212],{"type":18,"value":1335},{"type":13,"tag":852,"props":2214,"children":2215},{"style":1236},[2216],{"type":18,"value":2217},"on",{"type":13,"tag":852,"props":2219,"children":2220},{"style":1332},[2221],{"type":18,"value":1345},{"type":13,"tag":852,"props":2223,"children":2224},{"style":1196},[2225],{"type":18,"value":1320},{"type":13,"tag":852,"props":2227,"children":2228},{"style":1190},[2229],{"type":18,"value":2230}," commits",{"type":13,"tag":852,"props":2232,"children":2233},{"style":1196},[2234],{"type":18,"value":1175},{"type":13,"tag":852,"props":2236,"children":2237},{"style":1236},[2238],{"type":18,"value":2239}," proactive",{"type":13,"tag":852,"props":2241,"children":2242},{"style":1196},[2243],{"type":18,"value":1320},{"type":13,"tag":852,"props":2245,"children":2246},{"style":1190},[2247],{"type":18,"value":2248}," pushes",{"type":13,"tag":852,"props":2250,"children":2251},{"style":1196},[2252],{"type":18,"value":1175},{"type":13,"tag":852,"props":2254,"children":2255},{"style":1236},[2256],{"type":18,"value":2257}," ask",{"type":13,"tag":852,"props":2259,"children":2260},{"style":1196},[2261],{"type":18,"value":1320},{"type":13,"tag":852,"props":2263,"children":2264},{"style":1190},[2265],{"type":18,"value":2266}," browser",{"type":13,"tag":852,"props":2268,"children":2269},{"style":1196},[2270],{"type":18,"value":1175},{"type":13,"tag":852,"props":2272,"children":2273},{"style":1236},[2274],{"type":18,"value":1492},{"type":13,"tag":852,"props":2276,"children":2277},{"style":1196},[2278],{"type":18,"value":1320},{"type":13,"tag":852,"props":2280,"children":2281},{"style":1190},[2282],{"type":18,"value":2283}," enforcement",{"type":13,"tag":852,"props":2285,"children":2286},{"style":1196},[2287],{"type":18,"value":1175},{"type":13,"tag":852,"props":2289,"children":2290},{"style":1236},[2291],{"type":18,"value":2292}," hooks",{"type":13,"tag":852,"props":2294,"children":2295},{"style":1196},[2296],{"type":18,"value":1320},{"type":13,"tag":852,"props":2298,"children":2299},{"style":1190},[2300],{"type":18,"value":2301}," deploy",{"type":13,"tag":852,"props":2303,"children":2304},{"style":1196},[2305],{"type":18,"value":1175},{"type":13,"tag":852,"props":2307,"children":2308},{"style":1236},[2309],{"type":18,"value":1492},{"type":13,"tag":852,"props":2311,"children":2312},{"style":1196},[2313],{"type":18,"value":1320},{"type":13,"tag":852,"props":2315,"children":2316},{"style":1190},[2317],{"type":18,"value":2318}," domain",{"type":13,"tag":852,"props":2320,"children":2321},{"style":1196},[2322],{"type":18,"value":1175},{"type":13,"tag":852,"props":2324,"children":2325},{"style":1332},[2326],{"type":18,"value":1335},{"type":13,"tag":852,"props":2328,"children":2329},{"style":1236},[2330],{"type":18,"value":1978},{"type":13,"tag":852,"props":2332,"children":2333},{"style":1332},[2334],{"type":18,"value":1345},{"type":13,"tag":852,"props":2336,"children":2337},{"style":1196},[2338],{"type":18,"value":1396},{"type":13,"tag":852,"props":2340,"children":2341},{"class":854,"line":1242},[2342,2347,2351,2355,2360],{"type":13,"tag":852,"props":2343,"children":2344},{"style":1190},[2345],{"type":18,"value":2346},"bundles",{"type":13,"tag":852,"props":2348,"children":2349},{"style":1196},[2350],{"type":18,"value":1175},{"type":13,"tag":852,"props":2352,"children":2353},{"style":1196},[2354],{"type":18,"value":1381},{"type":13,"tag":852,"props":2356,"children":2357},{"style":1236},[2358],{"type":18,"value":2359},"quality-hooks",{"type":13,"tag":852,"props":2361,"children":2362},{"style":1196},[2363],{"type":18,"value":1673},{"type":13,"tag":20,"props":2365,"children":2366},{},[2367,2369,2375,2376,2382,2384,2389,2390,2395,2396,2402,2403,2409],{"type":18,"value":2368},"The wizard offers profiles first and pre-fills every answer from the one you pick; you can still change any of them. Non-interactively that is ",{"type":13,"tag":34,"props":2370,"children":2372},{"className":2371},[],[2373],{"type":18,"value":2374},"--profile library",{"type":18,"value":2065},{"type":13,"tag":34,"props":2377,"children":2379},{"className":2378},[],[2380],{"type":18,"value":2381},"--answer \u003Caxis>=\u003Coption>",{"type":18,"value":2383}," for the overrides. Quote YAML values like ",{"type":13,"tag":34,"props":2385,"children":2387},{"className":2386},[],[2388],{"type":18,"value":2217},{"type":18,"value":469},{"type":13,"tag":34,"props":2391,"children":2393},{"className":2392},[],[2394],{"type":18,"value":1978},{"type":18,"value":469},{"type":13,"tag":34,"props":2397,"children":2399},{"className":2398},[],[2400],{"type":18,"value":2401},"no",{"type":18,"value":1094},{"type":13,"tag":34,"props":2404,"children":2406},{"className":2405},[],[2407],{"type":18,"value":2408},"yes",{"type":18,"value":2410}," — unquoted they parse as booleans and no longer match an option id.",{"type":13,"tag":43,"props":2412,"children":2414},{"id":2413},"validation",[2415],{"type":18,"value":2416},"Validation",{"type":13,"tag":20,"props":2418,"children":2419},{},[2420,2426],{"type":13,"tag":34,"props":2421,"children":2423},{"className":2422},[],[2424],{"type":18,"value":2425},"pnpm validate:skills",{"type":18,"value":2427}," checks the base schema and the profiles alongside the bundles:",{"type":13,"tag":419,"props":2429,"children":2430},{},[2431,2458,2469,2482,2501,2513,2539,2558],{"type":13,"tag":423,"props":2432,"children":2433},{},[2434,2436,2441,2443,2449,2451,2456],{"type":18,"value":2435},"Every ",{"type":13,"tag":34,"props":2437,"children":2439},{"className":2438},[],[2440],{"type":18,"value":72},{"type":18,"value":2442}," heading in every fragment, ",{"type":13,"tag":34,"props":2444,"children":2446},{"className":2445},[],[2447],{"type":18,"value":2448},"always\u002F",{"type":18,"value":2450}," file and bundle ",{"type":13,"tag":34,"props":2452,"children":2454},{"className":2453},[],[2455],{"type":18,"value":39},{"type":18,"value":2457}," resolves to a canonical section.",{"type":13,"tag":423,"props":2459,"children":2460},{},[2461,2467],{"type":13,"tag":34,"props":2462,"children":2464},{"className":2463},[],[2465],{"type":18,"value":2466},"sections.yaml",{"type":18,"value":2468}," lists exactly the canonical section ids, in order.",{"type":13,"tag":423,"props":2470,"children":2471},{},[2472,2474,2480],{"type":18,"value":2473},"Every axis has either options or an input, its default is one of its options, ids are unique, and each ",{"type":13,"tag":34,"props":2475,"children":2477},{"className":2476},[],[2478],{"type":18,"value":2479},"when.axis",{"type":18,"value":2481}," refers to an earlier axis and a real option of it.",{"type":13,"tag":423,"props":2483,"children":2484},{},[2485,2486,2492,2494,2499],{"type":18,"value":2435},{"type":13,"tag":34,"props":2487,"children":2489},{"className":2488},[],[2490],{"type":18,"value":2491},"rules\u002F*.md",{"type":18,"value":2493}," in a bundle has a non-empty ",{"type":13,"tag":34,"props":2495,"children":2497},{"className":2496},[],[2498],{"type":18,"value":501},{"type":18,"value":2500}," list — a rule with no globs never loads.",{"type":13,"tag":423,"props":2502,"children":2503},{},[2504,2505,2511],{"type":18,"value":2435},{"type":13,"tag":34,"props":2506,"children":2508},{"className":2507},[],[2509],{"type":18,"value":2510},"{{…}}",{"type":18,"value":2512}," token in a snippet, rule, skill, fragment, template or scaffold destination is a known placeholder or the id of a text-input axis.",{"type":13,"tag":423,"props":2514,"children":2515},{},[2516,2517,2522,2524,2530,2532,2537],{"type":18,"value":2435},{"type":13,"tag":34,"props":2518,"children":2520},{"className":2519},[],[2521],{"type":18,"value":30},{"type":18,"value":2523}," and every ",{"type":13,"tag":34,"props":2525,"children":2527},{"className":2526},[],[2528],{"type":18,"value":2529},"scaffolds.template",{"type":18,"value":2531}," path exists, and every ",{"type":13,"tag":34,"props":2533,"children":2535},{"className":2534},[],[2536],{"type":18,"value":1989},{"type":18,"value":2538}," entry names a real bundle.",{"type":13,"tag":423,"props":2540,"children":2541},{},[2542,2544,2549,2551,2556],{"type":18,"value":2543},"Every profile's ",{"type":13,"tag":34,"props":2545,"children":2547},{"className":2546},[],[2548],{"type":18,"value":2071},{"type":18,"value":2550}," matches its file name, every answer names a real axis and a real option, and every bundle in ",{"type":13,"tag":34,"props":2552,"children":2554},{"className":2553},[],[2555],{"type":18,"value":2346},{"type":18,"value":2557}," exists.",{"type":13,"tag":423,"props":2559,"children":2560},{},[2561,2567,2568,2574,2576,2582],{"type":13,"tag":34,"props":2562,"children":2564},{"className":2563},[],[2565],{"type":18,"value":2566},"base\u002F",{"type":18,"value":1094},{"type":13,"tag":34,"props":2569,"children":2571},{"className":2570},[],[2572],{"type":18,"value":2573},"profiles\u002F",{"type":18,"value":2575}," are scanned for secrets and private infrastructure along with ",{"type":13,"tag":34,"props":2577,"children":2579},{"className":2578},[],[2580],{"type":18,"value":2581},"skills\u002F",{"type":18,"value":485},{"type":13,"tag":20,"props":2584,"children":2585},{},[2586],{"type":18,"value":2587},"CI runs it on every pull request, so a fragment with a stray heading never reaches the registry.",{"type":13,"tag":43,"props":2589,"children":2591},{"id":2590},"how-bundles-contribute",[2592],{"type":18,"value":2593},"How bundles contribute",{"type":13,"tag":20,"props":2595,"children":2596},{},[2597,2599,2604],{"type":18,"value":2598},"A bundle's own ",{"type":13,"tag":34,"props":2600,"children":2602},{"className":2601},[],[2603],{"type":18,"value":39},{"type":18,"value":2605}," is a snippet, not a page. It follows the same heading rules as a fragment, which is what lets the CLI file each part of it under the right section instead of appending a wall of text:",{"type":13,"tag":841,"props":2607,"children":2609},{"className":843,"code":2608,"language":845,"meta":846,"style":846},"## Stack\n- Nuxt 4 with `app\u002F` as srcDir; Nuxt UI v4 components over raw markup.\n\n## Constraints that bit before\n- `UDashboardPanel` takes named slots only — no `grow` prop.\n",[2610],{"type":13,"tag":34,"props":2611,"children":2612},{"__ignoreMap":846},[2613,2625,2655,2662,2674],{"type":13,"tag":852,"props":2614,"children":2615},{"class":854,"line":855},[2616,2620],{"type":13,"tag":852,"props":2617,"children":2618},{"style":859},[2619],{"type":18,"value":862},{"type":13,"tag":852,"props":2621,"children":2622},{"style":865},[2623],{"type":18,"value":2624},"Stack\n",{"type":13,"tag":852,"props":2626,"children":2627},{"class":854,"line":871},[2628,2632,2637,2641,2646,2650],{"type":13,"tag":852,"props":2629,"children":2630},{"style":875},[2631],{"type":18,"value":878},{"type":13,"tag":852,"props":2633,"children":2634},{"style":881},[2635],{"type":18,"value":2636}," Nuxt 4 with ",{"type":13,"tag":852,"props":2638,"children":2639},{"style":887},[2640],{"type":18,"value":890},{"type":13,"tag":852,"props":2642,"children":2643},{"style":893},[2644],{"type":18,"value":2645},"app\u002F",{"type":13,"tag":852,"props":2647,"children":2648},{"style":887},[2649],{"type":18,"value":890},{"type":13,"tag":852,"props":2651,"children":2652},{"style":881},[2653],{"type":18,"value":2654}," as srcDir; Nuxt UI v4 components over raw markup.\n",{"type":13,"tag":852,"props":2656,"children":2657},{"class":854,"line":943},[2658],{"type":13,"tag":852,"props":2659,"children":2660},{"emptyLinePlaceholder":1520},[2661],{"type":18,"value":1523},{"type":13,"tag":852,"props":2663,"children":2664},{"class":854,"line":1242},[2665,2669],{"type":13,"tag":852,"props":2666,"children":2667},{"style":859},[2668],{"type":18,"value":862},{"type":13,"tag":852,"props":2670,"children":2671},{"style":865},[2672],{"type":18,"value":2673},"Constraints that bit before\n",{"type":13,"tag":852,"props":2675,"children":2676},{"class":854,"line":1260},[2677,2681,2685,2690,2694,2699,2703,2708,2712],{"type":13,"tag":852,"props":2678,"children":2679},{"style":875},[2680],{"type":18,"value":878},{"type":13,"tag":852,"props":2682,"children":2683},{"style":887},[2684],{"type":18,"value":953},{"type":13,"tag":852,"props":2686,"children":2687},{"style":893},[2688],{"type":18,"value":2689},"UDashboardPanel",{"type":13,"tag":852,"props":2691,"children":2692},{"style":887},[2693],{"type":18,"value":890},{"type":13,"tag":852,"props":2695,"children":2696},{"style":881},[2697],{"type":18,"value":2698}," takes named slots only — no ",{"type":13,"tag":852,"props":2700,"children":2701},{"style":887},[2702],{"type":18,"value":890},{"type":13,"tag":852,"props":2704,"children":2705},{"style":893},[2706],{"type":18,"value":2707},"grow",{"type":13,"tag":852,"props":2709,"children":2710},{"style":887},[2711],{"type":18,"value":890},{"type":13,"tag":852,"props":2713,"children":2714},{"style":881},[2715],{"type":18,"value":2716}," prop.\n",{"type":13,"tag":20,"props":2718,"children":2719},{},[2720],{"type":18,"value":2721},"Two optional frontmatter keys let a bundle describe its neighbours:",{"type":13,"tag":419,"props":2723,"children":2724},{},[2725,2744],{"type":13,"tag":423,"props":2726,"children":2727},{},[2728,2734,2736,2742],{"type":13,"tag":34,"props":2729,"children":2731},{"className":2730},[],[2732],{"type":18,"value":2733},"dependsOn: [slug]",{"type":18,"value":2735}," — required companions. ",{"type":13,"tag":34,"props":2737,"children":2739},{"className":2738},[],[2740],{"type":18,"value":2741},"add",{"type":18,"value":2743}," and the wizard install them automatically.",{"type":13,"tag":423,"props":2745,"children":2746},{},[2747,2753],{"type":13,"tag":34,"props":2748,"children":2750},{"className":2749},[],[2751],{"type":18,"value":2752},"suggests: [slug]",{"type":18,"value":2754}," — related bundles, pre-ticked in the wizard but easy to untick.",{"type":13,"tag":20,"props":2756,"children":2757},{},[2758,2760,2766,2768,2774,2775,2781,2783,2790],{"type":18,"value":2759},"Both take registry slugs and are validated. They are distinct from ",{"type":13,"tag":34,"props":2761,"children":2763},{"className":2762},[],[2764],{"type":18,"value":2765},"requires",{"type":18,"value":2767},", which lists external tooling the bundle needs on your machine (",{"type":13,"tag":34,"props":2769,"children":2771},{"className":2770},[],[2772],{"type":18,"value":2773},"python3",{"type":18,"value":469},{"type":13,"tag":34,"props":2776,"children":2778},{"className":2777},[],[2779],{"type":18,"value":2780},"playwright-cli",{"type":18,"value":2782},"). See the ",{"type":13,"tag":2784,"props":2785,"children":2787},"a",{"href":2786},"\u002Fdocs\u002Ffrontmatter",[2788],{"type":18,"value":2789},"frontmatter reference",{"type":18,"value":2791}," for the full list of keys.",{"type":13,"tag":2793,"props":2794,"children":2795},"style",{},[2796],{"type":18,"value":2797},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{}]