ostacky 0.3.3 → 0.3.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/README.md +5 -5
- package/assets/agents/ostacky.md +18 -28
- package/dist/cli.js +18 -18
- package/manifest.json +16 -16
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -193,20 +193,20 @@ Tras instalar, el proyecto queda así:
|
|
|
193
193
|
|
|
194
194
|
```json
|
|
195
195
|
{
|
|
196
|
-
"version": "0.3.
|
|
196
|
+
"version": "0.3.5",
|
|
197
197
|
"lockedAt": "2025-01-01T00:00:00.000Z",
|
|
198
198
|
"repo": "JaimeHoracio/Ostacky",
|
|
199
|
-
"tag": "v0.3.
|
|
199
|
+
"tag": "v0.3.5",
|
|
200
200
|
"agents": {
|
|
201
201
|
"ostacky": {
|
|
202
|
-
"version": "0.3.
|
|
202
|
+
"version": "0.3.5",
|
|
203
203
|
"installedAt": "2025-01-01T00:00:00.000Z",
|
|
204
204
|
"sha256": "abc123..."
|
|
205
205
|
}
|
|
206
206
|
},
|
|
207
207
|
"commands": {
|
|
208
208
|
"install-stack": {
|
|
209
|
-
"version": "0.3.
|
|
209
|
+
"version": "0.3.5",
|
|
210
210
|
"installedAt": "2025-01-01T00:00:00.000Z",
|
|
211
211
|
"sha256": "def456..."
|
|
212
212
|
}
|
|
@@ -239,7 +239,7 @@ Es opcional y solo necesario si algo falló durante la instalación o si querés
|
|
|
239
239
|
## Seguridad
|
|
240
240
|
|
|
241
241
|
- `opencode.jsonc` se versiona en el repo para compartir permisos y MCP de forma reproducible.
|
|
242
|
-
- Las URLs de descarga usan **tags de GitHub** (ej. `v0.3.
|
|
242
|
+
- Las URLs de descarga usan **tags de GitHub** (ej. `v0.3.5`), nunca `main` — instalaciones reproducibles
|
|
243
243
|
- Cada path de archivo descargado es validado para prevenir **path traversal**
|
|
244
244
|
- Los archivos incluyen **checksum SHA-256** opcional; si el manifest lo define, el contenido se verifica antes de escribir
|
|
245
245
|
- El cache local (`~/.opencode/cache/`) también valida integridad al servir archivos cacheados
|
package/assets/agents/ostacky.md
CHANGED
|
@@ -132,41 +132,31 @@ Si el usuario no responde, **detenete y esperá**. No asumas un camino.
|
|
|
132
132
|
* Despues las fases con `mode: "subagent-driven"`
|
|
133
133
|
- Si el output no tiene `phaseRecommendations`, todo el cambio va en el modo global.
|
|
134
134
|
|
|
135
|
-
4. **Ejecutar cada task no completada
|
|
136
|
-
a. Aplicar la sección "Pre-edit validation" antes de cada llamada al edit tool.
|
|
137
|
-
b. Si pre-edit devuelve "skip-and-mark" → no editar. Ejecutar `mem_save` con topic_key del change.
|
|
138
|
-
c. Si pre-edit devuelve "conflict" → reportar al usuario. No editar ni marcar.
|
|
139
|
-
d. Después de completar exitosamente una task → `mem_save` con topic_key del change.
|
|
140
|
-
e. Si una task falla → reportar al usuario. No reintentar automáticamente.
|
|
135
|
+
4. **Ejecutar cada task no completada — siguiendo este procedimiento exacto para CADA archivo que la task modifica:**
|
|
141
136
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
8. Los subagentes no crean proposals, no planifican, no inician nueva delegacion y no repiten retrieval ya resuelto por el coordinador.
|
|
137
|
+
⚠️ **ATENCIÓN: Nunca uses `edit` sin antes ejecutar los pasos 4a→4f en orden. No saltees pasos.**
|
|
138
|
+
|
|
139
|
+
a. **Leer el archivo actual con el Read tool.** Obligatorio aunque ya lo hayas leído antes. No confiar en lecturas previas del contexto (pueden estar stale).
|
|
146
140
|
|
|
147
|
-
|
|
141
|
+
b. **Preparar oldString y newString.** IMPORTANTE: el Read tool devuelve el contenido CON prefijos de línea ("1: const foo"). El `edit` tool espera el contenido SIN esos prefijos ("const foo"). Asegurate de extraer el texto raw del archivo, sin incluir los números de línea ni el ": " que los sigue.
|
|
148
142
|
|
|
149
|
-
|
|
143
|
+
c. **Verificar que oldString !== newString.** Si son idénticos → skip. No editar. Ejecutar `mem_save` con topic_key del change. Ir al paso 4f.
|
|
150
144
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
145
|
+
d. **Verificar que oldString existe en el contenido fresco del paso 4a.** Buscá coincidencia exacta (whitespace, indentación, saltos de línea). IMPORTANTE: buscá en el contenido sin prefijos de línea.
|
|
146
|
+
- ✅ Si existe → ejecutar `edit` con confianza. Ir al paso 4e.
|
|
147
|
+
- ❌ Si NO existe → verificar si newString ya existe en el contenido fresco:
|
|
148
|
+
- Si newString existe → skip: cambio ya aplicado. Ejecutar `mem_save`. Ir al paso 4f.
|
|
149
|
+
- Si newString no existe → CONFLICTO: el archivo cambió inesperadamente. Reportar al usuario. No editar. No marcar nada.
|
|
154
150
|
|
|
155
|
-
|
|
156
|
-
→ "skip-and-mark": el cambio ya está aplicado.
|
|
157
|
-
Ejecutar mem_save con topic_key del change. No editar.
|
|
151
|
+
e. **Después de cada `edit` exitoso** → ejecutar `mem_save` con topic_key del change.
|
|
158
152
|
|
|
159
|
-
|
|
160
|
-
→ "proceed": ejecutar edit normalmente.
|
|
153
|
+
f. **Si una task falla** → reportar al usuario. No reintentar automáticamente.
|
|
161
154
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
→ No: "conflict": el archivo cambió inesperadamente.
|
|
168
|
-
Reportar al usuario. No editar. No marcar nada.
|
|
169
|
-
```
|
|
155
|
+
5. **Superpowers** es el unico orquestador de ejecucion, TDD, review y delegacion.
|
|
156
|
+
6. Los subagentes son **execution-only**.
|
|
157
|
+
7. **Subagentes heredan el mismo procedimiento.** Incluir los pasos 4a→4f completos en el brief de cada subagente para que aplique la misma validación antes de editar.
|
|
158
|
+
8. Los subagentes no se usan para "hacerlo mas rapido" por defecto: se usan para aislar complejidad cuando eso reduce contexto total.
|
|
159
|
+
9. Los subagentes no crean proposals, no planifican, no inician nueva delegacion y no repiten retrieval ya resuelto por el coordinador.
|
|
170
160
|
|
|
171
161
|
### 5. Sync y cierre
|
|
172
162
|
|
package/dist/cli.js
CHANGED
|
@@ -161,7 +161,7 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
161
161
|
// package.json
|
|
162
162
|
var package_default = {
|
|
163
163
|
name: "ostacky",
|
|
164
|
-
version: "0.3.
|
|
164
|
+
version: "0.3.5",
|
|
165
165
|
description: "Instalador interactivo de agentes y comandos para OpenCode",
|
|
166
166
|
type: "module",
|
|
167
167
|
bin: {
|
|
@@ -876,15 +876,15 @@ var L2 = () => {
|
|
|
876
876
|
import { join as join5 } from "path";
|
|
877
877
|
// manifest.json
|
|
878
878
|
var manifest_default = {
|
|
879
|
-
version: "0.3.
|
|
879
|
+
version: "0.3.5",
|
|
880
880
|
repo: "JaimeHoracio/Ostacky",
|
|
881
|
-
tag: "v0.3.
|
|
881
|
+
tag: "v0.3.5",
|
|
882
882
|
agents: [
|
|
883
883
|
{
|
|
884
884
|
name: "ostacky",
|
|
885
885
|
file: "assets/agents/ostacky.md",
|
|
886
886
|
description: "Agente principal de desarrollo con ejecución inline-first y local-first",
|
|
887
|
-
version: "0.3.
|
|
887
|
+
version: "0.3.5",
|
|
888
888
|
sha256: null
|
|
889
889
|
}
|
|
890
890
|
],
|
|
@@ -893,14 +893,14 @@ var manifest_default = {
|
|
|
893
893
|
name: "install-stack",
|
|
894
894
|
file: "assets/commands/install-stack.md",
|
|
895
895
|
description: "Instala el stack tecnológico del proyecto",
|
|
896
|
-
version: "0.3.
|
|
896
|
+
version: "0.3.5",
|
|
897
897
|
sha256: null
|
|
898
898
|
},
|
|
899
899
|
{
|
|
900
900
|
name: "opsx-sync",
|
|
901
901
|
file: "assets/commands/opsx-sync.md",
|
|
902
902
|
description: "Sincroniza delta specs del change activo (wrapper de openspec update)",
|
|
903
|
-
version: "0.3.
|
|
903
|
+
version: "0.3.5",
|
|
904
904
|
sha256: null
|
|
905
905
|
}
|
|
906
906
|
],
|
|
@@ -909,77 +909,77 @@ var manifest_default = {
|
|
|
909
909
|
name: "execution-mode-evaluation",
|
|
910
910
|
file: "assets/skills/execution-mode-evaluation/SKILL.md",
|
|
911
911
|
description: "Skill de decision de modo de ejecucion inline vs subagent-driven con CodeGraph",
|
|
912
|
-
version: "0.3.
|
|
912
|
+
version: "0.3.5",
|
|
913
913
|
sha256: "eaa7cd3205b22c6db79a5d5f542ea554d5f1ca2d57127490011ba3abe4cb912b"
|
|
914
914
|
},
|
|
915
915
|
{
|
|
916
916
|
name: "brainstorming",
|
|
917
917
|
file: "assets/skills/brainstorming/SKILL.md",
|
|
918
918
|
description: "Skill de descubrimiento y exploración (Superpowers)",
|
|
919
|
-
version: "0.3.
|
|
919
|
+
version: "0.3.5",
|
|
920
920
|
sha256: "ad15458c54912007ae3f708c698a11f0a4a58e2a7c7860a1ae8874db573c9e98"
|
|
921
921
|
},
|
|
922
922
|
{
|
|
923
923
|
name: "writing-plans",
|
|
924
924
|
file: "assets/skills/writing-plans/SKILL.md",
|
|
925
925
|
description: "Skill de planificación de implementación (Superpowers)",
|
|
926
|
-
version: "0.3.
|
|
926
|
+
version: "0.3.5",
|
|
927
927
|
sha256: "4d675df944b9c846e9066ff971861ad1c9673cd2c88375081b00a75872ad621a"
|
|
928
928
|
},
|
|
929
929
|
{
|
|
930
930
|
name: "tdd",
|
|
931
931
|
file: "assets/skills/tdd/SKILL.md",
|
|
932
932
|
description: "Skill de test-driven development (Superpowers)",
|
|
933
|
-
version: "0.3.
|
|
933
|
+
version: "0.3.5",
|
|
934
934
|
sha256: "7eacd8ee81dc5c0b85065c0392e37ee10314661f7edb59dd8e70a9e0dae8f371"
|
|
935
935
|
},
|
|
936
936
|
{
|
|
937
937
|
name: "subagent-driven-development",
|
|
938
938
|
file: "assets/skills/subagent-driven-development/SKILL.md",
|
|
939
939
|
description: "Skill de ejecución con subagentes (Superpowers)",
|
|
940
|
-
version: "0.3.
|
|
940
|
+
version: "0.3.5",
|
|
941
941
|
sha256: "14e0f685b1dc1d7e02b7226d18f037fe4b6cba49b512a1fadf67cfad2a9dcc96"
|
|
942
942
|
},
|
|
943
943
|
{
|
|
944
944
|
name: "dispatching-parallel-agents",
|
|
945
945
|
file: "assets/skills/dispatching-parallel-agents/SKILL.md",
|
|
946
946
|
description: "Skill de dispatch paralelo de agentes (Superpowers)",
|
|
947
|
-
version: "0.3.
|
|
947
|
+
version: "0.3.5",
|
|
948
948
|
sha256: "281edf0c38f358497c7e2066fa8217a2ba3e2a39b4205c4af0c41d328fc035a1"
|
|
949
949
|
},
|
|
950
950
|
{
|
|
951
951
|
name: "review",
|
|
952
952
|
file: "assets/skills/review/SKILL.md",
|
|
953
953
|
description: "Skill de revisión de código (Superpowers)",
|
|
954
|
-
version: "0.3.
|
|
954
|
+
version: "0.3.5",
|
|
955
955
|
sha256: "c78d3beff45e9bb6b5e9e1d7155910f379e082d7aaf3c61b90d651d09e0d2e2a"
|
|
956
956
|
},
|
|
957
957
|
{
|
|
958
958
|
name: "openspec-explore",
|
|
959
959
|
file: "assets/skills/openspec-explore/SKILL.md",
|
|
960
960
|
description: "Skill de exploración pre-spec (OpenSpec)",
|
|
961
|
-
version: "0.3.
|
|
961
|
+
version: "0.3.5",
|
|
962
962
|
sha256: "1c75cab8672c2eb8b12f27a0b31f0b7fdb73c21c72583c1e8a566e09fe4108a6"
|
|
963
963
|
},
|
|
964
964
|
{
|
|
965
965
|
name: "openspec-propose",
|
|
966
966
|
file: "assets/skills/openspec-propose/SKILL.md",
|
|
967
967
|
description: "Skill de generación de proposal (OpenSpec)",
|
|
968
|
-
version: "0.3.
|
|
968
|
+
version: "0.3.5",
|
|
969
969
|
sha256: "ab88e9aa22db09559ccf7987d08adc0469b7c6fbe46498e63a3b64926f19e66b"
|
|
970
970
|
},
|
|
971
971
|
{
|
|
972
972
|
name: "openspec-apply-change",
|
|
973
973
|
file: "assets/skills/openspec-apply-change/SKILL.md",
|
|
974
974
|
description: "Skill de aplicación de change (OpenSpec)",
|
|
975
|
-
version: "0.3.
|
|
975
|
+
version: "0.3.5",
|
|
976
976
|
sha256: "847c2f88a66e8d5946c1fec422a5367c89eca5340839b659bbaaeb6f0bdac487"
|
|
977
977
|
},
|
|
978
978
|
{
|
|
979
979
|
name: "openspec-archive-change",
|
|
980
980
|
file: "assets/skills/openspec-archive-change/SKILL.md",
|
|
981
981
|
description: "Skill de archivo de change (OpenSpec)",
|
|
982
|
-
version: "0.3.
|
|
982
|
+
version: "0.3.5",
|
|
983
983
|
sha256: "3d35905ec40a081b8fd77b144426e540c67b1f50cc5801b655313a4fdfaa087a"
|
|
984
984
|
}
|
|
985
985
|
]
|
|
@@ -1165,7 +1165,7 @@ function clearLockfile(opencodeRoot) {
|
|
|
1165
1165
|
const lockfile = readLockfile(opencodeRoot);
|
|
1166
1166
|
if (!lockfile) {
|
|
1167
1167
|
writeLockfile(opencodeRoot, {
|
|
1168
|
-
version: "0.3.
|
|
1168
|
+
version: "0.3.5",
|
|
1169
1169
|
lockedAt: new Date().toISOString(),
|
|
1170
1170
|
repo: "",
|
|
1171
1171
|
tag: "",
|
package/manifest.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.3.
|
|
2
|
+
"version": "0.3.5",
|
|
3
3
|
"repo": "JaimeHoracio/Ostacky",
|
|
4
|
-
"tag": "v0.3.
|
|
4
|
+
"tag": "v0.3.5",
|
|
5
5
|
"agents": [
|
|
6
6
|
{
|
|
7
7
|
"name": "ostacky",
|
|
8
8
|
"file": "assets/agents/ostacky.md",
|
|
9
9
|
"description": "Agente principal de desarrollo con ejecución inline-first y local-first",
|
|
10
|
-
"version": "0.3.
|
|
10
|
+
"version": "0.3.5",
|
|
11
11
|
"sha256": null
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
"name": "install-stack",
|
|
17
17
|
"file": "assets/commands/install-stack.md",
|
|
18
18
|
"description": "Instala el stack tecnológico del proyecto",
|
|
19
|
-
"version": "0.3.
|
|
19
|
+
"version": "0.3.5",
|
|
20
20
|
"sha256": null
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"name": "opsx-sync",
|
|
24
24
|
"file": "assets/commands/opsx-sync.md",
|
|
25
25
|
"description": "Sincroniza delta specs del change activo (wrapper de openspec update)",
|
|
26
|
-
"version": "0.3.
|
|
26
|
+
"version": "0.3.5",
|
|
27
27
|
"sha256": null
|
|
28
28
|
}
|
|
29
29
|
],
|
|
@@ -32,77 +32,77 @@
|
|
|
32
32
|
"name": "execution-mode-evaluation",
|
|
33
33
|
"file": "assets/skills/execution-mode-evaluation/SKILL.md",
|
|
34
34
|
"description": "Skill de decision de modo de ejecucion inline vs subagent-driven con CodeGraph",
|
|
35
|
-
"version": "0.3.
|
|
35
|
+
"version": "0.3.5",
|
|
36
36
|
"sha256": "eaa7cd3205b22c6db79a5d5f542ea554d5f1ca2d57127490011ba3abe4cb912b"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"name": "brainstorming",
|
|
40
40
|
"file": "assets/skills/brainstorming/SKILL.md",
|
|
41
41
|
"description": "Skill de descubrimiento y exploración (Superpowers)",
|
|
42
|
-
"version": "0.3.
|
|
42
|
+
"version": "0.3.5",
|
|
43
43
|
"sha256": "ad15458c54912007ae3f708c698a11f0a4a58e2a7c7860a1ae8874db573c9e98"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"name": "writing-plans",
|
|
47
47
|
"file": "assets/skills/writing-plans/SKILL.md",
|
|
48
48
|
"description": "Skill de planificación de implementación (Superpowers)",
|
|
49
|
-
"version": "0.3.
|
|
49
|
+
"version": "0.3.5",
|
|
50
50
|
"sha256": "4d675df944b9c846e9066ff971861ad1c9673cd2c88375081b00a75872ad621a"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"name": "tdd",
|
|
54
54
|
"file": "assets/skills/tdd/SKILL.md",
|
|
55
55
|
"description": "Skill de test-driven development (Superpowers)",
|
|
56
|
-
"version": "0.3.
|
|
56
|
+
"version": "0.3.5",
|
|
57
57
|
"sha256": "7eacd8ee81dc5c0b85065c0392e37ee10314661f7edb59dd8e70a9e0dae8f371"
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"name": "subagent-driven-development",
|
|
61
61
|
"file": "assets/skills/subagent-driven-development/SKILL.md",
|
|
62
62
|
"description": "Skill de ejecución con subagentes (Superpowers)",
|
|
63
|
-
"version": "0.3.
|
|
63
|
+
"version": "0.3.5",
|
|
64
64
|
"sha256": "14e0f685b1dc1d7e02b7226d18f037fe4b6cba49b512a1fadf67cfad2a9dcc96"
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
"name": "dispatching-parallel-agents",
|
|
68
68
|
"file": "assets/skills/dispatching-parallel-agents/SKILL.md",
|
|
69
69
|
"description": "Skill de dispatch paralelo de agentes (Superpowers)",
|
|
70
|
-
"version": "0.3.
|
|
70
|
+
"version": "0.3.5",
|
|
71
71
|
"sha256": "281edf0c38f358497c7e2066fa8217a2ba3e2a39b4205c4af0c41d328fc035a1"
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
"name": "review",
|
|
75
75
|
"file": "assets/skills/review/SKILL.md",
|
|
76
76
|
"description": "Skill de revisión de código (Superpowers)",
|
|
77
|
-
"version": "0.3.
|
|
77
|
+
"version": "0.3.5",
|
|
78
78
|
"sha256": "c78d3beff45e9bb6b5e9e1d7155910f379e082d7aaf3c61b90d651d09e0d2e2a"
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"name": "openspec-explore",
|
|
82
82
|
"file": "assets/skills/openspec-explore/SKILL.md",
|
|
83
83
|
"description": "Skill de exploración pre-spec (OpenSpec)",
|
|
84
|
-
"version": "0.3.
|
|
84
|
+
"version": "0.3.5",
|
|
85
85
|
"sha256": "1c75cab8672c2eb8b12f27a0b31f0b7fdb73c21c72583c1e8a566e09fe4108a6"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"name": "openspec-propose",
|
|
89
89
|
"file": "assets/skills/openspec-propose/SKILL.md",
|
|
90
90
|
"description": "Skill de generación de proposal (OpenSpec)",
|
|
91
|
-
"version": "0.3.
|
|
91
|
+
"version": "0.3.5",
|
|
92
92
|
"sha256": "ab88e9aa22db09559ccf7987d08adc0469b7c6fbe46498e63a3b64926f19e66b"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"name": "openspec-apply-change",
|
|
96
96
|
"file": "assets/skills/openspec-apply-change/SKILL.md",
|
|
97
97
|
"description": "Skill de aplicación de change (OpenSpec)",
|
|
98
|
-
"version": "0.3.
|
|
98
|
+
"version": "0.3.5",
|
|
99
99
|
"sha256": "847c2f88a66e8d5946c1fec422a5367c89eca5340839b659bbaaeb6f0bdac487"
|
|
100
100
|
},
|
|
101
101
|
{
|
|
102
102
|
"name": "openspec-archive-change",
|
|
103
103
|
"file": "assets/skills/openspec-archive-change/SKILL.md",
|
|
104
104
|
"description": "Skill de archivo de change (OpenSpec)",
|
|
105
|
-
"version": "0.3.
|
|
105
|
+
"version": "0.3.5",
|
|
106
106
|
"sha256": "3d35905ec40a081b8fd77b144426e540c67b1f50cc5801b655313a4fdfaa087a"
|
|
107
107
|
}
|
|
108
108
|
]
|