trackops 2.0.5 → 2.1.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 +319 -695
- package/bin/trackops.js +52 -23
- package/lib/cli-format.js +118 -0
- package/lib/config.js +277 -44
- package/lib/control.js +1052 -352
- package/lib/env.js +40 -28
- package/lib/i18n.js +5 -4
- package/lib/init.js +194 -56
- package/lib/opera-bootstrap.js +326 -106
- package/lib/opera-phase-dod.js +485 -0
- package/lib/opera.js +243 -78
- package/lib/plans.js +1329 -0
- package/lib/quality-assert.js +49 -0
- package/lib/quality.js +1759 -0
- package/lib/release.js +18 -11
- package/lib/server.js +504 -192
- package/lib/skills.js +43 -35
- package/lib/workspace.js +32 -21
- package/locales/en.json +431 -75
- package/locales/es.json +432 -76
- package/package.json +6 -5
- package/scripts/quality-unit-tests.js +130 -0
- package/scripts/smoke-tests.js +438 -96
- package/skills/trackops/skill.json +29 -29
- package/templates/skills/opera-quality-guard/SKILL.md +26 -0
- package/templates/skills/opera-quality-guard/locales/en/SKILL.md +26 -0
- package/templates/skills/opera-skill/SKILL.md +8 -0
- package/templates/skills/opera-skill/locales/en/SKILL.md +8 -0
- package/ui/js/api.js +93 -26
- package/ui/js/app.js +13 -7
- package/ui/js/filters.js +49 -29
- package/ui/js/time-tracker.js +41 -28
- package/ui/js/views/board.js +22 -14
- package/ui/js/views/dashboard.js +206 -49
- package/ui/js/views/execution.js +7 -3
- package/ui/js/views/plans.js +284 -0
- package/ui/js/views/scrum.js +25 -13
- package/ui/js/views/sidebar.js +9 -8
- package/ui/js/views/tasks.js +238 -134
package/README.md
CHANGED
|
@@ -1,695 +1,319 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="docs/assets/logo.svg" alt="TrackOps Logo" width="96" height="96" />
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<h1 align="center">TrackOps</h1>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<strong>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<a href="https://www.npmjs.com/package/trackops"><img src="https://img.shields.io/npm/v/trackops?color=D97706&style=flat-square" alt="npm" /></a>
|
|
13
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22C55E?style=flat-square" alt="MIT" /></a>
|
|
14
|
-
<img src="https://img.shields.io/badge/node-%3E%3D18-333?style=flat-square" alt="Node 18+" />
|
|
15
|
-
</p>
|
|
16
|
-
|
|
17
|
-
<p align="center">
|
|
18
|
-
<a href="#espanol">
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
##
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
al
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
trackops
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
trackops init
|
|
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
|
-
```bash
|
|
147
|
-
trackops
|
|
148
|
-
trackops next
|
|
149
|
-
trackops
|
|
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
|
-
trackops
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
```bash
|
|
297
|
-
trackops
|
|
298
|
-
trackops
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
trackops
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
| Comando | Descripcion |
|
|
321
|
-
|---|---|
|
|
322
|
-
| `trackops init [--with-opera] [--locale es\|en] [--name "..."] [--no-bootstrap] [--legacy-layout]` | Inicializa TrackOps |
|
|
323
|
-
| `trackops status` | Muestra estado operativo |
|
|
324
|
-
| `trackops next` | Muestra la siguiente cola priorizada |
|
|
325
|
-
| `trackops sync` | Regenera docs operativos |
|
|
326
|
-
| `trackops workspace status` | Muestra layout y roots |
|
|
327
|
-
| `trackops workspace migrate` | Migra un proyecto legacy |
|
|
328
|
-
| `trackops env status` | Audita claves presentes y faltantes |
|
|
329
|
-
| `trackops env sync` | Regenera `/.env`, `/.env.example` y el puente |
|
|
330
|
-
| `trackops locale get\|set [es\|en]` | Lee o fija el idioma global |
|
|
331
|
-
| `trackops doctor locale` | Explica el origen del idioma efectivo |
|
|
332
|
-
| `trackops release [--push]` | Publica la rama configurada desde `app/` |
|
|
333
|
-
| `trackops dashboard` | Lanza el dashboard local |
|
|
334
|
-
| `trackops opera install [--bootstrap-mode ...] [--technical-level ...] [--project-state ...] [--docs-state ...] [--decision-ownership ...]` | Instala OPERA y decide la ruta de bootstrap |
|
|
335
|
-
| `trackops opera bootstrap [--resume]` | Continua el bootstrap o ingiere el resultado del agente |
|
|
336
|
-
| `trackops opera handoff [--print\|--json]` | Muestra el handoff listo para copiar al agente |
|
|
337
|
-
| `trackops opera status` | Muestra estado de instalacion y bootstrap |
|
|
338
|
-
| `trackops opera configure` | Reconfigura idioma o fases |
|
|
339
|
-
| `trackops opera upgrade --stable [--reset]` | Reescribe artefactos gestionados a la version estable actual |
|
|
340
|
-
|
|
341
|
-
### Skills del proyecto
|
|
342
|
-
|
|
343
|
-
Hay tres niveles de skills en TrackOps:
|
|
344
|
-
|
|
345
|
-
1. **Skill global** (`trackops`): se instala una vez en el agente. Explica qué es TrackOps y guía la activación de cada repositorio.
|
|
346
|
-
2. **Coordinadora** (`opera-skill`): se instala automáticamente con OPERA. Decide qué hacer, en qué orden, cuándo delegar y cuándo frenar.
|
|
347
|
-
3. **Especialistas**: se instalan con OPERA o manualmente. Cada una cubre un rol concreto.
|
|
348
|
-
|
|
349
|
-
Skills de proyecto instaladas automáticamente con OPERA:
|
|
350
|
-
|
|
351
|
-
- `opera-skill` — coordinadora operativa
|
|
352
|
-
- `project-starter-skill` — descubrimiento y estructuración
|
|
353
|
-
- `opera-contract-auditor` — auditoría del contrato
|
|
354
|
-
- `opera-policy-guard` — control de riesgo
|
|
355
|
-
|
|
356
|
-
Skills adicionales disponibles:
|
|
357
|
-
|
|
358
|
-
- `commiter` — formato de commits
|
|
359
|
-
- `changelog-updater` — registro de cambios
|
|
360
|
-
|
|
361
|
-
Gestión:
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
trackops skill list
|
|
365
|
-
trackops skill catalog
|
|
366
|
-
trackops skill install <nombre>
|
|
367
|
-
trackops skill remove <nombre>
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
### Publicacion
|
|
371
|
-
|
|
372
|
-
Antes de publicar:
|
|
373
|
-
|
|
374
|
-
```bash
|
|
375
|
-
trackops workspace status
|
|
376
|
-
trackops env status
|
|
377
|
-
npm run skill:validate
|
|
378
|
-
npm run skill:smoke
|
|
379
|
-
npm run release:check
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
`trackops release` publica solo `app/`, incluye `.env.example` y no publica `/.env`, `ops/` ni `.trackops-workspace.json`.
|
|
383
|
-
|
|
384
|
-
Guia ampliada: [UserGUIDE.md](./UserGUIDE.md)
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
## English
|
|
389
|
-
|
|
390
|
-
TrackOps is a local control and coordination system for AI-agent software development. It puts structure where there was improvisation.
|
|
391
|
-
|
|
392
|
-
What it does:
|
|
393
|
-
|
|
394
|
-
1. prepares the agent with clear instructions (global skill)
|
|
395
|
-
2. activates operational control inside each repository
|
|
396
|
-
3. translates ideas into executable projects, even for non-technical users
|
|
397
|
-
4. coordinates a team of specialized agents inside each project (project skills)
|
|
398
|
-
|
|
399
|
-
### How it works
|
|
400
|
-
|
|
401
|
-
TrackOps works in three layers:
|
|
402
|
-
|
|
403
|
-
1. `agent instructions`
|
|
404
|
-
the global skill is installed once
|
|
405
|
-
2. `local control`
|
|
406
|
-
the runtime and activation run inside each repository
|
|
407
|
-
3. `project team`
|
|
408
|
-
when you install OPERA, specialized agents are activated and work in coordination
|
|
409
|
-
|
|
410
|
-
Local activation has two paths:
|
|
411
|
-
|
|
412
|
-
- `agent-led start`
|
|
413
|
-
for early ideas, non-technical users, or weak documentation
|
|
414
|
-
- `direct bootstrap`
|
|
415
|
-
for already defined projects and technical users
|
|
416
|
-
|
|
417
|
-
### Global install
|
|
418
|
-
|
|
419
|
-
Install the global skill:
|
|
420
|
-
|
|
421
|
-
```bash
|
|
422
|
-
npx skills add Baxahaun/trackops
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
Install the runtime explicitly:
|
|
426
|
-
|
|
427
|
-
```bash
|
|
428
|
-
npm install -g trackops
|
|
429
|
-
trackops --version
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
This split is intentional:
|
|
433
|
-
|
|
434
|
-
- the skill is audited as an instruction layer
|
|
435
|
-
- the runtime is installed through a visible and verifiable step
|
|
436
|
-
- there is no hidden transitive install from the skill itself
|
|
437
|
-
|
|
438
|
-
If `npm install -g trackops` runs interactively, TrackOps tries to ask for the global language at that moment. If your terminal or npm do not show that prompt, set it manually afterwards:
|
|
439
|
-
|
|
440
|
-
```bash
|
|
441
|
-
trackops locale set es
|
|
442
|
-
trackops locale set en
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
### Recommended full flow
|
|
446
|
-
|
|
447
|
-
1. Install the global skill:
|
|
448
|
-
|
|
449
|
-
```bash
|
|
450
|
-
npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
2. Install the runtime:
|
|
454
|
-
|
|
455
|
-
```bash
|
|
456
|
-
npm install -g trackops@latest
|
|
457
|
-
trackops --version
|
|
458
|
-
```
|
|
459
|
-
|
|
460
|
-
3. Enter the repository you want to manage:
|
|
461
|
-
|
|
462
|
-
```bash
|
|
463
|
-
cd path/to/your/project
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
4. Activate TrackOps and choose the project language when the CLI asks:
|
|
467
|
-
|
|
468
|
-
```bash
|
|
469
|
-
trackops init
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
5. Install OPERA:
|
|
473
|
-
|
|
474
|
-
```bash
|
|
475
|
-
trackops opera install
|
|
476
|
-
```
|
|
477
|
-
|
|
478
|
-
6. Answer the initial intake with these values:
|
|
479
|
-
|
|
480
|
-
- technical level:
|
|
481
|
-
`low|medium|high|senior`
|
|
482
|
-
- project state:
|
|
483
|
-
`idea|draft|existing_repo|advanced`
|
|
484
|
-
- documentation:
|
|
485
|
-
`none|notes|sos|spec_dossier|repo_docs`
|
|
486
|
-
- decision ownership:
|
|
487
|
-
`user|shared|agent`
|
|
488
|
-
|
|
489
|
-
7. If OPERA routes to the agent:
|
|
490
|
-
|
|
491
|
-
```bash
|
|
492
|
-
trackops opera handoff --print
|
|
493
|
-
```
|
|
494
|
-
|
|
495
|
-
Paste that context into the agent and let it generate:
|
|
496
|
-
|
|
497
|
-
- `ops/bootstrap/intake.json`
|
|
498
|
-
- `ops/bootstrap/spec-dossier.md`
|
|
499
|
-
- `ops/bootstrap/open-questions.md` when decisions are still missing
|
|
500
|
-
|
|
501
|
-
Then resume with:
|
|
502
|
-
|
|
503
|
-
```bash
|
|
504
|
-
trackops opera bootstrap --resume
|
|
505
|
-
```
|
|
506
|
-
|
|
507
|
-
8. If OPERA completes direct bootstrap, review status and continue with:
|
|
508
|
-
|
|
509
|
-
```bash
|
|
510
|
-
trackops opera status
|
|
511
|
-
trackops next
|
|
512
|
-
trackops sync
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
### Local activation
|
|
516
|
-
|
|
517
|
-
Inside a repository:
|
|
518
|
-
|
|
519
|
-
```bash
|
|
520
|
-
trackops init
|
|
521
|
-
trackops opera install
|
|
522
|
-
```
|
|
523
|
-
|
|
524
|
-
### Split workspace
|
|
525
|
-
|
|
526
|
-
TrackOps separates product and operations by default:
|
|
527
|
-
|
|
528
|
-
```text
|
|
529
|
-
my-project/
|
|
530
|
-
|- .trackops-workspace.json
|
|
531
|
-
|- .env
|
|
532
|
-
|- .env.example
|
|
533
|
-
|- app/
|
|
534
|
-
\- ops/
|
|
535
|
-
|- project_control.json
|
|
536
|
-
|- contract/
|
|
537
|
-
| \- operating-contract.json
|
|
538
|
-
|- policy/
|
|
539
|
-
| \- autonomy.json
|
|
540
|
-
|- task_plan.md
|
|
541
|
-
|- progress.md
|
|
542
|
-
|- findings.md
|
|
543
|
-
|- genesis.md
|
|
544
|
-
|- bootstrap/
|
|
545
|
-
|- .agent/
|
|
546
|
-
|- .agents/
|
|
547
|
-
|- .githooks/
|
|
548
|
-
\- .tmp/
|
|
549
|
-
```
|
|
550
|
-
|
|
551
|
-
Operational source of truth:
|
|
552
|
-
|
|
553
|
-
- split layout: `ops/project_control.json`
|
|
554
|
-
- legacy layout: `project_control.json`
|
|
555
|
-
|
|
556
|
-
### Two ways to start OPERA
|
|
557
|
-
|
|
558
|
-
#### I only have an idea
|
|
559
|
-
|
|
560
|
-
If the user is not technical, the project is still in idea stage, or documentation is weak, OPERA does not keep asking architecture questions in the terminal. Instead it:
|
|
561
|
-
|
|
562
|
-
1. asks for technical level, project state, and available documentation
|
|
563
|
-
2. writes a handoff in `ops/bootstrap/agent-handoff.md`
|
|
564
|
-
3. waits for the agent to produce:
|
|
565
|
-
- `ops/bootstrap/intake.json`
|
|
566
|
-
- `ops/bootstrap/spec-dossier.md`
|
|
567
|
-
- `ops/bootstrap/open-questions.md` when important gaps remain
|
|
568
|
-
4. resumes with:
|
|
569
|
-
|
|
570
|
-
```bash
|
|
571
|
-
trackops opera bootstrap --resume
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
#### I already have a repository
|
|
575
|
-
|
|
576
|
-
If the user is technical and the project already has enough context, OPERA continues with direct bootstrap, compiles `ops/contract/operating-contract.json`, and recompiles `ops/genesis.md`.
|
|
577
|
-
|
|
578
|
-
You can also force the mode:
|
|
579
|
-
|
|
580
|
-
```bash
|
|
581
|
-
trackops opera install --bootstrap-mode handoff
|
|
582
|
-
trackops opera install --bootstrap-mode direct
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
### Global and local removal
|
|
586
|
-
|
|
587
|
-
#### Remove the global install
|
|
588
|
-
|
|
589
|
-
Remove the global skill from the agent:
|
|
590
|
-
|
|
591
|
-
```bash
|
|
592
|
-
npx skills remove --global trackops -y
|
|
593
|
-
```
|
|
594
|
-
|
|
595
|
-
Remove the global runtime:
|
|
596
|
-
|
|
597
|
-
```bash
|
|
598
|
-
npm uninstall -g trackops
|
|
599
|
-
```
|
|
600
|
-
|
|
601
|
-
Verify:
|
|
602
|
-
|
|
603
|
-
```bash
|
|
604
|
-
npx skills ls -g
|
|
605
|
-
trackops --version
|
|
606
|
-
```
|
|
607
|
-
|
|
608
|
-
#### Remove TrackOps from a project
|
|
609
|
-
|
|
610
|
-
There is no `trackops uninstall` command for the repository yet. Local removal is manual.
|
|
611
|
-
|
|
612
|
-
In a split workspace, review and remove only what you really want to retire:
|
|
613
|
-
|
|
614
|
-
- `.trackops-workspace.json`
|
|
615
|
-
- `ops/`
|
|
616
|
-
- `app/.env` if it was only the compatibility bridge
|
|
617
|
-
|
|
618
|
-
Review carefully before deleting:
|
|
619
|
-
|
|
620
|
-
- `/.env`
|
|
621
|
-
- `/.env.example`
|
|
622
|
-
|
|
623
|
-
Those files may still be useful to the project even if you stop using TrackOps.
|
|
624
|
-
|
|
625
|
-
### Environment and secrets
|
|
626
|
-
|
|
627
|
-
TrackOps manages:
|
|
628
|
-
|
|
629
|
-
- `/.env`
|
|
630
|
-
real workspace secrets
|
|
631
|
-
- `/.env.example`
|
|
632
|
-
public variable contract
|
|
633
|
-
- `app/.env`
|
|
634
|
-
compatibility bridge
|
|
635
|
-
|
|
636
|
-
Use:
|
|
637
|
-
|
|
638
|
-
```bash
|
|
639
|
-
trackops env status
|
|
640
|
-
trackops env sync
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
### Language
|
|
644
|
-
|
|
645
|
-
TrackOps can work with:
|
|
646
|
-
|
|
647
|
-
- a global language in `~/.trackops/runtime.json`
|
|
648
|
-
- a per-project language in `ops/project_control.json`
|
|
649
|
-
|
|
650
|
-
Commands:
|
|
651
|
-
|
|
652
|
-
```bash
|
|
653
|
-
trackops locale get
|
|
654
|
-
trackops locale set en
|
|
655
|
-
trackops doctor locale
|
|
656
|
-
```
|
|
657
|
-
|
|
658
|
-
### Project skills
|
|
659
|
-
|
|
660
|
-
There are three skill levels in TrackOps:
|
|
661
|
-
|
|
662
|
-
1. **Global skill** (`trackops`): installed once in the agent. Explains what TrackOps is and guides repository activation.
|
|
663
|
-
2. **Coordinator** (`opera-skill`): installed automatically with OPERA. Decides what to do, in what order, when to delegate, and when to stop.
|
|
664
|
-
3. **Specialists**: installed with OPERA or manually. Each one covers a specific role.
|
|
665
|
-
|
|
666
|
-
Project skills installed automatically with OPERA:
|
|
667
|
-
|
|
668
|
-
- `opera-skill` — operational coordinator
|
|
669
|
-
- `project-starter-skill` — discovery and structuring
|
|
670
|
-
- `opera-contract-auditor` — contract audit
|
|
671
|
-
- `opera-policy-guard` — risk control
|
|
672
|
-
|
|
673
|
-
Additional skills available:
|
|
674
|
-
|
|
675
|
-
- `commiter` — commit formatting
|
|
676
|
-
- `changelog-updater` — changelog updates
|
|
677
|
-
|
|
678
|
-
Management:
|
|
679
|
-
|
|
680
|
-
```bash
|
|
681
|
-
trackops skill list
|
|
682
|
-
trackops skill catalog
|
|
683
|
-
trackops skill install <name>
|
|
684
|
-
trackops skill remove <name>
|
|
685
|
-
```
|
|
686
|
-
|
|
687
|
-
### Main CLI
|
|
688
|
-
|
|
689
|
-
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.
|
|
690
|
-
|
|
691
|
-
### Publishing
|
|
692
|
-
|
|
693
|
-
`trackops release` publishes only `app/`, includes `.env.example`, and never publishes `/.env`, `ops/`, or `.trackops-workspace.json`.
|
|
694
|
-
|
|
695
|
-
Extended guide: [UserGUIDE.md](./UserGUIDE.md)
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/logo.svg" alt="TrackOps Logo" width="96" height="96" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">TrackOps</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Turn AI coding tools into an operating team you can direct.</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/trackops"><img src="https://img.shields.io/npm/v/trackops?color=D97706&style=flat-square" alt="npm" /></a>
|
|
13
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-22C55E?style=flat-square" alt="MIT" /></a>
|
|
14
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-333?style=flat-square" alt="Node 18+" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="#espanol">Español</a> · <a href="#english">English</a> · <a href="https://baxahaun.github.io/trackops/">Web</a>
|
|
19
|
+
</p>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Español
|
|
24
|
+
|
|
25
|
+
### Qué es TrackOps
|
|
26
|
+
|
|
27
|
+
TrackOps es una capa local de control para trabajar con agentes de IA sin perder el gobierno del proyecto.
|
|
28
|
+
|
|
29
|
+
No sustituye tu producto. Ordena el trabajo que ocurre alrededor del producto:
|
|
30
|
+
|
|
31
|
+
- define una fuente de verdad operativa dentro del repo
|
|
32
|
+
- separa producto y operaciones para que no se mezclen
|
|
33
|
+
- da contexto persistente a los agentes entre sesiones
|
|
34
|
+
- expone estado, tareas, calidad y release desde CLI y dashboard
|
|
35
|
+
|
|
36
|
+
Si quieres ir más allá, puedes instalar OPERA, la metodología opcional que añade discovery, contrato operativo, readiness y un equipo coordinado de especialistas.
|
|
37
|
+
|
|
38
|
+
### Cómo funciona
|
|
39
|
+
|
|
40
|
+
TrackOps trabaja en tres capas:
|
|
41
|
+
|
|
42
|
+
1. `skill global`
|
|
43
|
+
prepara al agente con instrucciones comunes
|
|
44
|
+
2. `runtime global`
|
|
45
|
+
instala la CLI real de forma explícita con npm
|
|
46
|
+
3. `activación local por repo`
|
|
47
|
+
crea el workspace operativo dentro del proyecto
|
|
48
|
+
|
|
49
|
+
La separación es deliberada:
|
|
50
|
+
|
|
51
|
+
- la skill sigue siendo auditable como capa de instrucciones
|
|
52
|
+
- la instalación del runtime queda visible y controlada por el usuario
|
|
53
|
+
- cada repositorio se activa de forma explícita, no por magia
|
|
54
|
+
|
|
55
|
+
### Instalación recomendada
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
|
|
59
|
+
npm install -g trackops@latest
|
|
60
|
+
trackops --version
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Si el idioma global no queda fijado durante la instalación:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
trackops locale set es
|
|
67
|
+
trackops locale set en
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Activar un proyecto
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
cd ruta/a/tu/proyecto
|
|
74
|
+
trackops init
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`trackops init` activa el control local del repo. Funciona sobre proyectos nuevos, repos existentes y workspaces ya activados.
|
|
78
|
+
|
|
79
|
+
Si quieres el framework operativo completo:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
trackops opera install
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Qué añade OPERA
|
|
86
|
+
|
|
87
|
+
OPERA no es obligatoria. Se instala cuando quieres que el proyecto siga un protocolo operativo más estricto.
|
|
88
|
+
|
|
89
|
+
Con OPERA obtienes:
|
|
90
|
+
|
|
91
|
+
- bootstrap guiado según el nivel técnico del usuario y el estado del proyecto
|
|
92
|
+
- handoff al agente cuando todavía no hay especificación suficiente
|
|
93
|
+
- contrato operativo compilado
|
|
94
|
+
- fases O.P.E.R.A. para discovery, validación, construcción, refinado y automatización
|
|
95
|
+
- equipo de agentes especializados coordinados por `opera-skill`
|
|
96
|
+
|
|
97
|
+
### Flujo completo
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
|
|
101
|
+
npm install -g trackops@latest
|
|
102
|
+
trackops --version
|
|
103
|
+
cd ruta/a/tu/proyecto
|
|
104
|
+
trackops init
|
|
105
|
+
trackops opera install
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Si OPERA deriva el arranque al agente:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
trackops opera handoff --print
|
|
112
|
+
trackops opera bootstrap --resume
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Si el proyecto ya está suficientemente definido, OPERA entra por bootstrap directo y continúa sin handoff.
|
|
116
|
+
|
|
117
|
+
### Lo que TrackOps gestiona
|
|
118
|
+
|
|
119
|
+
En un workspace split, la estructura base queda así:
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
.trackops-workspace.json
|
|
123
|
+
.env
|
|
124
|
+
.env.example
|
|
125
|
+
app/
|
|
126
|
+
ops/project_control.json
|
|
127
|
+
ops/task_plan.md
|
|
128
|
+
ops/progress.md
|
|
129
|
+
ops/findings.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Con OPERA instalado se añaden, entre otros:
|
|
133
|
+
|
|
134
|
+
```text
|
|
135
|
+
ops/bootstrap/
|
|
136
|
+
ops/contract/operating-contract.json
|
|
137
|
+
ops/genesis.md
|
|
138
|
+
ops/policy/autonomy.json
|
|
139
|
+
ops/.agents/skills/
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
La fuente de verdad operativa vive en `ops/project_control.json`.
|
|
143
|
+
|
|
144
|
+
### Trabajo diario
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
trackops status
|
|
148
|
+
trackops next
|
|
149
|
+
trackops task start <id>
|
|
150
|
+
trackops sync
|
|
151
|
+
trackops dashboard
|
|
152
|
+
trackops quality status
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Para release:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
trackops quality verify --scope all
|
|
159
|
+
trackops quality release-readiness --json
|
|
160
|
+
npm run release:check
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
`trackops release` publica solo `app/`. Nunca publica `ops/`, `/.env` ni `.trackops-workspace.json`.
|
|
164
|
+
|
|
165
|
+
### Documentación
|
|
166
|
+
|
|
167
|
+
- guía completa: [`UserGUIDE.md`](./UserGUIDE.md)
|
|
168
|
+
- web pública: https://baxahaun.github.io/trackops/
|
|
169
|
+
- paquete npm: https://www.npmjs.com/package/trackops
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## English
|
|
174
|
+
|
|
175
|
+
### What TrackOps is
|
|
176
|
+
|
|
177
|
+
TrackOps is a local control layer for working with AI agents without losing control of the project.
|
|
178
|
+
|
|
179
|
+
It does not replace your product. It organizes the work around the product:
|
|
180
|
+
|
|
181
|
+
- defines an operational source of truth inside the repository
|
|
182
|
+
- keeps product and operations separate
|
|
183
|
+
- gives agents persistent context across sessions
|
|
184
|
+
- exposes status, tasks, quality, and release state through CLI and dashboard
|
|
185
|
+
|
|
186
|
+
If you need a stricter operating model, you can install OPERA, the optional methodology that adds discovery, an operating contract, readiness checks, and a coordinated team of specialists.
|
|
187
|
+
|
|
188
|
+
### How it works
|
|
189
|
+
|
|
190
|
+
TrackOps works in three layers:
|
|
191
|
+
|
|
192
|
+
1. `global skill`
|
|
193
|
+
prepares the agent with shared instructions
|
|
194
|
+
2. `global runtime`
|
|
195
|
+
installs the actual CLI explicitly with npm
|
|
196
|
+
3. `local per-repo activation`
|
|
197
|
+
creates the operational workspace inside the project
|
|
198
|
+
|
|
199
|
+
That split is intentional:
|
|
200
|
+
|
|
201
|
+
- the skill remains auditable as an instruction layer
|
|
202
|
+
- runtime installation stays visible and user-controlled
|
|
203
|
+
- each repository is activated explicitly
|
|
204
|
+
|
|
205
|
+
### Recommended install
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
|
|
209
|
+
npm install -g trackops@latest
|
|
210
|
+
trackops --version
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
If the global language was not set during install:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
trackops locale set es
|
|
217
|
+
trackops locale set en
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Activate a project
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
cd path/to/your/project
|
|
224
|
+
trackops init
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
`trackops init` activates local control in the repository. It works on new projects, existing repositories, and already initialized workspaces.
|
|
228
|
+
|
|
229
|
+
If you want the full operating framework:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
trackops opera install
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### What OPERA adds
|
|
236
|
+
|
|
237
|
+
OPERA is optional. Install it when you want the project to follow a stricter operating protocol.
|
|
238
|
+
|
|
239
|
+
With OPERA you get:
|
|
240
|
+
|
|
241
|
+
- guided bootstrap based on user profile and project state
|
|
242
|
+
- agent handoff when the project is still underdefined
|
|
243
|
+
- compiled operating contract
|
|
244
|
+
- O.P.E.R.A. phases for discovery, validation, build, refinement, and automation
|
|
245
|
+
- a team of specialized agents coordinated by `opera-skill`
|
|
246
|
+
|
|
247
|
+
### Full flow
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
|
|
251
|
+
npm install -g trackops@latest
|
|
252
|
+
trackops --version
|
|
253
|
+
cd path/to/your/project
|
|
254
|
+
trackops init
|
|
255
|
+
trackops opera install
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
If OPERA routes discovery to the agent:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
trackops opera handoff --print
|
|
262
|
+
trackops opera bootstrap --resume
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
If the project is already defined enough, OPERA continues through direct bootstrap with no handoff.
|
|
266
|
+
|
|
267
|
+
### What TrackOps manages
|
|
268
|
+
|
|
269
|
+
In a split workspace, the base structure looks like this:
|
|
270
|
+
|
|
271
|
+
```text
|
|
272
|
+
.trackops-workspace.json
|
|
273
|
+
.env
|
|
274
|
+
.env.example
|
|
275
|
+
app/
|
|
276
|
+
ops/project_control.json
|
|
277
|
+
ops/task_plan.md
|
|
278
|
+
ops/progress.md
|
|
279
|
+
ops/findings.md
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
With OPERA installed, TrackOps also adds items such as:
|
|
283
|
+
|
|
284
|
+
```text
|
|
285
|
+
ops/bootstrap/
|
|
286
|
+
ops/contract/operating-contract.json
|
|
287
|
+
ops/genesis.md
|
|
288
|
+
ops/policy/autonomy.json
|
|
289
|
+
ops/.agents/skills/
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
The operational source of truth lives in `ops/project_control.json`.
|
|
293
|
+
|
|
294
|
+
### Day-to-day work
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
trackops status
|
|
298
|
+
trackops next
|
|
299
|
+
trackops task start <id>
|
|
300
|
+
trackops sync
|
|
301
|
+
trackops dashboard
|
|
302
|
+
trackops quality status
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
For release:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
trackops quality verify --scope all
|
|
309
|
+
trackops quality release-readiness --json
|
|
310
|
+
npm run release:check
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
`trackops release` publishes only `app/`. It never publishes `ops/`, `/.env`, or `.trackops-workspace.json`.
|
|
314
|
+
|
|
315
|
+
### Documentation
|
|
316
|
+
|
|
317
|
+
- full guide: [`UserGUIDE.md`](./UserGUIDE.md)
|
|
318
|
+
- public site: https://baxahaun.github.io/trackops/
|
|
319
|
+
- npm package: https://www.npmjs.com/package/trackops
|