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/locales/es.json CHANGED
@@ -101,58 +101,58 @@
101
101
  "cli.next.stream": "stream",
102
102
  "cli.next.summary": "resumen",
103
103
 
104
- "cli.help.title": "Control operativo del proyecto",
105
- "cli.help.usage": "Uso:",
106
- "cli.help.commands": "Comandos:",
107
- "cli.help.init.desc": "Inicializa TrackOps en el directorio actual.",
108
- "cli.help.workspace.desc": "Muestra o migra el layout actual del workspace.",
109
- "cli.help.env.desc": "Audita o sincroniza el contrato .env del workspace.",
110
- "cli.help.release.desc": "Publica el snapshot configurado de app/.",
111
- "cli.help.version.desc": "Imprime la version instalada de TrackOps.",
112
- "cli.help.status.desc": "Muestra el estado del proyecto: foco, fase activa, tareas listas, bloqueadores y repo.",
113
- "cli.help.next.desc": "Cola priorizada de siguientes tareas ejecutables.",
114
- "cli.help.sync.desc": "Regenera task_plan.md, progress.md y findings.md desde project_control.json.",
115
- "cli.help.dashboard.desc": "Lanza el dashboard web local en un puerto libre e imprime URLs local/red.",
116
- "cli.help.refreshRepo.desc": "Actualiza el snapshot runtime del repo con el estado git.",
117
- "cli.help.installHooks.desc": "Configura git core.hooksPath para usar el directorio de hooks de TrackOps.",
118
- "cli.help.register.desc": "Registra el proyecto actual en el portfolio multiproyecto.",
119
- "cli.help.projects.desc": "Lista los proyectos registrados.",
120
- "cli.help.task.desc": "Acciones: start, review, complete, block, pending, cancel, note.",
121
- "cli.help.opera.desc": "Gestiona OPERA.",
122
- "cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
123
- "cli.help.locale.desc": "Muestra o actualiza el idioma global de TrackOps.",
124
- "cli.help.doctor.desc": "Explica el origen efectivo del idioma para esta maquina/proyecto.",
125
- "cli.help.skill.desc": "Gestiona skills.",
126
- "cli.help.help.desc": "Muestra esta ayuda.",
127
- "cli.help.globalWorkflow": "Flujo global del agente:",
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
- "cli.usage.workspace": "Uso: trackops workspace <status|migrate>",
131
- "cli.usage.env": "Uso: trackops env <status|sync>",
132
- "cli.usage.opera": "Uso: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
133
- "cli.usage.skill": "Uso: trackops skill <install|list|remove|catalog> [name]",
134
- "cli.usage.locale": "Uso: trackops locale <get|set> [es|en]",
135
- "cli.usage.doctor": "Uso: trackops doctor locale",
136
- "cli.error.unknownCommand": "Comando desconocido: {command}",
137
- "cli.error.runHelp": "Ejecuta 'trackops help' para ver el uso.",
138
- "cli.error.noWorkspace": "No se encontro ningun workspace TrackOps en este directorio ni en sus padres.",
139
- "locale.effective": "Idioma efectivo",
140
- "locale.source": "Origen",
141
- "locale.global": "Idioma global",
142
- "locale.project": "Idioma del proyecto",
143
- "locale.env": "Idioma por entorno",
144
- "locale.system": "Idioma del sistema",
145
- "locale.runtimeFile": "Archivo runtime",
146
- "locale.none": "ninguno",
147
- "locale.invalid": "Idioma invalido: {value}.",
148
- "locale.updated": "Idioma global actualizado a {locale}.",
149
- "locale.source.explicit": "flag explicito",
150
- "locale.source.project": "proyecto",
151
- "locale.source.global": "global",
152
- "locale.source.env": "entorno",
153
- "locale.source.system": "sistema",
154
- "locale.source.prompt": "prompt",
155
- "locale.source.manual": "manual",
104
+ "cli.help.title": "Control operativo del proyecto",
105
+ "cli.help.usage": "Uso:",
106
+ "cli.help.commands": "Comandos:",
107
+ "cli.help.init.desc": "Inicializa TrackOps en el directorio actual.",
108
+ "cli.help.workspace.desc": "Muestra o migra el layout actual del workspace.",
109
+ "cli.help.env.desc": "Audita o sincroniza el contrato .env del workspace.",
110
+ "cli.help.release.desc": "Publica el snapshot configurado de app/.",
111
+ "cli.help.version.desc": "Imprime la version instalada de TrackOps.",
112
+ "cli.help.status.desc": "Muestra el estado del proyecto: foco, fase activa, tareas listas, bloqueadores y repo.",
113
+ "cli.help.next.desc": "Cola priorizada de siguientes tareas ejecutables.",
114
+ "cli.help.sync.desc": "Regenera task_plan.md, progress.md y findings.md desde project_control.json.",
115
+ "cli.help.dashboard.desc": "Lanza el dashboard web local en un puerto libre e imprime URLs local/red.",
116
+ "cli.help.refreshRepo.desc": "Actualiza el snapshot runtime del repo con el estado git.",
117
+ "cli.help.installHooks.desc": "Configura git core.hooksPath para usar el directorio de hooks de TrackOps.",
118
+ "cli.help.register.desc": "Registra el proyecto actual en el portfolio multiproyecto.",
119
+ "cli.help.projects.desc": "Lista los proyectos registrados.",
120
+ "cli.help.task.desc": "Acciones: start, review, complete, block, pending, cancel, note.",
121
+ "cli.help.opera.desc": "Gestiona OPERA.",
122
+ "cli.help.opera.upgradeHint": "Upgrade: trackops opera upgrade --stable [--reset]",
123
+ "cli.help.locale.desc": "Muestra o actualiza el idioma global de TrackOps.",
124
+ "cli.help.doctor.desc": "Explica el origen efectivo del idioma para esta maquina/proyecto.",
125
+ "cli.help.skill.desc": "Gestiona skills.",
126
+ "cli.help.help.desc": "Muestra esta ayuda.",
127
+ "cli.help.globalWorkflow": "Flujo global del agente:",
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
+ "cli.usage.workspace": "Uso: trackops workspace <status|migrate>",
131
+ "cli.usage.env": "Uso: trackops env <status|sync>",
132
+ "cli.usage.opera": "Uso: trackops opera <install|bootstrap|handoff|status|configure|upgrade>",
133
+ "cli.usage.skill": "Uso: trackops skill <install|list|remove|catalog> [name]",
134
+ "cli.usage.locale": "Uso: trackops locale <get|set> [es|en]",
135
+ "cli.usage.doctor": "Uso: trackops doctor locale",
136
+ "cli.error.unknownCommand": "Comando desconocido: {command}",
137
+ "cli.error.runHelp": "Ejecuta 'trackops help' para ver el uso.",
138
+ "cli.error.noWorkspace": "No se encontro ningun workspace TrackOps en este directorio ni en sus padres.",
139
+ "locale.effective": "Idioma efectivo",
140
+ "locale.source": "Origen",
141
+ "locale.global": "Idioma global",
142
+ "locale.project": "Idioma del proyecto",
143
+ "locale.env": "Idioma por entorno",
144
+ "locale.system": "Idioma del sistema",
145
+ "locale.runtimeFile": "Archivo runtime",
146
+ "locale.none": "ninguno",
147
+ "locale.invalid": "Idioma invalido: {value}.",
148
+ "locale.updated": "Idioma global actualizado a {locale}.",
149
+ "locale.source.explicit": "flag explicito",
150
+ "locale.source.project": "proyecto",
151
+ "locale.source.global": "global",
152
+ "locale.source.env": "entorno",
153
+ "locale.source.system": "sistema",
154
+ "locale.source.prompt": "prompt",
155
+ "locale.source.manual": "manual",
156
156
 
