{"_id":"@davinci-factory/aif","_rev":"8-cba99d560c8c68433bba1fb20d7bb0d5","name":"@davinci-factory/aif","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@davinci-factory/aif","version":"1.0.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.0.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"fedfd24719cc6a79d61167811433a697118b1c5e","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.0.0.tgz","fileCount":25,"integrity":"sha512-W5hFZS36AZVPaTpm+XAzYO71CwgmIGG//bf/gFWB4BOJDzC22Vuk5uptdLnk2cXzXJnlwMbR7oYQyFohg++EjQ==","signatures":[{"sig":"MEQCIGQRP6TQ1Wfio1Q+futAZO4sOkoe9M2x/sl7ZLSi3FvBAiAN5OpGNWwekxV8r4WYGKxp6v5y94KW932hX1p66RGg/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51112},"type":"module","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.0.0_1773154970105_0.034459711708431984","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@davinci-factory/aif","version":"1.1.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.1.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"b52be815b6ed89826cfc221e37d2735230145596","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.1.0.tgz","fileCount":33,"integrity":"sha512-X9a73P0+qQzB6lhyk7/PM9CSF62bE1KAJxdq+SaerVCRfqg13MtsGCJDBTJjEpQ7cJxQtSSwRNcL7jW/34mpOA==","signatures":[{"sig":"MEQCIBa+JhrXu07dMsk29h+tIK7uLQy3AzQrYYpCzjzfbLH6AiAetUuGGXq8anWNd0n8nFg/gEUO4p2VgulHOWCY62rjyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77476},"type":"module","gitHead":"3bee12f4ed7f179af49963b5606b49586311a325","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.1.0_1773244266398_0.23504579800746916","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@davinci-factory/aif","version":"1.2.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.2.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"7b65a65bb24b0b2ea9b121f66b8e413c1a7ad0e7","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.2.0.tgz","fileCount":41,"integrity":"sha512-5jBjqYFR1HXXqzCu1x2SWdWkfiN1/qcOwwZrB1jDFxASmgxN8HsQ1JYAZLJUX8GMDE12Ic4dLhKXJiTEbsZ/SA==","signatures":[{"sig":"MEUCIQDm+58hEycELQBMLNM/AaXkZKqGB0D7cG6TxECvKJx/cwIgRlFn5UWEvOwQFlvpsX7Dx3Y+qXaADd/t5t/9OOPorcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99145},"type":"module","gitHead":"d296fcdc8dd09bbf4735b44306553e4c8d5cebd9","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.2.0_1773247293116_0.7364955894817995","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@davinci-factory/aif","version":"1.3.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.3.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"6b427db988d0cd3f7d4478f818b139500b95dedb","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.3.0.tgz","fileCount":43,"integrity":"sha512-+y8c1kfEaT5N+mde8EvmBNK6C0OwSGIdcppvTR5cMdkezPprI6PHRKX0UD47+TWE2HveP4Iaqqxwv1j5/0djvA==","signatures":[{"sig":"MEQCIAdhnW6PcIvDYU9sbsCYuC+qHSWdubOQ4Y3k2DkGA5ieAiBkxa+GiYn+GDB7shE02XHYAFJVGzRigKyaA2v+QE6kqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119567},"type":"module","gitHead":"c3551f1861af60ffd24b59979f5bb5568de84753","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.3.0_1773925346894_0.11665437869494788","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@davinci-factory/aif","version":"1.4.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.4.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"e062130a1b78ce41a92f3540ff440bf5dccb51d1","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.4.0.tgz","fileCount":44,"integrity":"sha512-WuUx+6/nloMSQjpjXKeyoM50ZD4LRWu7yvXrUrLQnFw3hpLbk0Y+r4iRgC94V69oS0LZN9FnRcFN6g2MEmp7MA==","signatures":[{"sig":"MEUCIQCziH4UfLXX8KyaT0Niok8q9jJOXsUIWGu+eLr3KNEDsgIgRptnAVYZ8QAH15AaqFXyCvTzibYad75UzQ/bnIYRXhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151049},"type":"module","gitHead":"b67abaaf0c5b31783084b1dbdc3e9599aa08566f","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.4.0_1776976935447_0.9020383015330764","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@davinci-factory/aif","version":"1.5.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.5.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"b6b6a712efcec66d1317435f4dfc5fbeb1d49bdc","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.5.0.tgz","fileCount":44,"integrity":"sha512-HwZfEWIvGW3LyQrKWIQ8aBY9oYm/hgSMLgG2nWodoj8DUp+hBfQRpLoSClyWVhJiHAYP0IlkNpsXgcP9iHuqgw==","signatures":[{"sig":"MEUCIFCFfx0xkXqgIdfhdWprelP5e5c6wLJ7HjJtcqEm0nTKAiEA61zWXTNXStl10S5k7sKEvST145UPQhEiR9bc+QGwms4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167070},"type":"module","gitHead":"d8028ea5d9267e55146a7c4216313913c8a3632f","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.5.0_1776978552985_0.1941847634709657","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@davinci-factory/aif","version":"1.6.0","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","_id":"@davinci-factory/aif@1.6.0","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"bin":{"aif":"bin/aif.js"},"dist":{"shasum":"5cf40e05a7316662cdf9bf86235e17c831577c0c","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-1.6.0.tgz","fileCount":44,"integrity":"sha512-iHLuBIJdtgRMUKCN8zG/VBd7f8CP9l61TzNNXj2hKRQourNQKpFlUZkca05VwcgmnV1/zugXkcnTv7BsXHWK9g==","signatures":[{"sig":"MEUCIQDwDYQP7uRv/gU3uvp9PQ5lnw763P9aCWv7ekEkRsWzNwIgL1FxR8GbCpSwid3XpFXlL1H2eQMSwb6nBU8m+swHE2M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167533},"type":"module","gitHead":"2964627924fc517af551e752b5ad509aa670d6f0","_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"_npmVersion":"10.9.4","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^8.2.0","chalk":"^5.4.1","fs-extra":"^11.3.0","inquirer":"^12.6.0","commander":"^13.1.0","handlebars":"^4.7.8"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/aif_1.6.0_1777317526750_0.8645927905494066","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@davinci-factory/aif","version":"2.0.0","description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","type":"module","bin":{"aif":"bin/aif.js"},"keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"author":{"name":"Davinci AI Factory"},"license":"MIT","dependencies":{"chalk":"^5.4.1","commander":"^13.1.0","fs-extra":"^11.3.0","handlebars":"^4.7.8","inquirer":"^12.6.0","ora":"^8.2.0"},"_id":"@davinci-factory/aif@2.0.0","gitHead":"2964627924fc517af551e752b5ad509aa670d6f0","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-AJR6vIlNcA8oLNjj8hhBxvzm6n40/MyVJWrB8yhAl+Esbgh84zIIf1ZGMa+FFECCelXj8hB1c1CQIALDECnNUw==","shasum":"70c24e8cef72842898628da82b05aab46516ff1e","tarball":"https://registry.npmjs.org/@davinci-factory/aif/-/aif-2.0.0.tgz","fileCount":50,"unpackedSize":201397,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDTzbnViJ6QVzKwLTB6iOoFCCUhbEDuHjCr83ejuQPNyQIhAOi00IKCC3E4AgMVfbnxkeJmo2awWwTpSgNPtbCQCXhY"}]},"_npmUser":{"name":"davinci-factory","email":"julian.benavides@davinci.tech"},"directories":{},"maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aif_2.0.0_1777514954202_0.16389689588845413"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-10T15:02:50.013Z","modified":"2026-04-30T02:09:14.439Z","1.0.0":"2026-03-10T15:02:50.264Z","1.1.0":"2026-03-11T15:51:06.545Z","1.2.0":"2026-03-11T16:41:33.247Z","1.3.0":"2026-03-19T13:02:27.055Z","1.4.0":"2026-04-23T20:42:15.597Z","1.5.0":"2026-04-23T21:09:13.135Z","1.6.0":"2026-04-27T19:18:46.923Z","2.0.0":"2026-04-30T02:09:14.332Z"},"author":{"name":"Davinci AI Factory"},"license":"MIT","keywords":["davinci","ai-factory","ai-agents","antigravity","gemini-cli","workflow","cli","spec-driven","artifacts"],"description":"AI Factory CLI - Flujo de desarrollo con agentes IA para el equipo Davinci","maintainers":[{"name":"davinci-factory","email":"julian.benavides@davinci.tech"}],"readme":"# @davinci-factory/aif\n\n**AI Factory CLI** — Flujo de desarrollo con agentes IA para el equipo Davinci.\n\nConfigura en segundos tu proyecto (nuevo o existente) para trabajar con **Antigravity** y/o **Gemini CLI**. Genera reglas, slash commands, artefactos de cambio, CI local y GitHub Actions automaticamente.\n\nCada comando lleva al agente a traves de un flujo estructurado: **propuesta → especificaciones → diseno → tareas → implementacion → verificacion**.\n\n---\n\n## Instalacion\n\n```bash\n# Como dependencia de desarrollo en tu proyecto\nnpm i -D @davinci-factory/aif\n\n# O de forma global\nnpm i -g @davinci-factory/aif\n```\n\n---\n\n## Inicio rapido\n\n```bash\n# 1. Entra a tu proyecto\ncd mi-proyecto\n\n# 2. Ejecuta el wizard\nnpx aif i\n\n# 3. Verifica que todo este configurado\nnpx aif doc\n\n# 4. Listo! Usa los slash commands en Antigravity o Gemini CLI\n```\n\n---\n\n## Comandos del CLI\n\n| Comando | Alias | Descripcion |\n|---|---|---|\n| `aif i` | `aif init` | Wizard interactivo para configurar el proyecto |\n| `aif ci` | — | CI local: corre lint + tests + build |\n| `aif ls` | `aif list` | Lista los slash commands disponibles |\n| `aif up` | `aif update` | Regenera workflows y templates con la config guardada (sin re-correr el wizard) |\n| `aif doc` | `aif doctor` | Verifica que la configuracion este completa |\n| `aif monday sync` | — | Verifica/crea las 5 columnas y los 9 grupos del board de Monday |\n\n---\n\n## Slash commands generados\n\nDespues de ejecutar `aif i`, tendras estos comandos disponibles en tu agente IA:\n\n### Desarrollo (pipeline integrado)\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/feat` | Nueva feature con pipeline completo: propuesta → specs → diseno → tareas → implementacion → verificacion | `/feat crear endpoint de login con JWT` |\n| `/fix` | Corregir bug: diagnostico → spec del fix → implementacion minima → verificacion | `/fix el endpoint /users devuelve 500` |\n| `/refac` | Refactorizar: analisis → diseno antes/despues → refactor → verificacion | `/refac extraer logica de auth a un servicio` |\n\nCada comando genera artefactos en `specs/changes/<nombre>/` (proposal, specs, design, tasks) y pausa entre fases para que el dev apruebe antes de continuar.\n\n### Aprobaciones obligatorias antes de escribir codigo\n\nLos comandos que tocan codigo (`/feat`, `/fix`, `/refac`) y los que escriben docs al repo (`/iniciar`) **no avanzan a la fase de implementacion sin aprobacion explicita del dev**. En cada pausa el agente muestra este bloque y se detiene:\n\n```\n────────────────────────────────────────\nPAUSA — <nombre fase>\nArchivo: specs/changes/<nombre>/<archivo>.md\n\nOpciones:\n  [A] Aprobar y continuar a <siguiente fase>\n  [I] Iterar — dime que ajustar y actualizo el archivo\n  [C] Cancelar\n\nEsperando tu respuesta.\n────────────────────────────────────────\n```\n\n| Comando | Pausas antes de codigo |\n|---|---|\n| `/feat` | Propuesta, Specs, Diseno, Tareas (4 pausas) |\n| `/fix` | Diagnostico, Spec del fix (2 pausas) |\n| `/refac` | Analisis, Diseno (2 pausas) |\n| `/iniciar` | Plan inicial, PRD, ARCHITECTURE, CONVENTIONS (4 pausas) |\n\nReglas que aplica cada comando:\n- Feedback libre del dev (sin elegir letra) = **iterar**: reescribe SOLO el archivo de la fase actual y vuelve a mostrar la misma PAUSA\n- Iteraciones ilimitadas hasta que el dev escriba `[A]`\n- Silencio no es aprobacion — si no hay respuesta, repite la PAUSA\n- `/pick` no ejecuta el pipeline ni las pausas: baja la spec desde la columna **Archivo** de Monday y delega al comando que corresponda (`/feat`, `/fix` o `/refac`), que es quien aplica las pausas\n\n### Investigacion y verificacion\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/explore` | Investigar el codebase sin escribir codigo. Diagramas ASCII, analisis, preguntas. | `/explore como funciona el sistema de permisos` |\n| `/verify` | Re-verificar un cambio completado. Score 3D: Completitud + Correctitud + Coherencia. Archiva al aprobar. | `/verify login-oauth` |\n\n### Calidad\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/qa` | Revision de QA: valida contra specs/requerimientos, edge cases, regresiones | `/qa revisar PR #45` |\n| `/cr` | Code review: lee specs para contexto, evalua seguridad, performance, tests | `/cr revisar cambios en auth.service.ts` |\n\n### Soporte\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/onb` | Onboarding: explica arquitectura, modulos, flujo de datos, setup | `/onb explicar el modulo de pagos` |\n\n### Monday.com — Scrum (opcional)\n\nSi habilitas la integracion con Monday.com en el wizard, obtienes 6 comandos adicionales: 3 para el flujo del dev y 3 para el flujo del QA.\n\n#### Comandos del dev\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/backlog` | Lista la \"Cola de Fabricacion\" ordenada por Prioridad. Marca como **bloqueados** los items sin archivo en la columna Archivo. | `/backlog` |\n| `/pick` | Valida que el item tenga Archivo cargado, **descarga la spec** a `specs/changes/<nombre>/_spec-input.<ext>`, detecta tipo (Feature/Fix/Refactor), mueve a \"In Progress Dev\", crea branch, escribe `_monday.md` con criterios -> REQ-XXX y sugiere `/feat`, `/fix` o `/refac`. | `/pick 1234567890` |\n| `/done` | Valida CI (lint + tests), mueve a \"Done Dev\", deja un update corto en Monday avisando que esta listo para QA y archiva `specs/changes/<nombre>/` -> `specs/archive/<nombre>/`. | `/done` |\n\n#### Comandos del QA\n\n| Comando | Que hace | Ejemplo de uso |\n|---|---|---|\n| `/qa-backlog` | Lista \"Backlog QA\" ordenado por Prioridad. Marca como **bloqueados** los items sin archivo en la columna Spec QA (libreto E2E). | `/qa-backlog` |\n| `/qa-pick` | Valida que el item tenga Spec QA cargado, **descarga el libreto** a `qa/runs/<nombre>/_libreto.<ext>`, mueve a \"In Progress QA\", reasigna Responsable al QA y escribe `qa/runs/<nombre>/_qa.md` con criterios extraidos del libreto. | `/qa-pick 1234567890` |\n| `/qa-done` | Pide veredicto + evidencia. **PASS** -> mueve a \"Done QA\", publica resumen como update y archiva `qa/runs/` -> `qa/archive/`. **FAIL** -> mueve a \"In Progress Dev\" reasignando al **dev original** con bugs documentados como update (no archiva, deja la corrida para el siguiente intento). | `/qa-done` |\n\n> Promocion de \"Done QA\" -> \"Finish\" es manual del lead/release. Ningun comando del CLI la hace.\n\nEstos comandos usan el **MCP de Monday.com** (`@mondaydotcomorg/monday-api-mcp`) para leer y escribir en tu board directamente desde el agente IA. Funcionan igual en **Antigravity** y **Gemini CLI**.\n\n#### Estructura del board (predefinida)\n\nEl wizard sincroniza automaticamente esta estructura. NO te pregunta nombres de grupos ni columnas — son fijos.\n\n**9 grupos** (en orden del flujo):\n\n```\nDefinicion Spec -> Backlog PM -> Cola de Fabricacion ->\n  In Progress Dev -> Done Dev ->\n    Backlog QA -> In Progress QA -> Done QA -> Finish\n```\n\n**5 columnas**:\n\n| Columna | Tipo | Quien la usa | Para que |\n|---|---|---|---|\n| `Responsable` | people | Todos | Asignacion. `/pick` la setea al dev si esta vacia; `/qa-pick` la sobreescribe al QA; `/qa-done` (FAIL) la regresa al dev original |\n| `Estado` | status | Todos | Status del item. `/pick` y `/qa-pick` setean \"Working on it\"; `/done` y `/qa-done` (PASS) setean \"Done\"; `/qa-done` (FAIL) setea \"Stuck\" |\n| `Archivo` | file | Dev | Spec del dev (problema + solucion + criterios). PM la sube en \"Definicion Spec\"/\"Backlog PM\"; `/backlog` valida que exista; `/pick` la descarga como `_spec-input.<ext>` |\n| `Prioridad` | status (Alto/Medio/Bajo) | Todos | Orden de toma. `/backlog` y `/qa-backlog` ordenan Alto -> Medio -> Bajo |\n| `Spec QA` | file | QA | Libreto E2E (escenarios + criterios verificables + datos de prueba). PM/dev la sube cuando el item entra a Backlog QA; `/qa-backlog` valida que exista; `/qa-pick` la descarga como `_libreto.<ext>` |\n\n> **Regla de oro**: el item de Monday solo lleva metadata (titulo, prioridad, responsable). **Toda la informacion de la tarea vive en archivos**: `Archivo` para el dev, `Spec QA` para el QA. Sin esos archivos los comandos de `/pick`/`/qa-pick` abortan.\n\n#### Contrato entre comandos\n\n`/pick` deja en `specs/changes/<nombre>/`:\n- `_spec-input.<ext>` — spec original descargada de Monday (referencia inmutable)\n- `_monday.md` — contexto estructurado (item ID, tipo, criterios -> REQ-XXX, placeholder `## Verify Score`)\n\nCuando el dev arranca `/feat`, `/fix` o `/refac`:\n- Lee `_monday.md` y `_spec-input.<ext>` para generar proposal/specs/design/tasks\n- Al cerrar la fase de Verificacion, sobreescribe la linea bajo `## Verify Score` con `{score}/100 - {PASS|FAIL}` (queda en `specs/archive/` para trazabilidad cuando `/done` archive el folder)\n\n`/done` ya **no** consume Verify Score como columna en Monday — solo notifica que el desarrollo termino y mueve el item. Toda la trazabilidad queda en `specs/archive/<nombre>/`.\n\n`/qa-pick` deja en `qa/runs/<nombre>/`:\n- `_libreto.<ext>` — libreto descargado de Monday (referencia inmutable)\n- `_qa.md` — contexto QA (item ID, dev original, QA, criterios extraidos del libreto, escenarios principales, placeholder `## Resultado QA`)\n\n`/qa-done` sobreescribe `## Resultado QA` con veredicto + evidencia + bugs (si FAIL), publica el resultado como update en Monday y archiva la corrida (solo si PASS).\n\n> Si el dev arranca `/feat`/`/fix`/`/refac` sin pasar por `/pick`, el bloque \"Contexto opcional desde /pick\" no aplica y operan con lo que pida el dev directamente.\n\n#### Re-sincronizar despues\n\nSi agregas el board despues del wizard, renombras columnas/grupos, o quieres re-verificar:\n\n```bash\naif monday sync\n```\n\nLee `.aif/monday.json` y `.env`, consulta el board, lista que columnas y grupos existen/faltan, y ofrece crear los faltantes. Tambien se usa si anadiste la integracion Monday a un proyecto ya configurado.\n\n#### `.aif/monday.json`\n\nAl configurar Monday en el wizard se genera `.aif/monday.json` con esta forma:\n\n```json\n{\n  \"boardId\": \"1234567890\",\n  \"columns\": {\n    \"responsable\": \"people_xyz\",\n    \"estado\": \"status_abc\",\n    \"archivo\": \"file_def\",\n    \"prioridad\": \"status_ghi\",\n    \"specQa\": \"file_jkl\"\n  },\n  \"columnTitles\": {\n    \"responsable\": \"Responsable\",\n    \"estado\": \"Estado\",\n    \"archivo\": \"Archivo\",\n    \"prioridad\": \"Prioridad\",\n    \"specQa\": \"Spec QA\"\n  },\n  \"groups\": {\n    \"definicionSpec\": \"group_1\",\n    \"backlogPm\": \"group_2\",\n    \"colaFabricacion\": \"group_3\",\n    \"inProgressDev\": \"group_4\",\n    \"doneDev\": \"group_5\",\n    \"backlogQa\": \"group_6\",\n    \"inProgressQa\": \"group_7\",\n    \"doneQa\": \"group_8\",\n    \"finish\": \"group_9\"\n  },\n  \"groupTitles\": { \"definicionSpec\": \"Definición Spec\", ... }\n}\n```\n\nEste archivo **no** contiene secretos (el token sigue en `.env`) y puede commitearse si el equipo comparte el mismo board.\n\n---\n\n## Flujo de trabajo\n\n### Lado dev (Cola de Fabricacion -> Done Dev)\n\n```\nPM define spec y la sube a la columna \"Archivo\"\nPM mueve el item a \"Cola de Fabricacion\"\n  |\n  v\n/backlog                          <- Lista Cola de Fabricacion (solo items con Archivo)\n  |\n  v\n/pick {itemId}                    <- Valida Archivo, descarga _spec-input.<ext>,\n  |                                  detecta tipo, mueve a In Progress Dev,\n  |                                  crea branch, escribe _monday.md\n  v\n/feat | /fix | /refac             <- Pipeline (lee _monday.md + _spec-input)\n  |\n  +-- Fase 1: Propuesta           <- proposal.md (que y por que)         PAUSA\n  +-- Fase 2: Especificaciones    <- specs.md (REQs verificables)        PAUSA\n  +-- Fase 3: Diseno tecnico      <- design.md (arquitectura)            PAUSA\n  +-- Fase 4: Tareas              <- tasks.md (checkboxes concretas)     PAUSA\n  +-- Fase 5: Implementacion      <- Codigo + tests, marca [x] en tasks\n  +-- Fase 6: Verificacion        <- Score 3D, escribe en _monday.md\n  |\n  v\naif ci                            <- CI local (lint + test + build)\n  |\n  v\ngit push + PR + /cr               <- Push, PR, code review\n  |\n  v\n/done                             <- Valida CI, mueve a Done Dev, update\n  |                                  corto en Monday, archiva specs\n  v\nPM/dev sube libreto a \"Spec QA\" y mueve el item a \"Backlog QA\"\n```\n\n### Lado QA (Backlog QA -> Done QA)\n\n```\n/qa-backlog                       <- Lista Backlog QA (solo items con Spec QA)\n  |\n  v\n/qa-pick {itemId}                 <- Valida Spec QA, descarga _libreto.<ext>,\n  |                                  mueve a In Progress QA, reasigna Responsable,\n  |                                  escribe _qa.md\n  v\nQA ejecuta el libreto (Playwright/Cypress/manual)\n  |\n  v\n/qa-done\n  |\n  +-- PASS  -> Done QA            <- Update con resumen + evidencia, archiva qa/runs/\n  |             |\n  |             v\n  |           lead/release promueve manualmente a \"Finish\"\n  |\n  +-- FAIL  -> In Progress Dev    <- Reasigna al dev original, update con bugs\n                |                     y severidad. NO archiva la corrida.\n                v\n              dev corrige y vuelve a /done -> ciclo se repite\n```\n\n> **Sin Monday**: el flujo arranca directamente en `/feat`, `/fix` o `/refac`. Sin `/pick` no hay `_monday.md` ni `_spec-input`, y el pipeline opera con lo que pida el dev.\n\n### Artefactos por cambio\n\nCada `/feat`, `/fix` o `/refac` genera artefactos estructurados:\n\n```\nspecs/changes/<nombre-cambio>/\n  proposal.md     <- Problema, solucion, alcance, impacto\n  specs.md        <- Requerimientos formales (DEBE/NO DEBE + escenarios CUANDO/ENTONCES)\n  design.md       <- Arquitectura, componentes, decisiones, riesgos\n  tasks.md        <- Tareas concretas con checkboxes\n```\n\nAl completar y verificar, `/verify` mueve el cambio a `specs/archive/` y mergea las specs al principal.\n\n### Verificacion 3D\n\nCada comando incluye autoverificacion al terminar. `/verify` permite re-verificar:\n\n| Dimension | Peso | Que evalua |\n|---|---|---|\n| Completitud | 40% | Tareas [x], REQs implementados, escenarios con tests |\n| Correctitud | 40% | Tests pasan, lint pasa, sin vulnerabilidades, edge cases |\n| Coherencia | 20% | Naming consistente, patrones del proyecto, sin duplicacion |\n\nHallazgos clasificados como: **CRITICO** (bloquea merge) / **WARNING** (deberia corregirse) / **SUGERENCIA** (opcional).\n\n---\n\n## El wizard: `aif i`\n\nEl wizard te guia paso a paso:\n\n### 1. Tipo de proyecto\n- **Nuevo**: te pregunta todo (stack, framework, DB, testing)\n- **Existente**: analiza tu proyecto y detecta automaticamente el stack\n\n### 2. Herramienta de IA\nElige entre Antigravity, Gemini CLI, o ambas. Se generan los archivos en el formato correcto de cada herramienta.\n\n### 3. Stack tecnologico\nLenguaje, framework, base de datos y framework de testing.\n\n### 4. Convenciones\nNaming (camelCase/snake_case), estrategia de branches (GitFlow/Trunk-based) y formato de commits.\n\n### 5. QA\nTipo de proceso de QA del equipo y si incluir el comando `/qa` para review automatizado.\n\n### 6. CI/CD\n- **Local + GitHub Actions** (recomendado): `aif ci` para feedback rapido + pipeline en PRs\n- **Solo local**: solo `aif ci`\n- **Solo GitHub Actions**: solo el pipeline\n- **Ninguno**: se puede agregar despues\n\n### 7. Monday.com (Scrum) — opcional\nSi usas Monday.com para gestionar tareas, el wizard solo te pide:\n- **API Token**: tu token v2 de Monday.com (se guarda en `.env`, nunca se commitea)\n- **Board ID**: el ID del board\n\nLa estructura del board es **predefinida** (no te pregunta nombres). Despues de capturar el board, el wizard:\n\n1. **Sincroniza columnas**: consulta el board, lista las 5 columnas requeridas (`Responsable`, `Estado`, `Archivo`, `Prioridad`, `Spec QA`), marca cuales existen, y ofrece crear las faltantes. La columna `Prioridad` la crea con labels Alto/Medio/Bajo por defecto.\n2. **Sincroniza grupos**: hace lo mismo con los 9 grupos del flujo (`Definición Spec`, `Backlog PM`, `Cola de Fabricación`, `In Progress Dev`, `Done Dev`, `Backlog QA`, `In Progress QA`, `Done QA`, `Finish`).\n3. **Genera la config MCP** para que Antigravity y/o Gemini CLI puedan interactuar con Monday.\n\nSi rechazas crear los faltantes, los comandos `/pick`, `/done`, `/qa-*` te van a avisar cuando intenten usar algo que no existe. Puedes sincronizar despues con `aif monday sync`.\n\n### 8. Deteccion automatica (solo proyectos existentes)\nAnaliza `package.json`, git, framework, testing y linter. Te pide confirmar antes de generar.\n\n---\n\n## Archivos generados\n\n### Antigravity\n\n```\n.antigravity/rules.md              <- Reglas del proyecto (auto-cargado)\n.agents/workflows/feat.md           <- /feat (pipeline completo)\n.agents/workflows/fix.md            <- /fix (pipeline de bugfix)\n.agents/workflows/refac.md          <- /refac (pipeline de refactor)\n.agents/workflows/explore.md        <- /explore\n.agents/workflows/verify.md         <- /verify\n.agents/workflows/qa.md             <- /qa\n.agents/workflows/cr.md             <- /cr\n.agents/workflows/onb.md            <- /onb\n.agents/workflows/backlog.md        <- /backlog (Monday — dev, si habilitado)\n.agents/workflows/pick.md           <- /pick (Monday — dev)\n.agents/workflows/done.md           <- /done (Monday — dev)\n.agents/workflows/qa-backlog.md     <- /qa-backlog (Monday — QA)\n.agents/workflows/qa-pick.md        <- /qa-pick (Monday — QA)\n.agents/workflows/qa-done.md        <- /qa-done (Monday — QA)\n```\n\n### Gemini CLI\n\n```\nGEMINI.md                          <- Instrucciones base (auto-cargado)\n.gemini/commands/feat.toml         <- /feat (pipeline completo)\n.gemini/commands/fix.toml          <- /fix (pipeline de bugfix)\n.gemini/commands/refac.toml        <- /refac (pipeline de refactor)\n.gemini/commands/explore.toml      <- /explore\n.gemini/commands/verify.toml       <- /verify\n.gemini/commands/qa.toml           <- /qa\n.gemini/commands/cr.toml           <- /cr\n.gemini/commands/onb.toml          <- /onb\n.gemini/commands/backlog.toml      <- /backlog (Monday — dev, si habilitado)\n.gemini/commands/pick.toml         <- /pick (Monday — dev)\n.gemini/commands/done.toml         <- /done (Monday — dev)\n.gemini/commands/qa-backlog.toml   <- /qa-backlog (Monday — QA)\n.gemini/commands/qa-pick.toml      <- /qa-pick (Monday — QA)\n.gemini/commands/qa-done.toml      <- /qa-done (Monday — QA)\n.gemini/settings.json              <- MCP config Monday (si habilitado)\n```\n\n> Despues de generar los archivos de Gemini CLI, ejecuta `/commands reload` para cargar los nuevos comandos.\n\n### Compartido\n\n```\nAGENTS.md                          <- Definicion de agentes del flujo\nCONTEXT.md                         <- Contexto del proyecto (editar manualmente)\n.aif/config.json                   <- Config persistida por el wizard (sin secretos). Usada por `aif up` para regenerar sin re-preguntar.\n```\n\n### Artefactos\n\n```\nspecs/\n  changes/                         <- Cambios en progreso (creados por /feat, /fix, /refac)\n  archive/                         <- Cambios completados (movidos por /verify)\n  _template-proposal.md            <- Template reutilizable\n  _template-specs.md               <- Template reutilizable\n  _template-design.md              <- Template reutilizable\n  _template-tasks.md               <- Template reutilizable\n```\n\n### Monday.com (si habilitado)\n\n```\n.env                                          <- monday_token (en .gitignore, nunca se commitea)\n.aif/monday.json                              <- board + column IDs + group IDs (sin secretos, commiteable)\nspecs/changes/<nombre>/_spec-input.<ext>      <- creado por /pick: spec original descargada de la columna Archivo (referencia inmutable)\nspecs/changes/<nombre>/_monday.md             <- creado por /pick: contrato con /feat|fix|refac (item, criterios -> REQ-XXX, ## Verify Score)\nqa/runs/<nombre>/_libreto.<ext>               <- creado por /qa-pick: libreto descargado de la columna Spec QA (referencia inmutable)\nqa/runs/<nombre>/_qa.md                       <- creado por /qa-pick: contrato con /qa-done (item, dev original, criterios, ## Resultado QA)\nqa/archive/<nombre>/                          <- creado por /qa-done (PASS): corrida archivada con evidencia\n~/.gemini/antigravity/mcp_config.json         <- MCP Monday para Antigravity (config global)\n.gemini/settings.json                         <- MCP Monday para Gemini CLI (config proyecto)\n```\n\n> **Nota sobre Antigravity**: La config MCP se instala en `~/.gemini/antigravity/mcp_config.json` (global) porque Antigravity no soporta config MCP a nivel de proyecto. Si ya tienes otros MCP servers configurados, `aif i` hace merge automaticamente.\n\n> **Nota sobre Gemini CLI**: La config MCP se instala en `.gemini/settings.json` (proyecto). Usa `$monday_token` para leer el token desde tu entorno en runtime.\n\n### CI/CD\n\n```\n.github/workflows/ci.yml           <- GitHub Actions (corre en cada PR)\n```\n\n---\n\n## CI Local: `aif ci`\n\nCorre lint, tests y build localmente antes de hacer push. Detecta automaticamente el stack.\n\n```bash\n$ aif ci\n\n  Davinci AI Factory — CI Local\n  ==============================\n\n  Detectando stack...\n  + Node.js\n\n  Ejecutando validaciones...\n\n  [1/3] Lint...\n        npm run lint                              PASO\n\n  [2/3] Tests...\n        npm test                                  PASO\n\n  [3/3] Build...\n        npm run build                             PASO\n\n  ==============================\n  RESULTADO: PASO\n  Listo para push y PR.\n```\n\n### Deteccion automatica\n\n| Stack | Lint | Tests | Build |\n|---|---|---|---|\n| Node.js (con scripts en package.json) | `npm run lint` | `npm test` | `npm run build` |\n| Node.js (sin scripts) | `npx eslint .` | `npx jest` | `npx tsc --noEmit` |\n| Python | `ruff check .` | `pytest` | `mypy .` |\n\n> **Prioridad**: si `package.json` tiene scripts `lint`, `test` y `build` definidos, `aif ci` los usa directamente.\n\n---\n\n## Doctor: `aif doc`\n\nVerifica que todos los archivos necesarios esten presentes:\n\n```bash\n$ aif doc\n\n  Davinci AI Factory — Doctor\n\n  + Antigravity rules\n  + /feat\n  + /fix\n  + /refac\n  + /explore\n  + /verify\n  + /qa\n  + /cr\n  + /onb\n  + AGENTS.md\n  + CONTEXT.md\n  + specs/changes/\n  + specs/archive/\n  + GitHub Actions CI\n  + /backlog (Monday)\n  + /pick (Monday)\n  + /done (Monday)\n  + /qa-backlog (Monday)\n  + /qa-pick (Monday)\n  + /qa-done (Monday)\n  + .env (MONDAY_API_TOKEN)\n  + .aif/monday.json (board + columnas)\n\n  Todo en orden! Configuracion completa.\n```\n\nSi falta algo, te dice que ejecutes `aif i` para regenerar.\n\n---\n\n## Despues de instalar\n\n### Pasos para el equipo\n\n1. Clonar el repo del proyecto\n2. `npm install` (instala @davinci-factory/aif como devDependency)\n3. `npx aif doc` para verificar que todo esta configurado\n4. Empezar a usar `/feat`, `/fix`, `/explore`, etc. en Antigravity o Gemini CLI\n\n### Personalizar\n\n- **CONTEXT.md**: edita este archivo con informacion especifica de tu proyecto (descripcion, arquitectura, APIs externas, variables de entorno)\n- **Reglas**: edita `.antigravity/rules.md` o `GEMINI.md` para agregar reglas especificas\n- **Slash commands**: modifica los archivos en `.agents/workflows/` o `.gemini/commands/` para ajustar los prompts\n- **Templates de specs**: edita los archivos `specs/_template-*.md` para ajustar la estructura de los artefactos\n\n### Actualizar\n\n```bash\n# Actualizar el paquete\nnpm update @davinci-factory/aif\n\n# Regenerar workflows y templates con la config guardada (sin re-correr el wizard)\nnpx aif up\n```\n\n`aif up` lee `.aif/config.json` (lo crea el wizard) y `.env`, y vuelve a correr el generador. Si no existe `.aif/config.json` (proyectos creados con una version anterior a 1.6.0), corre `npx aif i` una sola vez y a partir de ahi `aif up` ya funciona sin preguntas.\n\n---\n\n## Requisitos\n\n- Node.js >= 18\n- npm >= 9\n- Antigravity y/o Gemini CLI instalados\n- Git (recomendado)\n- Monday.com API Token v2 (solo si usas la integracion Monday/Scrum)\n\n---\n\n## Soporte\n\nEquipo AI Factory — Davinci\n","readmeFilename":"README.md"}