[{"data":1,"prerenderedAt":522},["ShallowReactive",2],{"navigation_docs_es":3,"-es-concepts-qa-and-test-data":188,"-es-concepts-qa-and-test-data-surround":517},[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":56,"body":190,"description":509,"extension":510,"links":511,"meta":512,"navigation":514,"path":57,"seo":515,"stem":58,"__hash__":516},"docs_es\u002Fes\u002F2.concepts\u002F4.qa-and-test-data.md",{"type":191,"value":192,"toc":503},"minimark",[193,210,215,226,239,253,257,264,299,331,345,349,356,414,417,491,499],[194,195,196,197,201,202,205,206,209],"p",{},"Ambas partes son opcionales, se preguntan al instalar (por defecto sí) y se cambian volviendo a ejecutar ",[198,199,200],"code",{},"init"," (",[198,203,204],{},"--qa-checklist",", ",[198,207,208],{},"--test-data",").",[211,212,214],"h2",{"id":213},"checklist-de-qa","Checklist de QA",[194,216,217,220,221,225],{},[198,218,219],{},"work\u002Fqa\u002Fchecklist.md"," se ",[222,223,224],"strong",{},"genera"," desde las specs vivas; nunca se edita a mano:",[227,228,229,233,236],"ul",{},[230,231,232],"li",{},"un ítem por escenario, agrupado por capacidad y requisito;",[230,234,235],{},"la frase EARS, los pasos Given \u002F When \u002F Then, la etiqueta ZOMBIES;",[230,237,238],{},"el fixture de datos de prueba que da los datos del escenario (o \"no fixture\").",[194,240,241,244,245,248,249,252],{},[198,242,243],{},"agent-kit qa sync"," lo regenera (y también ",[198,246,247],{},"checklist.html","); ",[198,250,251],{},"agent-kit specs merge"," lo hace por ti.",[211,254,256],{"id":255},"pasadas-de-qa","Pasadas de QA",[194,258,259,260,263],{},"Una pasada de QA es un archivo con fecha en ",[198,261,262],{},"work\u002Fqa\u002Fruns\u002F",":",[265,266,272],"pre",{"className":267,"code":268,"filename":269,"language":270,"meta":271,"style":271},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @razcue\u002Fagent-kit qa run --env staging\n","Terminal","bash","",[198,273,274],{"__ignoreMap":271},[275,276,279,283,287,290,293,296],"span",{"class":277,"line":278},"line",1,[275,280,282],{"class":281},"sBMFI","npx",[275,284,286],{"class":285},"sfazB"," @razcue\u002Fagent-kit",[275,288,289],{"class":285}," qa",[275,291,292],{"class":285}," run",[275,294,295],{"class":285}," --env",[275,297,298],{"class":285}," staging\n",[194,300,301,302,201,305,308,309,308,312,308,315,318,319,322,323,326,327,330],{},"Rellena ",[222,303,304],{},"Result",[198,306,307],{},"pass"," · ",[198,310,311],{},"fail",[198,313,314],{},"blocked",[198,316,317],{},"n\u002Fa",") y ",[222,320,321],{},"Note"," para cada escenario. O abre ",[198,324,325],{},"work\u002Fqa\u002Fchecklist.html"," en el navegador, registra ahí los resultados (se guardan en el navegador) y usa ",[222,328,329],{},"Export run"," para guardar el mismo archivo.",[194,332,333,336,337,340,341,344],{},[198,334,335],{},"agent-kit qa status"," muestra el último resultado por escenario. Cada pasada guarda el hash del texto del escenario, así que uno que cambió después de pasar aparece como ",[222,338,339],{},"re-check"," y uno nunca probado como ",[222,342,343],{},"never run",".",[211,346,348],{"id":347},"datos-de-prueba-supabase","Datos de prueba (Supabase)",[194,350,351,352,355],{},"Los proyectos con Supabase reciben ",[198,353,354],{},"supabase\u002Ftest-data\u002F"," (ruta y prefijo configurables):",[357,358,359,372],"table",{},[360,361,362],"thead",{},[363,364,365,369],"tr",{},[366,367,368],"th",{},"Archivo",[366,370,371],{},"Qué es",[373,374,375,394,404],"tbody",{},[363,376,377,383],{},[378,379,380],"td",{},[198,381,382],{},"env.sql",[378,384,385,386,389,390,393],{},"Crea ",[198,387,388],{},"public._env",": qué entorno es una base de datos. Ejecútalo en ",[222,391,392],{},"todos"," los entornos y fija el valor una vez.",[363,395,396,401],{},[378,397,398],{},[198,399,400],{},"seed.sql",[378,402,403],{},"Crea los datos de prueba mediante las RPCs de la app. Una transacción.",[363,405,406,411],{},[378,407,408],{},[198,409,410],{},"purge.sql",[378,412,413],{},"Borra solo las filas de prueba, primero las hijas. Una transacción.",[194,415,416],{},"Reglas que aplican los scripts y la skill del stack:",[227,418,419,446,463,469,477],{},[230,420,421,427,428,430,431,205,434,437,438,441,442,445],{},[222,422,423,424,344],{},"Primero la guarda ",[198,425,426],{},"_env"," Ambos scripts se niegan salvo que ",[198,429,426],{}," diga ",[198,432,433],{},"dev",[198,435,436],{},"test"," o ",[198,439,440],{},"staging",": sin fila o con ",[198,443,444],{},"production"," no cambia nada.",[230,447,448,451,452,455,456,459,460,344],{},[222,449,450],{},"Solo filas marcadas."," Cada fila empieza con el prefijo (",[198,453,454],{},"TEST_","); purge compara con ",[198,457,458],{},"starts_with()",", nunca con ",[198,461,462],{},"LIKE",[230,464,465,468],{},[222,466,467],{},"Mediante las RPCs",", para que saldos, inventario y auditoría queden coherentes.",[230,470,471,201,474,209],{},[222,472,473],{},"Fechas relativas",[198,475,476],{},"current_date - 30",[230,478,479,482,483,486,487,490],{},[222,480,481],{},"Fixtures por escenario, elegidos con ZOMBIES",": ",[198,484,485],{},"-- @fixture invoices.R2.S3 @boundary",". ",[198,488,489],{},"agent-kit qa gaps"," lista los escenarios sin fixture y los fixtures que nombran escenarios desconocidos.",[194,492,493,494,498],{},"Preflight avisa cuando cambian las migraciones y ni seed ni purge cambian. Mira la ",[495,496,497],"a",{"href":127},"guía de datos de prueba"," para aplicarlos.",[500,501,502],"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 .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":271,"searchDepth":504,"depth":504,"links":505},2,[506,507,508],{"id":213,"depth":504,"text":214},{"id":255,"depth":504,"text":256},{"id":347,"depth":504,"text":348},"Un checklist de QA generado desde las specs vivas, pasadas de QA con fecha y datos de prueba de Supabase que no pueden tocar producción.","md",null,{"sourceHash":513},"7d5fc8b9d5ac",{"icon":59},{"title":56,"description":509},"0jpEGb2mVYTxs4rm0CW5yDP9N2-8D-soLZWZYceXe-U",[518,520],{"title":51,"path":52,"stem":53,"description":519,"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.",{"title":61,"path":62,"stem":63,"description":521,"icon":64,"children":-1},"Hechos y decisiones en archivos pequeños, con ámbito de proyecto, de máquina o de todos los proyectos; solo cargan los resúmenes.",1793099614143]