157
157
  "server.ready": "Ops dashboard listo en http://{host}:{port}",
158
158
  "server.bannerTitle": "Serving!",
@@ -188,90 +188,90 @@
188
188
  "init.defaultTaskTitle": "Configurar proyecto con trackops",
189
189
  "init.defaultTaskSummary": "Verificar estructura inicial, ajustar fases y confirmar integracion operativa.",
190
190
 
191
- "opera.installed": "Metodologia OPERA instalada (v{version}).",
192
- "opera.alreadyInstalled": "OPERA ya esta instalado en este proyecto (v{version}).",
193
- "opera.notInstalled": "OPERA no esta instalado en este proyecto.",
194
- "opera.upgraded": "OPERA actualizado a v{version}.",
195
- "opera.primitiveDetected": "Detectada instalacion OPERA existente (sin gestion por Ops).",
196
- "opera.status.version": "OPERA v{version}",
197
- "opera.status.installed": " Instalado: {value}",
198
- "opera.status.skills": " Skills: {value}",
199
- "opera.status.locale": " Idioma: {locale} ({source})",
200
- "opera.status.legacy": " Legacy: {value}",
201
- "opera.status.contractVersion": " Version de contrato: {value}",
202
- "opera.status.contractReadiness": " Readiness del contrato: {value}",
203
- "opera.status.bootstrap": " Bootstrap: {value}",
204
- "opera.status.mode": " Modo: {value}",
205
- "opera.status.route": " Ruta: {value}",
206
- "opera.status.ownership": " Ownership: {value}",
207
- "opera.status.missing": " Faltan: {value}",
208
- "opera.status.resume": " Reanudar: trackops opera bootstrap --resume",
209
- "opera.status.handoff": " Handoff: {value}",
210
- "opera.status.qualityReport": " Quality report: {value}",
211
- "opera.status.structure": " Estructura:",
212
- "opera.configure.invalidPhases": "JSON de fases invalido.",
213
- "opera.configure.updated": "Configuracion actualizada.",
214
- "opera.upgrade.runInstallFirst": "Ejecuta 'trackops opera install' primero.",
215
- "opera.upgrade.usage": "Uso: trackops opera upgrade --stable [--reset]",
216
- "opera.upgrade.legacyUnsupported": "Proyecto OPERA legacy detectado. Ejecuta 'trackops opera upgrade --stable --reset' para moverlo al modelo estable actual.",
217
- "opera.upgrade.backup": "Backup: {path}",
218
- "postinstall.localeSet": "TrackOps ha fijado el idioma en '{locale}' ({source}).",
191
+ "opera.installed": "Metodologia OPERA instalada (v{version}).",
192
+ "opera.alreadyInstalled": "OPERA ya esta instalado en este proyecto (v{version}).",
193
+ "opera.notInstalled": "OPERA no esta instalado en este proyecto.",
194
+ "opera.upgraded": "OPERA actualizado a v{version}.",
195
+ "opera.primitiveDetected": "Detectada instalacion OPERA existente (sin gestion por Ops).",
196
+ "opera.status.version": "OPERA v{version}",
197
+ "opera.status.installed": " Instalado: {value}",
198
+ "opera.status.skills": " Skills: {value}",
199
+ "opera.status.locale": " Idioma: {locale} ({source})",
200
+ "opera.status.legacy": " Legacy: {value}",
201
+ "opera.status.contractVersion": " Version de contrato: {value}",
202
+ "opera.status.contractReadiness": " Readiness del contrato: {value}",
203
+ "opera.status.bootstrap": " Bootstrap: {value}",
204
+ "opera.status.mode": " Modo: {value}",
205
+ "opera.status.route": " Ruta: {value}",
206
+ "opera.status.ownership": " Ownership: {value}",
207
+ "opera.status.missing": " Faltan: {value}",
208
+ "opera.status.resume": " Reanudar: trackops opera bootstrap --resume",
209
+ "opera.status.handoff": " Handoff: {value}",
210
+ "opera.status.qualityReport": " Quality report: {value}",
211
+ "opera.status.structure": " Estructura:",
212
+ "opera.configure.invalidPhases": "JSON de fases invalido.",
213
+ "opera.configure.updated": "Configuracion actualizada.",
214
+ "opera.upgrade.runInstallFirst": "Ejecuta 'trackops opera install' primero.",
215
+ "opera.upgrade.usage": "Uso: trackops opera upgrade --stable [--reset]",
216
+ "opera.upgrade.legacyUnsupported": "Proyecto OPERA legacy detectado. Ejecuta 'trackops opera upgrade --stable --reset' para moverlo al modelo estable actual.",
217
+ "opera.upgrade.backup": "Backup: {path}",
218
+ "postinstall.localeSet": "TrackOps ha fijado el idioma en '{locale}' ({source}).",
219
219
 
