trackops 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +695 -640
  3. package/bin/trackops.js +116 -116
  4. package/lib/config.js +326 -326
  5. package/lib/control.js +208 -208
  6. package/lib/env.js +244 -244
  7. package/lib/init.js +325 -325
  8. package/lib/locale.js +41 -41
  9. package/lib/opera-bootstrap.js +942 -936
  10. package/lib/opera.js +495 -486
  11. package/lib/preferences.js +74 -74
  12. package/lib/registry.js +214 -214
  13. package/lib/release.js +56 -56
  14. package/lib/runtime-state.js +144 -144
  15. package/lib/skills.js +74 -57
  16. package/lib/workspace.js +260 -260
  17. package/locales/en.json +192 -170
  18. package/locales/es.json +192 -170
  19. package/package.json +61 -58
  20. package/scripts/postinstall-locale.js +21 -21
  21. package/scripts/skills-marketplace-smoke.js +124 -124
  22. package/scripts/smoke-tests.js +558 -554
  23. package/scripts/sync-skill-version.js +21 -21
  24. package/scripts/validate-skill.js +103 -103
  25. package/skills/trackops/SKILL.md +126 -122
  26. package/skills/trackops/agents/openai.yaml +7 -7
  27. package/skills/trackops/locales/en/SKILL.md +126 -122
  28. package/skills/trackops/locales/en/references/activation.md +94 -90
  29. package/skills/trackops/locales/en/references/troubleshooting.md +73 -67
  30. package/skills/trackops/locales/en/references/workflow.md +55 -32
  31. package/skills/trackops/references/activation.md +94 -90
  32. package/skills/trackops/references/troubleshooting.md +73 -67
  33. package/skills/trackops/references/workflow.md +55 -32
  34. package/skills/trackops/skill.json +29 -29
  35. package/templates/hooks/post-checkout +2 -2
  36. package/templates/hooks/post-commit +2 -2
  37. package/templates/hooks/post-merge +2 -2
  38. package/templates/opera/agent.md +28 -27
  39. package/templates/opera/architecture/dependency-graph.md +24 -24
  40. package/templates/opera/architecture/runtime-automation.md +24 -24
  41. package/templates/opera/architecture/runtime-operations.md +34 -34
  42. package/templates/opera/en/agent.md +22 -21
  43. package/templates/opera/en/architecture/dependency-graph.md +24 -24
  44. package/templates/opera/en/architecture/runtime-automation.md +24 -24
  45. package/templates/opera/en/architecture/runtime-operations.md +34 -34
  46. package/templates/opera/en/reviews/delivery-audit.md +18 -18
  47. package/templates/opera/en/reviews/integration-audit.md +18 -18
  48. package/templates/opera/en/router.md +24 -19
  49. package/templates/opera/references/autonomy-and-recovery.md +117 -117
  50. package/templates/opera/references/opera-cycle.md +193 -193
  51. package/templates/opera/registry.md +28 -28
  52. package/templates/opera/reviews/delivery-audit.md +18 -18
  53. package/templates/opera/reviews/integration-audit.md +18 -18
  54. package/templates/opera/router.md +54 -49
  55. package/templates/skills/changelog-updater/SKILL.md +69 -69
  56. package/templates/skills/commiter/SKILL.md +99 -99
  57. package/templates/skills/opera-contract-auditor/SKILL.md +38 -38
  58. package/templates/skills/opera-contract-auditor/locales/en/SKILL.md +38 -38
  59. package/templates/skills/opera-policy-guard/SKILL.md +26 -26
  60. package/templates/skills/opera-policy-guard/locales/en/SKILL.md +26 -26
  61. package/templates/skills/opera-skill/SKILL.md +279 -0
  62. package/templates/skills/opera-skill/locales/en/SKILL.md +279 -0
  63. package/templates/skills/opera-skill/locales/en/references/phase-dod.md +138 -0
  64. package/templates/skills/opera-skill/references/phase-dod.md +138 -0
  65. package/templates/skills/project-starter-skill/SKILL.md +150 -131
  66. package/templates/skills/project-starter-skill/locales/en/SKILL.md +143 -105
  67. package/templates/skills/project-starter-skill/references/opera-cycle.md +195 -193
  68. package/ui/css/base.css +284 -284
  69. package/ui/css/charts.css +425 -425
  70. package/ui/css/components.css +1107 -1107
  71. package/ui/css/onboarding.css +133 -133
  72. package/ui/css/terminal.css +125 -125
  73. package/ui/css/timeline.css +58 -58
  74. package/ui/css/tokens.css +284 -284
  75. package/ui/favicon.svg +5 -5
  76. package/ui/index.html +99 -99
  77. package/ui/js/charts.js +526 -526
  78. package/ui/js/console-logger.js +172 -172
  79. package/ui/js/filters.js +247 -247
  80. package/ui/js/icons.js +129 -129
  81. package/ui/js/keyboard.js +229 -229
  82. package/ui/js/router.js +142 -142
  83. package/ui/js/theme.js +100 -100
  84. package/ui/js/time-tracker.js +248 -248
  85. package/ui/js/views/dashboard.js +870 -870
  86. package/ui/js/views/flash.js +47 -47
  87. package/ui/js/views/projects.js +745 -745
  88. package/ui/js/views/scrum.js +476 -476
  89. package/ui/js/views/settings.js +331 -331
  90. package/ui/js/views/timeline.js +265 -265
