ratacode 0.2.5
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/CREDITS.md +80 -0
- package/LICENSE +21 -0
- package/README.md +289 -0
- package/apreton/README.md +54 -0
- package/apreton/handshake.md +33 -0
- package/apreton/headless.md +58 -0
- package/apreton/mcp.md +221 -0
- package/apreton/navegador.md +58 -0
- package/bin/instalacion.js +148 -0
- package/bin/ratacode.js +1251 -0
- package/fabrica/settings.yaml +247 -0
- package/mcp/README.md +253 -0
- package/mcp/bin/ratacode-mcp.js +215 -0
- package/mcp/lib/actividad.js +49 -0
- package/mcp/lib/casa.js +126 -0
- package/mcp/lib/claves.js +148 -0
- package/mcp/lib/espacios.js +117 -0
- package/mcp/lib/http.js +184 -0
- package/mcp/lib/lectura.js +210 -0
- package/mcp/lib/modelos.js +235 -0
- package/mcp/lib/nucleo.js +332 -0
- package/mcp/lib/registro.js +21 -0
- package/mcp/lib/seguridad.js +283 -0
- package/mcp/lib/servidor.js +397 -0
- package/mcp/lib/tareas.js +406 -0
- package/mcp/package.json +22 -0
- package/mcp/tunel.mjs +209 -0
- package/modos/arquitecto/agent.cordis.yml +120 -0
- package/modos/arquitecto/preset.yml +3 -0
- package/modos/capataz/agent.cordis.yml +120 -0
- package/modos/capataz/preset.yml +3 -0
- package/modos/faro/agent.cordis.yml +120 -0
- package/modos/faro/preset.yml +3 -0
- package/modos/gepeto/agent.cordis.yml +191 -0
- package/modos/gepeto/preset.yml +3 -0
- package/modos/hero/agent.cordis.yml +198 -0
- package/modos/hero/preset.yml +3 -0
- package/modos/modo-rata/agent.cordis.yml +198 -0
- package/modos/modo-rata/preset.yml +3 -0
- package/modos/nex/agent.cordis.yml +213 -0
- package/modos/nex/preset.yml +3 -0
- package/modos/nex/skills/cordis-plugin-development/SKILL.md +420 -0
- package/modos/nex/skills/editing-cordis-compositions/SKILL.md +165 -0
- package/modos/pix/agent.cordis.yml +207 -0
- package/modos/pix/preset.yml +3 -0
- package/modos/tirita/agent.cordis.yml +130 -0
- package/modos/tirita/preset.yml +3 -0
- package/package.json +49 -0
- package/piel/activos/ratacode-emblema.svg +14 -0
- package/piel/activos/ratacode-es.js +1331 -0
- package/piel/activos/ratacode-identidad.css +50 -0
- package/piel/activos/ratacode-piel.css +217 -0
- package/piel/activos/ratacode-piel.js +487 -0
- package/piel/activos/ratacode-vida.js +424 -0
- package/piel/cordis.patch.yml +6 -0
- package/piel/lib/cliente.js +1020 -0
- package/piel/lib/index.js +1230 -0
- package/piel/package.json +36 -0
package/CREDITS.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Créditos y licencias de terceros
|
|
2
|
+
|
|
3
|
+
RATACODE se reparte bajo **MIT** (ver [`LICENSE`](LICENSE)). Dentro viaja, sin modificar,
|
|
4
|
+
un motor de terceros que hace el trabajo de verdad; su licencia es también MIT y su aviso
|
|
5
|
+
de copyright tiene que viajar con él. Este fichero es ese aviso.
|
|
6
|
+
|
|
7
|
+
## RATACODE
|
|
8
|
+
|
|
9
|
+
MIT License — Copyright (c) 2026 **Patxi**
|
|
10
|
+
|
|
11
|
+
## Motor de trabajo
|
|
12
|
+
|
|
13
|
+
MIT License — Copyright (c) 2026 **DeepSeek**
|
|
14
|
+
|
|
15
|
+
Paquete: `@deepseek-ai/dsh` (DeepSeek Harness). RATACODE lo usa como dependencia, sin
|
|
16
|
+
tocarlo: la casa, la piel, los modos y el servidor MCP son de RATACODE; el motor es suyo.
|
|
17
|
+
Texto de la licencia, tal y como viene en el paquete:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
MIT License
|
|
21
|
+
|
|
22
|
+
Copyright (c) 2026 DeepSeek
|
|
23
|
+
|
|
24
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
25
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
26
|
+
in the Software without restriction, including without limitation the rights
|
|
27
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
28
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
29
|
+
furnished to do so, subject to the following conditions:
|
|
30
|
+
|
|
31
|
+
The above copyright notice and this permission notice shall be included in all
|
|
32
|
+
copies or substantial portions of the Software.
|
|
33
|
+
|
|
34
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
35
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
36
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
37
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
38
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
39
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
40
|
+
SOFTWARE.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## sharp y libvips (LGPL-3.0-or-later)
|
|
44
|
+
|
|
45
|
+
`sharp` (Apache-2.0) trae dentro los binarios de **libvips**, que son
|
|
46
|
+
**LGPL-3.0-or-later**: `@img/sharp-win32-x64` se declara `Apache-2.0 AND
|
|
47
|
+
LGPL-3.0-or-later` y en su carpeta viajan `libvips-42.dll` y
|
|
48
|
+
`libvips-cpp-8.18.6.dll`. Su texto está en
|
|
49
|
+
<https://www.gnu.org/licenses/lgpl-3.0.html>. No se modifica nada de libvips: se
|
|
50
|
+
usa el binario tal y como lo publica el paquete, y por eso la licencia se cumple
|
|
51
|
+
con este aviso y con el enlace a su texto.
|
|
52
|
+
|
|
53
|
+
El resto del árbol (587 paquetes, casi todos MIT, Apache-2.0, BSD o ISC) lo
|
|
54
|
+
instala **npm** al instalar RATACODE, con las licencias que declara cada paquete
|
|
55
|
+
y sus ficheros de licencia dentro de `node_modules`; RATACODE no los copia ni los
|
|
56
|
+
modifica, y en el `.tgz` sólo viaja lo que declara `files` en su `package.json`.
|
|
57
|
+
|
|
58
|
+
## RATACODE
|
|
59
|
+
|
|
60
|
+
MIT License
|
|
61
|
+
|
|
62
|
+
Copyright (c) 2026 Patxi
|
|
63
|
+
|
|
64
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
65
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
66
|
+
in the Software without restriction, including without limitation the rights
|
|
67
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
68
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
69
|
+
furnished to do so, subject to the following conditions:
|
|
70
|
+
|
|
71
|
+
The above copyright notice and this permission notice shall be included in all
|
|
72
|
+
copies or substantial portions of the Software.
|
|
73
|
+
|
|
74
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
75
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
76
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
77
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
78
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
79
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
80
|
+
SOFTWARE.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Patxi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# RATACODE
|
|
2
|
+
|
|
3
|
+
**Manos baratas para tu agente o tu chat.** RATACODE es la terminal de trabajo bruto:
|
|
4
|
+
una terminal de trabajo con IA con la cara de RATACODE —las ratas, las chispas,
|
|
5
|
+
los colores— montada sobre un motor libre que no se toca. Le mandas el
|
|
6
|
+
trabajo pesado y barato (B.AI, OpenRouter, DeepSeek, cinco proveedores gratuitos y
|
|
7
|
+
**dos modelos locales sin clave ni coste** vienen de fábrica) y el resultado vuelve a tu
|
|
8
|
+
agente o a tu chat.
|
|
9
|
+
|
|
10
|
+
**La web:** <https://kittcat.com/ratacode/> — la página del producto, con el botón que
|
|
11
|
+
copia el prompt de instalación y lo cuenta en corto.
|
|
12
|
+
|
|
13
|
+
## Qué trae la 0.2.0
|
|
14
|
+
|
|
15
|
+
- **Los 9 modos de casa** (MODO-RATA, ARQUITECTO, CAPATAZ, HERO, TIRITA, GEPETO, FARO,
|
|
16
|
+
PIX y NEX) en el selector, con MODO-RATA por defecto y **sin los modos de serie del
|
|
17
|
+
motor**: una casa vieja se pone al día sola al arrancar.
|
|
18
|
+
- **Modelos locales de serie, sin clave:** Ollama y LM Studio tienen **su propia pestaña
|
|
19
|
+
en Ajustes → «Modelos locales»** (si están encendidos, qué modelos tienes y cuáles valen
|
|
20
|
+
como agente, su dirección, cómo encenderlos y la tabla «qué modelo local según tu
|
|
21
|
+
tarjeta»). Ajustes → Models se queda para las **8 APIs con clave**.
|
|
22
|
+
- **Cada tarea MCP se ve en la barra lateral del panel**, con su conversación: el MCP
|
|
23
|
+
deja de ser una caja negra.
|
|
24
|
+
- **La instalación, en un comando:** `npm i -g ratacode`.
|
|
25
|
+
- Fuera el nombre del motor de todo lo que ve el usuario (panel, ayuda y mensajes).
|
|
26
|
+
|
|
27
|
+
## Qué trae la 0.2.1
|
|
28
|
+
|
|
29
|
+
- **Las claves, en un solo sitio y editables:** la única fuente es **Ajustes → Models** (la
|
|
30
|
+
casa). El motor y el MCP arrancan **sin** las variables de claves de Windows, así que el
|
|
31
|
+
campo de cada proveedor siempre se puede pegar y editar en la web.
|
|
32
|
+
- **El MCP deja de mirar el entorno de tu chat:** le pregunta al motor si la credencial está
|
|
33
|
+
puesta en la casa. Si no lo está, dice
|
|
34
|
+
`Falta la clave de B.AI. Pégala en RATACODE › Ajustes › Models.` Y las altas de MCP
|
|
35
|
+
(Claude Code, Codex, OpenClaw…) ya no llevan `--env` ni `env_vars`: sólo `ratacode mcp`.
|
|
36
|
+
- **Arreglado el arranque de una casa de la 0.1:** si su `cordis.patch.yml` se quedó roto (un
|
|
37
|
+
`[]` pegado delante de las filas, de la 0.2.0), se repara solo al arrancar y el motor no se
|
|
38
|
+
cae al leer el overlay.
|
|
39
|
+
- **Aviso de migración, una vez:** si tienes variables de claves de proveedores en Windows, el
|
|
40
|
+
panel te lo recuerda en una línea —«RATACODE ya no la usa: pega tu clave en Ajustes ›
|
|
41
|
+
Models»— con su botón de cerrar. No copia ninguna clave y no vuelve.
|
|
42
|
+
|
|
43
|
+
## Requisitos
|
|
44
|
+
|
|
45
|
+
- **Windows** (la v1 solo está probada en Windows; Mac y Linux, después).
|
|
46
|
+
- **Node 24** — las dependencias nativas de la terminal (`node-pty`, `koffi`) necesitan
|
|
47
|
+
que npm ejecute sus scripts de instalación.
|
|
48
|
+
|
|
49
|
+
## Instalación (un comando)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm i -g ratacode
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
> **Los avisos amarillos de npm 11 al instalar son normales.** npm 11 frena los scripts
|
|
56
|
+
> de instalación de las dependencias nativas de la terminal y avisa con
|
|
57
|
+
> «allow-scripts» / «Ignored build scripts». Ese aviso **no impide que RATACODE funcione**:
|
|
58
|
+
> el paquete ya declara las que hacen falta (`allowScripts` en su `package.json`) y sus
|
|
59
|
+
> binarios vienen precompilados para Node 24.
|
|
60
|
+
|
|
61
|
+
Alternativa, si npm te falla o quieres una versión concreta: la **release de GitHub**
|
|
62
|
+
(el `.tgz` que cuelga de ella; no hace falta ni git ni cuenta de npm):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npm i -g https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Último recurso, si la descarga falla: `git clone https://github.com/kittcat-lab/ratacode && cd ratacode && npm pack && npm i -g ./ratacode-0.2.0.tgz`.
|
|
69
|
+
|
|
70
|
+
Y para abrirla (lo mismo en los tres casos):
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ratacode
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Arranca el panel con la cara de RATACODE en el puerto **3777** (fijo y conocido; `--port` lo
|
|
77
|
+
cambia), imprime la URL **con su token** y la guarda en `<casa>\url.txt` — la de la vez
|
|
78
|
+
anterior se borra al arrancar y la nueva sólo se escribe **cuando el puerto ya escucha**.
|
|
79
|
+
Cada arranque y cada cierre del motor quedan apuntados en `<casa>\ratacode.log`, con su
|
|
80
|
+
código de salida y su señal (para saber por qué se cerró).
|
|
81
|
+
|
|
82
|
+
## Las claves: Ajustes → Models (ocho APIs de fábrica)
|
|
83
|
+
|
|
84
|
+
Cada usuario pone las suyas; **nunca viajan dentro del paquete**. Se ponen donde el motor
|
|
85
|
+
las pone siempre: en la web, **Ajustes → Models**, con el campo «API key» de cada proveedor
|
|
86
|
+
(quedan en `<casa>\.credentials.yaml`), o exportando su variable de entorno. RATACODE trae
|
|
87
|
+
**ocho APIs** ya declaradas (los dos motores locales, que no piden clave, están en
|
|
88
|
+
**Ajustes → «Modelos locales»**):
|
|
89
|
+
|
|
90
|
+
| Proveedor | Variable | Notas |
|
|
91
|
+
|---|---|---|
|
|
92
|
+
| B.AI | `B_AI_API_KEY` | de fábrica, con `deepseek-v4.1-flash` y más modelos baratos |
|
|
93
|
+
| OpenRouter | `OPENROUTER_API_KEY` | |
|
|
94
|
+
| DeepSeek | `DEEPSEEK_API_KEY` | adaptador nativo del motor (`deepseek-official`) |
|
|
95
|
+
| Groq | `GROQ_API_KEY` | gratis (30 RPM / 1.000 RPD); `openai/gpt-oss-120b`, `qwen/qwen3.8-27b` |
|
|
96
|
+
| Google Gemini | `GEMINI_API_KEY` | gratis, pero **entrena con tus datos**: no lo uses con código confidencial |
|
|
97
|
+
| NVIDIA NIM | `NVIDIA_API_KEY` | gratis sólo para prototipar; uso comercial prohibido sin licencia |
|
|
98
|
+
| SambaNova | `SAMBANOVA_API_KEY` | gratis permanente (20 RPM / 20 RPD / 200K TPD) |
|
|
99
|
+
| Cloudflare Workers AI | `CLOUDFLARE_API_KEY` | **cambia `{account_id}` a mano**: Ajustes → Models → ese proveedor → *Customized settings* → **Base URL** |
|
|
100
|
+
| **Ollama (local)** | *ninguna* | `http://127.0.0.1:11434/v1`, sin clave y sin coste ([ollama.com/download](https://ollama.com/download)) |
|
|
101
|
+
| **LM Studio (local)** | *ninguna* | `http://127.0.0.1:1234/v1`, sin clave (`lms server start`); pon el id que devuelva `GET /v1/models` |
|
|
102
|
+
|
|
103
|
+
Los dos locales **no piden clave**: van declarados sin credencial y el motor deja la ruta
|
|
104
|
+
sin autenticar. Nada sale de tu ordenador cuando trabajas con ellos, y por eso **no salen
|
|
105
|
+
en Ajustes → Models**: tienen su pestaña, **Ajustes → «Modelos locales»**, donde se ve si
|
|
106
|
+
están encendidos, qué modelos tienes, cuáles valen como agente, su dirección (y cómo
|
|
107
|
+
cambiarla si usas otro puerto) y el enlace de descarga.
|
|
108
|
+
|
|
109
|
+
### Qué modelo local según tu tarjeta
|
|
110
|
+
|
|
111
|
+
Bájalo con `ollama pull <id>` y elígelo en el selector de modelos de la caja. Medido en el
|
|
112
|
+
informe R15 (tool calling = que el modelo sepa **usar** las herramientas, no sólo hablar):
|
|
113
|
+
|
|
114
|
+
| Tu tarjeta | Modelo (`ollama pull`) | Tamaño | Por qué ése |
|
|
115
|
+
|---|---|---|---|
|
|
116
|
+
| **8 GB** | `qwen3:8b` | 5,2 GB | la mejor evidencia independiente de uso de herramientas (F1 0,919 en el banco de Docker; medido aquí: devuelve `tool_calls` de verdad) |
|
|
117
|
+
| **12 GB** | `gemma4:12b` | 7,6 GB | cifra agéntica publicada (τ² 69,0) y function calling nativo; a ≤16K de contexto |
|
|
118
|
+
| **16 GB** | `gpt-oss:20b` | 14 GB | `tools` nativo y Apache-2.0; **súbele el contexto** (con 4K por defecto las herramientas se rompen) y no hace llamadas en paralelo |
|
|
119
|
+
| **24 GB** | `muse-glimmer:30b` (o `qwen3.6:27b`) | 18 GB | los dos con cifras de trabajo real (SWE-bench Verified 76-77) |
|
|
120
|
+
| **Solo CPU** | `granite4.1:3b` (2,1 GB) o `lfm2.5:8b` (1B activo) | 2-5 GB | caben en RAM sin tarjeta; con 32 GB, `nemotron-3.5-lightning:30b` |
|
|
121
|
+
|
|
122
|
+
Si tienes 8 GB, `lfm2.5:8b` también vale (125K de contexto, hecho para tool calling).
|
|
123
|
+
|
|
124
|
+
> **Ojo con `qwen2.5-coder:7b`.** Devuelve las herramientas **como texto** dentro del
|
|
125
|
+
> mensaje en vez de llamarlas: el modelo no llega a ejecutar nada y el agente se queda
|
|
126
|
+
> mirando. Medido en R15 con Ollama; no lo pongas como modo de trabajo. (Lo mismo, por
|
|
127
|
+
> la misma razón, con `qwen3.5:9b` y el *thinking* activado.)
|
|
128
|
+
|
|
129
|
+
Para LM Studio el id de modelo lo pone la aplicación: míralo con
|
|
130
|
+
`curl http://127.0.0.1:1234/v1/models` y escríbelo en el selector de modelos de la caja
|
|
131
|
+
(la pestaña **Modelos locales** te dice cuál devuelve tu servidor).
|
|
132
|
+
|
|
133
|
+
Los dos lados de la mano están en **Ajustes → Conexiones**: el texto que se copia para
|
|
134
|
+
los agentes con navegador (Claude Code, Codex, OpenClaw, Rowboat…) —lo copia y lo deja en
|
|
135
|
+
`<casa>\handshake.md`— y el **MCP para chats web**, con la carpeta autorizada («Este chat
|
|
136
|
+
solo puede leer y escribir en `<carpeta>`.») y el texto que se pega en el chat.
|
|
137
|
+
**El MCP es la vía recomendada**: cuesta menos (dos llamadas y texto, sin capturas de
|
|
138
|
+
pantalla), tiene estado explícito y **cada tarea sale en la barra lateral del panel** con
|
|
139
|
+
su conversación, así que no es una caja negra.
|
|
140
|
+
|
|
141
|
+
**Las claves del MCP.** Están en UN solo sitio: **Ajustes → Models** (la casa). El servidor
|
|
142
|
+
MCP no mira las variables de entorno del cliente ni abre ficheros de claves: le pregunta al
|
|
143
|
+
motor si la credencial de esa ruta está puesta. Si no lo está, se para y lo dice:
|
|
144
|
+
`Falta la clave de B.AI. Pégala en RATACODE › Ajustes › Models.` Alta típica, sin nada más:
|
|
145
|
+
`claude mcp add --transport stdio ratacode -- ratacode mcp`.
|
|
146
|
+
|
|
147
|
+
## Los 9 modos de la casa
|
|
148
|
+
|
|
149
|
+
El selector del panel trae los **nueve modos de RATACODE y ninguno de los de serie del
|
|
150
|
+
motor**; el de por defecto es **MODO-RATA**:
|
|
151
|
+
|
|
152
|
+
| Modo | Oficio |
|
|
153
|
+
|---|---|
|
|
154
|
+
| MODO-RATA | generalista: el de por defecto |
|
|
155
|
+
| ARQUITECTO | decidir CÓMO se construye |
|
|
156
|
+
| CAPATAZ | objetivo → plan ejecutable |
|
|
157
|
+
| HERO | las manos: implementar |
|
|
158
|
+
| TIRITA | curar fallos |
|
|
159
|
+
| GEPETO | segunda opinión y pesquisa |
|
|
160
|
+
| FARO | escribir claro |
|
|
161
|
+
| PIX | la vía rápida: varias operaciones en un programa |
|
|
162
|
+
| NEX | hacer y probar modos y plugins |
|
|
163
|
+
|
|
164
|
+
## Las 3 formas de usarlo
|
|
165
|
+
|
|
166
|
+
1. **Navegador** — `ratacode`: la terminal en tu navegador, sin «Permitir» en cada paso
|
|
167
|
+
(`danger-full-access` de fábrica). `--home` cambia la casa y `--open` abre el navegador.
|
|
168
|
+
2. **Headless** — `ratacode headless "encargo"`: mandas el encargo por terminal, sin
|
|
169
|
+
pantalla, y la entrega queda en un fichero.
|
|
170
|
+
3. **MCP** — `ratacode mcp` (o `node mcp/bin/ratacode-mcp.js --home <casa>`): servidor MCP
|
|
171
|
+
por stdio para Claude Code, Codex, ChatGPT web, Rowboat u OpenClaw. Siete herramientas:
|
|
172
|
+
`list_providers` → `list_models` → `run_task` → `get_task_status` → `get_task_result` →
|
|
173
|
+
`cancel_task` y `ratacode_status`. Por HTTP (para ChatGPT web) hace falta
|
|
174
|
+
`ratacode mcp --http` y `mcp.workspaces` declarado; el túnel es
|
|
175
|
+
`node mcp/tunel.mjs --home <casa>` (puerto por defecto del MCP: 3778).
|
|
176
|
+
|
|
177
|
+
> Los rótulos propios y las secciones **Conexiones**, **Modelos locales** y **Modos** están en
|
|
178
|
+
> español, pero Ajustes → Models y los menús del motor siguen en inglés (los pone el motor, y
|
|
179
|
+
> RATACODE no reescribe la interfaz a propósito).
|
|
180
|
+
|
|
181
|
+
Para manejar RATACODE desde otro chat sin ayuda, abre **Ajustes → Conexiones** y usa sus dos
|
|
182
|
+
tarjetas (el texto para los agentes con navegador y el MCP para chats web); los textos largos
|
|
183
|
+
están en la carpeta [`apreton`](https://github.com/kittcat-lab/ratacode) del repositorio
|
|
184
|
+
(navegador, headless o MCP).
|
|
185
|
+
|
|
186
|
+
## Seguridad
|
|
187
|
+
|
|
188
|
+
- **Casa propia y cerrada.** Todo vive en `%USERPROFILE%\.ratacode`, **su** carpeta (nunca
|
|
189
|
+
la de ajustes de ningún otro programa). Una tarea MCP trabaja **solo dentro de las
|
|
190
|
+
carpetas autorizadas** (`mcp.workspaces`): escribe y lee ahí, y ni una cosa ni la otra
|
|
191
|
+
fuera. Lo impone el core (sandbox fijado en `workspace-write`) más el cerco de lectura
|
|
192
|
+
del MCP, y la tarea se para con una línea: «Fuera de la carpeta autorizada: `<ruta>`».
|
|
193
|
+
- **Y sin puertas por detrás.** En una tarea del MCP no hay terminal, ni trabajos en
|
|
194
|
+
segundo plano, ni red, ni subagentes, ni guiones: se apagan una a una en el parche de
|
|
195
|
+
cada tarea. Lo que la tarea lea viaja al proveedor del modelo, así que la carpeta
|
|
196
|
+
autorizada es, de verdad, todo lo que ese chat puede ver.
|
|
197
|
+
- **La lectura, encerrada desde R25.** El motor sigue sin saber acotarla (su sandbox es de
|
|
198
|
+
ESCRITURA: *«Reads pass through untouched: every mode permits reading»*), así que
|
|
199
|
+
RATACODE la encierra con el gancho `tools/pre-execute` del motor: cada herramienta con
|
|
200
|
+
una ruta fuera de `mcp.workspaces` se deniega. Antes, `ratacode mcp --http` y
|
|
201
|
+
`mcp/tunel.mjs` **no arrancaban** sin `--acepto-lectura-total`; ya no hace falta nada de
|
|
202
|
+
eso (la bandera se acepta como no-op, por no romper comandos viejos).
|
|
203
|
+
- **Las claves no salen.** Nunca van dentro del paquete. El servidor MCP no lee ficheros
|
|
204
|
+
de credenciales (le pregunta al motor si la credencial está puesta en la casa), las usa
|
|
205
|
+
y no las devuelve ni las escribe en el cuaderno. El motor, además, lava el entorno de
|
|
206
|
+
los shells de sus agentes (`/KEY|PASSWORD|SECRET|TOKEN/i`). Y con el cerco de lectura,
|
|
207
|
+
una tarea MCP tampoco puede abrir `<casa>\.credentials.yaml`.
|
|
208
|
+
- **Lo que adjuntes viaja al proveedor del modelo, igual que el texto.** El panel deja
|
|
209
|
+
adjuntar ficheros e imágenes, y eso también sale de tu PC.
|
|
210
|
+
- **Nada hacia fuera por sí solo:** sin telemetría, sin cuentas; de tu PC solo sale lo que
|
|
211
|
+
tus llamadas a tu proveedor de modelos.
|
|
212
|
+
|
|
213
|
+
## Desinstalar y borrar datos
|
|
214
|
+
|
|
215
|
+
Nada de RATACODE queda fuera de estas dos cosas: el paquete y la casa.
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# 1. El programa (y su comando `ratacode`)
|
|
219
|
+
npm uninstall -g ratacode
|
|
220
|
+
|
|
221
|
+
# 2. La casa: ajustes, claves, perfiles, sesiones y registros
|
|
222
|
+
# (en Windows, la carpeta por defecto; si usaste --home, la que le dijeras)
|
|
223
|
+
rmdir /s /q "%USERPROFILE%\.ratacode"
|
|
224
|
+
# PowerShell: Remove-Item -Recurse -Force "$env:USERPROFILE\.ratacode"
|
|
225
|
+
# Mac/Linux: rm -rf ~/.ratacode
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Dentro de esa carpeta van, en claro, **tus claves** (`<casa>\.credentials.yaml`), la clave del
|
|
229
|
+
MCP por HTTP (`<casa>\mcp\http-secret.txt`), la URL del panel con su token (`<casa>\url.txt`),
|
|
230
|
+
los ajustes (`<casa>\settings.yaml`) y los perfiles con la piel copiada. Borrar la carpeta lo
|
|
231
|
+
borra todo; no hay nada más que limpiar (RATACODE nunca escribe fuera de su casa, y si algún
|
|
232
|
+
día exportaste `B_AI_API_KEY` en tu shell, eso se quita de tu perfil de shell).
|
|
233
|
+
|
|
234
|
+
## Licencia y créditos
|
|
235
|
+
|
|
236
|
+
MIT © 2026 **Patxi** (ver [`LICENSE`](LICENSE)). Créditos y licencias de terceros, con su
|
|
237
|
+
texto completo, en [`CREDITS.md`](CREDITS.md).
|
|
238
|
+
|
|
239
|
+
**RATACODE no está afiliado ni avalado por DeepSeek, OpenAI, Anthropic ni Google.** Los
|
|
240
|
+
nombres de sus productos y modelos se usan solo para decir con qué se puede trabajar.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
### English summary
|
|
245
|
+
|
|
246
|
+
**RATACODE — cheap hands for your agent or your chat.** A terminal for AI work wearing
|
|
247
|
+
the RATACODE skin, built on a free engine it never modifies. Send heavy work to cheap
|
|
248
|
+
models (B.AI, OpenRouter, DeepSeek, five free providers and **two local, key-free ones**)
|
|
249
|
+
and get the result back in your agent or chat.
|
|
250
|
+
|
|
251
|
+
- **Requires:** Windows and Node 24.
|
|
252
|
+
- **Web:** <https://kittcat.com/ratacode/> — the product page, with the install prompt ready to copy.
|
|
253
|
+
- **Install (one command):** `npm i -g ratacode`
|
|
254
|
+
(the yellow npm 11 «allow-scripts» warnings during install are normal and do not stop it
|
|
255
|
+
from working; alternative: the GitHub release tarball
|
|
256
|
+
`https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz`
|
|
257
|
+
— last resort: `git clone` the repo, `npm pack` and `npm i -g ./ratacode-0.2.0.tgz`) — then run `ratacode`.
|
|
258
|
+
- **Bring your own keys:** eight APIs ship declared (`B.AI`, `OpenRouter`, `DeepSeek`,
|
|
259
|
+
`Groq`, `Google Gemini`, `NVIDIA NIM`, `SambaNova`, `Cloudflare Workers AI` — the last one
|
|
260
|
+
needs your `{account_id}` pasted into *Customized settings → Base URL*). Set each key in the
|
|
261
|
+
web UI (Settings → Models) or as its environment variable; keys are never bundled.
|
|
262
|
+
The MCP server asks the engine whether the credential is set in the house — it never reads your
|
|
263
|
+
chat's environment or any credentials file.
|
|
264
|
+
- **Local models live in their own tab (Settings → "Modelos locales"):** **Ollama** and
|
|
265
|
+
**LM Studio**, local and key-free — whether they are installed, running or off, the button to
|
|
266
|
+
turn them on and off, which models you have and which ones work as an agent, and your card's
|
|
267
|
+
recommendation ("your GPU: 10 GB → recommended: qwen3:8b"). They stay declared in the house, so
|
|
268
|
+
the box's model picker still offers them.
|
|
269
|
+
- **Nine modes** ship in the picker (MODO-RATA by default) and none of the engine's own: three
|
|
270
|
+
columns by three rows, each with its character's colour and "En uso" on the one in charge.
|
|
271
|
+
- **Conexiones (Settings → Conexiones):** one button copies the text that tells an agent how to
|
|
272
|
+
work with RATACODE; the other card turns the web-chat connection on and off, with the address
|
|
273
|
+
to paste in ChatGPT › Settings › Connectors and its one-line warning. **MCP is the recommended
|
|
274
|
+
route** (cheaper and more reliable), and every MCP task shows up in the panel sidebar with its
|
|
275
|
+
conversation.
|
|
276
|
+
- **Three ways to use it:** browser (`ratacode`), headless (`ratacode headless "task"`),
|
|
277
|
+
and MCP (`ratacode mcp`) so ChatGPT web, Claude Code, Codex, Rowboat or OpenClaw can
|
|
278
|
+
delegate tasks (`list_models`, `run_task`, `get_task_status`, `get_task_result`, `cancel_task`).
|
|
279
|
+
- **Security:** its own locked home (`%USERPROFILE%\.ratacode`, never any other program's settings
|
|
280
|
+
folder); MCP tasks work only inside the folders you authorise (`mcp.workspaces`) — they **read
|
|
281
|
+
and write there and nowhere else** — with no terminal, no network, no subagents and no scripts,
|
|
282
|
+
and the read fence is the engine's own `tools/pre-execute` hook, so the HTTP transport and the
|
|
283
|
+
tunnel no longer need `--acepto-lectura-total` (it is a no-op now); and the keys never travel
|
|
284
|
+
inside the package.
|
|
285
|
+
- **Uninstall:** `npm uninstall -g ratacode`, then delete the home folder
|
|
286
|
+
(`%USERPROFILE%\.ratacode`; `rm -rf ~/.ratacode` on Mac/Linux). That folder holds your keys
|
|
287
|
+
(`.credentials.yaml`), the MCP key (`mcp\http-secret.txt`) and the panel URL with its token
|
|
288
|
+
(`url.txt`); nothing else is written anywhere.
|
|
289
|
+
- **License:** MIT © 2026 Patxi. Third-party credits and licences: [`CREDITS.md`](CREDITS.md).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# RATACODE · Conexiones: cuál elegir según tu app
|
|
2
|
+
|
|
3
|
+
| Tu app | Qué usar | Por qué |
|
|
4
|
+
|---|---|---|
|
|
5
|
+
| Claude Code, Codex, OpenClaw, Rowboat | **mcp.md** (recomendado) o **navegador.md** | **El MCP es la vía recomendada**: más barata (dos llamadas y texto, sin capturas), con estado explícito y con cada tarea visible en la barra lateral del panel. El navegador sigue valiendo si tu app prefiere mirar la pantalla. |
|
|
6
|
+
| ChatGPT web (el chat) | **mcp.md** con túnel | ChatGPT web habla MCP por HTTP. Necesitas el túnel de Cloudflare: `node mcp/tunel.mjs --home <casa>` (lo cuenta mcp.md). La clave va en la URL. |
|
|
7
|
+
| Cualquier chat sin MCP ni navegador | **headless.md** | `ratacode headless "encargo"` hace el trabajo sin pantalla y deja el resultado en un fichero. |
|
|
8
|
+
| Cualquier agente que no sea de los anteriores | **mcp.md** (genérico) | Si tu agente habla MCP por stdio, usa la configuración genérica de mcp.md. |
|
|
9
|
+
|
|
10
|
+
## Instalación (un comando)
|
|
11
|
+
```bash
|
|
12
|
+
npm i -g ratacode
|
|
13
|
+
```
|
|
14
|
+
Los avisos amarillos «allow-scripts» de npm 11 al instalar son normales y **no impiden que
|
|
15
|
+
funcione**. Alternativa, si quieres una versión concreta: el `.tgz` de la release de GitHub
|
|
16
|
+
(sin git ni cuenta de npm):
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm i -g https://github.com/kittcat-lab/ratacode/releases/download/v0.2.0/ratacode-0.2.0.tgz
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Último recurso, si la descarga falla:
|
|
23
|
+
`git clone https://github.com/kittcat-lab/ratacode && cd ratacode && npm pack && npm i -g ./ratacode-0.2.0.tgz`.
|
|
24
|
+
Después, `ratacode` (necesita Windows y Node 24).
|
|
25
|
+
|
|
26
|
+
La web del producto, con el prompt listo para copiar: <https://kittcat.com/ratacode/>.
|
|
27
|
+
|
|
28
|
+
## Dónde están los prompts
|
|
29
|
+
- **navegador.md** — para agentes con navegador (Claude Code, Codex, OpenClaw, Rowboat…)
|
|
30
|
+
- **headless.md** — para `ratacode headless "encargo"`
|
|
31
|
+
- **mcp.md** — para apps con MCP (Claude Code, Codex, OpenClaw, Rowboat, ChatGPT web con túnel, genérico)
|
|
32
|
+
|
|
33
|
+
## Qué hace RATACODE
|
|
34
|
+
Una terminal de trabajo con IA con la cara de RATACODE, montada sobre un motor libre que no se toca. Los modelos baratos (B.AI: deepseek-v4.1-flash, glm-5.3-flash, qwen3.8-flash, hy3, mimo-v2.5) —o los tuyos, en local con Ollama o LM Studio— hacen el trabajo pesado. Tú planificas, revisas y cierras.
|
|
35
|
+
|
|
36
|
+
## Cómo funciona el ciclo
|
|
37
|
+
1. **Diagnóstico** — solo mirar, sin tocar ficheros.
|
|
38
|
+
2. **Revisión** — comprueba los fallos que más pesen.
|
|
39
|
+
3. **Arreglo** — de uno en uno, cambio mínimo, misma prueba antes/después.
|
|
40
|
+
4. **Cierre** — lee el diff, repite la prueba, abre la app y lo ve.
|
|
41
|
+
|
|
42
|
+
**No arranques servidores. No publiques. Si falta algo, dilo.**
|
|
43
|
+
|
|
44
|
+
## Las trampas que ya costaron
|
|
45
|
+
- **T2:** el espacio de trabajo ya viene puesto; no abras diálogos nativos.
|
|
46
|
+
- **T4:** no uses capturas; lee ficheros o usa `get_task_result`.
|
|
47
|
+
- **T11:** nunca leas `.credentials.yaml`, `.env` ni bóvedas.
|
|
48
|
+
- **T12:** las claves NO se le pasan al servidor MCP: están en RATACODE › Ajustes › Models y el servidor las lee de ahí. Si falta una, sale `Falta la clave de <proveedor>. Pégala en RATACODE › Ajustes › Models.`
|
|
49
|
+
- **T13:** si el tutor dice algo falso, corrígelo con la prueba.
|
|
50
|
+
- **T16:** `url.txt` se borra al arrancar y se escribe cuando el puerto contesta. Si no carga, espera 15 s y vuelve a leerla; si el puerto no escucha, arranca `ratacode` otra vez. El porqué de un cierre queda en `<casa>\ratacode.log`.
|
|
51
|
+
- **T17:** no termines el turno con la tarea en marcha: usa `run_task` con `esperar_segundos` o no pares hasta que `get_task_status` diga `completed`/`failed`. Por stdio, la tarea vive lo que vive el cliente.
|
|
52
|
+
- **T18:** un encargo grande, en sesión/chat nuevo: los encargos van en ficheros y no necesitan historial.
|
|
53
|
+
|
|
54
|
+
Elige el prompt que mejor encaje con tu app. Copia, pega, adapta y ejecuta.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# RATACODE
|
|
2
|
+
|
|
3
|
+
RATACODE corre en MI ordenador: una terminal de trabajo con IA, con modelos
|
|
4
|
+
baratos (o locales) y herramientas de verdad (ficheros, shell, búsqueda,
|
|
5
|
+
subagentes). Yo planifico y reviso; RATACODE hace el trabajo pesado. El panel es
|
|
6
|
+
la URL del recuadro de arriba: ábrela en tu navegador.
|
|
7
|
+
|
|
8
|
+
## LO PRIMERO: cuánto trabajo descargas
|
|
9
|
+
|
|
10
|
+
Antes de nada, pregúntame: «¿qué porcentaje del trabajo quieres que descargue en
|
|
11
|
+
RATACODE?» (0-100 %) y trabaja según mi respuesta: 0 % = solo propones y revisas;
|
|
12
|
+
50 % = reparto; 100 % = le mandas todo el trabajo pesado y tú solo revisas. Si no
|
|
13
|
+
contesto, empieza por 50 % y dímelo.
|
|
14
|
+
|
|
15
|
+
## Cómo me mandas trabajo
|
|
16
|
+
|
|
17
|
+
Escribe el encargo EN LA CAJA del panel y pulsa Enter. Plantilla:
|
|
18
|
+
|
|
19
|
+
Soy [nombre], [rol]. Lee [fichero o carpeta].
|
|
20
|
+
LÍMITES: escribe SOLO en [carpeta]. No leas ficheros de credenciales.
|
|
21
|
+
TAREA: 1) ... 2) ...
|
|
22
|
+
Comprueba cada paso o marca SOSPECHA.
|
|
23
|
+
ENTREGA: [fichero con tope de líneas]. HAZLO sin pedir permiso.
|
|
24
|
+
|
|
25
|
+
## Cómo vigilas (sin capturas)
|
|
26
|
+
|
|
27
|
+
No mires la pantalla (una captura gasta cuota): lee el fichero de sesión de la
|
|
28
|
+
casa —crece en cada turno— o espera la entrega EN UN FICHERO.
|
|
29
|
+
|
|
30
|
+
## Reglas
|
|
31
|
+
|
|
32
|
+
No leas `.credentials.yaml` ni `.env`; sin clave, para y dilo. No arranques
|
|
33
|
+
servidores ni publiques. Encargo grande: chat nuevo y entrega en fichero.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Headless: cómo manejar RATACODE sin navegador
|
|
2
|
+
|
|
3
|
+
RATACODE es una terminal de trabajo con IA con la cara de RATACODE, montada sobre un motor libre que no se toca. En modo headless no hay pantalla: mandas el encargo por terminal y el resultado llega a un fichero. Los modelos baratos —o los tuyos, en local— hacen el trabajo; tú planificas, revisas y cierras.
|
|
4
|
+
|
|
5
|
+
## Cómo usarlo
|
|
6
|
+
```sh
|
|
7
|
+
ratacode headless "tu encargo aquí"
|
|
8
|
+
```
|
|
9
|
+
El resultado se escribe en un fichero que tú elijas dentro del encargo. `headless` hace el trabajo y termina.
|
|
10
|
+
|
|
11
|
+
## Dónde está la URL (si la necesitas)
|
|
12
|
+
Lee `<casa>\url.txt`. La casa es la carpeta desde la que se arrancó `ratacode` (o `%USERPROFILE%\.ratacode` por defecto). En headless no la abres, pero si necesitas ver el estado, abre la URL en otro momento. **Ojo (T16):** ese fichero se escribe cuando el panel arranca y escucha, no en headless; si lo lees y no carga, espera 15 s y vuelve a leerlo, y mira `<casa>\ratacode.log` para saber por qué se cerró el motor.
|
|
13
|
+
|
|
14
|
+
## Cómo escribir un encargo
|
|
15
|
+
Usa esta plantilla (funcionó a la primera):
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Soy [tu nombre], [tu rol]. Lee [fichero o carpeta].
|
|
19
|
+
LÍMITES: escribe SOLO en [carpeta]. [Lo que NO toques]. No leas ficheros de credenciales. Sin git, sin publicar.
|
|
20
|
+
TAREA:
|
|
21
|
+
1) [Primer paso]
|
|
22
|
+
2) [Segundo paso]
|
|
23
|
+
3) ...
|
|
24
|
+
Comprueba cada paso o marca SOSPECHA.
|
|
25
|
+
ENTREGA: [fichero con tope de líneas].
|
|
26
|
+
HAZLO sin pedir permiso.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Después de enviar**, comprueba que el proceso terminó y que el fichero de entrega existe. Si no termina, mira por qué antes de repetir.
|
|
30
|
+
|
|
31
|
+
## Cómo comprobar que llegó
|
|
32
|
+
- El proceso `ratacode headless` termina con código 0.
|
|
33
|
+
- El fichero de entrega existe y tiene contenido.
|
|
34
|
+
- Si hay error, el código de salida no es 0 y el stderr dice qué pasó.
|
|
35
|
+
|
|
36
|
+
## Cómo vigilar sin capturas
|
|
37
|
+
No mires la pantalla. Lee el fichero de entrega directamente. Una captura gasta cuota; un fichero no. En headless no hay pantalla que mirar.
|
|
38
|
+
|
|
39
|
+
## Trampas que ya costaron (tropiezos 2, 4, 6, 7, 11, 13, 16, 17, 18)
|
|
40
|
+
|
|
41
|
+
- **T2 · Espacio de trabajo:** arranca `ratacode headless` desde la carpeta de trabajo; el espacio ya viene puesto.
|
|
42
|
+
- **T4 · Capturas gastan cuota:** en headless no hay pantalla; pide la entrega en un fichero.
|
|
43
|
+
- **T6 · No aplica:** en headless no hay caja de chat.
|
|
44
|
+
- **T7 · No aplica:** en headless no hay caja de chat.
|
|
45
|
+
- **T11 · Credenciales:** nunca leas `.credentials.yaml`, `.env` ni bóvedas. Si falta una clave, para y dilo.
|
|
46
|
+
- **T13 · Tutor equivocado:** si el tutor dice algo falso, corrígelo con la prueba (fichero:línea); no obedezcas una premisa falsa.
|
|
47
|
+
- **T16 · La URL a medias y el cierre sin rastro:** `url.txt` se borra al arrancar el PANEL y se escribe cuando el puerto contesta; headless no lo toca. Si lo lees y no carga, espera 15 s y vuelve a leerlo. El motivo de un cierre del motor queda en `<casa>\ratacode.log` (código de salida y señal).
|
|
48
|
+
- **T17 · No aplica (y por eso headless es la salida de emergencia):** `ratacode headless` no termina su turno antes que la tarea: el proceso no sale hasta que el motor acaba, así que el fichero de entrega no se queda a medias. Si no puede volver a preguntar, pide la entrega en un fichero.
|
|
49
|
+
- **T18 · Un encargo grande, en sesión nueva:** cada `ratacode headless` es una sesión nueva del motor (no arrastra historial), que es justo lo que hay que hacer: los encargos van en ficheros y no necesitan historial. Lo que NO hay que hacer es encadenar encargos grandes en el mismo chat que los lanza.
|
|
50
|
+
|
|
51
|
+
## El ciclo (diagnóstico → revisión → arreglo → cierre)
|
|
52
|
+
|
|
53
|
+
1. **Diagnóstico** (tu sesión headless): solo mirar, sin tocar ficheros. Lee lo que te den, pasa pruebas, busca fallos y comprueba cada uno. Lo no comprobado, SOSPECHA.
|
|
54
|
+
2. **Revisión** (tú): comprueba los fallos que más pesen. Marca falsos positivos.
|
|
55
|
+
3. **Arreglo** (tu sesión headless): de uno en uno, cambio mínimo, misma prueba antes/después. Sin commit.
|
|
56
|
+
4. **Cierre** (tú): lee el diff, repite la prueba, abre la app y lo ve. Commit solo si toca.
|
|
57
|
+
|
|
58
|
+
**No arranques servidores. No publiques. Si falta algo, dilo.**
|