ostacky 0.7.3 → 0.8.0

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/README.md CHANGED
@@ -1,14 +1,13 @@
1
1
  # Ostacky
2
2
 
3
- Ostacky es un **agent harness** para [OpenCode](https://opencode.ai). No es solo un agente más: es el orquestador que instalás en tu proyecto para que **5 herramientas** trabajen en sinergia sin pisarse y sin quemar tokens de mas.
3
+ Ostacky es un **agent harness** para [OpenCode](https://opencode.ai). No es solo un agente más: es el orquestador que instalás en tu proyecto para que **4 herramientas** trabajen en sinergia sin pisarse y sin quemar tokens de mas.
4
4
 
5
- | Herramienta | Rol | Define |
6
- | --------------------------------------------------------- | ------------------- | --------------------------------------------- |
7
- | [CodeGraph](https://github.com/colbymchenry/codegraph) | Grafo de código | DÓNDE está el código y a quién impacta |
8
- | [OpenSpec](https://github.com/Fission-AI/OpenSpec/) | Especificaciones | QUÉ hay que construir y POR QUÉ |
9
- | [Superpowers](https://github.com/obra/superpowers) | Ejecución | CÓMO se implementa, prueba y revisa |
10
- | [Engram](https://github.com/Gentleman-Programming/engram) | Memoria persistente | QUÉ aprendimos en sesiones anteriores |
11
- | [Context7](https://context7.com) | Documentación viva | Documentación actualizada de librerías y APIs |
5
+ | Herramienta | Rol | Define |
6
+ | --------------------------------------------------------- | ------------------- | -------------------------------------- |
7
+ | [CodeGraph](https://github.com/colbymchenry/codegraph) | Grafo de código | DÓNDE está el código y a quién impacta |
8
+ | [OpenSpec](https://github.com/Fission-AI/OpenSpec/) | Especificaciones | QUÉ hay que construir y POR QUÉ |
9
+ | [Superpowers](https://github.com/obra/superpowers) | Ejecución | CÓMO se implementa, prueba y revisa |
10
+ | [Engram](https://github.com/Gentleman-Programming/engram) | Memoria persistente | QUÉ aprendimos en sesiones anteriores |
12
11
 
13
12
  Ostacky las rutea según el **nivel de impacto del cambio** (Nivel 0, Nivel 0+1, Nivel 1+), priorizando siempre eficiencia de tokens y preguntándote antes de actuar. Para cambios grandes usa OpenSpec (spec-driven development); para cambios chicos ejecuta directo con Superpowers skills.
14
13
 
@@ -22,7 +21,7 @@ Después de instalar Ostacky (con `npx ostacky install`), necesitás iniciar Ope
22
21
  opencode
23
22
  ```
24
23
 
25
- Abre la interfaz de terminal interactiva. Seleccioná el agente `@Ostacky` desde el panel de agentes o escribí `/agent Ostacky`.
24
+ Abre la interfaz de terminal interactiva. **Para elegir el agente Ostacky: usá `Tab` para navegar entre agentes** en el panel lateral, o escribí `/agent Ostacky` en el chat.
26
25
 
27
26
  ### Web UI — para usar desde el navegador
28
27
 
@@ -30,7 +29,7 @@ Abre la interfaz de terminal interactiva. Seleccioná el agente `@Ostacky` desde
30
29
  opencode web --port 4096
31
30
  ```
32
31
 
33
- Abre OpenCode en el navegador en `http://localhost:4096`. Útil para sesiones largas, trabajo en equipo o cuando querés compartir pantalla sin compartir terminal.
32
+ Abre OpenCode en el navegador en `http://localhost:4096`. **Para elegir el agente Ostacky: abrí el combo/selector de agentes** en la barra superior y seleccioná "Ostacky". Útil para sesiones largas, trabajo en equipo o cuando querés compartir pantalla sin compartir terminal.
34
33
 
35
34
  Opciones útiles:
36
35
 
@@ -51,7 +50,7 @@ Opciones útiles:
51
50
 
52
51
  ## Stack
53
52
 
54
- Ostacky integra **5 herramientas** especializadas para que trabajen en conjunto sin pisarse:
53
+ Ostacky integra **4 herramientas** especializadas para que trabajen en conjunto sin pisarse:
55
54
 
56
55
  ### Cómo trabajan en sinergia
57
56
 
@@ -59,7 +58,6 @@ Ostacky integra **5 herramientas** especializadas para que trabajen en conjunto
59
58
  2. **OpenSpec** documenta requisitos, contratos y escenarios de aceptación (proposal → design → spec → tasks).
60
59
  3. **Superpowers** ejecuta con TDD, testing automatizado y review (brainstorming → plans → tdd → review).
61
60
  4. **Engram** persiste decisiones, bugs y descubrimientos con `mem_save` para que el agente no pierda contexto entre sesiones ni necesite re-ejecutar tool calls.
62
- 5. **Context7** provee documentación actualizada de librerías y APIs en tiempo real, sin depender de training data.
63
61
 
64
62
  Ostacky decide **cuándo y cómo** usar cada herramienta según el **nivel de impacto** del cambio:
65
63
 
@@ -221,33 +219,33 @@ Tras instalar, el proyecto queda así:
221
219
 
222
220
  ```json
223
221
  {
224
- "version": "0.7.3",
222
+ "version": "0.8.0",
225
223
  "lockedAt": "2025-01-01T00:00:00.000Z",
226
224
  "repo": "JaimeHoracio/Ostacky",
227
- "tag": "v0.7.3",
225
+ "tag": "v0.8.0",
228
226
  "agents": {
229
227
  "ostacky": {
230
- "version": "0.7.3",
228
+ "version": "0.8.0",
231
229
  "installedAt": "2025-01-01T00:00:00.000Z",
232
230
  "sha256": "abc123..."
233
231
  }
234
232
  },
235
233
  "commands": {
236
234
  "install-stack": {
237
- "version": "0.7.3",
235
+ "version": "0.8.0",
238
236
  "installedAt": "2025-01-01T00:00:00.000Z",
239
237
  "sha256": "def456..."
240
238
  },
241
239
  "opsx-sync": {
242
- "version": "0.7.3",
240
+ "version": "0.8.0",
243
241
  "installedAt": "2025-01-01T00:00:00.000Z",
244
242
  "sha256": "ghi789..."
245
243
  }
246
244
  },
247
245
  "skills": {
248
- "brainstorming": { "version": "0.7.3", ... },
249
- "execution-mode-evaluation": { "version": "0.7.3", ... },
250
- "openspec-propose": { "version": "0.7.3", ... }
246
+ "brainstorming": { "version": "0.8.0", ... },
247
+ "execution-mode-evaluation": { "version": "0.8.0", ... },
248
+ "openspec-propose": { "version": "0.8.0", ... }
251
249
  }
252
250
  }
253
251
  ```
@@ -259,10 +257,10 @@ Se recomienda agregar `ostacky-lock.json` al control de versiones para que el eq
259
257
  Al terminar la instalación, el flujo normal es:
260
258
 
261
259
  1. **Iniciar OpenCode** (si no está corriendo):
262
- - **TUI:** `opencode` en tu terminal
263
- - **Web:** `opencode web --port 4096` y abrí `http://localhost:4096`
260
+ - **TUI:** `opencode` en tu terminal → **usá `Tab` para navegar al agente Ostacky** en el panel lateral
261
+ - **Web:** `opencode web --port 4096` y abrí `http://localhost:4096` → **abrí el combo/selector de agentes** en la barra superior y elegí "Ostacky"
264
262
  2. OpenCode detecta automáticamente los archivos nuevos en `.opencode/` al iniciar, no necesita recarga manual.
265
- 3. Para usar el agente **escribí `@Ostacky`** en el chat de OpenCode (TUI o web) y enviá tu mensaje. También podés seleccionarlo desde el selector de agentes si tu versión de OpenCode lo soporta.
263
+ 3. Para usar el agente **escribí `@Ostacky`** en el chat de OpenCode (TUI o web) y enviá tu mensaje. También podés seleccionarlo desde el selector de agentes (ver arriba cómo).
266
264
 
267
265
  ### Regenerar el stack manualmente
268
266
 
@@ -277,7 +275,7 @@ Es opcional y solo necesario si algo falló durante la instalación o si querés
277
275
  ## Seguridad
278
276
 
279
277
  - `opencode.jsonc` se versiona en el repo para compartir permisos y MCP de forma reproducible.
280
- - Las URLs de descarga usan **tags de GitHub** (ej. `v0.7.3`), nunca `main` — instalaciones reproducibles
278
+ - Las URLs de descarga usan **tags de GitHub** (ej. `v0.8.0`), nunca `main` — instalaciones reproducibles
281
279
  - Cada path de archivo descargado es validado para prevenir **path traversal**
282
280
  - Los archivos incluyen **checksum SHA-256** opcional; si el manifest lo define, el contenido se verifica antes de escribir
283
281
  - El cache local (`.opencode/cache/`) también valida integridad al servir archivos cacheados
@@ -288,6 +286,13 @@ Es opcional y solo necesario si algo falló durante la instalación o si querés
288
286
  - La sesión sigue ejecutándose después del bloqueo porque `experimental.continue_loop_on_deny` está activado.
289
287
  - Para worktrees, el repo prefiere `.worktrees/` o `worktrees/` (ambos project-local).
290
288
 
289
+ #### Patrones sensibles configurables (hardening-v2)
290
+
291
+ - Variable `OSTACKY_SENSITIVE_PATTERNS` overridea los patrones por defecto (`**/.env*`, `**/.secrets/**`, `**/*.pem`, `**/*.key`, `**/.aws/**`, `**/.ssh/**`, `**/credentials.json`, `**/.npmrc`).
292
+ - Ejemplo: `OSTACKY_SENSITIVE_PATTERNS="**/.env*,**/.secrets/**" bunx ostacky doctor` — `doctor` imprime el patrón efectivo.
293
+ - Allowlist: `.env.example`, `.env.template`, `.env.sample` nunca se bloquean.
294
+ - Fuente única: `src/security.ts` (`SENSITIVE_DEFAULT`, `isSensitive`, `BASH_SENSITIVE_RE`) — guard y controller usan la misma lógica (ver `doctor` para verificar).
295
+
291
296
  #### Aislamiento de worktrees (harness-prod-hardening)
292
297
 
293
298
  Cada worktree de git tiene su **propio** `ostacky-state.json` aislado (resuelto via `findProjectRoot()` con `git rev-parse --show-toplevel`). Dos worktrees no comparten `statePath`, locks ni backups — 3 agentes en 3 worktrees no corrompen el estado del otro. Ver `assets/skills/using-git-worktrees/SKILL.md` §Ostacky Worktree Isolation y `src/fs.ts:findProjectRoot`.