220
220
  "skill.installed": "Skill '{name}' instalada.",
221
221
  "skill.removed": "Skill '{name}' desinstalada.",
222
222
  "skill.notFound": "Skill '{name}' no encontrada en el catalogo.",
223
223
  "skill.alreadyInstalled": "Skill '{name}' ya esta instalada.",
224
- "skill.notInstalled": "Skill '{name}' no esta instalada.",
225
- "skill.catalogTitle": "Skills disponibles:",
226
- "skill.listTitle": "Skills instaladas:",
227
-
228
- "cli.status.bootstrap": "Bootstrap: {status} | Idioma: {locale}",
224
+ "skill.notInstalled": "Skill '{name}' no esta instalada.",
225
+ "skill.catalogTitle": "Skills disponibles:",
226
+ "skill.listTitle": "Skills instaladas:",
229
227
 
230
- "bootstrap.header": "Bootstrap OPERA",
231
- "bootstrap.subtitle": "Primero clasifica al usuario y el estado del proyecto. TrackOps decidira si continuar por terminal o derivar el arranque al agente.",
232
- "bootstrap.instructions": "Responde con low|medium|high|senior o con sus equivalentes bajo|medio|alto. Si no sabes una respuesta, pulsa Enter para aceptar el valor por defecto.",
233
- "bootstrap.question.technicalLevel": "Nivel tecnico del usuario",
234
- "bootstrap.question.projectState": "Estado actual del proyecto",
235
- "bootstrap.question.docsState": "Documentacion disponible",
236
- "bootstrap.question.decisionOwnership": "Quien debe tomar las decisiones clave",
237
- "bootstrap.question.problemStatement": "Problema principal que se quiere resolver",
238
- "bootstrap.question.targetUser": "Usuario objetivo principal",
239
- "bootstrap.question.desiredOutcome": "Resultado singular deseado",
240
- "bootstrap.question.externalServices": "Servicios externos (separados por comas)",
241
- "bootstrap.question.sourceOfTruth": "Fuente de la verdad",
242
- "bootstrap.question.payload": "Payload / objetivo de entrega",
243
- "bootstrap.question.behaviorRules": "Reglas de comportamiento (separadas por punto y coma)",
228
+ "cli.status.bootstrap": "Bootstrap: {status} | Idioma: {locale}",
229
+
230
+ "bootstrap.header": "Bootstrap OPERA",
231
+ "bootstrap.subtitle": "Primero clasifica al usuario y el estado del proyecto. TrackOps decidira si continuar por terminal o derivar el arranque al agente.",
232
+ "bootstrap.instructions": "Responde con low|medium|high|senior o con sus equivalentes bajo|medio|alto. Si no sabes una respuesta, pulsa Enter para aceptar el valor por defecto.",
233
+ "bootstrap.question.technicalLevel": "Nivel tecnico del usuario",
234
+ "bootstrap.question.projectState": "Estado actual del proyecto",
235
+ "bootstrap.question.docsState": "Documentacion disponible",
236
+ "bootstrap.question.decisionOwnership": "Quien debe tomar las decisiones clave",
237
+ "bootstrap.question.problemStatement": "Problema principal que se quiere resolver",
238
+ "bootstrap.question.targetUser": "Usuario objetivo principal",
239
+ "bootstrap.question.desiredOutcome": "Resultado singular deseado",
240
+ "bootstrap.question.externalServices": "Servicios externos (separados por comas)",
241
+ "bootstrap.question.sourceOfTruth": "Fuente de la verdad",
242
+ "bootstrap.question.payload": "Payload / objetivo de entrega",
243
+ "bootstrap.question.behaviorRules": "Reglas de comportamiento (separadas por punto y coma)",
244
244
  "bootstrap.question.inputSchema": "Schema JSON de entrada",
