[{"data":1,"prerenderedAt":581},["ShallowReactive",2],{"navigation_docs_es":3,"-es-concepts-living-specs":188,"-es-concepts-living-specs-surround":576},[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":46,"body":190,"description":568,"extension":569,"links":570,"meta":571,"navigation":573,"path":47,"seo":574,"stem":48,"__hash__":575},"docs_es\u002Fes\u002F2.concepts\u002F2.living-specs.md",{"type":191,"value":192,"toc":561},"minimark",[193,202,207,229,351,358,361,376,447,451,457,478,481,485,495,499,557],[194,195,196,197,201],"p",{},"El SDD de agent-kit está ",[198,199,200],"strong",{},"anclado a specs",": las specs no son documentos de planificación desechables; siguen siendo ciertas mientras viva el código.",[203,204,206],"h2",{"id":205},"specs-vivas","Specs vivas",[194,208,209,213,214,217,218,221,222,221,225,228],{},[210,211,212],"code",{},"work\u002Fspecs\u002F\u003Ccapacidad>\u002Fspec.md"," dice cómo se comporta ",[198,215,216],{},"hoy"," un área del sistema. Una capacidad es un área que los usuarios reconocen —",[210,219,220],{},"auth",", ",[210,223,224],{},"invoices",[210,226,227],{},"user-roles","—, no una página ni una tabla.",[230,231,237],"pre",{"className":232,"code":233,"filename":234,"language":235,"meta":236,"style":236},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","---\ncapability: auth\nretired: [auth.R1]\n---\n\n# Auth\n\n## Purpose\nWho can sign in and how.\n\n## Requirements\n\n### auth.R2 — Session restore\nWhile a session is stored, the app shall restore it on reload.\n\n#### auth.R2.S1 — Reload keeps the user signed in @simple\n- Given a signed-in user\n- When the page reloads\n- Then the user is still signed in\n","work\u002Fspecs\u002Fauth\u002Fspec.md","markdown","",[210,238,239,247,253,259,264,271,277,282,288,294,299,305,310,316,322,327,333,339,345],{"__ignoreMap":236},[240,241,244],"span",{"class":242,"line":243},"line",1,[240,245,246],{},"---\n",[240,248,250],{"class":242,"line":249},2,[240,251,252],{},"capability: auth\n",[240,254,256],{"class":242,"line":255},3,[240,257,258],{},"retired: [auth.R1]\n",[240,260,262],{"class":242,"line":261},4,[240,263,246],{},[240,265,267],{"class":242,"line":266},5,[240,268,270],{"emptyLinePlaceholder":269},true,"\n",[240,272,274],{"class":242,"line":273},6,[240,275,276],{},"# Auth\n",[240,278,280],{"class":242,"line":279},7,[240,281,270],{"emptyLinePlaceholder":269},[240,283,285],{"class":242,"line":284},8,[240,286,287],{},"## Purpose\n",[240,289,291],{"class":242,"line":290},9,[240,292,293],{},"Who can sign in and how.\n",[240,295,297],{"class":242,"line":296},10,[240,298,270],{"emptyLinePlaceholder":269},[240,300,302],{"class":242,"line":301},11,[240,303,304],{},"## Requirements\n",[240,306,308],{"class":242,"line":307},12,[240,309,270],{"emptyLinePlaceholder":269},[240,311,313],{"class":242,"line":312},13,[240,314,315],{},"### auth.R2 — Session restore\n",[240,317,319],{"class":242,"line":318},14,[240,320,321],{},"While a session is stored, the app shall restore it on reload.\n",[240,323,325],{"class":242,"line":324},15,[240,326,270],{"emptyLinePlaceholder":269},[240,328,330],{"class":242,"line":329},16,[240,331,332],{},"#### auth.R2.S1 — Reload keeps the user signed in @simple\n",[240,334,336],{"class":242,"line":335},17,[240,337,338],{},"- Given a signed-in user\n",[240,340,342],{"class":242,"line":341},18,[240,343,344],{},"- When the page reloads\n",[240,346,348],{"class":242,"line":347},19,[240,349,350],{},"- Then the user is still signed in\n",[194,352,353,354,357],{},"El contexto de sesión lista las capacidades (una línea); el agente lee la spec de una capacidad antes de cambiar su comportamiento. La notación se describe en ",[355,356,51],"a",{"href":52},".",[203,359,174],{"id":360},"cambios",[194,362,363,364,367,368,371,372,375],{},"El trabajo complejo es un ",[198,365,366],{},"cambio"," en ",[210,369,370],{},"work\u002Fchanges\u002FNNN-slug\u002F",", creado con ",[210,373,374],{},"agent-kit work new change \u003Cslug>",":",[377,378,379,392],"table",{},[380,381,382],"thead",{},[383,384,385,389],"tr",{},[386,387,388],"th",{},"Archivo",[386,390,391],{},"Qué es",[393,394,395,406,427,437],"tbody",{},[383,396,397,403],{},[398,399,400],"td",{},[210,401,402],{},"proposal.md",[398,404,405],{},"Por qué, qué cambia (dentro \u002F fuera), capacidades afectadas, preguntas abiertas. El primer artefacto que apruebas.",[383,407,408,413],{},[398,409,410],{},[210,411,412],{},"specs\u002F\u003Ccapacidad>.md",[398,414,415,416,221,419,422,423,426],{},"Spec delta: ",[210,417,418],{},"## ADDED",[210,420,421],{},"## MODIFIED"," (el bloque completo como debe quedar) y ",[210,424,425],{},"## REMOVED Requirements"," (con un motivo).",[383,428,429,434],{},[398,430,431],{},[210,432,433],{},"plan.md",[398,435,436],{},"Archivos, cambios de esquema \u002F RPC, decisiones, riesgos.",[383,438,439,444],{},[398,440,441],{},[210,442,443],{},"tasks.md",[398,445,446],{},"Tareas ordenadas con los ids de escenario que cubren, la evidencia bajo cada una y una tabla de verificación.",[203,448,450],{"id":449},"fusión","Fusión",[194,452,453,454,375],{},"Cuando el cambio está verificado, ",[210,455,456],{},"agent-kit specs merge NNN",[458,459,460,468,471],"ul",{},[461,462,463,464,467],"li",{},"aplica todos los deltas del cambio ",[198,465,466],{},"o ninguno",": se niega y nombra el conflicto cuando falta un requisito MODIFIED o REMOVED, o cuando un id ADDED está tomado o retirado;",[461,469,470],{},"retira los ids de requisitos eliminados y los escenarios que faltan en un bloque MODIFIED (nunca se reutilizan, así los tests, las pasadas de QA y los fixtures antiguos no apuntan al comportamiento equivocado);",[461,472,473,474,477],{},"marca la propuesta con ",[210,475,476],{},"merged: \u003Cfecha>"," y renueva el checklist de QA.",[194,479,480],{},"La carpeta del cambio se queda como registro de por qué cambió el comportamiento.",[203,482,484],{"id":483},"ids","Ids",[194,486,487,490,491,494],{},[210,488,489],{},"agent-kit specs next \u003Ccapacidad>"," da el siguiente id de requisito; ",[210,492,493],{},"agent-kit specs next \u003Ccapacidad>.R\u003Cn>",", el siguiente id de escenario. Ambos cuentan los ids vivos, retirados y de deltas pendientes, para que dos cambios abiertos no choquen.",[203,496,498],{"id":497},"herramientas","Herramientas",[377,500,501,511],{},[380,502,503],{},[383,504,505,508],{},[386,506,507],{},"Comando",[386,509,510],{},"Hace",[393,512,513,523,533,543],{},[383,514,515,520],{},[398,516,517],{},[210,518,519],{},"agent-kit specs lint [cap|NNN]",[398,521,522],{},"Revisa la notación y los ids (sale con 1 si hay errores).",[383,524,525,530],{},[398,526,527],{},[210,528,529],{},"agent-kit specs list",[398,531,532],{},"Capacidades con su número de requisitos y escenarios.",[383,534,535,540],{},[398,536,537],{},[210,538,539],{},"agent-kit specs trace [NNN|cap]",[398,541,542],{},"Escenario → tests o comprobaciones ✅.",[383,544,545,554],{},[398,546,547,550,551],{},[210,548,549],{},"agent-kit work status"," \u002F ",[210,552,553],{},"board",[398,555,556],{},"Trabajo activo y su próxima tarea.",[558,559,560],"style",{},"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":236,"searchDepth":249,"depth":249,"links":562},[563,564,565,566,567],{"id":205,"depth":249,"text":206},{"id":360,"depth":249,"text":174},{"id":449,"depth":249,"text":450},{"id":483,"depth":249,"text":484},{"id":497,"depth":249,"text":498},"SDD anclado a specs — las specs vivas son la fuente de verdad y los cambios traen deltas que se fusionan en ellas.","md",null,{"sourceHash":572},"f6e8afaa335d",{"icon":49},{"title":46,"description":568},"sdlrTQP9pdCWqBu-f9PyD7Gtd0Kn_F5QTitlVqdrQCI",[577,579],{"title":41,"path":42,"stem":43,"description":578,"icon":44,"children":-1},"Cada pedido pasa por uno de tres carriles; el método decide cuánta prueba necesita un cambio.",{"title":51,"path":52,"stem":53,"description":580,"icon":54,"children":-1},"Una notación estándar en cada paso — requisitos EARS, escenarios Given\u002FWhen\u002FThen, etiquetas ZOMBIES, ids de escenario en los nombres de los tests.",1793099614078]