[{"data":1,"prerenderedAt":1361},["ShallowReactive",2],{"navigation_docs_es":3,"-es-reference-scripts":188,"-es-reference-scripts-surround":1356},[4,35,85,145],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Primeros pasos",false,"\u002Fes\u002Fgetting-started","es\u002F1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introducción","\u002Fes\u002Fgetting-started\u002Fintroduction","es\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Instalación","\u002Fes\u002Fgetting-started\u002Finstallation","es\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Estructura del proyecto","\u002Fes\u002Fgetting-started\u002Fproject-layout","es\u002F1.getting-started\u002F3.project-layout","i-lucide-folder-tree",{"title":26,"path":27,"stem":28,"icon":29},"Actualizar y desinstalar","\u002Fes\u002Fgetting-started\u002Fupgrade-uninstall","es\u002F1.getting-started\u002F4.upgrade-uninstall","i-lucide-refresh-cw",{"title":31,"path":32,"stem":33,"icon":34},"Canales","\u002Fes\u002Fgetting-started\u002Fchannels","es\u002F1.getting-started\u002F5.channels","i-lucide-radio-tower",{"title":36,"icon":6,"path":37,"stem":38,"children":39,"page":6},"Conceptos","\u002Fes\u002Fconcepts","es\u002F2.concepts",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Carriles y métodos","\u002Fes\u002Fconcepts\u002Flanes-and-methods","es\u002F2.concepts\u002F1.lanes-and-methods","i-lucide-route",{"title":46,"path":47,"stem":48,"icon":49},"Specs vivas y cambios","\u002Fes\u002Fconcepts\u002Fliving-specs","es\u002F2.concepts\u002F2.living-specs","i-lucide-book-open-check",{"title":51,"path":52,"stem":53,"icon":54},"Notación","\u002Fes\u002Fconcepts\u002Fnotation","es\u002F2.concepts\u002F3.notation","i-lucide-pen-line",{"title":56,"path":57,"stem":58,"icon":59},"QA y datos de prueba","\u002Fes\u002Fconcepts\u002Fqa-and-test-data","es\u002F2.concepts\u002F4.qa-and-test-data","i-lucide-clipboard-check",{"title":61,"path":62,"stem":63,"icon":64},"Conocimiento","\u002Fes\u002Fconcepts\u002Fknowledge","es\u002F2.concepts\u002F5.knowledge","i-lucide-brain",{"title":66,"path":67,"stem":68,"icon":69},"Scripts","\u002Fes\u002Fconcepts\u002Fscripts","es\u002F2.concepts\u002F6.scripts","i-lucide-file-code",{"title":71,"path":72,"stem":73,"icon":74},"Garantías","\u002Fes\u002Fconcepts\u002Fguardrails","es\u002F2.concepts\u002F7.guardrails","i-lucide-shield",{"title":76,"path":77,"stem":78,"icon":79},"Contexto de sesión","\u002Fes\u002Fconcepts\u002Fsession-context","es\u002F2.concepts\u002F8.session-context","i-lucide-gauge",{"title":81,"path":82,"stem":83,"icon":84},"Cómo mejora el kit","\u002Fes\u002Fconcepts\u002Fself-improvement","es\u002F2.concepts\u002F9.self-improvement","i-lucide-sprout",{"title":86,"icon":6,"path":87,"stem":88,"children":89,"page":6},"Guías","\u002Fes\u002Fguides","es\u002F3.guides",[90,95,100,105,110,115,120,125,130,135,140],{"title":91,"path":92,"stem":93,"icon":94},"Monorepo de app nuevo","\u002Fes\u002Fguides\u002Fnew-app-monorepo","es\u002F3.guides\u002F01.new-app-monorepo","i-lucide-boxes",{"title":96,"path":97,"stem":98,"icon":99},"Tu sitio web con Claude","\u002Fes\u002Fguides\u002Fcontent-site","es\u002F3.guides\u002F02.content-site","i-lucide-globe",{"title":101,"path":102,"stem":103,"icon":104},"Adoptar un proyecto existente","\u002Fes\u002Fguides\u002Fadopt-existing-project","es\u002F3.guides\u002F03.adopt-existing-project","i-lucide-git-merge",{"title":106,"path":107,"stem":108,"icon":109},"Un cambio, de principio a fin","\u002Fes\u002Fguides\u002Fspec-lane-change","es\u002F3.guides\u002F04.spec-lane-change","i-lucide-git-pull-request",{"title":111,"path":112,"stem":113,"icon":114},"Un cambio de vía rápida","\u002Fes\u002Fguides\u002Ffast-track-change","es\u002F3.guides\u002F05.fast-track-change","i-lucide-zap",{"title":116,"path":117,"stem":118,"icon":119},"El ciclo TDD","\u002Fes\u002Fguides\u002Ftdd-loop","es\u002F3.guides\u002F06.tdd-loop","i-lucide-repeat",{"title":121,"path":122,"stem":123,"icon":124},"Una pasada de QA","\u002Fes\u002Fguides\u002Fqa-pass","es\u002F3.guides\u002F07.qa-pass","i-lucide-clipboard-list",{"title":126,"path":127,"stem":128,"icon":129},"Datos de prueba","\u002Fes\u002Fguides\u002Ftest-data","es\u002F3.guides\u002F08.test-data","i-lucide-database",{"title":131,"path":132,"stem":133,"icon":134},"Publicar y actualizar","\u002Fes\u002Fguides\u002Freleasing-and-upgrading","es\u002F3.guides\u002F09.releasing-and-upgrading","i-lucide-rocket",{"title":136,"path":137,"stem":138,"icon":139},"Proponer mejoras","\u002Fes\u002Fguides\u002Fproposing-improvements","es\u002F3.guides\u002F10.proposing-improvements","i-lucide-lightbulb",{"title":141,"path":142,"stem":143,"icon":144},"Documentación para agentes","\u002Fes\u002Fguides\u002Fdocs-for-agents","es\u002F3.guides\u002F11.docs-for-agents","i-lucide-bot",{"title":146,"icon":6,"path":147,"stem":148,"children":149,"page":6},"Referencia","\u002Fes\u002Freference","es\u002F4.reference",[150,155,160,165,170,173,178,183],{"title":151,"path":152,"stem":153,"icon":154},"CLI","\u002Fes\u002Freference\u002Fcli","es\u002F4.reference\u002F1.cli","i-lucide-terminal",{"title":156,"path":157,"stem":158,"icon":159},"Configuración","\u002Fes\u002Freference\u002Fconfiguration","es\u002F4.reference\u002F2.configuration","i-lucide-settings",{"title":161,"path":162,"stem":163,"icon":164},"Skills","\u002Fes\u002Freference\u002Fskills","es\u002F4.reference\u002F3.skills","i-lucide-sparkles",{"title":166,"path":167,"stem":168,"icon":169},"Hooks","\u002Fes\u002Freference\u002Fhooks","es\u002F4.reference\u002F4.hooks","i-lucide-webhook",{"title":66,"path":171,"stem":172,"icon":69},"\u002Fes\u002Freference\u002Fscripts","es\u002F4.reference\u002F5.scripts",{"title":174,"path":175,"stem":176,"icon":177},"Cambios","\u002Fes\u002Freference\u002Fchangelog","es\u002F4.reference\u002F6.changelog","i-lucide-history",{"title":179,"path":180,"stem":181,"icon":182},"Plantillas","\u002Fes\u002Freference\u002Ftemplates","es\u002F4.reference\u002F7.templates","i-lucide-layout-template",{"title":184,"path":185,"stem":186,"icon":187},"Privacidad","\u002Fes\u002Freference\u002Fprivacy","es\u002F4.reference\u002F8.privacy","i-lucide-lock",{"id":189,"title":66,"body":190,"description":1348,"extension":1349,"links":1350,"meta":1351,"navigation":1353,"path":171,"seo":1354,"stem":172,"__hash__":1355},"docs_es\u002Fes\u002F4.reference\u002F5.scripts.md",{"type":191,"value":192,"toc":1328},"minimark",[193,202,206,209,212,215,218,221,346,349,352,355,358,394,397,400,403,406,409,412,519,522,525,540,543,550,721,724,727,730,737,739,750,946,949,952,955,973,1101,1104,1107,1163,1166,1169,1187,1190,1196,1324],[194,195,196,197,201],"p",{},"La ruta de la carpeta de scripts está en el contexto de sesión; la mayoría también son comandos ",[198,199,200],"code",{},"agent-kit",".",[203,204,205],"h2",{"id":205},"changes",[194,207,208],{},"Lo que cambió desde la rama base: commiteado + preparado + sin preparar + sin seguimiento. Lo comparten preflight.mjs y tdd.mjs. Git de solo lectura.",[203,210,211],{"id":211},"checkpoint",[194,213,214],{},"Hook de Stop: tras cada turno (síncrono: los hooks asíncronos se pierden cuando termina una ejecución headless) guarda el estado del trabajo para que la siguiente sesión lo retome: rama, archivos cambiados, trabajo activo. En silencio; nunca falla.",[203,216,217],{"id":217},"commit",[194,219,220],{},"Ayudas de Conventional Commits para los agentes.",[222,223,228],"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","node commit.mjs draft [--staged]        changed files → suggested scope(s) and type\nnode commit.mjs check \"\u003Cmessage>\"       validate: project commitlint if installed,\nnode commit.mjs check --file \u003Cpath>     else the built-in rules below (exit 1 = invalid)\n","bash","",[198,229,230,256,291],{"__ignoreMap":227},[231,232,235,239,243,246,250,253],"span",{"class":233,"line":234},"line",1,[231,236,238],{"class":237},"sBMFI","node",[231,240,242],{"class":241},"sfazB"," commit.mjs",[231,244,245],{"class":241}," draft",[231,247,249],{"class":248},"sTEyZ"," [--staged]        changed files → suggested scope(",[231,251,252],{"class":237},"s",[231,254,255],{"class":248},") and type\n",[231,257,259,261,263,266,270,273,276,279,282,285,288],{"class":233,"line":258},2,[231,260,238],{"class":237},[231,262,242],{"class":241},[231,264,265],{"class":241}," check",[231,267,269],{"class":268},"sMK4o"," \"",[231,271,272],{"class":241},"\u003Cmessage>",[231,274,275],{"class":268},"\"",[231,277,278],{"class":241},"       validate:",[231,280,281],{"class":241}," project",[231,283,284],{"class":241}," commitlint",[231,286,287],{"class":241}," if",[231,289,290],{"class":241}," installed,\n",[231,292,294,296,298,300,303,306,309,312,315,318,321,324,327,330,333,337,340,343],{"class":233,"line":293},3,[231,295,238],{"class":237},[231,297,242],{"class":241},[231,299,265],{"class":241},[231,301,302],{"class":241}," --file",[231,304,305],{"class":268}," \u003C",[231,307,308],{"class":241},"pat",[231,310,311],{"class":248},"h",[231,313,314],{"class":268},">",[231,316,317],{"class":241},"     else",[231,319,320],{"class":241}," the",[231,322,323],{"class":241}," built-in",[231,325,326],{"class":241}," rules",[231,328,329],{"class":241}," below",[231,331,332],{"class":248}," (exit ",[231,334,336],{"class":335},"sbssI","1",[231,338,339],{"class":241}," =",[231,341,342],{"class":241}," invalid",[231,344,345],{"class":248},")\n",[203,347,348],{"id":348},"config",[194,350,351],{},"Rutas y configuración compartidas por los scripts del plugin y la CLI de agent-kit.",[203,353,354],{"id":354},"context",[194,356,357],{},"Estima el contexto que se carga en CADA sesión de Claude Code de un proyecto (cadena CLAUDE.md + imports, índice de memoria, contexto de sesión de agent-kit, descripciones de skills) y encuentra las skills que Claude Code no ve. ~4 caracteres por token.",[222,359,361],{"className":224,"code":360,"language":226,"meta":227,"style":227},"node context.mjs [dir] [--budget 8000]      exit 1 over budget\nnode context.mjs [dir] --sections            cost of every heading in the CLAUDE.md chain\n",[198,362,363,385],{"__ignoreMap":227},[231,364,365,367,370,373,376,379,382],{"class":233,"line":234},[231,366,238],{"class":237},[231,368,369],{"class":241}," context.mjs",[231,371,372],{"class":248}," [dir] ",[231,374,375],{"class":268},"[",[231,377,378],{"class":248},"--budget 8000",[231,380,381],{"class":268},"]",[231,383,384],{"class":248},"      exit 1 over budget\n",[231,386,387,389,391],{"class":233,"line":258},[231,388,238],{"class":237},[231,390,369],{"class":241},[231,392,393],{"class":248}," [dir] --sections            cost of every heading in the CLAUDE.md chain\n",[203,395,396],{"id":396},"git-guard",[194,398,399],{},"Hook de PreToolUse(Bash): bloquea los comandos de git que prohíbe el flujo de git del proyecto. La salida 2 bloquea la llamada y muestra stderr a Claude. En silencio fuera de los proyectos agent-kit.",[203,401,402],{"id":402},"git-rules",[194,404,405],{},"Qué comandos de git nunca cambian un repositorio: datos para el git guard (git-guard.mjs). Subcomandos que nunca cambian el repositorio, sean cuales sean sus argumentos.",[203,407,408],{"id":408},"knowledge",[194,410,411],{},"Base de conocimiento: un concepto por archivo Markdown con frontmatter, agrupados en ámbitos y enlazados con [[name]]. Este script hace el trabajo determinista (índice, búsqueda, validación) para que los agentes solo gasten tokens en las entradas que abren.",[222,413,415],{"className":224,"code":414,"language":226,"meta":227,"style":227},"node knowledge.mjs paths\nnode knowledge.mjs find \u003Cterms...> [--body]\nnode knowledge.mjs related \u003Cname>       the entry, what it links to, what links to it\nnode knowledge.mjs index [--global]\nnode knowledge.mjs check [--global]\n",[198,416,417,427,448,495,508],{"__ignoreMap":227},[231,418,419,421,424],{"class":233,"line":234},[231,420,238],{"class":237},[231,422,423],{"class":241}," knowledge.mjs",[231,425,426],{"class":241}," paths\n",[231,428,429,431,433,436,438,441,443,445],{"class":233,"line":258},[231,430,238],{"class":237},[231,432,423],{"class":241},[231,434,435],{"class":241}," find",[231,437,305],{"class":268},[231,439,440],{"class":241},"terms..",[231,442,201],{"class":248},[231,444,314],{"class":268},[231,446,447],{"class":248}," [--body]\n",[231,449,450,452,454,457,459,462,465,467,470,473,476,479,482,485,487,489,492],{"class":233,"line":293},[231,451,238],{"class":237},[231,453,423],{"class":241},[231,455,456],{"class":241}," related",[231,458,305],{"class":268},[231,460,461],{"class":241},"nam",[231,463,464],{"class":248},"e",[231,466,314],{"class":268},[231,468,469],{"class":241},"       the",[231,471,472],{"class":241}," entry,",[231,474,475],{"class":241}," what",[231,477,478],{"class":241}," it",[231,480,481],{"class":241}," links",[231,483,484],{"class":241}," to,",[231,486,475],{"class":241},[231,488,481],{"class":241},[231,490,491],{"class":241}," to",[231,493,494],{"class":241}," it\n",[231,496,498,500,502,505],{"class":233,"line":497},4,[231,499,238],{"class":237},[231,501,423],{"class":241},[231,503,504],{"class":241}," index",[231,506,507],{"class":248}," [--global]\n",[231,509,511,513,515,517],{"class":233,"line":510},5,[231,512,238],{"class":237},[231,514,423],{"class":241},[231,516,265],{"class":241},[231,518,507],{"class":248},[203,520,521],{"id":521},"preflight",[194,523,524],{},"Lista de comprobación antes de fusionar a partir del diff entre la base de fusión y el árbol de trabajo (commiteado + preparado + sin preparar + sin seguimiento). Git de solo lectura.",[222,526,528],{"className":224,"code":527,"language":226,"meta":227,"style":227},"node preflight.mjs [base-branch]      exit 1 when a violation is found\n",[198,529,530],{"__ignoreMap":227},[231,531,532,534,537],{"class":233,"line":234},[231,533,238],{"class":237},[231,535,536],{"class":241}," preflight.mjs",[231,538,539],{"class":248}," [base-branch]      exit 1 when a violation is found\n",[203,541,542],{"id":542},"qa",[194,544,545,546,549],{},"La dimensión de QA: un checklist generado desde las specs vivas (un ítem por escenario), pasadas de QA con fecha que registran resultados, y el mapa de escenarios a fixtures de datos de prueba (",[198,547,548],{},"-- @fixture \u003Cids…> @tag"," en seed.sql).",[222,551,553],{"className":224,"code":552,"language":226,"meta":227,"style":227},"node qa.mjs sync [--check]   regenerate work\u002Fqa\u002Fchecklist.md + checklist.html (--check: exit 1 if stale)\nnode qa.mjs run              start work\u002Fqa\u002Fruns\u002F\u003Ctoday>.md with every scenario unticked\nnode qa.mjs status           latest result per scenario (pass \u002F fail \u002F blocked \u002F n\u002Fa \u002F re-check \u002F never run)\nnode qa.mjs gaps             scenarios without a fixture; fixtures naming unknown scenarios (exit 1)\n",[198,554,555,584,625,679],{"__ignoreMap":227},[231,556,557,559,562,565,568,571,574,577,579,582],{"class":233,"line":234},[231,558,238],{"class":237},[231,560,561],{"class":241}," qa.mjs",[231,563,564],{"class":241}," sync",[231,566,567],{"class":248}," [--check]   regenerate work\u002Fqa\u002Fchecklist.md + checklist.html (",[231,569,570],{"class":237},"--check:",[231,572,573],{"class":241}," exit",[231,575,576],{"class":335}," 1",[231,578,287],{"class":241},[231,580,581],{"class":241}," stale",[231,583,345],{"class":248},[231,585,586,588,590,593,596,599,602,605,608,610,613,616,619,622],{"class":233,"line":258},[231,587,238],{"class":237},[231,589,561],{"class":241},[231,591,592],{"class":241}," run",[231,594,595],{"class":241},"              start",[231,597,598],{"class":241}," work\u002Fqa\u002Fruns\u002F",[231,600,601],{"class":268},"\u003C",[231,603,604],{"class":241},"toda",[231,606,607],{"class":248},"y",[231,609,314],{"class":268},[231,611,612],{"class":241},".md",[231,614,615],{"class":241}," with",[231,617,618],{"class":241}," every",[231,620,621],{"class":241}," scenario",[231,623,624],{"class":241}," unticked\n",[231,626,627,629,631,634,637,640,643,645,648,651,654,657,660,662,665,667,670,672,675,677],{"class":233,"line":293},[231,628,238],{"class":237},[231,630,561],{"class":241},[231,632,633],{"class":241}," status",[231,635,636],{"class":241},"           latest",[231,638,639],{"class":241}," result",[231,641,642],{"class":241}," per",[231,644,621],{"class":241},[231,646,647],{"class":248}," (pass ",[231,649,650],{"class":241},"\u002F",[231,652,653],{"class":241}," fail",[231,655,656],{"class":241}," \u002F",[231,658,659],{"class":241}," blocked",[231,661,656],{"class":241},[231,663,664],{"class":241}," n\u002Fa",[231,666,656],{"class":241},[231,668,669],{"class":241}," re-check",[231,671,656],{"class":241},[231,673,674],{"class":241}," never",[231,676,592],{"class":241},[231,678,345],{"class":248},[231,680,681,683,685,688,691,694,697,700,703,706,709,712,715,717,719],{"class":233,"line":497},[231,682,238],{"class":237},[231,684,561],{"class":241},[231,686,687],{"class":241}," gaps",[231,689,690],{"class":241},"             scenarios",[231,692,693],{"class":241}," without",[231,695,696],{"class":241}," a",[231,698,699],{"class":241}," fixture",[231,701,702],{"class":268},";",[231,704,705],{"class":237}," fixtures",[231,707,708],{"class":241}," naming",[231,710,711],{"class":241}," unknown",[231,713,714],{"class":241}," scenarios",[231,716,332],{"class":248},[231,718,336],{"class":335},[231,720,345],{"class":248},[203,722,723],{"id":723},"run",[194,725,726],{},"Ejecuta un comando y devuelve un resultado compacto para el agente: código de salida, tiempo, las líneas que importan (fallos, errores) y el final. La salida completa va a un archivo de log, así que una ejecución larga cuesta unas decenas de líneas de contexto, no miles.",[203,728,729],{"id":729},"script-nudge",[194,731,732,733,736],{},"Hook de PostToolUse(Write): cuando el agente escribe un script donde se perdería (fuera del proyecto, en la raíz del proyecto o en una carpeta tmp), le recuerda la skill ",[198,734,735],{},"scripts"," para que el script se encuentre y se reutilice la próxima vez.",[203,738,735],{"id":735},[194,740,741,742,745,746,749],{},"Registro de scripts: busca, ejecuta, prueba, genera y documenta los scripts que escriben agentes y usuarios, para que se reutilicen en lugar de reconstruirse. Un script se documenta con líneas ",[198,743,744],{},"@clave: valor"," en sus primeras 40 líneas (cualquier estilo de comentario): @name @summary @usage (obligatorios: summary, usage) · @tags ",[231,747,748],{},"a, b"," · @test archivo",[222,751,753],{"className":224,"code":752,"language":226,"meta":227,"style":227},"node scripts.mjs find \u003Cwords...>          scripts (project, scratch, library) + skills\nnode scripts.mjs list\nnode scripts.mjs run \u003Cname|path> [--lines N] [-- args...]\nnode scripts.mjs test [name]\nnode scripts.mjs new \u003Carea>\u002F\u003Cname>.\u003Cext> --summary \"…\" [--usage \"…\"] [--scratch|--library]\nnode scripts.mjs index                    regenerate scripts\u002FREADME.md\nnode scripts.mjs check                    undocumented, duplicate, missing tests\n",[198,754,755,788,797,828,840,910,925],{"__ignoreMap":227},[231,756,757,759,762,764,766,769,771,773,776,779,782,785],{"class":233,"line":234},[231,758,238],{"class":237},[231,760,761],{"class":241}," scripts.mjs",[231,763,435],{"class":241},[231,765,305],{"class":268},[231,767,768],{"class":241},"words..",[231,770,201],{"class":248},[231,772,314],{"class":268},[231,774,775],{"class":241},"          scripts",[231,777,778],{"class":248}," (project, ",[231,780,781],{"class":241},"scratch,",[231,783,784],{"class":241}," library",[231,786,787],{"class":248},") + skills\n",[231,789,790,792,794],{"class":233,"line":258},[231,791,238],{"class":237},[231,793,761],{"class":241},[231,795,796],{"class":241}," list\n",[231,798,799,801,803,805,807,810,813,816,819,822,825],{"class":233,"line":293},[231,800,238],{"class":237},[231,802,761],{"class":241},[231,804,592],{"class":241},[231,806,305],{"class":268},[231,808,809],{"class":241},"name",[231,811,812],{"class":268},"|",[231,814,815],{"class":237},"path",[231,817,818],{"class":248},"> [--lines ",[231,820,821],{"class":241},"N]",[231,823,824],{"class":248}," [-- ",[231,826,827],{"class":241},"args...]\n",[231,829,830,832,834,837],{"class":233,"line":497},[231,831,238],{"class":237},[231,833,761],{"class":241},[231,835,836],{"class":241}," test",[231,838,839],{"class":248}," [name]\n",[231,841,842,844,846,849,851,854,857,859,861,863,865,867,869,871,873,876,879,881,884,886,889,891,894,896,898,900,902,905,907],{"class":233,"line":510},[231,843,238],{"class":237},[231,845,761],{"class":241},[231,847,848],{"class":241}," new",[231,850,305],{"class":268},[231,852,853],{"class":241},"are",[231,855,856],{"class":248},"a",[231,858,314],{"class":268},[231,860,650],{"class":241},[231,862,601],{"class":268},[231,864,461],{"class":241},[231,866,464],{"class":248},[231,868,314],{"class":268},[231,870,201],{"class":241},[231,872,601],{"class":268},[231,874,875],{"class":241},"ex",[231,877,878],{"class":248},"t",[231,880,314],{"class":268},[231,882,883],{"class":241}," --summary",[231,885,269],{"class":268},[231,887,888],{"class":241},"…",[231,890,275],{"class":268},[231,892,893],{"class":248}," [--usage ",[231,895,275],{"class":268},[231,897,888],{"class":241},[231,899,275],{"class":268},[231,901,381],{"class":241},[231,903,904],{"class":248}," [--scratch",[231,906,812],{"class":268},[231,908,909],{"class":237},"--library]\n",[231,911,913,915,917,919,922],{"class":233,"line":912},6,[231,914,238],{"class":237},[231,916,761],{"class":241},[231,918,504],{"class":241},[231,920,921],{"class":241},"                    regenerate",[231,923,924],{"class":241}," scripts\u002FREADME.md\n",[231,926,928,930,932,934,937,940,943],{"class":233,"line":927},7,[231,929,238],{"class":237},[231,931,761],{"class":241},[231,933,265],{"class":241},[231,935,936],{"class":241},"                    undocumented,",[231,938,939],{"class":241}," duplicate,",[231,941,942],{"class":241}," missing",[231,944,945],{"class":241}," tests\n",[203,947,948],{"id":948},"session-start",[194,950,951],{},"Hook de SessionStart: inyecta el perfil del proyecto (tono, idioma, flujo de git, método, carriles de trabajo), un índice compacto del conocimiento y el índice de scripts. En silencio fuera de los proyectos agent-kit.",[203,953,954],{"id":954},"specs",[194,956,957,958],{},"Specs vivas (work\u002Fspecs\u002F",[959,960,961,962],"capability",{},"\u002Fspec.md) y las specs delta de los cambios (work\u002Fchanges\u002FNNN-slug\u002Fspecs\u002F",[959,963,964,965,968,969,972],{},".md). Notación: requisitos EARS (",[198,966,967],{},"### cap.R1 — name","), escenarios Given\u002FWhen\u002FThen etiquetados con una categoría ZOMBIES (",[198,970,971],{},"#### cap.R1.S1 — name @boundary","). Los ids nunca se reutilizan.",[222,974,976],{"className":224,"code":975,"language":226,"meta":227,"style":227},"node specs.mjs lint [cap|NNN]          notation + id checks (exit 1 on errors)\nnode specs.mjs next \u003Ccap|cap.Rn>       next free requirement \u002F scenario id\nnode specs.mjs merge \u003CNNN>             apply a change's deltas to the living specs\nnode specs.mjs trace [NNN|cap]         scenario → tests (id in the test name) or ✅ rows\nnode specs.mjs list                    capabilities with requirement and scenario counts\n",[198,977,978,1020,1058,1091,1096],{"__ignoreMap":227},[231,979,980,982,985,988,991,993,996,999,1002,1005,1008,1010,1012,1015,1018],{"class":233,"line":234},[231,981,238],{"class":237},[231,983,984],{"class":241}," specs.mjs",[231,986,987],{"class":241}," lint",[231,989,990],{"class":248}," [cap",[231,992,812],{"class":268},[231,994,995],{"class":237},"NNN]",[231,997,998],{"class":241},"          notation",[231,1000,1001],{"class":241}," +",[231,1003,1004],{"class":241}," id",[231,1006,1007],{"class":241}," checks",[231,1009,332],{"class":248},[231,1011,336],{"class":335},[231,1013,1014],{"class":241}," on",[231,1016,1017],{"class":241}," errors",[231,1019,345],{"class":248},[231,1021,1022,1024,1026,1029,1031,1034,1036,1039,1042,1045,1048,1051,1053,1055],{"class":233,"line":258},[231,1023,238],{"class":237},[231,1025,984],{"class":241},[231,1027,1028],{"class":241}," next",[231,1030,305],{"class":268},[231,1032,1033],{"class":241},"cap",[231,1035,812],{"class":268},[231,1037,1038],{"class":237},"cap.Rn",[231,1040,1041],{"class":248},">       ",[231,1043,1044],{"class":241},"next",[231,1046,1047],{"class":241}," free",[231,1049,1050],{"class":241}," requirement",[231,1052,656],{"class":241},[231,1054,621],{"class":241},[231,1056,1057],{"class":241}," id\n",[231,1059,1060,1062,1064,1067,1069,1072,1075,1077,1080,1082,1085,1088],{"class":233,"line":293},[231,1061,238],{"class":237},[231,1063,984],{"class":241},[231,1065,1066],{"class":241}," merge",[231,1068,305],{"class":268},[231,1070,1071],{"class":241},"NN",[231,1073,1074],{"class":248},"N",[231,1076,314],{"class":268},[231,1078,1079],{"class":241},"             apply",[231,1081,696],{"class":241},[231,1083,1084],{"class":241}," change",[231,1086,1087],{"class":268},"'",[231,1089,1090],{"class":241},"s deltas to the living specs\n",[231,1092,1093],{"class":233,"line":497},[231,1094,1095],{"class":241},"node specs.mjs trace [NNN|cap]         scenario → tests (id in the test name) or ✅ rows\n",[231,1097,1098],{"class":233,"line":510},[231,1099,1100],{"class":241},"node specs.mjs list                    capabilities with requirement and scenario counts\n",[203,1102,1103],{"id":1103},"tdd",[194,1105,1106],{},"Soporte de TDD: qué archivos de lógica cambiados no tienen test, y una ejecución compacta solo de los tests relacionados con los cambios actuales.",[222,1108,1110],{"className":224,"code":1109,"language":226,"meta":227,"style":227},"node tdd.mjs status [base]\nnode tdd.mjs run [test files...] [--all] [--base \u003Cbranch>] [--lines N]\n",[198,1111,1112,1124],{"__ignoreMap":227},[231,1113,1114,1116,1119,1121],{"class":233,"line":234},[231,1115,238],{"class":237},[231,1117,1118],{"class":241}," tdd.mjs",[231,1120,633],{"class":241},[231,1122,1123],{"class":248}," [base]\n",[231,1125,1126,1128,1130,1132,1135,1138,1141,1143,1146,1148,1151,1154,1157,1160],{"class":233,"line":258},[231,1127,238],{"class":237},[231,1129,1118],{"class":241},[231,1131,592],{"class":241},[231,1133,1134],{"class":248}," [test ",[231,1136,1137],{"class":241},"files...]",[231,1139,1140],{"class":248}," [--all] ",[231,1142,375],{"class":268},[231,1144,1145],{"class":248},"--base ",[231,1147,601],{"class":268},[231,1149,1150],{"class":248},"branch",[231,1152,1153],{"class":268},">]",[231,1155,1156],{"class":268}," [",[231,1158,1159],{"class":248},"--lines N",[231,1161,1162],{"class":268},"]\n",[203,1164,1165],{"id":1165},"usage",[194,1167,1168],{},"Señales de uso para una retro: qué se ejecutó y falló, scripts nunca usados, scripts desechables por promover o borrar, conocimiento que nadie enlaza, estado del trabajo.",[222,1170,1172],{"className":224,"code":1171,"language":226,"meta":227,"style":227},"node usage.mjs [--days 30]\n",[198,1173,1174],{"__ignoreMap":227},[231,1175,1176,1178,1181,1184],{"class":233,"line":234},[231,1177,238],{"class":237},[231,1179,1180],{"class":241}," usage.mjs",[231,1182,1183],{"class":248}," [--days ",[231,1185,1186],{"class":241},"30]\n",[203,1188,1189],{"id":1189},"work",[194,1191,1192,1193],{},"Seguimiento del trabajo: features de vía rápida (work\u002Ffeatures\u002F) y cambios (work\u002Fchanges\u002FNNN-slug\u002F: propuesta, specs delta, plan, tareas), su estado y próxima tarea, y la trazabilidad (escenario → test o comprobación verificada). Las specs vivas (work\u002Fspecs\u002F",[959,1194,1195],{},"\u002Fspec.md) las maneja specs.mjs.",[222,1197,1199],{"className":224,"code":1198,"language":226,"meta":227,"style":227},"node work.mjs status              active work with progress and next task\nnode work.mjs board               regenerate work\u002FBOARD.md\nnode work.mjs trace [NNN]         scenarios (or legacy AC-n) → tests or ✅ checks\nnode work.mjs new feature|change \u003Cslug> [--title \"…\"]   next number + files from the templates\n",[198,1200,1201,1229,1244,1268],{"__ignoreMap":227},[231,1202,1203,1205,1208,1210,1213,1216,1218,1221,1224,1226],{"class":233,"line":234},[231,1204,238],{"class":237},[231,1206,1207],{"class":241}," work.mjs",[231,1209,633],{"class":241},[231,1211,1212],{"class":241},"              active",[231,1214,1215],{"class":241}," work",[231,1217,615],{"class":241},[231,1219,1220],{"class":241}," progress",[231,1222,1223],{"class":241}," and",[231,1225,1028],{"class":241},[231,1227,1228],{"class":241}," task\n",[231,1230,1231,1233,1235,1238,1241],{"class":233,"line":258},[231,1232,238],{"class":237},[231,1234,1207],{"class":241},[231,1236,1237],{"class":241}," board",[231,1239,1240],{"class":241},"               regenerate",[231,1242,1243],{"class":241}," work\u002FBOARD.md\n",[231,1245,1246,1248,1250,1253,1256,1259,1262,1265],{"class":233,"line":293},[231,1247,238],{"class":237},[231,1249,1207],{"class":241},[231,1251,1252],{"class":241}," trace",[231,1254,1255],{"class":248}," [NNN]         scenarios (",[231,1257,1258],{"class":237},"or",[231,1260,1261],{"class":241}," legacy",[231,1263,1264],{"class":241}," AC-n",[231,1266,1267],{"class":248},") → tests or ✅ checks\n",[231,1269,1270,1272,1274,1276,1279,1281,1284,1286,1289,1292,1294,1297,1299,1301,1303,1305,1308,1311,1313,1316,1319,1321],{"class":233,"line":497},[231,1271,238],{"class":237},[231,1273,1207],{"class":241},[231,1275,848],{"class":241},[231,1277,1278],{"class":241}," feature",[231,1280,812],{"class":268},[231,1282,1283],{"class":237},"change",[231,1285,305],{"class":268},[231,1287,1288],{"class":241},"slu",[231,1290,1291],{"class":248},"g",[231,1293,314],{"class":268},[231,1295,1296],{"class":248}," [--title ",[231,1298,275],{"class":268},[231,1300,888],{"class":241},[231,1302,275],{"class":268},[231,1304,381],{"class":241},[231,1306,1307],{"class":241},"   next",[231,1309,1310],{"class":241}," number",[231,1312,1001],{"class":241},[231,1314,1315],{"class":241}," files",[231,1317,1318],{"class":241}," from",[231,1320,320],{"class":241},[231,1322,1323],{"class":241}," templates\n",[1325,1326,1327],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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);}",{"title":227,"searchDepth":258,"depth":258,"links":1329},[1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347],{"id":205,"depth":258,"text":205},{"id":211,"depth":258,"text":211},{"id":217,"depth":258,"text":217},{"id":348,"depth":258,"text":348},{"id":354,"depth":258,"text":354},{"id":396,"depth":258,"text":396},{"id":402,"depth":258,"text":402},{"id":408,"depth":258,"text":408},{"id":521,"depth":258,"text":521},{"id":542,"depth":258,"text":542},{"id":723,"depth":258,"text":723},{"id":729,"depth":258,"text":729},{"id":735,"depth":258,"text":735},{"id":948,"depth":258,"text":948},{"id":954,"depth":258,"text":954},{"id":1103,"depth":258,"text":1103},{"id":1165,"depth":258,"text":1165},{"id":1189,"depth":258,"text":1189},"Los scripts del plugin sin dependencias y sus comandos.","md",null,{"sourceHash":1352},"dff9319b694a",{"icon":69},{"title":66,"description":1348},"cWhAoHMpzFxfnWQpbSOKoBZTnXrqHPXxMNiIDH9J5h4",[1357,1359],{"title":166,"path":167,"stem":168,"description":1358,"icon":169,"children":-1},"Los hooks del plugin y lo que aplican.",{"title":174,"path":175,"stem":176,"description":1360,"icon":177,"children":-1},"Qué cambió en cada versión.",1793099619503]