245
245
  "bootstrap.question.outputSchema": "Schema JSON de salida",
246
246
  "bootstrap.question.invariants": "Invariantes arquitectonicas (separadas por punto y coma)",
247
247
  "bootstrap.question.pipeline": "Pasos del pipeline (separados por punto y coma)",
248
- "bootstrap.question.templates": "Archivos template (separados por comas)",
249
- "bootstrap.question.repoTasks": "¿Incluir tareas opcionales de repo? [y/n]",
250
- "bootstrap.completed": "Bootstrap OPERA completado.",
251
- "bootstrap.pending": "Bootstrap OPERA guardado como pendiente. Reanuda con 'trackops opera bootstrap --resume'.",
252
- "bootstrap.awaitingAgent": "Bootstrap OPERA derivado al agente. Completa el handoff y reanuda con 'trackops opera bootstrap --resume'.",
253
- "bootstrap.handoffFile": "Archivo de handoff",
254
- "bootstrap.next.handoff": "Siguiente paso: ejecuta 'trackops opera handoff --print', pega el contexto en tu agente y vuelve cuando existan ops/bootstrap/intake.json y ops/bootstrap/spec-dossier.md.",
255
- "bootstrap.next.directCompleted": "Siguiente paso: revisa 'trackops opera status' y continua el trabajo normal con 'trackops next' y 'trackops sync'.",
256
- "bootstrap.next.directPending": "Siguiente paso: completa los datos pendientes y reanuda con 'trackops opera bootstrap --resume'.",
257
- "bootstrap.infer.envSourceHint": "Detectados archivos de entorno",
258
- "bootstrap.noneDefined": "Aun no definido.",
259
- "bootstrap.pendingValue": "Pendiente de definir.",
260
- "bootstrap.servicePending": "pendiente",
261
- "bootstrap.defaultFocus": "Completar bootstrap OPERA",
262
- "bootstrap.defaultTarget": "Entrega objetivo pendiente de definir",
263
- "bootstrap.blocker.missingData": "Todavia faltan datos clave del bootstrap.",
264
- "bootstrap.blocker.awaitingAgent": "Esperando el resultado del handoff al agente.",
265
- "bootstrap.history.seeded": "Sembrada por bootstrap OPERA.",
266
- "bootstrap.acceptance.discovery": "Preguntas de descubrimiento respondidas.",
267
- "bootstrap.acceptance.schema": "Schema de entrada/salida definido en genesis.md.",
268
- "bootstrap.acceptance.rules": "Reglas de comportamiento documentadas.",
269
- "bootstrap.acceptance.plan": "Plan revisado y aceptado.",
270
- "bootstrap.acceptance.intake": "El agente genero ops/bootstrap/intake.json.",
271
- "bootstrap.acceptance.specDossier": "El agente genero ops/bootstrap/spec-dossier.md.",
272
- "bootstrap.acceptance.resume": "OPERA pudo ingerir el contexto y continuar.",
273
- "bootstrap.acceptance.env": "Credenciales requeridas verificadas.",
274
- "bootstrap.acceptance.tests": "Checks de conectividad pasando.",
248
+ "bootstrap.question.templates": "Archivos template (separados por comas)",
249
+ "bootstrap.question.repoTasks": "¿Incluir tareas opcionales de repo? [y/n]",
250
+ "bootstrap.completed": "Bootstrap OPERA completado.",
251
+ "bootstrap.pending": "Bootstrap OPERA guardado como pendiente. Reanuda con 'trackops opera bootstrap --resume'.",
252
+ "bootstrap.awaitingAgent": "Bootstrap OPERA derivado al agente. Completa el handoff y reanuda con 'trackops opera bootstrap --resume'.",
253
+ "bootstrap.handoffFile": "Archivo de handoff",
254
+ "bootstrap.next.handoff": "Siguiente paso: ejecuta 'trackops opera handoff --print', pega el contexto en tu agente y vuelve cuando existan ops/bootstrap/intake.json y ops/bootstrap/spec-dossier.md.",
255
+ "bootstrap.next.directCompleted": "Siguiente paso: revisa 'trackops opera status' y continua el trabajo normal con 'trackops next' y 'trackops sync'.",
256
+ "bootstrap.next.directPending": "Siguiente paso: completa los datos pendientes y reanuda con 'trackops opera bootstrap --resume'.",
257
+ "bootstrap.infer.envSourceHint": "Detectados archivos de entorno",
258
+ "bootstrap.noneDefined": "Aun no definido.",
259
+ "bootstrap.pendingValue": "Pendiente de definir.",
260
+ "bootstrap.servicePending": "pendiente",
261
+ "bootstrap.defaultFocus": "Completar bootstrap OPERA",
262
+ "bootstrap.defaultTarget": "Entrega objetivo pendiente de definir",
263
+ "bootstrap.blocker.missingData": "Todavia faltan datos clave del bootstrap.",
264
+ "bootstrap.blocker.awaitingAgent": "Esperando el resultado del handoff al agente.",
265
+ "bootstrap.history.seeded": "Sembrada por bootstrap OPERA.",
266
+ "bootstrap.acceptance.discovery": "Preguntas de descubrimiento respondidas.",
267
+ "bootstrap.acceptance.schema": "Schema de entrada/salida definido en genesis.md.",
268
+ "bootstrap.acceptance.rules": "Reglas de comportamiento documentadas.",
269
+ "bootstrap.acceptance.plan": "Plan revisado y aceptado.",
270
+ "bootstrap.acceptance.intake": "El agente genero ops/bootstrap/intake.json.",
271
+ "bootstrap.acceptance.specDossier": "El agente genero ops/bootstrap/spec-dossier.md.",
272
+ "bootstrap.acceptance.resume": "OPERA pudo ingerir el contexto y continuar.",
273
+ "bootstrap.acceptance.env": "Credenciales requeridas verificadas.",
274
+ "bootstrap.acceptance.tests": "Checks de conectividad pasando.",
275
275
  "bootstrap.acceptance.shape": "Shapes externos validados contra genesis.md.",
