ostacky 0.6.0 → 0.6.2
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 +9 -9
- package/assets/agents/ostacky.md +311 -310
- package/assets/commands/install-stack.md +510 -536
- package/assets/commands/opsx-sync.md +26 -26
- package/assets/mcp/openspec/index.js +1 -1
- package/assets/mcp/openspec/package.json +1 -1
- package/assets/mcp/ostacky-controller/index.js +989 -994
- package/assets/mcp/ostacky-controller/package.json +10 -10
- package/assets/plugins/engram.ts +537 -537
- package/assets/skills/brainstorming/SKILL.md +197 -197
- package/assets/skills/dispatching-parallel-agents/SKILL.md +182 -182
- package/assets/skills/execution-mode-evaluation/SKILL.md +189 -189
- package/assets/skills/graceful-degradation/SKILL.md +235 -235
- package/assets/skills/openspec-apply-change/SKILL.md +167 -167
- package/assets/skills/openspec-archive-change/SKILL.md +114 -114
- package/assets/skills/openspec-explore/SKILL.md +288 -288
- package/assets/skills/openspec-propose/SKILL.md +114 -114
- package/assets/skills/receiving-code-review/SKILL.md +213 -213
- package/assets/skills/review/SKILL.md +216 -216
- package/assets/skills/subagent-driven-development/SKILL.md +302 -302
- package/assets/skills/tdd/SKILL.md +371 -371
- package/assets/skills/using-git-worktrees/SKILL.md +212 -212
- package/assets/skills/using-superpowers/SKILL.md +111 -111
- package/assets/skills/writing-plans/SKILL.md +149 -149
- package/assets/skills/writing-skills/SKILL.md +655 -655
- package/dist/cli.js +2363 -2001
- package/manifest.json +158 -158
- package/package.json +1 -1
|
@@ -1,536 +1,510 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Instala CodeGraph, skills curadas, OpenSpec, Engram y Context7 localmente para OpenCode únicamente
|
|
3
|
-
agent: build
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Instala el stack tecnológico de desarrollo para OpenCode. **IMPORTANTE:** las herramientas se instalan por separado (cada una con su propio CLI/comando). `npx ostacky install` solo instala el agente y commands de Ostacky en `.opencode/`. Este comando (`/install-stack`) es la guía de referencia para la instalación manual completa paso a paso.
|
|
7
|
-
|
|
8
|
-
**Nota:** A partir de v0.6.
|
|
9
|
-
|
|
10
|
-
**RESTRICCIÓN ABSOLUTA:** instalar ÚNICAMENTE para OpenCode. Está terminantemente prohibido crear o modificar archivos en `.claude/`, `.kiro/`, `.cursor/`, `.gemini/`, `.codex/`, `.antigravity/`, `.windsurf/` o cualquier otro directorio de plataformas externas.
|
|
11
|
-
|
|
12
|
-
**Origen del set curado:** el set de 15 skills referenciado en `assets/agents/ostacky.md` está bundleado en `assets/skills/` dentro del paquete npm. Context7 agrega su propio skill vía `npx ctx7 setup --opencode`. La definición del set y su trazabilidad viven en `manifest.json` y `.opencode/ostacky-lock.json`.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Paso 1 — CodeGraph
|
|
17
|
-
|
|
18
|
-
CodeGraph se instala **localmente** en `.opencode/tools/codegraph/` — no se instala nada globalmente. El binario se descarga desde GitHub Releases para tu plataforma (linux/darwin x64/arm64, win32).
|
|
19
|
-
|
|
20
|
-
`npx ostacky install` (o `npx ostacky install-stack`) hace esto automáticamente. Para instalación manual:
|
|
21
|
-
|
|
22
|
-
Verificá si ya está descargado localmente:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
# Remover
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- El
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
**
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
**
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
"
|
|
134
|
-
"
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
"
|
|
139
|
-
"
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"
|
|
144
|
-
"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
-
|
|
229
|
-
- **
|
|
230
|
-
- **
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
```bash
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
├──
|
|
399
|
-
│
|
|
400
|
-
├──
|
|
401
|
-
│ ├──
|
|
402
|
-
│ ├──
|
|
403
|
-
│ ├──
|
|
404
|
-
│ ├──
|
|
405
|
-
│ ├──
|
|
406
|
-
│
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
│
|
|
410
|
-
│
|
|
411
|
-
│
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
1. **Verificar que el
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
```
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
```bash
|
|
512
|
-
npx ostacky install-stack
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
### Engram no inicia
|
|
516
|
-
|
|
517
|
-
1. **Verificar que el binario funciona:**
|
|
518
|
-
|
|
519
|
-
```bash
|
|
520
|
-
.opencode/tools/engram/bin/engram --version
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
2. **Verificar que el plugin está instalado:**
|
|
524
|
-
|
|
525
|
-
```bash
|
|
526
|
-
ls -la .opencode/plugins/engram.ts
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
3. **Re-instalar el plugin:**
|
|
530
|
-
```bash
|
|
531
|
-
cp assets/plugins/engram.ts .opencode/plugins/engram.ts
|
|
532
|
-
```
|
|
533
|
-
|
|
534
|
-
### Degradación graceful
|
|
535
|
-
|
|
536
|
-
Si múltiples tools fallan, Ostacky opera en modo degraded. Ver `assets/skills/graceful-degradation/SKILL.md` para los flujos alternativos disponibles.
|
|
1
|
+
---
|
|
2
|
+
description: Instala CodeGraph, skills curadas, OpenSpec, Engram y Context7 localmente para OpenCode únicamente
|
|
3
|
+
agent: build
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Instala el stack tecnológico de desarrollo para OpenCode. **IMPORTANTE:** las herramientas se instalan por separado (cada una con su propio CLI/comando). `npx ostacky install` solo instala el agente y commands de Ostacky en `.opencode/`. Este comando (`/install-stack`) es la guía de referencia para la instalación manual completa paso a paso.
|
|
7
|
+
|
|
8
|
+
**Nota:** A partir de v0.6.2, `npx ostacky install` ya instala automáticamente el stack completo (CodeGraph, OpenSpec, Engram, Context7, MCPs bundleados) además del agente y skills. Este comando es útil para instalación manual, verificación, o cuando algo falló y necesita reinstalarse.
|
|
9
|
+
|
|
10
|
+
**RESTRICCIÓN ABSOLUTA:** instalar ÚNICAMENTE para OpenCode. Está terminantemente prohibido crear o modificar archivos en `.claude/`, `.kiro/`, `.cursor/`, `.gemini/`, `.codex/`, `.antigravity/`, `.windsurf/` o cualquier otro directorio de plataformas externas.
|
|
11
|
+
|
|
12
|
+
**Origen del set curado:** el set de 15 skills referenciado en `assets/agents/ostacky.md` está bundleado en `assets/skills/` dentro del paquete npm. Context7 agrega su propio skill vía `npx ctx7 setup --opencode`. La definición del set y su trazabilidad viven en `manifest.json` y `.opencode/ostacky-lock.json`.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Paso 1 — CodeGraph
|
|
17
|
+
|
|
18
|
+
CodeGraph se instala **localmente** en `.opencode/tools/codegraph/` — no se instala nada globalmente. El binario se descarga desde GitHub Releases para tu plataforma (linux/darwin x64/arm64, win32).
|
|
19
|
+
|
|
20
|
+
`npx ostacky install` (o `npx ostacky install-stack`) hace esto automáticamente. Para instalación manual:
|
|
21
|
+
|
|
22
|
+
Verificá si ya está descargado localmente:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Unix
|
|
26
|
+
.opencode/tools/codegraph/bin/codegraph --version
|
|
27
|
+
# Windows: ejecutar codegraph.cmd o codegraph.exe dentro de .opencode/tools/codegraph/bin/
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Si no está, descargalo manualmente desde [GitHub Releases](https://github.com/colbymchenry/codegraph/releases) y extraelo a `.opencode/tools/codegraph/` (el tar.gz tiene estructura `codegraph-{os}-{arch}/bin/codegraph`, `lib/`, `node`).
|
|
31
|
+
|
|
32
|
+
Inicializa e indexa el proyecto actual:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Unix
|
|
36
|
+
.opencode/tools/codegraph/bin/codegraph init -i
|
|
37
|
+
# Windows: ejecutar el launcher instalado con `init -i`
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Verifica que el MCP server esté configurado en `opencode.json` apuntando al binario local:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"mcp": {
|
|
45
|
+
"codegraph": {
|
|
46
|
+
"type": "local",
|
|
47
|
+
"command": [".opencode/tools/codegraph/bin/codegraph", "serve", "--mcp"],
|
|
48
|
+
"enabled": true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Desinstalar CodeGraph
|
|
55
|
+
|
|
56
|
+
Para remover CodeGraph del proyecto:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Remover el índice local
|
|
60
|
+
rm -rf .codegraph/
|
|
61
|
+
# Remover el binario local
|
|
62
|
+
rm -rf .opencode/tools/codegraph/
|
|
63
|
+
# Remover la entrada MCP de opencode.json (editar el archivo)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Paso 1.5 — Ostacky Controller MCP (opcional)
|
|
69
|
+
|
|
70
|
+
El Ostacky Controller es una máquina de estados persistida que Ostacky usa para validar transiciones, consumir decisiones, autorizar side effects y persistir snapshots.
|
|
71
|
+
|
|
72
|
+
El controller MCP se configura como server local en `opencode.json`. Si el controller no está disponible, Ostacky cae a inline con confianza reducida pero preserva las compuertas de confirmación en lenguaje natural.
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"mcp": {
|
|
77
|
+
"ostacky-controller": {
|
|
78
|
+
"type": "local",
|
|
79
|
+
"command": ["node", ".opencode/mcp/ostacky-controller/index.js"],
|
|
80
|
+
"enabled": true
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Notas:**
|
|
87
|
+
|
|
88
|
+
- El controller no es obligatorio para operar Ostacky — es un refuerzo de disciplina.
|
|
89
|
+
- Sin controller, Ostacky usa las mismas reglas en lenguaje natural pero sin validación de transiciones ni persistencia de estado. El agente detecta automáticamente si el controller está disponible y opera en modo degraded si no.
|
|
90
|
+
- El controller nunca autoriza subagentes sin confirmación explícita del usuario.
|
|
91
|
+
- Los MCP servers se copian como archivos autocontenidos (bundleados en `dist/mcp/` durante el build). No requieren `npm install` ni `bun install` — cada `index.js` es un único archivo autocontenido sin dependencias externas.
|
|
92
|
+
- El installer maneja `opencode.jsonc` (con comentarios) correctamente — strippea comentarios antes de parsear y escribe JSON válido de vuelta.
|
|
93
|
+
- El installer registra el MCP directamente y **no mueve ni elimina** un `AGENTS.md` existente en la raíz del proyecto.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Paso 2 — Skills curadas (bundleadas)
|
|
98
|
+
|
|
99
|
+
Las **15 skills curadas** están bundleadas dentro del paquete Ostacky en `assets/skills/`. No se descargan ni clonan; ya vienen en el paquete npm. Context7 agrega su propia skill aparte (Paso 6).
|
|
100
|
+
|
|
101
|
+
Copiá cada skill bundleada a `.opencode/skills/<nombre>/` preservando la estructura interna (incluyendo `SKILL.md` y cualquier subdirectorio como `scripts/` o `references/`):
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# Ejemplo para una skill; aplicar a las 15
|
|
105
|
+
mkdir -p .opencode/skills/brainstorming
|
|
106
|
+
cp -r assets/skills/brainstorming/* .opencode/skills/brainstorming/
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Set curado (15 skills, referenciado en `assets/agents/ostacky.md`):**
|
|
110
|
+
|
|
111
|
+
`brainstorming`, `writing-plans`, `tdd`, `review`, `execution-mode-evaluation`, `subagent-driven-development`, `dispatching-parallel-agents`, `openspec-propose`, `openspec-apply-change`, `openspec-archive-change`, `receiving-code-review`, `using-git-worktrees`, `using-superpowers`, `writing-skills`, `graceful-degradation`
|
|
112
|
+
|
|
113
|
+
**NO se requiere** el plugin `superpowers@git+...` en `opencode.json`. Las skills viven en `.opencode/skills/` y OpenCode las descubre automáticamente desde ahí.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Paso 3 — Parche de `opencode.json`
|
|
118
|
+
|
|
119
|
+
Leé `opencode.json` (o `opencode.jsonc`) en la raíz del proyecto.
|
|
120
|
+
|
|
121
|
+
**Eliminá** cualquier entrada `"plugin": ["superpowers@git+https://github.com/obra/superpowers.git"]` (y equivalentes). Las skills ya están provistas por el bundle local, no por el plugin.
|
|
122
|
+
|
|
123
|
+
**Preservá** sin tocar el bloque `mcp.codegraph` configurado en el Paso 1.
|
|
124
|
+
|
|
125
|
+
**Resultado final esperado** de `opencode.json` (o `opencode.jsonc`):
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"$schema": "https://opencode.ai/config.json",
|
|
130
|
+
"mcp": {
|
|
131
|
+
"codegraph": {
|
|
132
|
+
"type": "local",
|
|
133
|
+
"command": [".opencode/tools/codegraph/bin/codegraph", "serve", "--mcp"],
|
|
134
|
+
"enabled": true
|
|
135
|
+
},
|
|
136
|
+
"engram": {
|
|
137
|
+
"type": "local",
|
|
138
|
+
"command": [".opencode/tools/engram/bin/engram", "mcp"],
|
|
139
|
+
"enabled": true
|
|
140
|
+
},
|
|
141
|
+
"context7": {
|
|
142
|
+
"type": "remote",
|
|
143
|
+
"url": "https://mcp.context7.com/mcp",
|
|
144
|
+
"enabled": true
|
|
145
|
+
},
|
|
146
|
+
"ostacky-controller": {
|
|
147
|
+
"type": "local",
|
|
148
|
+
"command": ["node", ".opencode/mcp/ostacky-controller/index.js"],
|
|
149
|
+
"enabled": true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
(El campo `plugin` queda ausente, no como array vacío.)
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Paso 4 — OpenSpec CLI
|
|
160
|
+
|
|
161
|
+
OpenSpec se inicializa con su CLI oficial para OpenCode. Genera commands en `.opencode/commands/` y skills en `.opencode/skills/`; **no instala ni registra un MCP server local**.
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
npx --yes openspec init --tools opencode --force
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Los changes se almacenan en `openspec/changes/` y se archivan en `openspec/archive/`.
|
|
168
|
+
|
|
169
|
+
### Desinstalar OpenSpec
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Remover commands/skills generados por OpenSpec según corresponda
|
|
173
|
+
# Remover changes archivados (opcional)
|
|
174
|
+
rm -rf openspec/
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Paso 5 — Engram
|
|
180
|
+
|
|
181
|
+
[Engram](https://github.com/Gentleman-Programming/engram) es el sistema de memoria persistente para agentes de IA. Se instala como un único binario Go con SQLite + FTS5, sin Node.js, Python ni Docker.
|
|
182
|
+
|
|
183
|
+
**Instalación local:** Engram se descarga **localmente** a `.opencode/tools/engram/bin/engram` desde GitHub Releases — no se instala nada globalmente. `npx ostacky install` hace esto automáticamente.
|
|
184
|
+
|
|
185
|
+
**RESTRICCIÓN:** configurar ÚNICAMENTE para OpenCode. Está terminantemente prohibido crear archivos en `.claude/`, `.kiro/`, `.cursor/`, `.gemini/`, `.codex/`, `.antigravity/`, `.windsurf/` o cualquier otro directorio de plataformas externas.
|
|
186
|
+
|
|
187
|
+
### Verificar instalación local
|
|
188
|
+
|
|
189
|
+
Chequeá si el binario local de Engram ya está disponible:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
.opencode/tools/engram/bin/engram --version 2>/dev/null || echo "no-instalado"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
#### Si ya está descargado localmente
|
|
196
|
+
|
|
197
|
+
Si el comando devuelve una versión, Engram ya está disponible. Verificá si es la más reciente comparando con la [última release en GitHub](https://github.com/Gentleman-Programming/engram/releases).
|
|
198
|
+
|
|
199
|
+
Si está desactualizado, descargá la nueva versión desde [releases](https://github.com/Gentleman-Programming/engram/releases) y reemplazá el binario en `.opencode/tools/engram/bin/engram`.
|
|
200
|
+
|
|
201
|
+
Luego de actualizar, saltá directo a [Configurar para OpenCode](#configurar-para-opencode) — no necesitás reinstalar.
|
|
202
|
+
|
|
203
|
+
#### Si no está instalado
|
|
204
|
+
|
|
205
|
+
Descargá el binario desde [GitHub Releases](https://github.com/Gentleman-Programming/engram/releases) para tu plataforma:
|
|
206
|
+
|
|
207
|
+
- **Linux x64:** `engram_{version}_linux_amd64.tar.gz`
|
|
208
|
+
- **Linux arm64:** `engram_{version}_linux_arm64.tar.gz`
|
|
209
|
+
- **macOS x64:** `engram_{version}_darwin_amd64.tar.gz`
|
|
210
|
+
- **macOS arm64:** `engram_{version}_darwin_arm64.tar.gz`
|
|
211
|
+
- **Windows x64:** `engram_{version}_windows_amd64.zip`
|
|
212
|
+
- **Windows arm64:** `engram_{version}_windows_arm64.zip`
|
|
213
|
+
|
|
214
|
+
Extraelo a `.opencode/tools/engram/bin/`:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
mkdir -p .opencode/tools/engram/bin
|
|
218
|
+
# Descargar y extraer el binario ahí
|
|
219
|
+
chmod +x .opencode/tools/engram/bin/engram # Unix only
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Configurar para OpenCode
|
|
223
|
+
|
|
224
|
+
Una vez que Engram está descargado localmente, el plugin se copia automáticamente de `assets/plugins/` a `.opencode/plugins/` durante la instalación. No necesitás correr ningún comando adicional.
|
|
225
|
+
|
|
226
|
+
Este comando:
|
|
227
|
+
|
|
228
|
+
- Copia el plugin de Engram para OpenCode a `.opencode/plugins/`
|
|
229
|
+
- **NO** agrega la entrada MCP al `opencode.json` del proyecto — eso lo hace `npx ostacky install` automáticamente
|
|
230
|
+
- **NO** toca `.claude/`, `.cursor/`, `.gemini/` ni ninguna otra plataforma
|
|
231
|
+
|
|
232
|
+
Verificá que `opencode.json` contenga la entrada MCP de Engram apuntando al binario local (agregada por el installer de Ostacky):
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"mcp": {
|
|
237
|
+
"engram": {
|
|
238
|
+
"type": "local",
|
|
239
|
+
"command": [".opencode/tools/engram/bin/engram", "mcp"],
|
|
240
|
+
"enabled": true
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Si la entrada no está presente (por ejemplo si instalaste Engram manualmente sin Ostacky), agregala a mano al `opencode.json` o `opencode.jsonc`.
|
|
247
|
+
|
|
248
|
+
### Session tracking
|
|
249
|
+
|
|
250
|
+
El plugin de Engram para OpenCode usa `engram serve` para session tracking y recuperación ante compaction. El plugin intenta auto-iniciar el servidor, pero si tu entorno bloquea procesos en background, iniciálo manualmente:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
engram serve
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Corre en el puerto 7437 por defecto. Los datos se almacenan en `~/.engram/engram.db` (SQLite local). **Nota:** esta ruta está hardcoded en el binario de Engram y no es configurable por Ostacky.
|
|
257
|
+
|
|
258
|
+
### Desinstalar Engram del proyecto
|
|
259
|
+
|
|
260
|
+
Para remover la configuración de Engram del proyecto (sin borrar los datos):
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Remover la entrada mcp.engram de opencode.json (editar el archivo)
|
|
264
|
+
# Remover el plugin de Engram de OpenCode:
|
|
265
|
+
rm -f .opencode/plugins/engram.ts
|
|
266
|
+
# Remover el binario local
|
|
267
|
+
rm -rf .opencode/tools/engram/
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
Para borrar todos los datos de Engram (**OPCIONAL** — esto borra la memoria persistente de TODOS los proyectos que usen Engram):
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
# ⚠️ Solo si querés borrar toda la memoria de Engram
|
|
274
|
+
rm -rf ~/.engram/
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Paso 6 — Context7
|
|
280
|
+
|
|
281
|
+
[Context7](https://context7.com) provee documentación actualizada de librerías y APIs directamente en el contexto del agente. Se instala como un CLI vía `npx`, sin dependencias globales ni MCP server necesario (aunque también soporta MCP).
|
|
282
|
+
|
|
283
|
+
**RESTRICCIÓN:** configurar ÚNICAMENTE para OpenCode. Está terminantemente prohibido crear archivos en `.claude/`, `.kiro/`, `.cursor/`, `.gemini/`, `.codex/`, `.antigravity/`, `.windsurf/` o cualquier otro directorio de plataformas externas.
|
|
284
|
+
|
|
285
|
+
### Verificar instalación actual
|
|
286
|
+
|
|
287
|
+
Chequeá si Context7 ya está configurado para OpenCode:
|
|
288
|
+
|
|
289
|
+
```bash
|
|
290
|
+
ls -la .opencode/skills/context7/ 2>/dev/null || echo "no-instalado"
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
También podés verificar si el MCP server de Context7 está en `opencode.json`:
|
|
294
|
+
|
|
295
|
+
```bash
|
|
296
|
+
grep -c "context7" opencode.json 2>/dev/null || echo "no-configurado"
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Instalar
|
|
300
|
+
|
|
301
|
+
**Opción recomendada — setup automático (CLI + skills):**
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
npx ctx7 setup --opencode
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Este comando:
|
|
308
|
+
|
|
309
|
+
- Autentica vía OAuth y genera una API key
|
|
310
|
+
- Instala un skill en `.opencode/skills/context7/` que el agente Ostacky usa automáticamente
|
|
311
|
+
- Pregunta si preferís modo CLI + Skills o MCP
|
|
312
|
+
- **NO** toca `.claude/`, `.cursor/`, `.gemini/` ni ninguna otra plataforma
|
|
313
|
+
|
|
314
|
+
**Alternativa — solo MCP (si preferís el server remoto):**
|
|
315
|
+
|
|
316
|
+
Agregá manualmente la entrada MCP en `opencode.json`:
|
|
317
|
+
|
|
318
|
+
```json
|
|
319
|
+
{
|
|
320
|
+
"mcp": {
|
|
321
|
+
"context7": {
|
|
322
|
+
"type": "remote",
|
|
323
|
+
"url": "https://mcp.context7.com/mcp"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Si tenés una API key de Context7 (recomendado para mejores rate limits):
|
|
330
|
+
|
|
331
|
+
```json
|
|
332
|
+
{
|
|
333
|
+
"mcp": {
|
|
334
|
+
"context7": {
|
|
335
|
+
"type": "remote",
|
|
336
|
+
"url": "https://mcp.context7.com/mcp",
|
|
337
|
+
"headers": {
|
|
338
|
+
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Desinstalar
|
|
346
|
+
|
|
347
|
+
Para remover la configuración generada por `npx ctx7 setup`:
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
npx ctx7 remove
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Esto elimina el skill y la configuración de Context7. Si instalaste el CLI globalmente con `npm install -g ctx7`, también necesitás:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
npm uninstall -g ctx7
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Para remover la entrada MCP manual, editá `opencode.json` y eliminá el bloque `mcp.context7`.
|
|
360
|
+
|
|
361
|
+
### Cómo lo usa Ostacky
|
|
362
|
+
|
|
363
|
+
El skill de Context7 instalado le indica al agente Ostacky que use Context7 automáticamente cuando necesite documentación de librerías, APIs o frameworks. También se puede invocar explícitamente:
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
usá context7 para mostrarme la API de autenticación de Supabase
|
|
367
|
+
use context7 to find Next.js 15 app router examples
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
372
|
+
## Estructura de herramientas
|
|
373
|
+
|
|
374
|
+
Cada herramienta se instala en su propia carpeta dentro de `.opencode/` para mantener una instalación limpia y aislada. El installer crea automáticamente `.opencode/tools/<nombre>/` para cada herramienta externa:
|
|
375
|
+
|
|
376
|
+
```
|
|
377
|
+
.opencode/
|
|
378
|
+
├── agents/ # Agentes OpenCode
|
|
379
|
+
│ └── ostacky.md
|
|
380
|
+
├── commands/ # Comandos OpenCode
|
|
381
|
+
│ ├── install-stack.md # Bundleado por Ostacky
|
|
382
|
+
│ ├── opsx-sync.md # Bundleado por Ostacky
|
|
383
|
+
│ ├── opsx-apply.md # Generado por OpenSpec
|
|
384
|
+
│ ├── opsx-archive.md # Generado por OpenSpec
|
|
385
|
+
│ ├── opsx-explore.md # Generado por OpenSpec
|
|
386
|
+
│ └── opsx-propose.md # Generado por OpenSpec
|
|
387
|
+
├── mcp/ # MCP servers bundleados
|
|
388
|
+
│ ├── ostacky-controller/
|
|
389
|
+
│ │ ├── index.js
|
|
390
|
+
│ │ ├── package.json
|
|
391
|
+
│ │ └── node_modules/ # Solo fallback de desarrollo
|
|
392
|
+
├── skills/ # Skills bundleadas (15)
|
|
393
|
+
│ ├── brainstorming/
|
|
394
|
+
│ ├── writing-plans/
|
|
395
|
+
│ ├── tdd/
|
|
396
|
+
│ ├── review/
|
|
397
|
+
│ ├── execution-mode-evaluation/
|
|
398
|
+
│ ├── subagent-driven-development/
|
|
399
|
+
│ ├── dispatching-parallel-agents/
|
|
400
|
+
│ ├── openspec-propose/
|
|
401
|
+
│ ├── openspec-apply-change/
|
|
402
|
+
│ ├── openspec-archive-change/
|
|
403
|
+
│ ├── receiving-code-review/
|
|
404
|
+
│ ├── using-git-worktrees/
|
|
405
|
+
│ ├── using-superpowers/
|
|
406
|
+
│ ├── writing-skills/
|
|
407
|
+
│ └── graceful-degradation/
|
|
408
|
+
├── tools/ # Config y archivos de herramientas externas
|
|
409
|
+
│ ├── codegraph/ # Config de CodeGraph (AGENTS.md si codegraph lo crea)
|
|
410
|
+
│ ├── engram/ # Config project-local de Engram
|
|
411
|
+
│ └── context7/ # Config de Context7
|
|
412
|
+
└── plugins/ # Plugins de OpenCode
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
**Notas sobre la estructura:**
|
|
416
|
+
|
|
417
|
+
- `.codegraph/` (índice de CodeGraph) vive en la raíz del proyecto — CodeGraph lo espera ahí.
|
|
418
|
+
- El binario de CodeGraph es **local al proyecto** en `.opencode/tools/codegraph/bin/`; en Windows puede ser `codegraph.cmd`. No se instala globalmente.
|
|
419
|
+
- El binario de Engram es **local al proyecto** en `.opencode/tools/engram/bin/engram` (o `engram.exe` en Windows). No se instala globalmente.
|
|
420
|
+
- Context7 se registra como MCP remoto en `opencode.jsonc`. Su skill opcional se instala via `npx ctx7 setup --opencode` en `.opencode/skills/context7/`.
|
|
421
|
+
- El controller publicado se bundlea como un único `index.js`; durante desarrollo el installer instala sus dependencias en staging y valida el servidor antes de activarlo.
|
|
422
|
+
|
|
423
|
+
## Verificación final
|
|
424
|
+
|
|
425
|
+
Confirmá que:
|
|
426
|
+
|
|
427
|
+
1. `.opencode/skills/` contiene las 15 skills curadas y opcionalmente `context7/` si se instaló con `npx ctx7 setup --opencode`
|
|
428
|
+
2. `.opencode/commands/` contiene los commands bundleados por Ostacky (`install-stack`, `opsx-sync`) y los 4 commands generados por OpenSpec (`opsx-apply`, `opsx-archive`, `opsx-explore`, `opsx-propose`) si OpenSpec fue inicializado
|
|
429
|
+
3. `opencode.json` (o `.jsonc`) tiene los bloques MCP: `codegraph`, `engram`, `context7`, `ostacky-controller` — sin campo `plugin`
|
|
430
|
+
4. `.codegraph/` existe en la raíz del proyecto (índice local de CodeGraph)
|
|
431
|
+
5. El launcher local de CodeGraph funciona (`codegraph.cmd --version` en Windows o `codegraph --version` en Unix)
|
|
432
|
+
6. El binario local de Engram funciona (`engram.exe --version` en Windows o `engram --version` en Unix)
|
|
433
|
+
7. Context7 configurado: `mcp.context7` presente en `opencode.jsonc` y/o `.opencode/skills/context7/SKILL.md` existe
|
|
434
|
+
8. OpenSpec generó sus commands/skills para OpenCode mediante `openspec init --tools opencode`
|
|
435
|
+
9. `.opencode/tools/` contiene subdirectorios para `codegraph/`, `engram/` y `context7/`
|
|
436
|
+
10. **NO existen** archivos generados en `.claude/`, `.kiro/`, `.cursor/`, `.gemini/`, `.codex/` ni ningún directorio de otra plataforma
|
|
437
|
+
11. Un `AGENTS.md` preexistente en la raíz del proyecto se preserva sin cambios
|
|
438
|
+
|
|
439
|
+
Reportá el estado de cada componente con ✓ o ✗.
|
|
440
|
+
|
|
441
|
+
## Troubleshooting
|
|
442
|
+
|
|
443
|
+
### MCP Server no responde
|
|
444
|
+
|
|
445
|
+
Si el controller MCP no responde después de la instalación:
|
|
446
|
+
|
|
447
|
+
1. **Verificar que el archivo existe:**
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
ls -la .opencode/mcp/ostacky-controller/index.js
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
2. **Verificar que Node.js está disponible:**
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
node --version
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
3. **Testear el MCP server directamente:**
|
|
460
|
+
|
|
461
|
+
```bash
|
|
462
|
+
echo '{"jsonrpc":"2.0","id":1,"method":"ping","params":{}}' | node .opencode/mcp/ostacky-controller/index.js
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
4. **Si falla, reinstalar:**
|
|
466
|
+
```bash
|
|
467
|
+
npx ostacky install-stack
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### CodeGraph no indexa
|
|
471
|
+
|
|
472
|
+
1. **Verificar que el binario funciona:**
|
|
473
|
+
|
|
474
|
+
```bash
|
|
475
|
+
.opencode/tools/codegraph/bin/codegraph --version
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
2. **Re-inicializar el índice:**
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
.opencode/tools/codegraph/bin/codegraph init -i
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
3. **Si el binario no existe, reinstalar:**
|
|
485
|
+
```bash
|
|
486
|
+
npx ostacky install-stack
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Engram no inicia
|
|
490
|
+
|
|
491
|
+
1. **Verificar que el binario funciona:**
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
.opencode/tools/engram/bin/engram --version
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
2. **Verificar que el plugin está instalado:**
|
|
498
|
+
|
|
499
|
+
```bash
|
|
500
|
+
ls -la .opencode/plugins/engram.ts
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
3. **Re-instalar el plugin:**
|
|
504
|
+
```bash
|
|
505
|
+
cp assets/plugins/engram.ts .opencode/plugins/engram.ts
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Degradación graceful
|
|
509
|
+
|
|
510
|
+
Si múltiples tools fallan, Ostacky opera en modo degraded. Ver `assets/skills/graceful-degradation/SKILL.md` para los flujos alternativos disponibles.
|