xonecode 0.17.2 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/web/dist/assets/{index-BRVuyPBf.js → index-BvPUqjUm.js} +72 -72
- package/apps/web/dist/assets/{index-DLfF2uEK.css → index-CGEXMJBx.css} +1 -1
- package/apps/web/dist/assets/{php-B5LpMCn-.js → php-Dk28VW45.js} +1 -1
- package/apps/web/dist/assets/{ruby-Clm-qfwM.js → ruby-CPzEcmdp.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/dist/agent/config/iconosEnRed.js +47 -0
- package/dist/agent/config/iconosEnRed.js.map +1 -0
- package/dist/agent/config/modelos.js +13 -8
- package/dist/agent/config/modelos.js.map +1 -1
- package/dist/agent/dispositivos/decodificarImagen.js +62 -0
- package/dist/agent/dispositivos/decodificarImagen.js.map +1 -0
- package/dist/agent/grafo/atributosXone.js +58 -0
- package/dist/agent/grafo/atributosXone.js.map +1 -0
- package/dist/agent/grafo/buscarIcono.js +92 -0
- package/dist/agent/grafo/buscarIcono.js.map +1 -0
- package/dist/agent/grafo/compararCapturas.js +103 -0
- package/dist/agent/grafo/compararCapturas.js.map +1 -0
- package/dist/agent/grafo/criticaVisual.js +23 -3
- package/dist/agent/grafo/criticaVisual.js.map +1 -1
- package/dist/agent/grafo/diferenciaDeCapturas.js +88 -0
- package/dist/agent/grafo/diferenciaDeCapturas.js.map +1 -0
- package/dist/agent/grafo/generarFondoSvg.js +83 -0
- package/dist/agent/grafo/generarFondoSvg.js.map +1 -0
- package/dist/agent/grafo/lectorDeReferencias.js +19 -0
- package/dist/agent/grafo/lectorDeReferencias.js.map +1 -0
- package/dist/agent/grafo/xoneAgent.js +11 -3
- package/dist/agent/grafo/xoneAgent.js.map +1 -1
- package/dist/agent/motores/trueforge/capacidades.js +49 -1
- package/dist/agent/motores/trueforge/capacidades.js.map +1 -1
- package/dist/agent/motores/trueforge/esperas.js +61 -0
- package/dist/agent/motores/trueforge/esperas.js.map +1 -0
- package/dist/agent/motores/trueforge/eventosTrueforge.js +11 -1
- package/dist/agent/motores/trueforge/eventosTrueforge.js.map +1 -1
- package/dist/agent/motores/trueforge/informesDeHijos.js +63 -0
- package/dist/agent/motores/trueforge/informesDeHijos.js.map +1 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.js +118 -0
- package/dist/agent/motores/trueforge/medidaAutomatica.js.map +1 -0
- package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js +186 -0
- package/dist/agent/motores/trueforge/memoriaDeEspecialistas.js.map +1 -0
- package/dist/agent/motores/trueforge/modeloLangchain.js +5 -0
- package/dist/agent/motores/trueforge/modeloLangchain.js.map +1 -1
- package/dist/agent/motores/trueforge/resumenSeguro.js +52 -0
- package/dist/agent/motores/trueforge/resumenSeguro.js.map +1 -0
- package/dist/agent/motores/trueforge/sesionTrueforge.js +545 -26
- package/dist/agent/motores/trueforge/sesionTrueforge.js.map +1 -1
- package/dist/agent/motores/trueforge/toolsDeFichero.js +69 -3
- package/dist/agent/motores/trueforge/toolsDeFichero.js.map +1 -1
- package/dist/agent/subagentes/agentesEnDisco.js +88 -19
- package/dist/agent/subagentes/agentesEnDisco.js.map +1 -1
- package/dist/agent/turno/diagnosticoDeTools.js +44 -3
- package/dist/agent/turno/diagnosticoDeTools.js.map +1 -1
- package/dist/agent/turno/informeDeTraza.js +66 -4
- package/dist/agent/turno/informeDeTraza.js.map +1 -1
- package/dist/agent/turno/registroDeFallos.js +6 -1
- package/dist/agent/turno/registroDeFallos.js.map +1 -1
- package/dist/agent/turno/resumenDeTool.js +12 -0
- package/dist/agent/turno/resumenDeTool.js.map +1 -1
- package/dist/agent/turno/turnoReal.js +8 -2
- package/dist/agent/turno/turnoReal.js.map +1 -1
- package/dist/cli/run.js +11 -0
- package/dist/cli/run.js.map +1 -1
- package/dist/core/agentes.js +36 -2
- package/dist/core/agentes.js.map +1 -1
- package/dist/core/analisisDeSesion.js +198 -0
- package/dist/core/analisisDeSesion.js.map +1 -0
- package/dist/core/atributosXone.js +187 -0
- package/dist/core/atributosXone.js.map +1 -0
- package/dist/core/compararCapturas.js +405 -0
- package/dist/core/compararCapturas.js.map +1 -0
- package/dist/core/esfuerzo.js +33 -0
- package/dist/core/esfuerzo.js.map +1 -1
- package/dist/core/fallos.js.map +1 -1
- package/dist/core/fondosSvg.js +223 -0
- package/dist/core/fondosSvg.js.map +1 -0
- package/dist/core/iconos.js +140 -0
- package/dist/core/iconos.js.map +1 -0
- package/dist/core/modoDeEscritura.js +40 -0
- package/dist/core/modoDeEscritura.js.map +1 -1
- package/dist/core/notify.js +8 -0
- package/dist/core/notify.js.map +1 -1
- package/dist/core/nucleoXone.js +113 -0
- package/dist/core/nucleoXone.js.map +1 -0
- package/dist/core/paqueteDeSoporte.js +118 -0
- package/dist/core/paqueteDeSoporte.js.map +1 -0
- package/dist/core/ports.js +31 -0
- package/dist/core/ports.js.map +1 -1
- package/dist/core/referenciasDeImagen.js +55 -0
- package/dist/core/referenciasDeImagen.js.map +1 -0
- package/dist/core/selectorDeCarpeta.js +15 -1
- package/dist/core/selectorDeCarpeta.js.map +1 -1
- package/dist/core/settings.js +19 -4
- package/dist/core/settings.js.map +1 -1
- package/dist/core/shellDeAgente.js +39 -0
- package/dist/core/shellDeAgente.js.map +1 -1
- package/dist/core/tareasDelPlan.js +69 -7
- package/dist/core/tareasDelPlan.js.map +1 -1
- package/dist/web/servidor/arranque.js +110 -0
- package/dist/web/servidor/arranque.js.map +1 -1
- package/dist/web/servidor/sesiones.js +8 -0
- package/dist/web/servidor/sesiones.js.map +1 -1
- package/dist/web/servidor/soporte.js +571 -0
- package/dist/web/servidor/soporte.js.map +1 -0
- package/dist/web/servidor/transporte.js.map +1 -1
- package/package.json +4 -1
- package/skills/xone-development/references/css/propiedades-y-herencia.md +2 -0
- package/skills/xone-development/references/datos/appdata-referencia-ampliada.md +2 -2
- package/skills/xone-development/references/datos/appdata.md +5 -3
- package/skills/xone-development/references/fundamentos/errores-comunes.md +49 -0
- package/skills/xone-development/references/xml-ui/prop-tipos-basicos.md +2 -0
- package/skills/xone-hotswap/SKILL.md +4 -0
- package/skills/xone-hotswap/scripts/xone-log-android +18 -1
- package/skills/xone-plan-builder/SKILL.md +18 -10
- package/skills/xone-plan-builder/references/TASKS-FORMAT.md +13 -5
- package/skills/xone-project-generator/references/fases-10-12-readmes-y-validacion.md +1 -0
- package/skills/xone-spec-builder/SKILL.md +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soporte.js","sourceRoot":"","sources":["../../../src/web/servidor/soporte.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transporte.js","sourceRoot":"","sources":["../../../src/web/servidor/transporte.ts"],"names":[],"mappings":"AA4HA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa;IACb,cAAc;IACd,UAAU;IACV,aAAa;IACb,UAAU;IACV,sBAAsB;CACd,CAAC;AAGX,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;AAy9BrG;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CAAC,CAAQ;IAClC,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,uFAAuF;QACvF,uCAAuC;QACvC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;QACvB,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM;QACjC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvD,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvD,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACtE,GAAG,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,SAAS,EAAE;oBACT,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS;oBAChC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO;oBAC5B,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;oBACpF,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;iBAClF;aACF,CAAC;QACN,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"transporte.js","sourceRoot":"","sources":["../../../src/web/servidor/transporte.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xonecode",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.1",
|
|
4
4
|
"description": "Consola CLI y harness de agente para desarrollar aplicaciones XOne",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,9 +51,11 @@
|
|
|
51
51
|
"fflate": "^0.8.3",
|
|
52
52
|
"ink": "^5.2.1",
|
|
53
53
|
"ink-testing-library": "^4.0.0",
|
|
54
|
+
"jpeg-js": "^0.4.4",
|
|
54
55
|
"langchain": "1.5.10",
|
|
55
56
|
"marked": "^16.4.2",
|
|
56
57
|
"micromatch": "4.0.8",
|
|
58
|
+
"pngjs": "^7.0.0",
|
|
57
59
|
"react": "^18.3.1",
|
|
58
60
|
"winston": "3.19.0",
|
|
59
61
|
"ws": "^8.21.3",
|
|
@@ -64,6 +66,7 @@
|
|
|
64
66
|
"@types/better-sqlite3": "^7.6.12",
|
|
65
67
|
"@types/micromatch": "4.0.10",
|
|
66
68
|
"@types/node": "^20.19.43",
|
|
69
|
+
"@types/pngjs": "^6.0.5",
|
|
67
70
|
"@types/react": "^18.3.31",
|
|
68
71
|
"@types/ws": "^8.18.1",
|
|
69
72
|
"jsdom": "^25.0.1",
|
|
@@ -517,6 +517,8 @@ El atributo `visible` usa un sistema de mascara de bits que controla en que modo
|
|
|
517
517
|
|
|
518
518
|
> **NOTA:** La propiedad `elevation` funciona principalmente en Android, donde genera una sombra real bajo el elemento. En iOS, el efecto puede variar o no ser visible. Como alternativa multiplataforma, se pueden usar bordes sutiles (`border: true; border-color: #E0E0E0;`) para dar sensacion de profundidad.
|
|
519
519
|
|
|
520
|
+
> **⚠️ `elevation` recorta el fondo de un botón con esquinas redondeadas.** Medido en un emulador Android: con `elevation: 4` y `border-corner-radius`, las teclas salen con la parte de abajo cortada en plano (forma de lápida: arco arriba, base recta); con `elevation: 0` salen rectángulos redondeados completos, y una tecla con otra clase que conservaba elevación seguía cortada. Ni el verificador (`validate` da verde) ni las medidas de las cajas lo ven: la tecla cabe en su fila. **En un control redondeado no pongas `elevation`; la sombra, si hace falta, se dibuja en el fondo** (un SVG generado, con la sombra hecha de capas). Sin medir en iOS.
|
|
521
|
+
|
|
520
522
|
**Ejemplo - Footer fijo en la parte inferior (proyecto SocialNetwork):**
|
|
521
523
|
|
|
522
524
|
```css
|
|
@@ -119,8 +119,8 @@ let sFrameVersion = appData.getGlobalMacro("##FRAME_VERSION##");
|
|
|
119
119
|
let valor = appData.getGlobalMacro("##MI_MACRO##");
|
|
120
120
|
appData.setGlobalMacro("##MI_MACRO##", "mi_valor");
|
|
121
121
|
|
|
122
|
-
// Escribir mensaje de debug
|
|
123
|
-
|
|
122
|
+
// Escribir mensaje de debug: console.log (writeConsoleString es legacy y no llega al log de Android)
|
|
123
|
+
console.log("Debug: valor = " + valor);
|
|
124
124
|
|
|
125
125
|
// Limpiar errores acumulados
|
|
126
126
|
appData.error().clear();
|
|
@@ -372,8 +372,8 @@ appData.exit();
|
|
|
372
372
|
// === Cerrar la ventana actual ===
|
|
373
373
|
ui.getView(self).exit();
|
|
374
374
|
|
|
375
|
-
// === Escribir en consola de debug ===
|
|
376
|
-
|
|
375
|
+
// === Escribir en consola de debug: console.log (writeConsoleString es legacy) ===
|
|
376
|
+
console.log("Debug: valor = " + valor);
|
|
377
377
|
|
|
378
378
|
// === Cargar archivos include (solo para casos dinámicos — preferir <include>/<script> en <app>; ver 4.11) ===
|
|
379
379
|
appData.loadIncludeFile("scripts/miModulo.js", "javascript", "UTF-8");
|
|
@@ -456,7 +456,9 @@ if (error.getNumber() != 0) {
|
|
|
456
456
|
}
|
|
457
457
|
```
|
|
458
458
|
|
|
459
|
-
#### writeConsoleString(message) - Consola de Depuracion
|
|
459
|
+
#### writeConsoleString(message) - Consola de Depuracion (legacy)
|
|
460
|
+
|
|
461
|
+
> **Legacy: para depurar, `console.log`.** Medido en un emulador Android: `console.log("X")` sale en el log del host como `V XOneJavaScript: X` (se lee con `xone-log-android --app`), y `appData.writeConsoleString` no deja nada en el log. No uses tampoco `ui.showToast` para depurar: el aviso desaparece y no deja rastro.
|
|
460
462
|
|
|
461
463
|
```javascript
|
|
462
464
|
appData.writeConsoleString("App_log_xone->Mensaje de depuracion");
|
|
@@ -178,6 +178,21 @@ El formato más habitual es PNG por compatibilidad historica, pero SVG es perfec
|
|
|
178
178
|
|
|
179
179
|
**Anti-patrón frecuente — NO renderizar SVG con un `type="WEB"`:** el soporte de SVG en XOne es nativo y completo. Un `.svg` es una imagen más: se refiere con `type="IMG"` (`path="dibujo.svg"`) o con los atributos `img`/`imgbk`, igual que un PNG. Envolverlo en un WebView (`type="WEB"`) para "que se vea" es innecesario, no aporta nada y rompe el escalado y la integración con el control. El control `WEB` es solo para contenido web remoto (URLs), nunca para imágenes locales.
|
|
180
180
|
|
|
181
|
+
**Cuando el proyecto no trae el icono, no lo dibujes a mano.** Si tienes la tool `buscar_icono` (no todos los agentes la tienen), consulta Iconify (más de 200 colecciones) en dos pasos: `buscar` con un texto —en inglés rinde más— y `obtener` con el id que salió, un **color hexadecimal** y una altura en píxeles. Solo lee: el SVG lo escribes tú con `write_file` en `icons/ic_<nombre>.svg` (la convención `ic_`, con guiones bajos), tal cual, y se aprueba como cualquier escritura. Se referencia con el **nombre a secas** —`img="ic_home.svg"`—, como el resto de imágenes: XOne lo busca en `icons/`. Sin la tool, pide el asset o deja el botón con texto.
|
|
182
|
+
|
|
183
|
+
**Un icono NO va en el `img` de un botón: se estira.** En un `type="B"`, `img` pinta la imagen llenando el botón entero (medido: un icono de 48 px en un botón ancho salió deformado hasta ocupar todo el ancho). El icono suelto va en su propio `type="IMG"` con `path="ic_home.svg"` y el tamaño que tenga, que sale nítido. El `img` de un botón sirve para un fondo del tamaño del botón (ver abajo).
|
|
184
|
+
|
|
185
|
+
- **Un solo estilo por app.** Elige UNA colección (`lucide`, `tabler`…) y quédate en ella: mezclar trazos de colecciones distintas se ve desigual.
|
|
186
|
+
- **El color va explícito, y el tamaño también.** Sin ellos Iconify devuelve `currentColor` y `width="1em"`, que esta documentación no dice cómo resuelve XOne; un icono sin tinte o sin tamaño válido no da error, sale mal en silencio. Por eso `obtener` los exige.
|
|
187
|
+
- **Sin red, la tool lo dice.** No inventes el `path` del SVG: pide el asset o deja el botón con texto.
|
|
188
|
+
- **Un icono referenciado que no está en `icons/` tampoco da error**: XOne lo ignora. Tras escribirlos, comprueba que cada `img`/`path` apunta a un fichero que existe.
|
|
189
|
+
|
|
190
|
+
**Degradados, sombras y resplandores: `imgbk` con un SVG generado.** XOne no los trae, y los filtros SVG (`feGaussianBlur`, `feDropShadow`) **se ignoran en silencio**: no los escribas. Si tienes la tool `generar_fondo_svg`, pásale el ancho y el alto **del control** que lleva el fondo (solo cuenta la proporción) y el tipo (`degradado-lineal`, `degradado-radial`, `sombra`, `glow`); escribe el SVG con `write_file` en `icons/bg_<nombre>.svg`. **En un frame o grupo se usa con `imgbk="bg_<nombre>.svg"`; en un botón (`type="B"`) con `img="bg_<nombre>.svg"`** (y `imgsel` para el pulsado): en un botón `imgbk` se IGNORA, ni como atributo ni desde una clase CSS, y sale el botón nativo gris. Las medidas se pasan como las declaras en el XML (`"90%"`, `"60p"`, `"120px"`); son una estimación sobre un aparato de 1080 px de ancho.
|
|
191
|
+
|
|
192
|
+
- **La esquina va DIBUJADA en el SVG.** `border-corner-radius` no recorta el `imgbk`, y un SVG de otra proporción que el control deforma la esquina: genera un fondo por cada tamaño de control.
|
|
193
|
+
- **Los colores van como en XOne, `#RRGGBB` o `#AARRGGBB`, con el alfa PRIMERO.** HTML y SVG lo ponen al final (`#RRGGBBAA`): un `#7F00FF00` copiado tal cual a un SVG saldría transparente y de otro color. La tool convierte; si escribes el SVG a mano, separa el alfa en `stop-opacity`/`fill-opacity`.
|
|
194
|
+
- **Sin la tool**, un degradado lineal o radial escrito a mano sí se pinta, pero la sombra y el desenfoque no: pide el asset.
|
|
195
|
+
|
|
181
196
|
---
|
|
182
197
|
|
|
183
198
|
### Error 9: Pensar que hay que declarar `ID` o `ROWID`
|
|
@@ -285,6 +300,40 @@ Declararlas explícitamente (`<prop name="ID">` / `<prop name="ROWID">`) **no ca
|
|
|
285
300
|
|
|
286
301
|
**Lo que NO es valido:** dos `<coll>` con el mismo `name` en el proyecto.
|
|
287
302
|
|
|
303
|
+
### Error 12: Pedir un control con `getControl` cuando todavía no existe
|
|
304
|
+
|
|
305
|
+
```javascript
|
|
306
|
+
// MAL: en <create> la vista aún no está montada
|
|
307
|
+
function calcInit() {
|
|
308
|
+
var c = getControl("MAP_EXPRESION"); // LANZA
|
|
309
|
+
c.setText("0");
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
`getControl("X")` **lanza** una `IllegalArgumentException` («Cannot find control "X"») si el control no existe, y **un
|
|
314
|
+
`try/catch` de JavaScript no la detiene**: viene del puente nativo, aborta el evento entero (`CXoneDataObject::OnCreate
|
|
315
|
+
failed`) y deja un diálogo de error encima de la pantalla. Medido en un emulador Android.
|
|
316
|
+
|
|
317
|
+
**No existen** los controles de la vista durante `<create>` (todavía no está montada) ni los hijos de un frame
|
|
318
|
+
**oculto** (`visible="0"`), como un cajón cerrado.
|
|
319
|
+
|
|
320
|
+
```javascript
|
|
321
|
+
// BIEN: en <create> solo estado y valores
|
|
322
|
+
function calcInit() {
|
|
323
|
+
self.MAP_EXPRESION = "0";
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// BIEN: una sonda que NO lanza, para un control que puede no existir
|
|
327
|
+
function calcControl(nombre) {
|
|
328
|
+
var v = ui.getView(self);
|
|
329
|
+
return v ? (v[nombre] || null) : null; // ui.getView(self)["X"] da undefined, no lanza
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
La documentación de `getControl` y la indexación de la vista (`ui.getView(self)["X"]`) las presenta como equivalentes:
|
|
334
|
+
para acceder no lo son, y esa diferencia es la que evita el diálogo. **Y un texto que cambia desde JavaScript no va en
|
|
335
|
+
un `L`/`TL`** (pintan su `title`): usa un `T` con `labelwidth="0"` y `locked="true"`.
|
|
336
|
+
|
|
288
337
|
---
|
|
289
338
|
|
|
290
339
|
Esta guía ha cubierto los conceptos fundamentales de XOne:
|
|
@@ -80,6 +80,8 @@ Texto de solo lectura. Ideal para títulos, etiquetas y textos informativos.
|
|
|
80
80
|
|
|
81
81
|
> **No pongas `labelwidth="0"` en un label.** En un `L`/`TL` el texto es el propio `title`, que se pinta dentro del ancho reservado para la etiqueta; con `labelwidth="0"` no hay sitio y el texto desaparece (queda un control vacío). Deja `labelwidth` por defecto y, si necesitas centrar o alinear el texto, usa `label-align="left|center|right"`. El `labelwidth="0"` solo es correcto en campos cuyo contenido va en el *valor* (`T`, `N`…) o que no tienen texto (`IMG`, botón de icono).
|
|
82
82
|
|
|
83
|
+
> **⚠️ Un `L`/`TL` NO se repinta al escribir su valor: pinta su `title`.** Medido en un emulador Android con una calculadora: el JavaScript hacía `self.lblResultado = "15"; ui.refreshValue("lblResultado")` sobre un `TL` y `getText` devolvía `15`, pero el display seguía enseñando `0`, con toques reales y capturas. Cambia el VALOR del campo, no el `title`, que es lo que pinta el label, y `refreshValue` no lo remedia (probado con un nombre y con varios). Con `setAttribute` sobre `title` sí cambia lo visible. **Para un texto que cambia desde JavaScript no uses `L`/`TL`: usa un `T` de solo lectura** (`type="T"`, `labelwidth="0"`, `locked="true"`), cuyo contenido es el valor; el color y el tamaño de ese valor van en `text-forecolor` y `textfont-size`, porque `forecolor` y `fontsize` son del label, que ahí va oculto. `locked` impide editarlo por la interfaz y no la escritura desde JavaScript; `readonly` solo lo excluye del UPDATE a base de datos. Sin medir en iOS.
|
|
84
|
+
|
|
83
85
|
#### 5.9.3 Numérico (N, N2..N6, TN, TN2..TN6)
|
|
84
86
|
|
|
85
87
|
```xml
|
|
@@ -26,12 +26,15 @@ No cuestan lo mismo, ni de lejos. Por orden de lo que vas a necesitar:
|
|
|
26
26
|
|---|---|---|
|
|
27
27
|
| **dónde estoy** | `screen` | una línea: colección activa, diálogos abiertos, ventana con el foco |
|
|
28
28
|
| **qué está fallando** | `xone-log-android` | un error de JavaScript o una excepción salen ahí con su mensaje y su línea |
|
|
29
|
+
| **qué ha pasado tras una acción** | `xone-log-android --limpiar`, la acción, `xone-log-android --app` | trae SOLO los `console.log` de la app, sus errores y qué manejador corrió (`Executing script: [MenuPrincipal][btnD8][onclick]`): casi siempre basta sin captura |
|
|
29
30
|
| **el valor de un campo** | `getText name=X` | un viaje, una respuesta corta |
|
|
30
31
|
| **varios campos** | `getFields names=A,B,C` | UN viaje; un campo que falle no tumba a los demás |
|
|
31
32
|
| **el contenido de una lista** | `getRows content=X fields=…` | alcanza todas las filas, no solo las pintadas |
|
|
32
33
|
| **qué hay en la pantalla** | `elements` | SOLO para explorar: decenas de miles de caracteres |
|
|
33
34
|
| **si algo se VE mal** | `shot name=MAP_X` | y solo aquí |
|
|
34
35
|
|
|
36
|
+
**`getText` devuelve el VALOR del campo, no lo que se ve, y comprobar con él engaña.** En un `L`/`TL` el texto pintado es su `title`: el código puede escribir `15` en el campo, `getText` contestar `15` y la pantalla seguir en `0` (medido con una calculadora). Para saber lo PINTADO, el árbol (`elements`, campo `text` de cada control) o una captura nativa tras un toque real (`adb shell input tap`) comparando los píxeles del sitio que debe cambiar antes y después. Otra trampa de lo mismo: en la misma conexión, leer o capturar justo tras un `click` da el valor anterior en 2 de 12 lecturas y ninguna 100–200 ms después, porque el repintado es asíncrono; un hash idéntico entre dos capturas tras un cambio NO prueba que la captura esté cacheada, puede ser que el display no se repinte.
|
|
37
|
+
|
|
35
38
|
**Y la captura del CANAL no pinta los diálogos.** Lo dice la referencia del equipo del
|
|
36
39
|
framework: `getScreenshot` dibuja la ventana de la ACTIVIDAD, así que un diálogo abierto —el
|
|
37
40
|
«Error loading initial config» de XOne, por ejemplo— **no sale en ella** aunque la persona lo
|
|
@@ -115,6 +118,7 @@ xone-hotswap waitForElement name=BTN_OK timeout=5000 -- click name=BTN_OK # UN
|
|
|
115
118
|
# Por qué algo no se pinta o la app se muere: las excepciones del aparato.
|
|
116
119
|
xone-log-android
|
|
117
120
|
xone-log-android --limpiar # aísla lo que pase a partir de ahora
|
|
121
|
+
xone-log-android --app # SOLO los console.log de la app, sus errores y qué manejador corrió
|
|
118
122
|
|
|
119
123
|
# RESPALDO de la captura, para cuando el canal no contesta: `adb exec-out screencap` pero
|
|
120
124
|
# guardándola donde toca. Nunca redirijas ese `adb` tú: el `cwd` es la raíz del proyecto.
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* xone-log-android errores y excepciones recientes
|
|
18
18
|
* xone-log-android --lineas 400 más cola
|
|
19
19
|
* xone-log-android --todo todo lo del host, no solo errores
|
|
20
|
+
* xone-log-android --app SOLO lo que escribió la app con console.log, más sus errores
|
|
20
21
|
* xone-log-android --limpiar vacía el buffer y sale (para aislar lo siguiente)
|
|
21
22
|
* xone-log-android --serie emulator-5554
|
|
22
23
|
*/
|
|
@@ -32,6 +33,7 @@ if (args.includes("--help") || args.includes("-h")) {
|
|
|
32
33
|
xone-log-android errores y excepciones recientes (por omisión, 200 líneas)
|
|
33
34
|
xone-log-android --lineas 400 más cola
|
|
34
35
|
xone-log-android --todo todo lo del host, no solo errores
|
|
36
|
+
xone-log-android --app SOLO los console.log de la app (etiqueta XOneJavaScript) y sus errores
|
|
35
37
|
xone-log-android --limpiar vacía el buffer y sale, para aislar lo que pase después
|
|
36
38
|
xone-log-android --serie <id> con varios aparatos conectados
|
|
37
39
|
|
|
@@ -62,6 +64,13 @@ if (args.includes("--limpiar")) {
|
|
|
62
64
|
|
|
63
65
|
const lineas = Number(opcion("lineas") ?? 200);
|
|
64
66
|
const todo = args.includes("--todo");
|
|
67
|
+
/**
|
|
68
|
+
* `--app`: lo que la APP escribió con `console.log`, y sus errores, sin el resto del host. Medido en el emulador: un
|
|
69
|
+
* `console.log("X")` de un script sale como `V XOneJavaScript: X` en el log del host, y la vista por omisión —solo
|
|
70
|
+
* errores— lo tira; `--todo` lo entierra entre cientos de líneas del sistema. `appData.writeConsoleString` (legacy) no
|
|
71
|
+
* deja nada en el log de Android. Es lo que hay que leer para saber qué ha pasado tras una acción, antes que una captura.
|
|
72
|
+
*/
|
|
73
|
+
const app = args.includes("--app");
|
|
65
74
|
|
|
66
75
|
/** El PID del host, si está vivo. Sin él no se puede acotar por proceso: se dice y se sigue. */
|
|
67
76
|
let pid;
|
|
@@ -76,7 +85,7 @@ const salida = [];
|
|
|
76
85
|
if (pid !== undefined && pid !== "") {
|
|
77
86
|
const suyo = adb("logcat", "-d", "--pid", pid, "-t", String(lineas));
|
|
78
87
|
salida.push(`--- ${PAQUETE} (pid ${pid}) ---`);
|
|
79
|
-
salida.push(todo ? suyo : soloInteresante(suyo));
|
|
88
|
+
salida.push(todo ? suyo : app ? soloDeLaApp(suyo) : soloInteresante(suyo));
|
|
80
89
|
} else {
|
|
81
90
|
salida.push(`--- ${PAQUETE} no está vivo ahora mismo: solo queda lo que dejó escrito ---`);
|
|
82
91
|
}
|
|
@@ -91,6 +100,14 @@ if (caidas !== "") {
|
|
|
91
100
|
salida.push("", "--- caídas duras (cualquier proceso) ---", caidas);
|
|
92
101
|
}
|
|
93
102
|
|
|
103
|
+
/** Los `console.log` de la app (etiqueta XOneJavaScript) y los errores del host, en su orden. */
|
|
104
|
+
function soloDeLaApp(texto) {
|
|
105
|
+
const filas = texto.split("\n").filter((l) => /\sXOneJavaScript\s*:/.test(l) || /\s[EF]\s/.test(l) || /Caused by:|Exception/.test(l));
|
|
106
|
+
return filas.length === 0
|
|
107
|
+
? "(la app no ha escrito nada con console.log ni ha dado errores en esas líneas; si esperabas una línea, no se ejecutó ese código)"
|
|
108
|
+
: filas.join("\n");
|
|
109
|
+
}
|
|
110
|
+
|
|
94
111
|
/** Lo que merece la pena leer de un volcado del host: errores, avisos y trazas de excepción. */
|
|
95
112
|
function soloInteresante(texto) {
|
|
96
113
|
const filas = texto.split("\n").filter((l) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: xone-plan-builder
|
|
3
|
-
description: "Descomponer el PLAN.md (spec) de xone-spec-builder en un plan de ejecución (TASKS.md): tareas tracer-bullet verticales con dependencias explícitas. Valida el spec, descompone en cortes verticales (coll + pantalla + eventos + estilo), cada uno demoable y
|
|
3
|
+
description: "Descomponer el PLAN.md (spec) de xone-spec-builder en un plan de ejecución (TASKS.md): tareas tracer-bullet verticales con dependencias explícitas. Valida el spec, descompone en cortes verticales (coll + pantalla + eventos + estilo), cada uno demoable y comprobable en el aparato. Dependencias naturales XOne: mappings.xne → colls base → colls negocio → pantallas entidad → pantallas especiales → integraciones dispositivo (GPS, cámara, firma DR, escáner, biometría) → estilo → sincronización → validación. Prefactoring: reestructuras que facilitan el cambio. Refactors amplios: expand-contract. Quiz al usuario: granularidad, dependencias, partición. Tareas: una por context window, qué entrega (no cómo), bloqueada por, criterios verificables. Hitos que cierran con una comprobación en el aparato. Es análisis, no entrevista: no toma decisiones de diseño, si el spec tiene huecos lo devuelve a xone-spec-builder."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# XOne Plan Builder
|
|
@@ -17,7 +17,7 @@ Esta skill es **análisis y descomposición**, no entrevista. No afina el domini
|
|
|
17
17
|
xone-spec-builder → PLAN.md (el spec)
|
|
18
18
|
xone-plan-builder → TASKS.md (el plan de ejecución) ← esta skill
|
|
19
19
|
xone-project-generator / xone-development → ejecutan una tarea cada vez
|
|
20
|
-
|
|
20
|
+
arnés + device-controller → valida: el verificador al cerrar el turno, el aparato con toques reales
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Estructura de archivos
|
|
@@ -50,6 +50,13 @@ todas sus casillas están marcadas, y es lo que la pestaña Planes resume.
|
|
|
50
50
|
|
|
51
51
|
Cada tarea es una cabecera `### NN — Título` (no `## T1`), con sus casillas debajo.
|
|
52
52
|
|
|
53
|
+
**El plan también recuerda lo grave.** `TASKS.md` lleva una sección `## Hallazgos` (vacía al crear
|
|
54
|
+
el plan): quien descubre algo que cambia cómo se trabaja —con su causa medida, no una sospecha— lo
|
|
55
|
+
apunta ahí en cuanto lo sabe, y quien empiece un encargo con plan la lee primero. Cada sesión empieza
|
|
56
|
+
sin memoria: en una calculadora hecha por los agentes, un display que no se repintaba se diagnosticó
|
|
57
|
+
en una sesión que se cortó antes de arreglarlo, no quedó escrito, y siguió sin funcionar siete
|
|
58
|
+
pasadas más. Y si el encargo trae un diseño, se destila UNA vez en `DISENO.md` al lado del plan.
|
|
59
|
+
|
|
53
60
|
Ésa es la razón de que el plan viva en `/planes/` y no entre los artefactos: no es un documento
|
|
54
61
|
que se entrega una vez, es el estado compartido entre quien planifica y quien desarrolla, a lo
|
|
55
62
|
largo de varios turnos y varias sesiones.
|
|
@@ -72,7 +79,7 @@ Si algo falta, no lo inventes: devuelve a `xone-spec-builder` con una nota espec
|
|
|
72
79
|
Una tarea es un **corte vertical** que atraviesa todas las capas que necesite para entregar un comportamiento completo y verificable:
|
|
73
80
|
|
|
74
81
|
- **Vertical, no horizontal.** «Crear coll Clientes + su pantalla de lista + su pantalla de edición + su estilo» es vertical. «Crear todas las colls» es horizontal —no es una tarea, es una capa.
|
|
75
|
-
- **Demoable o verificable por sí sola.** Al cerrar la tarea, hay algo que funciona de principio a fin y se puede
|
|
82
|
+
- **Demoable o verificable por sí sola.** Al cerrar la tarea, hay algo que funciona de principio a fin y se puede comprobar: el verificador del arnés (corre `xone-simulator validate` solo, al cerrar cada turno que escribió) y la comprobación en el aparato de `device-controller`.
|
|
76
83
|
- **Cabe en una sesión de agente.** Si una tarea es tan grande que no cabe en un context window, pártela.
|
|
77
84
|
- **Declara sus dependencias.** Qué tareas deben cerrarse antes de que ésta pueda empezar.
|
|
78
85
|
|
|
@@ -97,7 +104,7 @@ El orden de ejecución sigue las dependencias del framework:
|
|
|
97
104
|
↓ — puede ir en paralelo desde el principio; ajuste fino al final
|
|
98
105
|
8. Sincronización y seguridad (réplica, OAuth2, tokens…)
|
|
99
106
|
↓ — si el desarrollo la toca
|
|
100
|
-
9.
|
|
107
|
+
9. Comprobación en el aparato (device-controller; el verificador del arnés corre solo)
|
|
101
108
|
```
|
|
102
109
|
|
|
103
110
|
### Reglas de secuenciación
|
|
@@ -105,9 +112,10 @@ El orden de ejecución sigue las dependencias del framework:
|
|
|
105
112
|
- **`mappings.xne` primero.** Empresas y Usuarios deben existir antes que cualquier coll de negocio que haga combo a Empresas.
|
|
106
113
|
- **Una coll antes que su pantalla.** No se puede crear la pantalla de edición de Pedidos sin que la coll Pedidos exista.
|
|
107
114
|
- **`inherits`/`<include-layout>` antes que las colls que los consumen.** Si se define una coll base `special="true"` para herencia, va antes que las colls que heredan de ella.
|
|
115
|
+
- **El comportamiento se comprueba ANTES que el pulido.** En una pantalla interactiva, la tarea «la app reacciona a un toque» —una captura antes y otra después de la zona que debe cambiar— va justo detrás del esqueleto visual y antes de cualquier tarea de aspecto fino. Si no, se pule algo que no funciona: medido, un display que no se repintaba vivió siete pasadas de retoques visuales.
|
|
108
116
|
- **Estilo en paralelo.** `default.css` con las clases base puede empezar desde la tarea 1, pero el ajuste fino de pantallas específicas va después de que la pantalla exista.
|
|
109
117
|
- **Integraciones después de su contenedor.** La firma DR en Pedidos va en una tarea que depende de que Pedidos (coll + pantalla de edición) ya exista.
|
|
110
|
-
- **
|
|
118
|
+
- **Comprobación al final de cada hito.** Si el plan tiene varios hitos, cada uno cierra con una tarea de comprobación en el aparato (`device-controller`); la validación estática la hace el verificador del arnés solo.
|
|
111
119
|
|
|
112
120
|
### Prefactoring
|
|
113
121
|
|
|
@@ -120,7 +128,7 @@ Solo propón prefactor si el spec lo justifica o si al leer el proyecto existent
|
|
|
120
128
|
Un **refactor amplio** es un cambio mecánico cuyo **radio de explosión** cubre todo el proyecto —renombrar una coll, cambiar el tipo de un campo compartido, migrar de `load` a `before-edit` en todas las colls—. No se puede partir en un corte vertical porque un solo edit rompe miles de sitios. Secuenciálo como **expand–contract**:
|
|
121
129
|
|
|
122
130
|
1. **Expand:** añade la nueva forma junto a la vieja, sin romper nada.
|
|
123
|
-
2. **Migra** los sitios de uso en lotes (por carpeta, por módulo), cada lote su propia tarea bloqueada por el expand, manteniendo
|
|
131
|
+
2. **Migra** los sitios de uso en lotes (por carpeta, por módulo), cada lote su propia tarea bloqueada por el expand, manteniendo el verificador del arnés en verde lote a lote.
|
|
124
132
|
3. **Contract:** borra la forma vieja cuando nadie la usa, en una tarea bloqueada por todos los lotes.
|
|
125
133
|
|
|
126
134
|
Si el spec no describe un refactor amplio, no lo fuerces. Es excepción, no regla.
|
|
@@ -174,7 +182,7 @@ Ver [TASKS-FORMAT.md](references/TASKS-FORMAT.md) para la plantilla completa. Re
|
|
|
174
182
|
|
|
175
183
|
## Hitos
|
|
176
184
|
|
|
177
|
-
{si aplica: qué conjunto de tareas forma un hito
|
|
185
|
+
{si aplica: qué conjunto de tareas forma un hito comprobable en el aparato}
|
|
178
186
|
```
|
|
179
187
|
|
|
180
188
|
## Reglas
|
|
@@ -184,7 +192,7 @@ Ver [TASKS-FORMAT.md](references/TASKS-FORMAT.md) para la plantilla completa. Re
|
|
|
184
192
|
- **Nombres consistentes con el spec**, y el `MAP_` según `xone-development`.
|
|
185
193
|
- **No inventes lo que el spec no dice.** Si falta algo para descomponer, devuelve a `xone-spec-builder`.
|
|
186
194
|
- **Evita rutas de archivo o snippets de código específicos** —envejecen rápido. Excepción: si un prototipo o el spec produjo un snippet que codifica una decisión más preciso que prosa (esquema, state machine), inclúyelo y nota su origen.
|
|
187
|
-
- **La
|
|
195
|
+
- **La comprobación es una tarea.** Si el plan tiene hitos, cada hito cierra con una tarea de comprobación en el aparato. Si no, al menos una al final. No nombres herramientas que no estén en las skills de los especialistas: quien ejecuta las buscará.
|
|
188
196
|
|
|
189
197
|
## Cierre
|
|
190
198
|
|
|
@@ -195,9 +203,9 @@ Antes de entregar `TASKS.md`:
|
|
|
195
203
|
- [ ] El orden de ejecución respeta las dependencias naturales de XOne (mappings → colls → pantallas → integraciones → estilo → validación).
|
|
196
204
|
- [ ] No hay tareas que dependan de cosas que el spec no especifica —o están marcadas como notas.
|
|
197
205
|
- [ ] El usuario aprobó el desglose.
|
|
198
|
-
- [ ] Las tareas de
|
|
206
|
+
- [ ] Las tareas de comprobación en el aparato están en su sitio.
|
|
199
207
|
|
|
200
|
-
Al entregar, señala el siguiente paso: `xone-project-generator` (app nueva) o `xone-development` (sobre existente) ejecutan una tarea cada vez, y
|
|
208
|
+
Al entregar, señala el siguiente paso: `xone-project-generator` (app nueva) o `xone-development` (sobre existente) ejecutan una tarea cada vez, y el verificador del arnés (al cerrar cada turno) y device-controller en el aparato validan los hitos.
|
|
201
209
|
|
|
202
210
|
## Referencias
|
|
203
211
|
|
|
@@ -43,16 +43,23 @@
|
|
|
43
43
|
6. 06 — Integración GPS + ClientesMapa (bloqueada por 02)
|
|
44
44
|
7. 07 — Firma DR en Pedidos (bloqueada por 03)
|
|
45
45
|
8. 08 — Estilo: default.css completo + variantes (en paralelo desde 01)
|
|
46
|
-
9. 09 —
|
|
46
|
+
9. 09 — Comprobación en el aparato con device-controller (bloqueada por 02-08)
|
|
47
47
|
|
|
48
48
|
## Hitos
|
|
49
49
|
|
|
50
50
|
{si aplica: qué conjunto de tareas forma un hito verificable. Ejemplo:}
|
|
51
51
|
|
|
52
|
-
- **Hito 1 — CRUD básico:** tareas 01-04. Al cerrar,
|
|
52
|
+
- **Hito 1 — CRUD básico:** tareas 01-04. Al cerrar, comprobarlo en el aparato con device-controller.
|
|
53
53
|
- **Hito 2 — App completa:** tareas 05-09. Validación final.
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
## Hallazgos
|
|
57
|
+
|
|
58
|
+
{Vacío al crear el plan. Quien descubre algo grave lo apunta aquí con su CAUSA MEDIDA, no una sospecha,
|
|
59
|
+
y quien empiece un encargo con este plan lo lee primero. Ejemplo:}
|
|
60
|
+
|
|
61
|
+
- `lblResultado` es un `TL`, que pinta su `title`: escribir su valor no repinta. Se cambió a `T` de solo lectura.
|
|
62
|
+
|
|
56
63
|
## Plantilla por tarea
|
|
57
64
|
|
|
58
65
|
```md
|
|
@@ -76,8 +83,9 @@
|
|
|
76
83
|
- **Decisiones, no código.** Sin XML/JS/CSS pegado. Excepción: si un snippet codifica una decisión más preciso que prosa (esquema, state machine), inclúyelo y nota su origen.
|
|
77
84
|
- **Nombres consistentes con el spec**, y el `MAP_` según `xone-development`.
|
|
78
85
|
- **Evita rutas de archivo específicas.** Envejecen rápido. El ejecutor las infiere del spec y del proyecto.
|
|
79
|
-
- **Criterios de aceptación verificables.** Cada criterio debe poder comprobarse —
|
|
80
|
-
- **
|
|
86
|
+
- **Criterios de aceptación verificables.** Cada criterio debe poder comprobarse —en el aparato con un toque y lo que dice el log, o con un comportamiento observable.
|
|
87
|
+
- **El comportamiento antes que el pulido.** En una pantalla interactiva, «reacciona a un toque» (captura antes y después) va tras el esqueleto visual y antes del aspecto fino.
|
|
88
|
+
- **La comprobación es una tarea.** Cada hito cierra con una tarea de comprobación en el aparato (`device-controller`). La validación estática no es una tarea: la hace el verificador del arnés solo, al cerrar cada turno. No nombres herramientas que no estén en esta skill ni en las de los especialistas: quien ejecuta las buscará.
|
|
81
89
|
|
|
82
90
|
## Ejemplo: feature sobre existente
|
|
83
91
|
|
|
@@ -128,5 +136,5 @@ Antes de entregar el plan:
|
|
|
128
136
|
- [ ] El orden respeta las dependencias naturales de XOne (mappings → colls → pantallas → integraciones → estilo → validación).
|
|
129
137
|
- [ ] No hay tareas que dependan de cosas que el spec no especifica —o están marcadas como notas.
|
|
130
138
|
- [ ] El usuario aprobó el desglose.
|
|
131
|
-
- [ ] Las tareas de
|
|
139
|
+
- [ ] Las tareas de comprobación en el aparato están en su sitio.
|
|
132
140
|
- [ ] Los hitos (si los hay) están definidos y cierran con validación.
|
|
@@ -95,6 +95,7 @@ GUID sin guiones: python3 -c "import uuid; print(uuid.uuid4().hex)"
|
|
|
95
95
|
|
|
96
96
|
Fuente: Google Material Icons via Iconify API
|
|
97
97
|
URL: https://api.iconify.design/ic/baseline-{nombre}.svg?color={color}
|
|
98
|
+
Los iconos los consigue quien tiene la tool `buscar_icono` (`designer-xone` o `developer-xone`), no quien ejecuta comandos: no hace falta montar la URL: `buscar` da el id y `obtener` el SVG con color y altura ya fijados (el color, siempre hexadecimal).
|
|
98
99
|
|
|
99
100
|
XOne soporta PNG, JPG y SVG — no es necesario convertir SVG a PNG.
|
|
100
101
|
Iconos comunes: home, search, arrow-back, save, settings, person, add, delete, edit, check, close, menu
|
|
@@ -18,7 +18,7 @@ El spec builder es el primer paso de cualquier trabajo XOne. Lo que sigue:
|
|
|
18
18
|
- **`xone-plan-builder`** lee el `PLAN.md` y lo descompone en tareas tracer-bullet con dependencias (`TASKS.md`).
|
|
19
19
|
- **App nueva** → `xone-project-generator` lee el `PLAN.md` y genera el proyecto completo.
|
|
20
20
|
- **Feature, refactor, integración, cambio de modelo, rediseño** sobre un proyecto existente → `xone-development` aplica el `PLAN.md` sobre los `.xne`, `.js` y `.css` que ya viven en el repo.
|
|
21
|
-
- **Validación final** → `xone-
|
|
21
|
+
- **Validación final** → el verificador del arnés (corre `xone-simulator validate` solo, al cerrar cada turno que escribió) y la comprobación en el aparato de `device-controller`, en ambos casos.
|
|
22
22
|
|
|
23
23
|
`xone-spec-builder` es **especificación**: produce decisiones de diseño y un spec, no código ni tareas. La tentación de empezar a generar archivos o a descomponer el trabajo es la señal de que has llegado al borde del spec; para ahí y entrega el `PLAN.md`.
|
|
24
24
|
|
|
@@ -76,7 +76,7 @@ No toda petición necesita una entrevista de 8 rounds. Antes de empezar, clasifi
|
|
|
76
76
|
|
|
77
77
|
| Nivel | Cuándo | Qué hace el spec-builder |
|
|
78
78
|
|---|---|---|
|
|
79
|
-
| **Trivial** | Una sola acción mecánica, sin decisiones de diseño. Ej: «añadir un prop EMAIL (T) a Clientes», «cambiar el color del header», «añadir un botón de salir». | **No produces PLAN.md.** Confirmas la petición en 1-2 preguntas, ejecutas con `xone-development` o `xone-project-generator` directamente
|
|
79
|
+
| **Trivial** | Una sola acción mecánica, sin decisiones de diseño. Ej: «añadir un prop EMAIL (T) a Clientes», «cambiar el color del header», «añadir un botón de salir». | **No produces PLAN.md.** Confirmas la petición en 1-2 preguntas, ejecutas con `xone-development` o `xone-project-generator` directamente; lo valida el verificador del arnés (al cerrar cada turno) y device-controller en el aparato. Sin `CONTEXT.md` ni ADRs. |
|
|
80
80
|
| **Simple** | Un cambio acotado con alguna decisión menor. Ej: «añadir campo IVA a LineasPedido con formula», «pasar Clientes a mapa», «añadir escáner QR en una pantalla». | **Spec ligero.** Entrevista reducida: solo los rounds que apliquen (típicamente 1, 3 y/o 4 y/o 5). `PLAN.md` en formato condensado —una sección por round, sin secciones vacías—. `CONTEXT.md` solo si hay término de dominio nuevo; ADR solo si hay decisión dura. |
|
|
81
81
|
| **Normal** | Feature con varias colls/pantallas, refactor, integración multi-pantalla. Ej: «firma de entrega en Pedidos», «login con OAuth2», «módulo de incidencias con fotos». | **Spec completo.** Entrevista con los rounds que apliquen al tipo. `PLAN.md` con las secciones condicionales del formato. `CONTEXT.md` y ADRs según se resuelvan. |
|
|
82
82
|
| **Grande** | App nueva completa, re-arquitectura, o un desarrollo que no cabe en una sesión de plan-builder. | **Spec completo + considerar wayfinder.** Entrevista los 8 rounds. Si el scope es tan grande que ni el spec cabe en una sesión, considera dividir el esfuerzo con un enfoque tipo wayfinder (chart el mapa de decisiones primero, luego spec por contexto). |
|
|
@@ -209,7 +209,7 @@ Revisa el `PLAN.md` completo contra el checklist de [PLAN-FORMAT.md](references/
|
|
|
209
209
|
- ¿Los términos de dominio nuevos están en `CONTEXT.md` y las decisiones duras en ADRs?
|
|
210
210
|
- ¿Quedan preguntas abiertas? Márcalas en `PLAN.md` §Pendientes; no las resuelvas tú.
|
|
211
211
|
|
|
212
|
-
Si falta algo, vuelve al round correspondiente. Si todo está, entrega el spec y señala el siguiente paso: `xone-plan-builder` para descomponer en tareas, después `xone-project-generator` (app nueva) o `xone-development` (sobre existente), y
|
|
212
|
+
Si falta algo, vuelve al round correspondiente. Si todo está, entrega el spec y señala el siguiente paso: `xone-plan-builder` para descomponer en tareas, después `xone-project-generator` (app nueva) o `xone-development` (sobre existente), y el verificador del arnés (al cerrar cada turno) y device-controller en el aparato para validar.
|
|
213
213
|
|
|
214
214
|
## Disciplina durante la entrevista
|
|
215
215
|
|