package/README.md CHANGED
@@ -1,640 +1,695 @@
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>Local orchestration and operational automation for projects built with AI agents.</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">Espanol</a>&nbsp;&nbsp;·&nbsp;&nbsp;<a href="#english">English</a>&nbsp;&nbsp;·&nbsp;&nbsp;<a href="https://baxahaun.github.io/trackops/">Web</a>
19
- </p>
20
-
21
- ---
22
-
23
- ## Espanol
24
-
25
- TrackOps es un sistema local de orquestacion y automatizacion operativa para proyectos y desarrollo asistido por agentes IA.
26
-
27
- Hace tres cosas:
28
-
29
- 1. prepara al agente con una skill global
30
- 2. activa control operativo dentro de cada repo
31
- 3. media entre el usuario y el agente cuando el proyecto aun esta poco definido
32
-
33
- ### Modelo actual
34
-
35
- TrackOps trabaja en dos capas:
36
-
37
- 1. `skill global`
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
-
42
- La activacion local tiene dos caminos:
43
-
44
- - `arranque asistido por agente`
45
- para ideas tempranas, usuarios poco tecnicos o documentacion insuficiente
46
- - `bootstrap directo`
47
- para proyectos ya definidos y usuarios tecnicos
48
-
49
- ### Instalacion global
50
-
51
- Instala la skill global:
52
-
53
- ```bash
54
- npx skills add Baxahaun/trackops
55
- ```
56
-
57
- Instala el runtime de forma explicita:
58
-
59
- ```bash
60
- npm install -g trackops
61
- trackops --version
62
- ```
63
-
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
69
-
70
- Si `npm install -g trackops` se ejecuta en modo interactivo, TrackOps intenta pedir el idioma global en ese momento. Si tu terminal o npm no muestran ese prompt, puedes fijarlo manualmente despues:
71
-
72
- ```bash
73
- trackops locale set es
74
- trackops locale set en
75
- ```
76
-
77
- ### Flujo completo recomendado
78
-
79
- 1. Instala la skill global:
80
-
81
- ```bash
82
- npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
83
- ```
84
-
85
- 2. Instala el runtime:
86
-
87
- ```bash
88
- npm install -g trackops@latest
89
- trackops --version
90
- ```
91
-
92
- 3. Entra en el repo que quieres gestionar:
93
-
94
- ```bash
95
- cd ruta/a/tu/proyecto
96
- ```
97
-
98
- 4. Activa TrackOps y elige el idioma del proyecto cuando el CLI lo pida:
99
-
100
- ```bash
101
- trackops init
102
- ```
103
-
104
- 5. Instala OPERA:
105
-
106
- ```bash
107
- trackops opera install
108
- ```
109
-
110
- 6. Responde el intake inicial con estos valores:
111
-
112
- - nivel tecnico:
113
- `low|medium|high|senior`
114
- tambien acepta `bajo|medio|alto`
115
- - estado del proyecto:
116
- `idea|draft|existing_repo|advanced`
117
- - documentacion:
118
- `none|notes|sos|spec_dossier|repo_docs`
119
- - propiedad de decision:
120
- `user|shared|agent`
121
- tambien acepta `usuario|compartido|agente`
122
-
123
- 7. Si OPERA deriva al agente:
124
-
125
- ```bash
126
- trackops opera handoff --print
127
- ```
128
-
129
- Pega ese contexto en el agente, deja que genere:
130
-
131
- - `ops/bootstrap/intake.json`
132
- - `ops/bootstrap/spec-dossier.md`
133
- - `ops/bootstrap/open-questions.md` si faltan decisiones
134
-
135
- Y despues reanuda:
136
-
137
- ```bash
138
- trackops opera bootstrap --resume
139
- ```
140
-
141
- 8. Si OPERA completa bootstrap directo, revisa estado y continua con:
142
-
143
- ```bash
144
- trackops opera status
145
- trackops next
146
- trackops sync
147
- ```
148
-
149
- ### Desinstalacion global y local
150
-
151
- #### Quitar la instalacion global
152
-
153
- Quita la skill global del agente:
154
-
155
- ```bash
156
- npx skills remove --global trackops -y
157
- ```
158
-
159
- Quita el runtime global:
160
-
161
- ```bash
162
- npm uninstall -g trackops
163
- ```
164
-
165
- Verifica:
166
-
167
- ```bash
168
- npx skills ls -g
169
- trackops --version
170
- ```
171
-
172
- #### Quitar TrackOps de un proyecto
173
-
174
- Hoy no existe un comando `trackops uninstall` para el repo. La retirada local es manual.
175
-
176
- En un workspace split, revisa y elimina solo lo que de verdad quieras retirar:
177
-
178
- - `.trackops-workspace.json`
179
- - `ops/`
180
- - `app/.env` si era solo bridge
181
-
182
- Revisa con cuidado antes de borrar:
183
-
184
- - `/.env`
185
- - `/.env.example`
186
-
187
- Esos archivos pueden seguir siendo utiles para tu proyecto aunque dejes de usar TrackOps.
188
-
189
- ### Activacion local
190
-
191
- Dentro de un repo:
192
-
193
- ```bash
194
- trackops init
195
- trackops opera install
196
- ```
197
-
198
- Semantica:
199
-
200
- - `trackops init`
201
- activa TrackOps en el repo
202
- - `trackops opera install`
203
- anade OPERA cuando quieres el framework operativo completo
204
- - `trackops init --with-opera`
205
- existe como atajo
206
- - `trackops init --legacy-layout`
207
- existe solo por compatibilidad
208
-
209
- ### Workspace split
210
-
211
- Por defecto, TrackOps separa producto y operacion:
212
-
213
- ```text
214
- mi-proyecto/
215
- |- .trackops-workspace.json
216
- |- .env
217
- |- .env.example
218
- |- app/
219
- | \- ...producto real...
220
- \- ops/
221
- |- project_control.json
222
- |- contract/
223
- | \- operating-contract.json
224
- |- policy/
225
- | \- autonomy.json
226
- |- task_plan.md
227
- |- progress.md
228
- |- findings.md
229
- |- genesis.md
230
- |- bootstrap/
231
- |- .agent/
232
- |- .agents/
233
- |- .githooks/
234
- \- .tmp/
235
- ```
236
-
237
- Fuente de verdad operativa:
238
-
239
- - layout split: `ops/project_control.json`
240
- - layout legacy: `project_control.json`
241
-
242
- ### Dos formas de arrancar OPERA
243
-
244
- #### Tengo una idea
245
-
246
- 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:
247
-
248
- 1. pregunta nivel tecnico, estado del proyecto y documentacion disponible
249
- 2. genera un handoff en `ops/bootstrap/agent-handoff.md`
250
- 3. espera a que el agente produzca:
251
- - `ops/bootstrap/intake.json`
252
- - `ops/bootstrap/spec-dossier.md`
253
- - `ops/bootstrap/open-questions.md` si quedan huecos importantes
254
- 4. reanudas con:
255
-
256
- ```bash
257
- trackops opera bootstrap --resume
258
- ```
259
-
260
- La terminal tambien debe decirte este siguiente paso al terminar el handoff.
261
-
262
- #### Ya tengo un repo
263
-
264
- 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`.
265
-
266
- Tambien puedes forzar el modo:
267
-
268
- ```bash
269
- trackops opera install --bootstrap-mode handoff
270
- trackops opera install --bootstrap-mode direct
271
- ```
272
-
273
- Flags disponibles:
274
-
275
- - `--technical-level low|medium|high|senior`
276
- - `--project-state idea|draft|existing_repo|advanced`
277
- - `--docs-state none|notes|sos|spec_dossier|repo_docs`
278
- - `--decision-ownership user|shared|agent`
279
-
280
- ### Entorno y secretos
281
-
282
- TrackOps gestiona un contrato explicito de entorno:
283
-
284
- - `/.env`
285
- secretos reales del workspace
286
- - `/.env.example`
287
- contrato publico de variables
288
- - `app/.env`
289
- puente de compatibilidad
290
-
291
- Comandos:
292
-
293
- ```bash
294
- trackops env status
295
- trackops env sync
296
- ```
297
-
298
- TrackOps nunca imprime ni persiste valores sensibles en docs, dashboard o `project_control.json`.
299
-
300
- ### Idioma
301
-
302
- TrackOps puede trabajar con:
303
-
304
- - idioma global en `~/.trackops/runtime.json`
305
- - idioma por proyecto en `ops/project_control.json`
306
-
307
- Comandos:
308
-
309
- ```bash
310
- trackops locale get
311
- trackops locale set es
312
- trackops doctor locale
313
- ```
314
-
315
- ### CLI principal
316
-
317
- | Comando | Descripcion |
318
- |---|---|
319
- | `trackops init [--with-opera] [--locale es\|en] [--name "..."] [--no-bootstrap] [--legacy-layout]` | Inicializa TrackOps |
320
- | `trackops status` | Muestra estado operativo |
321
- | `trackops next` | Muestra la siguiente cola priorizada |
322
- | `trackops sync` | Regenera docs operativos |
323
- | `trackops workspace status` | Muestra layout y roots |
324
- | `trackops workspace migrate` | Migra un proyecto legacy |
325
- | `trackops env status` | Audita claves presentes y faltantes |
326
- | `trackops env sync` | Regenera `/.env`, `/.env.example` y el puente |
327
- | `trackops locale get\|set [es\|en]` | Lee o fija el idioma global |
328
- | `trackops doctor locale` | Explica el origen del idioma efectivo |
329
- | `trackops release [--push]` | Publica la rama configurada desde `app/` |
330
- | `trackops dashboard` | Lanza el dashboard local |
331
- | `trackops opera install [--bootstrap-mode ...] [--technical-level ...] [--project-state ...] [--docs-state ...] [--decision-ownership ...]` | Instala OPERA y decide la ruta de bootstrap |
332
- | `trackops opera bootstrap [--resume]` | Continua el bootstrap o ingiere el resultado del agente |
333
- | `trackops opera handoff [--print\|--json]` | Muestra el handoff listo para copiar al agente |
334
- | `trackops opera status` | Muestra estado de instalacion y bootstrap |
335
- | `trackops opera configure` | Reconfigura idioma o fases |
336
- | `trackops opera upgrade --stable [--reset]` | Reescribe artefactos gestionados a la version estable actual |
337
-
338
- ### Skills del proyecto
339
-
340
- Hay dos conceptos distintos:
341
-
342
- - la skill global `trackops`
343
- prepara al agente y guia el flujo
344
- - `trackops skill ...`
345
- gestiona skills nativas del proyecto en `ops/.agents/skills/`
346
-
347
- ### Publicacion
348
-
349
- Antes de publicar:
350
-
351
- ```bash
352
- trackops workspace status
353
- trackops env status
354
- npm run skill:validate
355
- npm run skill:smoke
356
- npm run release:check
357
- ```
358
-
359
- `trackops release` publica solo `app/`, incluye `.env.example` y no publica `/.env`, `ops/` ni `.trackops-workspace.json`.
360
-
361
- Guia ampliada: [UserGUIDE.md](./UserGUIDE.md)
362
-
363
- ---
364
-
365
- ## English
366
-
367
- TrackOps is a local orchestration and operational automation system for projects and AI-agent development.
368
-
369
- It does three things:
370
-
371
- 1. prepares the agent with a global skill
372
- 2. activates operational control inside each repository
373
- 3. mediates between the user and the agent when the project is still loosely defined
374
-
375
- ### Current model
376
-
377
- TrackOps works in two layers:
378
-
379
- 1. `global skill`
380
- installed once in the agent
381
- 2. `runtime + local activation`
382
- installed and used when you decide to manage a specific machine and repository
383
-
384
- Local activation has two paths:
385
-
386
- - `agent-led start`
387
- for early ideas, non-technical users, or weak documentation
388
- - `direct bootstrap`
389
- for already defined projects and technical users
390
-
391
- ### Global install
392
-
393
- Install the global skill:
394
-
395
- ```bash
396
- npx skills add Baxahaun/trackops
397
- ```
398
-
399
- Install the runtime explicitly:
400
-
401
- ```bash
402
- npm install -g trackops
403
- trackops --version
404
- ```
405
-
406
- This split is intentional:
407
-
408
- - the skill is audited as an instruction layer
409
- - the runtime is installed through a visible and verifiable step
410
- - there is no hidden transitive install from the skill itself
411
-
412
- 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:
413
-
414
- ```bash
415
- trackops locale set es
416
- trackops locale set en
417
- ```
418
-
419
- ### Recommended full flow
420
-
421
- 1. Install the global skill:
422
-
423
- ```bash
424
- npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
425
- ```
426
-
427
- 2. Install the runtime:
428
-
429
- ```bash
430
- npm install -g trackops@latest
431
- trackops --version
432
- ```
433
-
434
- 3. Enter the repository you want to manage:
435
-
436
- ```bash
437
- cd path/to/your/project
438
- ```
439
-
440
- 4. Activate TrackOps and choose the project language when the CLI asks:
441
-
442
- ```bash
443
- trackops init
444
- ```
445
-
446
- 5. Install OPERA:
447
-
448
- ```bash
449
- trackops opera install
450
- ```
451
-
452
- 6. Answer the initial intake with these values:
453
-
454
- - technical level:
455
- `low|medium|high|senior`
456
- - project state:
457
- `idea|draft|existing_repo|advanced`
458
- - documentation:
459
- `none|notes|sos|spec_dossier|repo_docs`
460
- - decision ownership:
461
- `user|shared|agent`
462
-
463
- 7. If OPERA routes to the agent:
464
-
465
- ```bash
466
- trackops opera handoff --print
467
- ```
468
-
469
- Paste that context into the agent and let it generate:
470
-
471
- - `ops/bootstrap/intake.json`
472
- - `ops/bootstrap/spec-dossier.md`
473
- - `ops/bootstrap/open-questions.md` when decisions are still missing
474
-
475
- Then resume with:
476
-
477
- ```bash
478
- trackops opera bootstrap --resume
479
- ```
480
-
481
- 8. If OPERA completes direct bootstrap, review status and continue with:
482
-
483
- ```bash
484
- trackops opera status
485
- trackops next
486
- trackops sync
487
- ```
488
-
489
- ### Local activation
490
-
491
- Inside a repository:
492
-
493
- ```bash
494
- trackops init
495
- trackops opera install
496
- ```
497
-
498
- ### Split workspace
499
-
500
- TrackOps separates product and operations by default:
501
-
502
- ```text
503
- my-project/
504
- |- .trackops-workspace.json
505
- |- .env
506
- |- .env.example
507
- |- app/
508
- \- ops/
509
- |- project_control.json
510
- |- contract/
511
- | \- operating-contract.json
512
- |- policy/
513
- | \- autonomy.json
514
- |- task_plan.md
515
- |- progress.md
516
- |- findings.md
517
- |- genesis.md
518
- |- bootstrap/
519
- |- .agent/
520
- |- .agents/
521
- |- .githooks/
522
- \- .tmp/
523
- ```
524
-
525
- Operational source of truth:
526
-
527
- - split layout: `ops/project_control.json`
528
- - legacy layout: `project_control.json`
529
-
530
- ### Two ways to start OPERA
531
-
532
- #### I only have an idea
533
-
534
- 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:
535
-
536
- 1. asks for technical level, project state, and available documentation
537
- 2. writes a handoff in `ops/bootstrap/agent-handoff.md`
538
- 3. waits for the agent to produce:
539
- - `ops/bootstrap/intake.json`
540
- - `ops/bootstrap/spec-dossier.md`
541
- - `ops/bootstrap/open-questions.md` when important gaps remain
542
- 4. resumes with:
543
-
544
- ```bash
545
- trackops opera bootstrap --resume
546
- ```
547
-
548
- #### I already have a repository
549
-
550
- 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`.
551
-
552
- You can also force the mode:
553
-
554
- ```bash
555
- trackops opera install --bootstrap-mode handoff
556
- trackops opera install --bootstrap-mode direct
557
- ```
558
-
559
- ### Global and local removal
560
-
561
- #### Remove the global install
562
-
563
- Remove the global skill from the agent:
564
-
565
- ```bash
566
- npx skills remove --global trackops -y
567
- ```
568
-
569
- Remove the global runtime:
570
-
571
- ```bash
572
- npm uninstall -g trackops
573
- ```
574
-
575
- Verify:
576
-
577
- ```bash
578
- npx skills ls -g
579
- trackops --version
580
- ```
581
-
582
- #### Remove TrackOps from a project
583
-
584
- There is no `trackops uninstall` command for the repository yet. Local removal is manual.
585
-
586
- In a split workspace, review and remove only what you really want to retire:
587
-
588
- - `.trackops-workspace.json`
589
- - `ops/`
590
- - `app/.env` if it was only the compatibility bridge
591
-
592
- Review carefully before deleting:
593
-
594
- - `/.env`
595
- - `/.env.example`
596
-
597
- Those files may still be useful to the project even if you stop using TrackOps.
598
-
599
- ### Environment and secrets
600
-
601
- TrackOps manages:
602
-
603
- - `/.env`
604
- real workspace secrets
605
- - `/.env.example`
606
- public variable contract
607
- - `app/.env`
608
- compatibility bridge
609
-
610
- Use:
611
-
612
- ```bash
613
- trackops env status
614
- trackops env sync
615
- ```
616
-
617
- ### Language
618
-
619
- TrackOps can work with:
620
-
621
- - a global language in `~/.trackops/runtime.json`
622
- - a per-project language in `ops/project_control.json`
623
-
624
- Commands:
625
-
626
- ```bash
627
- trackops locale get
628
- trackops locale set en
629
- trackops doctor locale
630
- ```
631
-
632
- ### Main CLI
633
-
634
- 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.
635
-
636
- ### Publishing
637
-
638
- `trackops release` publishes only `app/`, includes `.env.example`, and never publishes `/.env`, `ops/`, or `.trackops-workspace.json`.
639
-
640
- 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>Local control and coordination system for AI-agent software development.</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">Espanol</a>&nbsp;&nbsp;·&nbsp;&nbsp;<a href="#english">English</a>&nbsp;&nbsp;·&nbsp;&nbsp;<a href="https://baxahaun.github.io/trackops/">Web</a>
19
+ </p>
20
+
21
+ ---
22
+
23
+ ## Espanol
24
+
25
+ TrackOps es un sistema local de control y coordinación para desarrollo de software con agentes IA. Pone estructura donde antes había improvisación.
26
+
27
+ Qué hace:
28
+
29
+ 1. prepara al agente con instrucciones claras (skill global)
30
+ 2. activa control operativo dentro de cada repositorio
31
+ 3. traduce ideas en proyectos ejecutables, aunque el usuario no sea técnico
32
+ 4. coordina un equipo de agentes especializados dentro de cada proyecto (skills de proyecto)
33
+
34
+ ### Cómo funciona
35
+
36
+ TrackOps trabaja en tres capas:
37
+
38
+ 1. `instrucciones para el agente`
39
+ la skill global se instala una vez
40
+ 2. `control local`
41
+ el runtime y la activación se ejecutan dentro de cada repositorio
42
+ 3. `equipo de proyecto`
43
+ al instalar OPERA, se activan agentes especializados que trabajan coordinados
44
+
45
+ La activación local tiene dos caminos:
46
+
47
+ - `arranque asistido por agente`
48
+ para ideas tempranas, usuarios poco técnicos o documentación insuficiente
49
+ - `bootstrap directo`
50
+ para proyectos ya definidos y usuarios técnicos
51
+
52
+ ### Instalacion global
53
+
54
+ Instala la skill global:
55
+
56
+ ```bash
57
+ npx skills add Baxahaun/trackops
58
+ ```
59
+
60
+ Instala el runtime de forma explicita:
61
+
62
+ ```bash
63
+ npm install -g trackops
64
+ trackops --version
65
+ ```
66
+
67
+ Esta separacion es intencional:
68
+
69
+ - la skill se audita como capa de instrucciones
70
+ - el runtime se instala con un paso visible y verificable
71
+ - no hay instalacion transitiva oculta desde la propia skill
72
+
73
+ Si `npm install -g trackops` se ejecuta en modo interactivo, TrackOps intenta pedir el idioma global en ese momento. Si tu terminal o npm no muestran ese prompt, puedes fijarlo manualmente despues:
74
+
75
+ ```bash
76
+ trackops locale set es
77
+ trackops locale set en
78
+ ```
79
+
80
+ ### Flujo completo recomendado
81
+
82
+ 1. Instala la skill global:
83
+
84
+ ```bash
85
+ npx skills add Baxahaun/trackops --skill trackops --agent "*" --global -y
86
+ ```
87
+
88
+ 2. Instala el runtime:
89
+
90
+ ```bash
91
+ npm install -g trackops@latest
92
+ trackops --version
93
+ ```
94
+
95
+ 3. Entra en el repo que quieres gestionar:
96
+
97
+ ```bash
98
+ cd ruta/a/tu/proyecto
99
+ ```
100
+
101
+ 4. Activa TrackOps y elige el idioma del proyecto cuando el CLI lo pida:
102
+
103
+ ```bash
104
+ trackops init
105
+ ```
106
+
107
+ 5. Instala OPERA:
108
+
109
+ ```bash
110
+ trackops opera install
111
+ ```
112
+
113
+ 6. Responde el intake inicial con estos valores:
114
+
115
+ - nivel tecnico:
116
+ `low|medium|high|senior`
117
+ tambien acepta `bajo|medio|alto`
118
+ - estado del proyecto:
119
+ `idea|draft|existing_repo|advanced`
120
+ - documentacion:
121
+ `none|notes|sos|spec_dossier|repo_docs`
122
+ - propiedad de decision:
123
+ `user|shared|agent`
124
+ tambien acepta `usuario|compartido|agente`
125
+
126
+ 7. Si OPERA deriva al agente:
127
+
128
+ ```bash
129
+ trackops opera handoff --print
130
+ ```
131
+
132
+ Pega ese contexto en el agente, deja que genere:
133
+
134
+ - `ops/bootstrap/intake.json`
135
+ - `ops/bootstrap/spec-dossier.md`
136
+ - `ops/bootstrap/open-questions.md` si faltan decisiones
137
+
138
+ Y despues reanuda:
139
+
140
+ ```bash
141
+ trackops opera bootstrap --resume
142
+ ```
143
+
144
+ 8. Si OPERA completa bootstrap directo, revisa estado y continua con:
145
+
146
+ ```bash
147
+ trackops opera status
148
+ trackops next
149
+ trackops sync
150
+ ```
151
+
152
+ ### Desinstalacion global y local
153
+
154
+ #### Quitar la instalacion global
155
+
156
+ Quita la skill global del agente:
157
+
158
+ ```bash
159
+ npx skills remove --global trackops -y
160
+ ```
161
+
162
+ Quita el runtime global:
163
+
164
+ ```bash
165
+ npm uninstall -g trackops
166
+ ```
167
+
168
+ Verifica:
169
+
170
+ ```bash
171
+ npx skills ls -g
172
+ trackops --version
173
+ ```
174
+
175
+ #### Quitar TrackOps de un proyecto
176
+
177
+ Hoy no existe un comando `trackops uninstall` para el repo. La retirada local es manual.
178
+
179
+ En un workspace split, revisa y elimina solo lo que de verdad quieras retirar:
180
+
181
+ - `.trackops-workspace.json`
182
+ - `ops/`
183
+ - `app/.env` si era solo bridge
184
+
185
+ Revisa con cuidado antes de borrar:
186
+
187
+ - `/.env`
188
+ - `/.env.example`
189
+
190
+ Esos archivos pueden seguir siendo utiles para tu proyecto aunque dejes de usar TrackOps.
191
+
192
+ ### Activacion local
193
+
194
+ Dentro de un repo:
195
+
196
+ ```bash
197
+ trackops init
198
+ trackops opera install
199
+ ```
200
+
201
+ Semantica:
202
+
203
+ - `trackops init`
204
+ activa TrackOps en el repo
205
+ - `trackops opera install`
206
+ anade OPERA cuando quieres el framework operativo completo
207
+ - `trackops init --with-opera`
208
+ existe como atajo
209
+ - `trackops init --legacy-layout`
210
+ existe solo por compatibilidad
211
+
212
+ ### Workspace split
213
+
214
+ Por defecto, TrackOps separa producto y operacion:
215
+
216
+ ```text
217
+ mi-proyecto/
218
+ |- .trackops-workspace.json
219
+ |- .env
220
+ |- .env.example
221
+ |- app/
222
+ | \- ...producto real...
223
+ \- ops/
224
+ |- project_control.json
225
+ |- contract/
226
+ | \- operating-contract.json
227
+ |- policy/
228
+ | \- autonomy.json
229
+ |- task_plan.md
230
+ |- progress.md
231
+ |- findings.md
232
+ |- genesis.md
233
+ |- bootstrap/
234
+ |- .agent/
235
+ |- .agents/
236
+ |- .githooks/
237
+ \- .tmp/
238
+ ```
239
+
240
+ Fuente de verdad operativa:
241
+
242
+ - layout split: `ops/project_control.json`
243
+ - layout legacy: `project_control.json`
244
+
245
+ ### Dos formas de arrancar OPERA
246
+
247
+ #### Tengo una idea
248
+
249
+ 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:
250
+
251
+ 1. pregunta nivel tecnico, estado del proyecto y documentacion disponible
252
+ 2. genera un handoff en `ops/bootstrap/agent-handoff.md`
253
+ 3. espera a que el agente produzca:
254
+ - `ops/bootstrap/intake.json`
255
+ - `ops/bootstrap/spec-dossier.md`
256
+ - `ops/bootstrap/open-questions.md` si quedan huecos importantes
257
+ 4. reanudas con:
258
+
259
+ ```bash
260
+ trackops opera bootstrap --resume
261
+ ```
262
+
263
+ La terminal tambien debe decirte este siguiente paso al terminar el handoff.
264
+
265
+ #### Ya tengo un repo
266
+
267
+ 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`.
268
+
269
+ Tambien puedes forzar el modo:
270
+
271
+ ```bash
272
+ trackops opera install --bootstrap-mode handoff
273
+ trackops opera install --bootstrap-mode direct
274
+ ```
275
+
276
+ Flags disponibles:
277
+
278
+ - `--technical-level low|medium|high|senior`
279
+ - `--project-state idea|draft|existing_repo|advanced`
280
+ - `--docs-state none|notes|sos|spec_dossier|repo_docs`
281
+ - `--decision-ownership user|shared|agent`
282
+
283
+ ### Entorno y secretos
284
+
285
+ TrackOps gestiona un contrato explicito de entorno:
286
+
287
+ - `/.env`
288
+ secretos reales del workspace
289
+ - `/.env.example`
290
+ contrato publico de variables
291
+ - `app/.env`
292
+ puente de compatibilidad
293
+
294
+ Comandos:
295
+
296
+ ```bash
297
+ trackops env status
298
+ trackops env sync
299
+ ```
300
+
301
+ TrackOps nunca imprime ni persiste valores sensibles en docs, dashboard o `project_control.json`.
302
+
303
+ ### Idioma
304
+
305
+ TrackOps puede trabajar con:
306
+
307
+ - idioma global en `~/.trackops/runtime.json`
308
+ - idioma por proyecto en `ops/project_control.json`
309
+
310
+ Comandos:
311
+
312
+ ```bash
313
+ trackops locale get
314
+ trackops locale set es
315
+ trackops doctor locale
316
+ ```
317
+
318
+ ### CLI principal
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)