trackops 2.0.1 → 2.0.3
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 +98 -127
- package/locales/en.json +2 -2
- package/locales/es.json +2 -2
- package/package.json +1 -1
- package/scripts/skills-marketplace-smoke.js +1 -1
- package/scripts/smoke-tests.js +2 -18
- package/scripts/validate-skill.js +18 -4
- package/skills/trackops/SKILL.md +51 -15
- package/skills/trackops/agents/openai.yaml +2 -2
- package/skills/trackops/locales/en/SKILL.md +51 -15
- package/skills/trackops/locales/en/references/activation.md +9 -7
- package/skills/trackops/locales/en/references/troubleshooting.md +16 -10
- package/skills/trackops/locales/en/references/workflow.md +18 -12
- package/skills/trackops/references/activation.md +14 -12
- package/skills/trackops/references/troubleshooting.md +22 -16
- package/skills/trackops/references/workflow.md +21 -15
- package/skills/trackops/skill.json +5 -5
- package/templates/opera/architecture/dependency-graph.md +1 -1
- package/templates/opera/en/architecture/dependency-graph.md +1 -1
- package/templates/skills/project-starter-skill/SKILL.md +2 -0
- package/templates/skills/project-starter-skill/locales/en/SKILL.md +1 -0
- package/skills/trackops/scripts/bootstrap-trackops.js +0 -203
package/README.md
CHANGED
|
@@ -15,62 +15,59 @@
|
|
|
15
15
|
</p>
|
|
16
16
|
|
|
17
17
|
<p align="center">
|
|
18
|
-
<a href="#
|
|
18
|
+
<a href="#espanol">Espanol</a> · <a href="#english">English</a> · <a href="https://baxahaun.github.io/trackops/">Web</a>
|
|
19
19
|
</p>
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## Espanol
|
|
24
24
|
|
|
25
|
-
TrackOps es un sistema local de
|
|
25
|
+
TrackOps es un sistema local de orquestacion y automatizacion operativa para proyectos y desarrollo asistido por agentes IA.
|
|
26
26
|
|
|
27
27
|
Hace tres cosas:
|
|
28
28
|
|
|
29
|
-
1. prepara
|
|
29
|
+
1. prepara al agente con una skill global
|
|
30
30
|
2. activa control operativo dentro de cada repo
|
|
31
|
-
3. media entre el usuario y el agente cuando el proyecto
|
|
31
|
+
3. media entre el usuario y el agente cuando el proyecto aun esta poco definido
|
|
32
32
|
|
|
33
33
|
### Modelo actual
|
|
34
34
|
|
|
35
35
|
TrackOps trabaja en dos capas:
|
|
36
36
|
|
|
37
37
|
1. `skill global`
|
|
38
|
-
se instala una vez en
|
|
39
|
-
2. `
|
|
40
|
-
se
|
|
38
|
+
se instala una vez en el agente
|
|
39
|
+
2. `runtime + activacion local`
|
|
40
|
+
se instalan y ejecutan cuando decides gestionar una maquina y un repo concretos
|
|
41
41
|
|
|
42
|
-
La
|
|
42
|
+
La activacion local tiene dos caminos:
|
|
43
43
|
|
|
44
44
|
- `arranque asistido por agente`
|
|
45
|
-
para ideas tempranas, usuarios poco
|
|
45
|
+
para ideas tempranas, usuarios poco tecnicos o documentacion insuficiente
|
|
46
46
|
- `bootstrap directo`
|
|
47
|
-
para proyectos ya definidos y usuarios
|
|
47
|
+
para proyectos ya definidos y usuarios tecnicos
|
|
48
48
|
|
|
49
|
-
###
|
|
49
|
+
### Instalacion global
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Instala la skill global:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
54
|
npx skills add Baxahaun/trackops
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- prepara el agente
|
|
60
|
-
- asegura el runtime en el primer uso real
|
|
61
|
-
- no modifica repos por sí sola
|
|
62
|
-
|
|
63
|
-
### Primer uso
|
|
64
|
-
|
|
65
|
-
En el primer uso, la skill ejecuta:
|
|
57
|
+
Instala el runtime de forma explicita:
|
|
66
58
|
|
|
67
59
|
```bash
|
|
68
|
-
|
|
60
|
+
npm install -g trackops
|
|
61
|
+
trackops --version
|
|
69
62
|
```
|
|
70
63
|
|
|
71
|
-
|
|
64
|
+
Esta separacion es intencional:
|
|
65
|
+
|
|
66
|
+
- la skill se audita como capa de instrucciones
|
|
67
|
+
- el runtime se instala con un paso visible y verificable
|
|
68
|
+
- no hay instalacion transitiva oculta desde la propia skill
|
|
72
69
|
|
|
73
|
-
###
|
|
70
|
+
### Activacion local
|
|
74
71
|
|
|
75
72
|
Dentro de un repo:
|
|
76
73
|
|
|
@@ -79,12 +76,12 @@ trackops init
|
|
|
79
76
|
trackops opera install
|
|
80
77
|
```
|
|
81
78
|
|
|
82
|
-
|
|
79
|
+
Semantica:
|
|
83
80
|
|
|
84
81
|
- `trackops init`
|
|
85
82
|
activa TrackOps en el repo
|
|
86
83
|
- `trackops opera install`
|
|
87
|
-
|
|
84
|
+
anade OPERA cuando quieres el framework operativo completo
|
|
88
85
|
- `trackops init --with-opera`
|
|
89
86
|
existe como atajo
|
|
90
87
|
- `trackops init --legacy-layout`
|
|
@@ -92,30 +89,30 @@ Semántica:
|
|
|
92
89
|
|
|
93
90
|
### Workspace split
|
|
94
91
|
|
|
95
|
-
Por defecto, TrackOps separa producto y
|
|
92
|
+
Por defecto, TrackOps separa producto y operacion:
|
|
96
93
|
|
|
97
94
|
```text
|
|
98
95
|
mi-proyecto/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
96
|
+
|- .trackops-workspace.json
|
|
97
|
+
|- .env
|
|
98
|
+
|- .env.example
|
|
99
|
+
|- app/
|
|
100
|
+
| \- ...producto real...
|
|
101
|
+
\- ops/
|
|
102
|
+
|- project_control.json
|
|
103
|
+
|- contract/
|
|
104
|
+
| \- operating-contract.json
|
|
105
|
+
|- policy/
|
|
106
|
+
| \- autonomy.json
|
|
107
|
+
|- task_plan.md
|
|
108
|
+
|- progress.md
|
|
109
|
+
|- findings.md
|
|
110
|
+
|- genesis.md
|
|
111
|
+
|- bootstrap/
|
|
112
|
+
|- .agent/
|
|
113
|
+
|- .agents/
|
|
114
|
+
|- .githooks/
|
|
115
|
+
\- .tmp/
|
|
119
116
|
```
|
|
120
117
|
|
|
121
118
|
Fuente de verdad operativa:
|
|
@@ -127,9 +124,9 @@ Fuente de verdad operativa:
|
|
|
127
124
|
|
|
128
125
|
#### Tengo una idea
|
|
129
126
|
|
|
130
|
-
Si el usuario no es
|
|
127
|
+
Si el usuario no es tecnico, el proyecto esta en fase idea, o no hay documentacion suficiente, OPERA no sigue con preguntas de arquitectura en terminal. En su lugar:
|
|
131
128
|
|
|
132
|
-
1. pregunta nivel
|
|
129
|
+
1. pregunta nivel tecnico, estado del proyecto y documentacion disponible
|
|
133
130
|
2. genera un handoff en `ops/bootstrap/agent-handoff.md`
|
|
134
131
|
3. espera a que el agente produzca:
|
|
135
132
|
- `ops/bootstrap/intake.json`
|
|
@@ -143,9 +140,9 @@ trackops opera bootstrap --resume
|
|
|
143
140
|
|
|
144
141
|
#### Ya tengo un repo
|
|
145
142
|
|
|
146
|
-
Si el usuario es
|
|
143
|
+
Si el usuario es tecnico y el proyecto ya tiene suficiente contexto, OPERA sigue por bootstrap directo, compila `ops/contract/operating-contract.json` y recompila `ops/genesis.md`.
|
|
147
144
|
|
|
148
|
-
|
|
145
|
+
Tambien puedes forzar el modo:
|
|
149
146
|
|
|
150
147
|
```bash
|
|
151
148
|
trackops opera install --bootstrap-mode handoff
|
|
@@ -161,12 +158,12 @@ Flags disponibles:
|
|
|
161
158
|
|
|
162
159
|
### Entorno y secretos
|
|
163
160
|
|
|
164
|
-
TrackOps gestiona un contrato
|
|
161
|
+
TrackOps gestiona un contrato explicito de entorno:
|
|
165
162
|
|
|
166
163
|
- `/.env`
|
|
167
164
|
secretos reales del workspace
|
|
168
165
|
- `/.env.example`
|
|
169
|
-
contrato
|
|
166
|
+
contrato publico de variables
|
|
170
167
|
- `app/.env`
|
|
171
168
|
puente de compatibilidad
|
|
172
169
|
|
|
@@ -194,28 +191,9 @@ trackops locale set es
|
|
|
194
191
|
trackops doctor locale
|
|
195
192
|
```
|
|
196
193
|
|
|
197
|
-
### Trabajo diario
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
trackops status
|
|
201
|
-
trackops next
|
|
202
|
-
trackops sync
|
|
203
|
-
trackops env status
|
|
204
|
-
trackops dashboard
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Reglas:
|
|
208
|
-
|
|
209
|
-
- usa `trackops status` para leer foco, fase y bloqueadores
|
|
210
|
-
- usa `trackops next` para ver la siguiente tarea lista
|
|
211
|
-
- usa `trackops sync` para regenerar docs operativos
|
|
212
|
-
- no edites a mano `task_plan.md`, `progress.md` ni `findings.md`
|
|
213
|
-
|
|
214
194
|
### CLI principal
|
|
215
195
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
| Comando | Descripción |
|
|
196
|
+
| Comando | Descripcion |
|
|
219
197
|
|---|---|
|
|
220
198
|
| `trackops init [--with-opera] [--locale es\|en] [--name "..."] [--no-bootstrap] [--legacy-layout]` | Inicializa TrackOps |
|
|
221
199
|
| `trackops status` | Muestra estado operativo |
|
|
@@ -229,28 +207,23 @@ Reglas:
|
|
|
229
207
|
| `trackops doctor locale` | Explica el origen del idioma efectivo |
|
|
230
208
|
| `trackops release [--push]` | Publica la rama configurada desde `app/` |
|
|
231
209
|
| `trackops dashboard` | Lanza el dashboard local |
|
|
232
|
-
|
|
233
|
-
#### OPERA
|
|
234
|
-
|
|
235
|
-
| Comando | Descripción |
|
|
236
|
-
|---|---|
|
|
237
210
|
| `trackops opera install [--bootstrap-mode ...] [--technical-level ...] [--project-state ...] [--docs-state ...] [--decision-ownership ...]` | Instala OPERA y decide la ruta de bootstrap |
|
|
238
|
-
| `trackops opera bootstrap [--resume]` |
|
|
211
|
+
| `trackops opera bootstrap [--resume]` | Continua el bootstrap o ingiere el resultado del agente |
|
|
239
212
|
| `trackops opera handoff [--print\|--json]` | Muestra el handoff listo para copiar al agente |
|
|
240
|
-
| `trackops opera status` | Muestra estado de
|
|
213
|
+
| `trackops opera status` | Muestra estado de instalacion y bootstrap |
|
|
241
214
|
| `trackops opera configure` | Reconfigura idioma o fases |
|
|
242
|
-
| `trackops opera upgrade --stable [--reset]` | Reescribe artefactos gestionados a la
|
|
215
|
+
| `trackops opera upgrade --stable [--reset]` | Reescribe artefactos gestionados a la version estable actual |
|
|
243
216
|
|
|
244
217
|
### Skills del proyecto
|
|
245
218
|
|
|
246
219
|
Hay dos conceptos distintos:
|
|
247
220
|
|
|
248
221
|
- la skill global `trackops`
|
|
249
|
-
prepara el
|
|
222
|
+
prepara al agente y guia el flujo
|
|
250
223
|
- `trackops skill ...`
|
|
251
224
|
gestiona skills nativas del proyecto en `ops/.agents/skills/`
|
|
252
225
|
|
|
253
|
-
###
|
|
226
|
+
### Publicacion
|
|
254
227
|
|
|
255
228
|
Antes de publicar:
|
|
256
229
|
|
|
@@ -264,7 +237,7 @@ npm run release:check
|
|
|
264
237
|
|
|
265
238
|
`trackops release` publica solo `app/`, incluye `.env.example` y no publica `/.env`, `ops/` ni `.trackops-workspace.json`.
|
|
266
239
|
|
|
267
|
-
|
|
240
|
+
Guia ampliada: [UserGUIDE.md](./UserGUIDE.md)
|
|
268
241
|
|
|
269
242
|
---
|
|
270
243
|
|
|
@@ -274,7 +247,7 @@ TrackOps is a local orchestration and operational automation system for projects
|
|
|
274
247
|
|
|
275
248
|
It does three things:
|
|
276
249
|
|
|
277
|
-
1. prepares
|
|
250
|
+
1. prepares the agent with a global skill
|
|
278
251
|
2. activates operational control inside each repository
|
|
279
252
|
3. mediates between the user and the agent when the project is still loosely defined
|
|
280
253
|
|
|
@@ -283,9 +256,9 @@ It does three things:
|
|
|
283
256
|
TrackOps works in two layers:
|
|
284
257
|
|
|
285
258
|
1. `global skill`
|
|
286
|
-
installed once in the agent
|
|
287
|
-
2. `local
|
|
288
|
-
|
|
259
|
+
installed once in the agent
|
|
260
|
+
2. `runtime + local activation`
|
|
261
|
+
installed and used when you decide to manage a specific machine and repository
|
|
289
262
|
|
|
290
263
|
Local activation has two paths:
|
|
291
264
|
|
|
@@ -296,23 +269,24 @@ Local activation has two paths:
|
|
|
296
269
|
|
|
297
270
|
### Global install
|
|
298
271
|
|
|
299
|
-
Install the global skill
|
|
272
|
+
Install the global skill:
|
|
300
273
|
|
|
301
274
|
```bash
|
|
302
275
|
npx skills add Baxahaun/trackops
|
|
303
276
|
```
|
|
304
277
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
### First use
|
|
308
|
-
|
|
309
|
-
On first use the skill runs:
|
|
278
|
+
Install the runtime explicitly:
|
|
310
279
|
|
|
311
280
|
```bash
|
|
312
|
-
|
|
281
|
+
npm install -g trackops
|
|
282
|
+
trackops --version
|
|
313
283
|
```
|
|
314
284
|
|
|
315
|
-
|
|
285
|
+
This split is intentional:
|
|
286
|
+
|
|
287
|
+
- the skill is audited as an instruction layer
|
|
288
|
+
- the runtime is installed through a visible and verifiable step
|
|
289
|
+
- there is no hidden transitive install from the skill itself
|
|
316
290
|
|
|
317
291
|
### Local activation
|
|
318
292
|
|
|
@@ -329,25 +303,25 @@ TrackOps separates product and operations by default:
|
|
|
329
303
|
|
|
330
304
|
```text
|
|
331
305
|
my-project/
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
306
|
+
|- .trackops-workspace.json
|
|
307
|
+
|- .env
|
|
308
|
+
|- .env.example
|
|
309
|
+
|- app/
|
|
310
|
+
\- ops/
|
|
311
|
+
|- project_control.json
|
|
312
|
+
|- contract/
|
|
313
|
+
| \- operating-contract.json
|
|
314
|
+
|- policy/
|
|
315
|
+
| \- autonomy.json
|
|
316
|
+
|- task_plan.md
|
|
317
|
+
|- progress.md
|
|
318
|
+
|- findings.md
|
|
319
|
+
|- genesis.md
|
|
320
|
+
|- bootstrap/
|
|
321
|
+
|- .agent/
|
|
322
|
+
|- .agents/
|
|
323
|
+
|- .githooks/
|
|
324
|
+
\- .tmp/
|
|
351
325
|
```
|
|
352
326
|
|
|
353
327
|
Operational source of truth:
|
|
@@ -395,6 +369,13 @@ TrackOps manages:
|
|
|
395
369
|
- `app/.env`
|
|
396
370
|
compatibility bridge
|
|
397
371
|
|
|
372
|
+
Use:
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
trackops env status
|
|
376
|
+
trackops env sync
|
|
377
|
+
```
|
|
378
|
+
|
|
398
379
|
### Language
|
|
399
380
|
|
|
400
381
|
TrackOps can work with:
|
|
@@ -410,19 +391,9 @@ trackops locale set en
|
|
|
410
391
|
trackops doctor locale
|
|
411
392
|
```
|
|
412
393
|
|
|
413
|
-
### Daily workflow
|
|
414
|
-
|
|
415
|
-
```bash
|
|
416
|
-
trackops status
|
|
417
|
-
trackops next
|
|
418
|
-
trackops sync
|
|
419
|
-
trackops env status
|
|
420
|
-
trackops dashboard
|
|
421
|
-
```
|
|
422
|
-
|
|
423
394
|
### Main CLI
|
|
424
395
|
|
|
425
|
-
Core and OPERA commands follow the same contract as the Spanish section above, including `trackops opera handoff
|
|
396
|
+
Core and OPERA commands follow the same contract as the Spanish section above, including `trackops opera handoff`, `trackops opera bootstrap --resume`, and the explicit `npm install -g trackops` runtime step.
|
|
426
397
|
|
|
427
398
|
### Publishing
|
|
428
399
|
|
package/locales/en.json
CHANGED
|
@@ -125,8 +125,8 @@
|
|
|
125
125
|
"cli.help.skill.desc": "Manage skills.",
|
|
126
126
|
"cli.help.help.desc": "Show this help.",
|
|
127
127
|
"cli.help.globalWorkflow": "Global agent workflow:",
|
|
128
|
-
"cli.help.globalWorkflow.line1": "Install with 'npx skills add Baxahaun/trackops'",
|
|
129
|
-
"cli.help.globalWorkflow.line2": "
|
|
128
|
+
"cli.help.globalWorkflow.line1": "Install the skill with 'npx skills add Baxahaun/trackops' and then the runtime with 'npm install -g trackops'.",
|
|
129
|
+
"cli.help.globalWorkflow.line2": "Then verify with 'trackops --version' and use 'trackops init' and 'trackops opera install' explicitly inside each project.",
|
|
130
130
|
"cli.usage.workspace": "Usage: trackops workspace <status|migrate>",
|
|
131
131
|
"cli.usage.env": "Usage: trackops env <status|sync>",
|
|
132
132
|
"cli.usage.opera": "Usage: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
|
package/locales/es.json
CHANGED
|
@@ -125,8 +125,8 @@
|
|
|
125
125
|
"cli.help.skill.desc": "Gestiona skills.",
|
|
126
126
|
"cli.help.help.desc": "Muestra esta ayuda.",
|
|
127
127
|
"cli.help.globalWorkflow": "Flujo global del agente:",
|
|
128
|
-
"cli.help.globalWorkflow.line1": "Instala con 'npx skills add Baxahaun/trackops'",
|
|
129
|
-
"cli.help.globalWorkflow.line2": "
|
|
128
|
+
"cli.help.globalWorkflow.line1": "Instala la skill con 'npx skills add Baxahaun/trackops' y luego el runtime con 'npm install -g trackops'.",
|
|
129
|
+
"cli.help.globalWorkflow.line2": "Despues verifica con 'trackops --version' y usa 'trackops init' y 'trackops opera install' de forma explicita dentro de cada proyecto.",
|
|
130
130
|
"cli.usage.workspace": "Uso: trackops workspace <status|migrate>",
|
|
131
131
|
"cli.usage.env": "Uso: trackops env <status|sync>",
|
|
132
132
|
"cli.usage.opera": "Uso: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
|
package/package.json
CHANGED
|
@@ -108,9 +108,9 @@ function main() {
|
|
|
108
108
|
assert.ok(installed.length >= 1, `trackops skill was not installed under ${homeRoot}`);
|
|
109
109
|
|
|
110
110
|
const installedSkillDir = installed[0];
|
|
111
|
-
assert.ok(fs.existsSync(path.join(installedSkillDir, "scripts", "bootstrap-trackops.js")));
|
|
112
111
|
assert.ok(fs.existsSync(path.join(installedSkillDir, "references", "activation.md")));
|
|
113
112
|
assert.ok(fs.existsSync(path.join(installedSkillDir, "skill.json")));
|
|
113
|
+
assert.ok(!fs.existsSync(path.join(installedSkillDir, "scripts", "bootstrap-trackops.js")));
|
|
114
114
|
|
|
115
115
|
fs.rmSync(tempRoot, { recursive: true, force: true });
|
|
116
116
|
console.log("skills marketplace smoke OK");
|
package/scripts/smoke-tests.js
CHANGED
|
@@ -11,7 +11,6 @@ const { spawn, spawnSync } = require("child_process");
|
|
|
11
11
|
const ROOT = path.resolve(__dirname, "..");
|
|
12
12
|
const BIN = path.join(ROOT, "bin", "trackops.js");
|
|
13
13
|
const SKILL_VALIDATE = path.join(ROOT, "scripts", "validate-skill.js");
|
|
14
|
-
const SKILL_BOOTSTRAP = path.join(ROOT, "skills", "trackops", "scripts", "bootstrap-trackops.js");
|
|
15
14
|
|
|
16
15
|
function getNpmCommand() {
|
|
17
16
|
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
@@ -220,17 +219,12 @@ async function main() {
|
|
|
220
219
|
const bootstrapEnv = {
|
|
221
220
|
TRACKOPS_BOOTSTRAP_HOME: bootstrapHome,
|
|
222
221
|
TRACKOPS_BOOTSTRAP_PREFIX: bootstrapPrefix,
|
|
223
|
-
TRACKOPS_BOOTSTRAP_INSTALL_SOURCE: tarballPath,
|
|
224
222
|
};
|
|
225
223
|
|
|
226
|
-
const
|
|
227
|
-
assert.strictEqual(
|
|
228
|
-
assert.match(firstBootstrap.stdout, /TrackOps runtime .* is ready/i);
|
|
224
|
+
const explicitInstall = runNpm(["install", "-g", "--prefix", bootstrapPrefix, tarballPath], tempRoot, bootstrapEnv);
|
|
225
|
+
assert.strictEqual(explicitInstall.status, 0, explicitInstall.stderr || explicitInstall.stdout || "instalacion global explicita fallo");
|
|
229
226
|
|
|
230
227
|
const runtimeStamp = readJson(path.join(bootstrapHome, ".trackops", "runtime.json"));
|
|
231
|
-
assert.strictEqual(runtimeStamp.runtimeVersion, packageVersion);
|
|
232
|
-
assert.strictEqual(runtimeStamp.skill, "trackops");
|
|
233
|
-
assert.strictEqual(runtimeStamp.bootstrapPolicy, "first_use");
|
|
234
228
|
assert.ok(["es", "en"].includes(runtimeStamp.locale), "el bootstrap global debe fijar un idioma");
|
|
235
229
|
|
|
236
230
|
const installedCli = path.join(bootstrapPrefix, "node_modules", "trackops", "bin", "trackops.js");
|
|
@@ -238,16 +232,6 @@ async function main() {
|
|
|
238
232
|
const installedVersion = runNode([installedCli, "--version"], tempRoot);
|
|
239
233
|
assert.strictEqual(installedVersion.trim(), packageVersion);
|
|
240
234
|
|
|
241
|
-
const secondBootstrap = runCommand(process.execPath, [SKILL_BOOTSTRAP], tempRoot, bootstrapEnv);
|
|
242
|
-
assert.strictEqual(secondBootstrap.status, 0, secondBootstrap.stderr || secondBootstrap.stdout || "bootstrap idempotente fallo");
|
|
243
|
-
assert.match(secondBootstrap.stdout, /already ready/i);
|
|
244
|
-
|
|
245
|
-
const untouchedRepo = path.join(tempRoot, "untouched-repo");
|
|
246
|
-
fs.mkdirSync(untouchedRepo, { recursive: true });
|
|
247
|
-
const bootstrapNoRepoMutation = runCommand(process.execPath, [SKILL_BOOTSTRAP], untouchedRepo, bootstrapEnv);
|
|
248
|
-
assert.strictEqual(bootstrapNoRepoMutation.status, 0, bootstrapNoRepoMutation.stderr || bootstrapNoRepoMutation.stdout || "bootstrap repetido fallo");
|
|
249
|
-
assert.ok(!fs.existsSync(path.join(untouchedRepo, "project_control.json")), "la skill global no debe crear artefactos de proyecto por si sola");
|
|
250
|
-
|
|
251
235
|
const helpOutput = runNode([BIN, "help"], ROOT);
|
|
252
236
|
assert.doesNotMatch(helpOutput, /\btrackops agent\b/i);
|
|
253
237
|
assert.match(helpOutput, /workspace status\|migrate/i);
|
|
@@ -10,7 +10,6 @@ const SKILL_FILE = path.join(SKILL_DIR, "skill.json");
|
|
|
10
10
|
const REQUIRED_FILES = [
|
|
11
11
|
path.join(SKILL_DIR, "SKILL.md"),
|
|
12
12
|
path.join(SKILL_DIR, "skill.json"),
|
|
13
|
-
path.join(SKILL_DIR, "scripts", "bootstrap-trackops.js"),
|
|
14
13
|
path.join(SKILL_DIR, "references", "activation.md"),
|
|
15
14
|
path.join(SKILL_DIR, "references", "workflow.md"),
|
|
16
15
|
path.join(SKILL_DIR, "references", "troubleshooting.md"),
|
|
@@ -48,8 +47,8 @@ function main() {
|
|
|
48
47
|
fail(`skills/trackops/skill.json must target npm package '${pkg.name}'.`);
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
if (skill.bootstrapPolicy !== "
|
|
52
|
-
fail("skills/trackops/skill.json must use bootstrapPolicy '
|
|
50
|
+
if (skill.bootstrapPolicy !== "explicit_install") {
|
|
51
|
+
fail("skills/trackops/skill.json must use bootstrapPolicy 'explicit_install'.");
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
const supportedAgents = Array.isArray(skill.supportedAgentsV1) ? skill.supportedAgentsV1 : [];
|
|
@@ -73,7 +72,8 @@ function main() {
|
|
|
73
72
|
|
|
74
73
|
for (const requiredPhrase of [
|
|
75
74
|
"npx skills add Baxahaun/trackops",
|
|
76
|
-
"
|
|
75
|
+
"npm install -g trackops",
|
|
76
|
+
"trackops --version",
|
|
77
77
|
"trackops init",
|
|
78
78
|
"trackops opera install",
|
|
79
79
|
"trackops opera bootstrap --resume",
|
|
@@ -83,6 +83,20 @@ function main() {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
for (const forbiddenPhrase of [
|
|
87
|
+
"node scripts/bootstrap-trackops.js",
|
|
88
|
+
"ensures the runtime on first use",
|
|
89
|
+
"asegura el runtime en el primer uso",
|
|
90
|
+
]) {
|
|
91
|
+
if (skillMd.includes(forbiddenPhrase)) {
|
|
92
|
+
fail(`skills/trackops/SKILL.md must not mention '${forbiddenPhrase}'.`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (fs.existsSync(path.join(SKILL_DIR, "scripts", "bootstrap-trackops.js"))) {
|
|
97
|
+
fail("skills/trackops must not publish scripts/bootstrap-trackops.js.");
|
|
98
|
+
}
|
|
99
|
+
|
|
86
100
|
console.log("skills/trackops validated successfully.");
|
|
87
101
|
}
|
|
88
102
|
|
package/skills/trackops/SKILL.md
CHANGED
|
@@ -1,13 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "trackops"
|
|
3
|
-
description: "Skill global de TrackOps para
|
|
3
|
+
description: "Skill global de TrackOps para explicar que hace TrackOps, exigir la instalacion explicita del runtime con npm y guiar la activacion local de proyectos y OPERA en cada repositorio."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# TrackOps
|
|
7
7
|
|
|
8
8
|
Si la conversacion y el proyecto deben trabajar en ingles, lee `locales/en/SKILL.md` antes de seguir.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
TrackOps sirve para trabajar con agentes sobre proyectos reales sin mezclar la aplicacion y la capa operativa.
|
|
11
|
+
|
|
12
|
+
Esta skill es la puerta de entrada cuando alguien:
|
|
13
|
+
|
|
14
|
+
- quiere arrancar un proyecto con agentes IA
|
|
15
|
+
- ya tiene un repo y necesita orden operativo
|
|
16
|
+
- necesita activar TrackOps y, si hace falta, OPERA
|
|
17
|
+
- quiere trabajar en espanol o en ingles con el mismo flujo
|
|
18
|
+
|
|
19
|
+
## Que hace esta skill
|
|
20
|
+
|
|
21
|
+
Esta skill:
|
|
22
|
+
|
|
23
|
+
- explica que es TrackOps y cuando conviene usarlo
|
|
24
|
+
- exige una instalacion explicita y visible del runtime
|
|
25
|
+
- guia la activacion por repositorio
|
|
26
|
+
- ayuda a decidir si OPERA debe seguir por `direct bootstrap` o por `agent handoff`
|
|
27
|
+
|
|
28
|
+
## Que no hace esta skill
|
|
29
|
+
|
|
30
|
+
Esta skill no:
|
|
31
|
+
|
|
32
|
+
- instala paquetes por su cuenta
|
|
33
|
+
- ejecuta codigo remoto en silencio
|
|
34
|
+
- modifica un repositorio antes de que el runtime exista
|
|
35
|
+
- sustituye al runtime `trackops`
|
|
36
|
+
|
|
37
|
+
## Flujo rapido
|
|
11
38
|
|
|
12
39
|
Instala la skill del marketplace con:
|
|
13
40
|
|
|
@@ -15,21 +42,21 @@ Instala la skill del marketplace con:
|
|
|
15
42
|
npx skills add Baxahaun/trackops
|
|
16
43
|
```
|
|
17
44
|
|
|
18
|
-
|
|
45
|
+
Despues, confirma que el runtime `trackops` existe. Si no esta disponible, pide al usuario que lo instale de forma explicita:
|
|
19
46
|
|
|
20
47
|
```bash
|
|
21
|
-
|
|
48
|
+
npm install -g trackops
|
|
49
|
+
trackops --version
|
|
22
50
|
```
|
|
23
51
|
|
|
24
|
-
|
|
52
|
+
Reglas:
|
|
25
53
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
54
|
+
- la skill no debe instalar paquetes ni ejecutar codigo remoto por si sola
|
|
55
|
+
- el runtime se instala con un paso visible y auditable
|
|
56
|
+
- la skill puede verificar `trackops --version`, pero no debe encadenar instalaciones silenciosas
|
|
57
|
+
- la skill no debe crear archivos dentro de un repositorio por si sola
|
|
29
58
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
## Capa local del proyecto
|
|
59
|
+
## Activacion en un proyecto
|
|
33
60
|
|
|
34
61
|
Dentro del repositorio:
|
|
35
62
|
|
|
@@ -40,7 +67,8 @@ trackops opera install
|
|
|
40
67
|
|
|
41
68
|
Reglas base:
|
|
42
69
|
|
|
43
|
-
- trata la
|
|
70
|
+
- trata la skill global como capa de instrucciones
|
|
71
|
+
- trata la instalacion del runtime como explicita y separada
|
|
44
72
|
- usa `ops/contract/operating-contract.json` como contrato de maquina cuando exista
|
|
45
73
|
- usa `ops/project_control.json` como fuente de verdad operativa
|
|
46
74
|
- usa `ops/policy/autonomy.json` antes de acciones sensibles
|
|
@@ -48,7 +76,7 @@ Reglas base:
|
|
|
48
76
|
- deja la documentacion operativa generada dentro de `ops/`
|
|
49
77
|
- usa `trackops locale get|set` y `trackops doctor locale` cuando el idioma importe
|
|
50
78
|
|
|
51
|
-
##
|
|
79
|
+
## Como entra OPERA
|
|
52
80
|
|
|
53
81
|
OPERA ya no asume que todo usuario es tecnico.
|
|
54
82
|
|
|
@@ -79,8 +107,16 @@ Si TrackOps deriva al agente:
|
|
|
79
107
|
trackops opera bootstrap --resume
|
|
80
108
|
```
|
|
81
109
|
|
|
110
|
+
## Que debe entender alguien que llega desde skills.sh
|
|
111
|
+
|
|
112
|
+
- la skill global instala instrucciones en el agente
|
|
113
|
+
- el runtime se instala por separado con npm
|
|
114
|
+
- `trackops init` activa el proyecto
|
|
115
|
+
- `trackops opera install` anade el framework operativo completo solo cuando hace falta
|
|
116
|
+
- TrackOps separa producto y operacion para que el repo no se vuelva caotico
|
|
117
|
+
|
|
82
118
|
## Que referencia leer y cuando
|
|
83
119
|
|
|
84
|
-
- lee `references/activation.md` solo para instalacion,
|
|
120
|
+
- lee `references/activation.md` solo para instalacion, verificacion del runtime, locale bootstrap y activacion de un repo
|
|
85
121
|
- lee `references/workflow.md` solo cuando TrackOps ya esta activo y haga falta operar el dia a dia del repositorio
|
|
86
|
-
- lee `references/troubleshooting.md` solo cuando fallen la instalacion,
|
|
122
|
+
- lee `references/troubleshooting.md` solo cuando fallen la instalacion explicita, la deteccion de `trackops`, el resume o el contrato de entorno
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "TrackOps"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "Use $trackops to
|
|
3
|
+
short_description: "Explain TrackOps and guide explicit install"
|
|
4
|
+
default_prompt: "Use $trackops to explain what TrackOps does, require explicit npm installation of the TrackOps runtime, and then activate TrackOps and OPERA in this repository."
|
|
5
5
|
|
|
6
6
|
policy:
|
|
7
7
|
allow_implicit_invocation: true
|