276
276
  "bootstrap.acceptance.findings": "Hallazgos documentados.",
277
277
  "bootstrap.acceptance.sops": "SOPs documentados.",
@@ -285,10 +285,10 @@
285
285
  "bootstrap.acceptance.deploy": "Despliegue completado.",
286
286
  "bootstrap.acceptance.triggers": "Triggers configurados.",
287
287
  "bootstrap.acceptance.smoke": "Smoke test pasando.",
288
- "bootstrap.task.bootstrap.title": "Completar bootstrap OPERA",
289
- "bootstrap.task.bootstrap.summary": "Convertir la estructura OPERA instalada en un modelo operativo especifico del proyecto.",
290
- "bootstrap.task.bootstrap.handoffSummary": "Preparar el handoff al agente para convertir una idea o especificacion parcial en contexto operativo estructurado.",
291
- "bootstrap.task.prove.title": "Validar integraciones",
288
+ "bootstrap.task.bootstrap.title": "Completar bootstrap OPERA",
289
+ "bootstrap.task.bootstrap.summary": "Convertir la estructura OPERA instalada en un modelo operativo especifico del proyecto.",
290
+ "bootstrap.task.bootstrap.handoffSummary": "Preparar el handoff al agente para convertir una idea o especificacion parcial en contexto operativo estructurado.",
291
+ "bootstrap.task.prove.title": "Validar integraciones",
292
292
  "bootstrap.task.prove.summary": "Verificar credenciales, conectividad y shape de respuestas antes de seguir construyendo.",
293
293
  "bootstrap.task.structure.title": "Estructurar el sistema",
294
294
  "bootstrap.task.structure.summary": "Documentar SOPs, implementar herramientas y capturar el grafo de dependencias.",
@@ -304,21 +304,21 @@
304
304
  "bootstrap.task.repoChangelog.summary": "Decidir como se mantendra CHANGELOG.md en este proyecto.",
305
305
  "bootstrap.task.repoGithub.title": "Revisar tareas de gobernanza GitHub",
306
306
  "bootstrap.task.repoGithub.summary": "Comprobar si deben activarse tareas de automatizacion o gobernanza del repositorio.",
307
- "bootstrap.field.singularDesiredOutcome": "Resultado deseado",
308
- "bootstrap.field.desiredOutcome": "Resultado deseado",
309
- "bootstrap.field.problemStatement": "Problema principal",
310
- "bootstrap.field.targetUser": "Usuario objetivo",
311
- "bootstrap.field.decisionOwnership": "Propiedad de decision",
312
- "bootstrap.field.sourceOfTruth": "Fuente de la verdad",
313
- "bootstrap.field.payload": "Payload",
314
- "bootstrap.field.inputSchema": "Schema de entrada",
315
- "bootstrap.field.outputSchema": "Schema de salida",
316
- "bootstrap.field.intakeJson": "Archivo intake.json",
317
- "bootstrap.field.specDossier": "Archivo spec-dossier.md",
318
- "bootstrap.decisionImpact": "Necesario para completar el bootstrap OPERA.",
319
- "bootstrap.pendingDecision.handoff": "Enviar el handoff de TrackOps al agente",
320
- "bootstrap.pendingDecision.handoffImpact": "Necesario para que el agente genere intake.json y spec-dossier.md.",
321
- "bootstrap.finding.genesisConflictTitle": "Genesis requiere revision manual",
307
+ "bootstrap.field.singularDesiredOutcome": "Resultado deseado",
308
+ "bootstrap.field.desiredOutcome": "Resultado deseado",
309
+ "bootstrap.field.problemStatement": "Problema principal",
310
+ "bootstrap.field.targetUser": "Usuario objetivo",
311
+ "bootstrap.field.decisionOwnership": "Propiedad de decision",
312
+ "bootstrap.field.sourceOfTruth": "Fuente de la verdad",
313
+ "bootstrap.field.payload": "Payload",
314
+ "bootstrap.field.inputSchema": "Schema de entrada",
315
+ "bootstrap.field.outputSchema": "Schema de salida",
316
+ "bootstrap.field.intakeJson": "Archivo intake.json",
317
+ "bootstrap.field.specDossier": "Archivo spec-dossier.md",
318
+ "bootstrap.decisionImpact": "Necesario para completar el bootstrap OPERA.",
319
+ "bootstrap.pendingDecision.handoff": "Enviar el handoff de TrackOps al agente",
320
+ "bootstrap.pendingDecision.handoffImpact": "Necesario para que el agente genere intake.json y spec-dossier.md.",
321
+ "bootstrap.finding.genesisConflictTitle": "Genesis requiere revision manual",
322
322
  "bootstrap.finding.genesisConflictDetail": "TrackOps detecto un genesis.md no plantilla y detuvo la sobreescritura automatica.",
323
323
  "bootstrap.finding.genesisConflictImpact": "El bootstrap no puede completarse hasta revisar la constitucion existente.",
324
324
 
@@ -405,28 +405,50 @@
405
405
  "ui.execution.stop": "Detener",
406
406
  "ui.execution.output": "Salida del comando",
407
407
  "ui.execution.outputPlaceholder": "# Ejecuta un comando para ver la salida aqui...",
408
- "ui.execution.started": "Iniciado",
409
- "ui.execution.running": "Ejecutando...",
410
- "ui.execution.quick.status": "status",
411
- "ui.execution.quick.sync": "sincronizar docs",
412
- "ui.execution.quick.next": "siguientes tareas",
413
- "ui.execution.quick.repo": "refrescar repo",
414
- "ui.settings.workspaceTitle": "Workspace",
415
- "ui.settings.workspaceRoot": "Raiz del workspace",
416
- "ui.settings.appRoot": "Raiz de app",
417
- "ui.settings.opsRoot": "Raiz de ops",
418
- "ui.settings.envTitle": "Entorno",
419
- "ui.settings.envHealthyBadge": "Listo",
420
- "ui.settings.envMissingBadge": "{count} faltantes",
421
- "ui.settings.envBridgeMode": "Modo de puente",
422
- "ui.settings.envRootFile": ".env raiz",
423
- "ui.settings.envExampleFile": ".env.example",
424
- "ui.settings.envAppBridge": "Puente app/.env",
425
- "ui.settings.envRequiredKeys": "Claves requeridas",
426
- "ui.settings.envPresentKeys": "Claves presentes",
427
- "ui.settings.envMissingKeys": "Claves faltantes",
428
- "ui.settings.envNoMissing": "Ninguna",
429
- "ui.settings.envLastAudit": "Ultima auditoria",
430
- "ui.settings.envSync": "Sincronizar env",
431
- "ui.settings.envSynced": "Entorno sincronizado."
432
- }
408
+ "ui.execution.started": "Iniciado",
409
+ "ui.execution.running": "Ejecutando...",
410
+ "ui.execution.quick.status": "status",
411
+ "ui.execution.quick.sync": "sincronizar docs",
412
+ "ui.execution.quick.next": "siguientes tareas",
413
+ "ui.execution.quick.repo": "refrescar repo",
414
+ "ui.settings.workspaceTitle": "Workspace",
415
+ "ui.settings.workspaceRoot": "Raiz del workspace",
416
+ "ui.settings.appRoot": "Raiz de app",
417
+ "ui.settings.opsRoot": "Raiz de ops",
418
+ "ui.settings.envTitle": "Entorno",
419
+ "ui.settings.envHealthyBadge": "Listo",
420
+ "ui.settings.envMissingBadge": "{count} faltantes",
421
+ "ui.settings.envBridgeMode": "Modo de puente",
422
+ "ui.settings.envRootFile": ".env raiz",
423
+ "ui.settings.envExampleFile": ".env.example",
424
+ "ui.settings.envAppBridge": "Puente app/.env",
425
+ "ui.settings.envRequiredKeys": "Claves requeridas",
426
+ "ui.settings.envPresentKeys": "Claves presentes",
427
+ "ui.settings.envMissingKeys": "Claves faltantes",
428
+ "ui.settings.envNoMissing": "Ninguna",
429
+ "ui.settings.envLastAudit": "Ultima auditoria",
430
+ "ui.settings.envSync": "Sincronizar env",
431
+ "ui.settings.envSynced": "Entorno sincronizado.",
432
+
433
+ "handoff.title": "Handoff de agente OPERA",
434
+ "handoff.skillInstruction": "Usa `project-starter-skill` como skill de descubrimiento y estructuracion para este proyecto.",
435
+ "handoff.section.userProfile": "Perfil del usuario",
436
+ "handoff.label.technicalLevel": "Nivel tecnico",
437
+ "handoff.label.explanationMode": "Modo de explicacion",
438
+ "handoff.label.decisionOwnership": "Propiedad de decision",
439
+ "handoff.label.preferredLanguage": "Idioma preferido",
440
+ "handoff.section.projectState": "Estado del proyecto",
441
+ "handoff.label.projectState": "Estado del proyecto",
442
+ "handoff.label.documentationState": "Estado de documentacion",
443
+ "handoff.section.whatToDo": "Que hacer",
444
+ "handoff.instruction.startFromUser": "Parte del usuario, no de suposiciones arquitectonicas.",
445
+ "handoff.instruction.adaptDepth": "Adapta la profundidad y el lenguaje al nivel tecnico del usuario.",
446
+ "handoff.instruction.readDocs": "Si hay documentacion, leela, resumela y consolidala.",
447
+ "handoff.instruction.helpSpec": "Si no hay documentacion, ayuda al usuario a convertir la idea en una especificacion viable.",
448
+ "handoff.instruction.writeIntake": "Escribe `ops/bootstrap/intake.json` con el resultado estructurado del descubrimiento.",
449
+ "handoff.instruction.writeSpec": "Escribe `ops/bootstrap/spec-dossier.md` con la especificacion narrativa o tecnica que OPERA ingerira.",
450
+ "handoff.instruction.writeQuestions": "Escribe `ops/bootstrap/open-questions.md` si quedan incertidumbres importantes.",
451
+ "handoff.instruction.includeFields": "Incluye campos explicitos para problema, usuario objetivo, resultado deseado, fuente de verdad, entrega y schemas.",
452
+ "handoff.instruction.respondInLanguage": "Responde al usuario en {language}.",
453
+ "handoff.label.knownIntention": "Intencion conocida del proyecto"
454
+ }
package/package.json CHANGED
@@ -1,58 +1,61 @@
1
- {
2
- "name": "trackops",
3
- "version": "2.0.4",
4
- "description": "Operational project control with task management, document generation, multi-project dashboard, and optional OPERA methodology",
5
- "main": "lib/control.js",
6
- "bin": {
7
- "trackops": "bin/trackops.js"
8
- },
9
- "files": [
10
- "bin/",
11
- "lib/",
12
- "locales/",
13
- "skills/",
14
- "scripts/",
15
- "ui/",
16
- "templates/"
17
- ],
18
- "keywords": [
19
- "project-management",
20
- "task-management",
21
- "dashboard",
22
- "ops",
23
- "opera",
24
- "methodology",
25
- "cli",
26
- "devops",
27
- "tracking",
28
- "agile"
29
- ],
30
- "author": {
31
- "name": "Xavier Crespo Gríman",
32
- "email": "crespoxac@gmail.com",
33
- "url": "https://baxahaun.com"
34
- },
35
- "repository": {
36
- "type": "git",
37
- "url": "git+https://github.com/Baxahaun/trackops.git"
38
- },
39
- "bugs": {
40
- "url": "https://github.com/Baxahaun/trackops/issues"
41
- },
42
- "homepage": "https://github.com/Baxahaun/trackops#readme",
43
- "funding": "https://baxahaun.github.io/trackops/#support",
44
- "license": "MIT",
45
- "type": "commonjs",
46
- "engines": {
47
- "node": ">=18"
48
- },
49
- "scripts": {
50
- "postinstall": "node scripts/postinstall-locale.js",
51
- "test": "node scripts/smoke-tests.js",
52
- "test:smoke": "node scripts/smoke-tests.js",
53
- "skill:sync-version": "node scripts/sync-skill-version.js",
54
- "skill:validate": "node scripts/validate-skill.js",
55
- "skill:smoke": "node scripts/skills-marketplace-smoke.js",
56
- "release:check": "npm test && npm run skill:validate && npm run skill:smoke && npm pack --dry-run"
57
- }
58
- }
1
+ {
2
+ "name": "trackops",
3
+ "version": "2.0.5",
4
+ "description": "Local control and coordination system for AI-agent software development",
5
+ "main": "lib/control.js",
6
+ "bin": {
7
+ "trackops": "bin/trackops.js"
8
+ },
9
+ "files": [
10
+ "bin/",
11
+ "lib/",
12
+ "locales/",
13
+ "skills/",
14
+ "scripts/",
15
+ "ui/",
16
+ "templates/"
17
+ ],
18
+ "keywords": [
19
+ "project-management",
20
+ "task-management",
21
+ "dashboard",
22
+ "ops",
23
+ "opera",
24
+ "methodology",
25
+ "cli",
26
+ "devops",
27
+ "tracking",
28
+ "agile",
29
+ "ai-agents",
30
+ "coordination",
31
+ "skills"
32
+ ],
33
+ "author": {
34
+ "name": "Xavier Crespo Gríman",
35
+ "email": "crespoxac@gmail.com",
36
+ "url": "https://baxahaun.com"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/Baxahaun/trackops.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/Baxahaun/trackops/issues"
44
+ },
45
+ "homepage": "https://github.com/Baxahaun/trackops#readme",
46
+ "funding": "https://baxahaun.github.io/trackops/#support",
47
+ "license": "MIT",
48
+ "type": "commonjs",
49
+ "engines": {
50
+ "node": ">=18"
51
+ },
52
+ "scripts": {
53
+ "postinstall": "node scripts/postinstall-locale.js",
54
+ "test": "node scripts/smoke-tests.js",
55
+ "test:smoke": "node scripts/smoke-tests.js",
56
+ "skill:sync-version": "node scripts/sync-skill-version.js",
57
+ "skill:validate": "node scripts/validate-skill.js",
58
+ "skill:smoke": "node scripts/skills-marketplace-smoke.js",
59
+ "release:check": "npm test && npm run skill:validate && npm run skill:smoke && npm pack --dry-run"
60
+ }
61
+ }
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env node
2
-
3
- const runtimeState = require("../lib/runtime-state");
4
- const { setLocale, t } = require("../lib/i18n");
5
-
6
- function isGlobalInstall() {
7
- return String(process.env.npm_config_global || "").toLowerCase() === "true";
8
- }
9
-
10
- async function main() {
11
- if (!isGlobalInstall()) return;
12
- const result = await runtimeState.ensureGlobalLocale({ interactive: true });
13
- if (!result?.locale) return;
14
- setLocale(result.locale);
15
- process.stdout.write(`${t("postinstall.localeSet", { locale: result.locale, source: t(`locale.source.${result.source}`) })}\n`);
16
- }
17
-
18
- main().catch((error) => {
19
- process.stderr.write(`${error.message}\n`);
20
- process.exit(0);
21
- });
1
+ #!/usr/bin/env node
2
+
3
+ const runtimeState = require("../lib/runtime-state");
4
+ const { setLocale, t } = require("../lib/i18n");
5
+
6
+ function isGlobalInstall() {
7
+ return String(process.env.npm_config_global || "").toLowerCase() === "true";
8
+ }
9
+
10
+ async function main() {
11
+ if (!isGlobalInstall()) return;
12
+ const result = await runtimeState.ensureGlobalLocale({ interactive: true });
13
+ if (!result?.locale) return;
14
+ setLocale(result.locale);
15
+ process.stdout.write(`${t("postinstall.localeSet", { locale: result.locale, source: t(`locale.source.${result.source}`) })}\n`);
16
+ }
17
+
18
+ main().catch((error) => {
19
+ process.stderr.write(`${error.message}\n`);
20
+ process.exit(0);
21
+ });