trackops 1.0.0 → 1.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 +341 -232
- package/bin/trackops.js +102 -70
- package/lib/config.js +260 -35
- package/lib/control.js +518 -475
- package/lib/env.js +227 -0
- package/lib/i18n.js +61 -53
- package/lib/init.js +146 -55
- package/lib/locale.js +63 -0
- package/lib/opera-bootstrap.js +523 -0
- package/lib/opera.js +319 -170
- package/lib/registry.js +27 -13
- package/lib/release.js +56 -0
- package/lib/resources.js +42 -0
- package/lib/server.js +912 -418
- package/lib/skills.js +148 -124
- package/lib/workspace.js +260 -0
- package/locales/en.json +331 -139
- package/locales/es.json +331 -139
- package/package.json +14 -3
- package/scripts/skills-marketplace-smoke.js +124 -0
- package/scripts/smoke-tests.js +445 -0
- package/scripts/sync-skill-version.js +21 -0
- package/scripts/validate-skill.js +88 -0
- package/skills/trackops/SKILL.md +64 -0
- package/skills/trackops/agents/openai.yaml +3 -0
- package/skills/trackops/references/activation.md +39 -0
- package/skills/trackops/references/troubleshooting.md +34 -0
- package/skills/trackops/references/workflow.md +20 -0
- package/skills/trackops/scripts/bootstrap-trackops.js +201 -0
- package/skills/trackops/skill.json +29 -0
- package/templates/etapa/agent.md +2 -2
- package/templates/etapa/references/etapa-cycle.md +1 -1
- package/templates/opera/agent.md +1 -1
- package/templates/opera/en/agent.md +26 -0
- package/templates/opera/en/genesis.md +79 -0
- package/templates/opera/en/references/autonomy-and-recovery.md +23 -0
- package/templates/opera/en/references/opera-cycle.md +62 -0
- package/templates/opera/en/registry.md +28 -0
- package/templates/opera/en/router.md +39 -0
- package/templates/opera/genesis.md +79 -94
- package/templates/skills/changelog-updater/locales/en/SKILL.md +11 -0
- package/templates/skills/commiter/locales/en/SKILL.md +11 -0
- package/templates/skills/project-starter-skill/SKILL.md +5 -3
- package/templates/skills/project-starter-skill/locales/en/SKILL.md +24 -0
- package/ui/css/base.css +266 -0
- package/ui/css/charts.css +327 -0
- package/ui/css/components.css +570 -0
- package/ui/css/panels.css +956 -0
- package/ui/css/tokens.css +227 -0
- package/ui/favicon.svg +5 -0
- package/ui/index.html +91 -351
- package/ui/js/api.js +220 -0
- package/ui/js/app.js +200 -0
- package/ui/js/console-logger.js +172 -0
- package/ui/js/i18n.js +14 -0
- package/ui/js/icons.js +104 -0
- package/ui/js/onboarding.js +439 -0
- package/ui/js/router.js +125 -0
- package/ui/js/state.js +130 -0
- package/ui/js/theme.js +100 -0
- package/ui/js/time-tracker.js +248 -0
- package/ui/js/utils.js +175 -0
- package/ui/js/views/board.js +255 -0
- package/ui/js/views/execution.js +256 -0
- package/ui/js/views/flash.js +47 -0
- package/ui/js/views/insights.js +340 -0
- package/ui/js/views/overview.js +365 -0
- package/ui/js/views/settings.js +381 -0
- package/ui/js/views/sidebar.js +131 -0
- package/ui/js/views/skills.js +163 -0
- package/ui/js/views/tasks.js +406 -0
- package/ui/js/views/topbar.js +239 -0
package/locales/es.json
CHANGED
|
@@ -1,142 +1,334 @@
|
|
|
1
|
-
{
|
|
2
|
-
"status.pending": "Pendiente",
|
|
3
|
-
"status.in_progress": "En progreso",
|
|
4
|
-
"status.in_review": "En revision",
|
|
5
|
-
"status.blocked": "Bloqueada",
|
|
6
|
-
"status.completed": "Completada",
|
|
7
|
-
"status.cancelled": "Cancelada",
|
|
8
|
-
|
|
9
|
-
"doc.header.taskPlan": "{projectName} — Plan de Tareas (task_plan.md)",
|
|
10
|
-
"doc.header.progress": "{projectName} — Diario de Progreso (progress.md)",
|
|
11
|
-
"doc.header.findings": "{projectName} — Biblioteca de Hallazgos (findings.md)",
|
|
12
|
-
"doc.autogenerated": "AUTOGENERADO desde `project_control.json`. No editar manualmente.",
|
|
13
|
-
|
|
14
|
-
"doc.section.operativeState": "Estado Operativo",
|
|
15
|
-
"doc.section.externalDecisions": "Decisiones externas pendientes",
|
|
16
|
-
"doc.section.readyTasks": "Proximas tareas listas",
|
|
17
|
-
"doc.section.currentState": "Estado Actual",
|
|
18
|
-
"doc.section.executionSummary": "Resumen de Ejecucion",
|
|
19
|
-
"doc.section.activeTasks": "Tareas activas",
|
|
20
|
-
"doc.section.reviewTasks": "Tareas en revision",
|
|
21
|
-
"doc.section.activeBlockers": "Bloqueadores activos",
|
|
22
|
-
"doc.section.recentActivity": "Actividad reciente",
|
|
23
|
-
"doc.section.milestones": "Hitos Registrados",
|
|
24
|
-
"doc.section.openFindings": "Hallazgos Abiertos",
|
|
25
|
-
"doc.section.resolvedFindings": "Hallazgos Resueltos",
|
|
26
|
-
"doc.section.phase": "Fase {phaseId} — {phaseLabel}",
|
|
27
|
-
|
|
28
|
-
"doc.label.activePhase": "Fase activa",
|
|
29
|
-
"doc.label.currentFocus": "Foco actual",
|
|
30
|
-
"doc.label.deliveryTarget": "Objetivo de entrega",
|
|
31
|
-
"doc.label.blockers": "Bloqueadores",
|
|
32
|
-
"doc.label.nextStep": "Proximo paso recomendado",
|
|
33
|
-
"doc.label.phase": "Fase",
|
|
34
|
-
"doc.label.lastTest": "Ultimo test",
|
|
35
|
-
"doc.label.nextStepShort": "Proximo paso",
|
|
36
|
-
"doc.label.lastUpdate": "Ultima actualizacion operativa",
|
|
37
|
-
"doc.label.progress": "Progreso: {completed}/{total} tareas requeridas completadas",
|
|
38
|
-
"doc.label.phaseActive": "Activa",
|
|
39
|
-
"doc.label.phaseClosed": "Cerrada",
|
|
40
|
-
"doc.label.phasePending": "Pendiente",
|
|
41
|
-
"doc.label.totalTasks": "Total de tareas",
|
|
42
|
-
"doc.label.completedTasks": "Completadas",
|
|
43
|
-
"doc.label.inProgressTasks": "En progreso",
|
|
44
|
-
"doc.label.inReviewTasks": "En revision",
|
|
45
|
-
"doc.label.pendingTasks": "Pendientes",
|
|
46
|
-
"doc.label.blockedTasks": "Bloqueadas",
|
|
47
|
-
"doc.label.findingOpen": "abierto",
|
|
48
|
-
"doc.label.findingResolved": "resuelto",
|
|
49
|
-
"doc.label.findingStatus": "Estado",
|
|
50
|
-
"doc.label.findingDetail": "Detalle",
|
|
51
|
-
"doc.label.findingImpact": "Impacto",
|
|
52
|
-
|
|
53
|
-
"doc.label.noBlockers": "Ninguno",
|
|
54
|
-
"doc.label.noOpenTasks": "Sin tareas abiertas",
|
|
55
|
-
"doc.label.noReadyTasks": "No hay tareas listas; revisar bloqueadores.",
|
|
56
|
-
"doc.label.noTasks": "Sin tareas registradas",
|
|
57
|
-
"doc.label.noFindings": "No hay hallazgos abiertos.",
|
|
58
|
-
"doc.label.noResolvedFindings": "No hay hallazgos resueltos registrados.",
|
|
59
|
-
"doc.label.noDecisions": "Ninguna",
|
|
60
|
-
"doc.label.noActiveTasks": "No hay tareas en progreso en este momento.",
|
|
61
|
-
"doc.label.noReviewTasks": "No hay tareas en revision.",
|
|
62
|
-
"doc.label.noActiveBlockers": "Sin bloqueadores activos.",
|
|
63
|
-
"doc.label.noHistory": "Sin movimientos registrados.",
|
|
64
|
-
|
|
65
|
-
"cli.runtimeUpdated": "Runtime actualizado en {path}",
|
|
66
|
-
"cli.docsSynced": "Documentacion operativa sincronizada.",
|
|
67
|
-
"cli.taskUpdated": "Tarea '{taskId}' actualizada con accion '{action}'.",
|
|
68
|
-
"cli.taskNotFound": "No existe la tarea '{taskId}'.",
|
|
69
|
-
"cli.actionNotSupported": "Accion no soportada: {action}",
|
|
70
|
-
"cli.mustProvideActionAndId": "Debes indicar accion e id de tarea.",
|
|
71
|
-
"cli.noReadyTasks": "No hay tareas listas. Revisa bloqueadores y dependencias.",
|
|
72
|
-
"cli.hooksInstalled": "Git hooks instalados en .githooks",
|
|
73
|
-
"cli.hooksError": "No se pudo configurar core.hooksPath.",
|
|
74
|
-
"cli.noProjectFound": "No se encontro project_control.json en este directorio ni superiores.",
|
|
75
|
-
"cli.emptyNote": "Nota sin contenido.",
|
|
76
|
-
"cli.undocumentedBlocker": "Bloqueador no documentado.",
|
|
77
|
-
|
|
78
|
-
"cli.status.title": "{projectName} — Control Operativo",
|
|
79
|
-
"cli.status.focus": "Foco: {focus}",
|
|
80
|
-
"cli.status.activePhase": "Fase activa: {phaseId} — {phaseLabel}",
|
|
81
|
-
"cli.status.tasks": "Tareas: {completed} completadas, {inProgress} en progreso, {inReview} en revision, {pending} pendientes, {blocked} bloqueadas",
|
|
82
|
-
"cli.status.readyTasks": "Proximas tareas listas:",
|
|
83
|
-
"cli.status.noReadyTasks": "No hay tareas listas; revisar bloqueadores o dependencias.",
|
|
84
|
-
"cli.status.blockers": "Bloqueadores:",
|
|
85
|
-
"cli.status.noBlockers": "Sin bloqueadores.",
|
|
86
|
-
"cli.status.decisions": "Decisiones externas:",
|
|
87
|
-
"cli.status.noDecisions": "Ninguna.",
|
|
88
|
-
"cli.status.repo": "Repositorio:",
|
|
89
|
-
"cli.status.branch": "Rama: {branch} | Arbol: {treeStatus}",
|
|
90
|
-
"cli.status.treeClean": "limpio",
|
|
91
|
-
"cli.status.treeDirty": "sucio ({staged} staged, {unstaged} unstaged, {untracked} untracked)",
|
|
92
|
-
"cli.status.lastCommit": "Ultimo commit: {hash} {subject}",
|
|
93
|
-
"cli.status.divergence": "Divergencia: ahead {ahead}, behind {behind}",
|
|
94
|
-
"cli.status.runtime": "Runtime: {path}",
|
|
95
|
-
"cli.status.docsSynced": "Documentacion sincronizada: {status}",
|
|
96
|
-
"cli.status.docsSyncedYes": "si",
|
|
97
|
-
"cli.status.docsSyncedNo": "no ({files})",
|
|
98
|
-
|
|
99
|
-
"cli.next.phase": "fase",
|
|
100
|
-
"cli.next.priority": "prioridad",
|
|
101
|
-
"cli.next.stream": "stream",
|
|
102
|
-
"cli.next.summary": "resumen",
|
|
103
|
-
|
|
104
|
-
"cli.help.title": "Control operativo del proyecto",
|
|
105
|
-
"cli.help.usage": "Uso:",
|
|
106
|
-
|
|
107
|
-
"server.ready": "Ops dashboard listo en http://{host}:{port}",
|
|
108
|
-
"server.
|
|
109
|
-
"server.
|
|
110
|
-
"server.
|
|
111
|
-
"server.
|
|
112
|
-
"server.
|
|
113
|
-
"server.
|
|
114
|
-
"server.
|
|
115
|
-
"server.
|
|
116
|
-
"server.
|
|
117
|
-
"server.
|
|
118
|
-
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
"
|
|
1
|
+
{
|
|
2
|
+
"status.pending": "Pendiente",
|
|
3
|
+
"status.in_progress": "En progreso",
|
|
4
|
+
"status.in_review": "En revision",
|
|
5
|
+
"status.blocked": "Bloqueada",
|
|
6
|
+
"status.completed": "Completada",
|
|
7
|
+
"status.cancelled": "Cancelada",
|
|
8
|
+
|
|
9
|
+
"doc.header.taskPlan": "{projectName} — Plan de Tareas (task_plan.md)",
|
|
10
|
+
"doc.header.progress": "{projectName} — Diario de Progreso (progress.md)",
|
|
11
|
+
"doc.header.findings": "{projectName} — Biblioteca de Hallazgos (findings.md)",
|
|
12
|
+
"doc.autogenerated": "AUTOGENERADO desde `project_control.json`. No editar manualmente.",
|
|
13
|
+
|
|
14
|
+
"doc.section.operativeState": "Estado Operativo",
|
|
15
|
+
"doc.section.externalDecisions": "Decisiones externas pendientes",
|
|
16
|
+
"doc.section.readyTasks": "Proximas tareas listas",
|
|
17
|
+
"doc.section.currentState": "Estado Actual",
|
|
18
|
+
"doc.section.executionSummary": "Resumen de Ejecucion",
|
|
19
|
+
"doc.section.activeTasks": "Tareas activas",
|
|
20
|
+
"doc.section.reviewTasks": "Tareas en revision",
|
|
21
|
+
"doc.section.activeBlockers": "Bloqueadores activos",
|
|
22
|
+
"doc.section.recentActivity": "Actividad reciente",
|
|
23
|
+
"doc.section.milestones": "Hitos Registrados",
|
|
24
|
+
"doc.section.openFindings": "Hallazgos Abiertos",
|
|
25
|
+
"doc.section.resolvedFindings": "Hallazgos Resueltos",
|
|
26
|
+
"doc.section.phase": "Fase {phaseId} — {phaseLabel}",
|
|
27
|
+
|
|
28
|
+
"doc.label.activePhase": "Fase activa",
|
|
29
|
+
"doc.label.currentFocus": "Foco actual",
|
|
30
|
+
"doc.label.deliveryTarget": "Objetivo de entrega",
|
|
31
|
+
"doc.label.blockers": "Bloqueadores",
|
|
32
|
+
"doc.label.nextStep": "Proximo paso recomendado",
|
|
33
|
+
"doc.label.phase": "Fase",
|
|
34
|
+
"doc.label.lastTest": "Ultimo test",
|
|
35
|
+
"doc.label.nextStepShort": "Proximo paso",
|
|
36
|
+
"doc.label.lastUpdate": "Ultima actualizacion operativa",
|
|
37
|
+
"doc.label.progress": "Progreso: {completed}/{total} tareas requeridas completadas",
|
|
38
|
+
"doc.label.phaseActive": "Activa",
|
|
39
|
+
"doc.label.phaseClosed": "Cerrada",
|
|
40
|
+
"doc.label.phasePending": "Pendiente",
|
|
41
|
+
"doc.label.totalTasks": "Total de tareas",
|
|
42
|
+
"doc.label.completedTasks": "Completadas",
|
|
43
|
+
"doc.label.inProgressTasks": "En progreso",
|
|
44
|
+
"doc.label.inReviewTasks": "En revision",
|
|
45
|
+
"doc.label.pendingTasks": "Pendientes",
|
|
46
|
+
"doc.label.blockedTasks": "Bloqueadas",
|
|
47
|
+
"doc.label.findingOpen": "abierto",
|
|
48
|
+
"doc.label.findingResolved": "resuelto",
|
|
49
|
+
"doc.label.findingStatus": "Estado",
|
|
50
|
+
"doc.label.findingDetail": "Detalle",
|
|
51
|
+
"doc.label.findingImpact": "Impacto",
|
|
52
|
+
|
|
53
|
+
"doc.label.noBlockers": "Ninguno",
|
|
54
|
+
"doc.label.noOpenTasks": "Sin tareas abiertas",
|
|
55
|
+
"doc.label.noReadyTasks": "No hay tareas listas; revisar bloqueadores.",
|
|
56
|
+
"doc.label.noTasks": "Sin tareas registradas",
|
|
57
|
+
"doc.label.noFindings": "No hay hallazgos abiertos.",
|
|
58
|
+
"doc.label.noResolvedFindings": "No hay hallazgos resueltos registrados.",
|
|
59
|
+
"doc.label.noDecisions": "Ninguna",
|
|
60
|
+
"doc.label.noActiveTasks": "No hay tareas en progreso en este momento.",
|
|
61
|
+
"doc.label.noReviewTasks": "No hay tareas en revision.",
|
|
62
|
+
"doc.label.noActiveBlockers": "Sin bloqueadores activos.",
|
|
63
|
+
"doc.label.noHistory": "Sin movimientos registrados.",
|
|
64
|
+
|
|
65
|
+
"cli.runtimeUpdated": "Runtime actualizado en {path}",
|
|
66
|
+
"cli.docsSynced": "Documentacion operativa sincronizada.",
|
|
67
|
+
"cli.taskUpdated": "Tarea '{taskId}' actualizada con accion '{action}'.",
|
|
68
|
+
"cli.taskNotFound": "No existe la tarea '{taskId}'.",
|
|
69
|
+
"cli.actionNotSupported": "Accion no soportada: {action}",
|
|
70
|
+
"cli.mustProvideActionAndId": "Debes indicar accion e id de tarea.",
|
|
71
|
+
"cli.noReadyTasks": "No hay tareas listas. Revisa bloqueadores y dependencias.",
|
|
72
|
+
"cli.hooksInstalled": "Git hooks instalados en .githooks",
|
|
73
|
+
"cli.hooksError": "No se pudo configurar core.hooksPath.",
|
|
74
|
+
"cli.noProjectFound": "No se encontro project_control.json en este directorio ni superiores.",
|
|
75
|
+
"cli.emptyNote": "Nota sin contenido.",
|
|
76
|
+
"cli.undocumentedBlocker": "Bloqueador no documentado.",
|
|
77
|
+
|
|
78
|
+
"cli.status.title": "{projectName} — Control Operativo",
|
|
79
|
+
"cli.status.focus": "Foco: {focus}",
|
|
80
|
+
"cli.status.activePhase": "Fase activa: {phaseId} — {phaseLabel}",
|
|
81
|
+
"cli.status.tasks": "Tareas: {completed} completadas, {inProgress} en progreso, {inReview} en revision, {pending} pendientes, {blocked} bloqueadas",
|
|
82
|
+
"cli.status.readyTasks": "Proximas tareas listas:",
|
|
83
|
+
"cli.status.noReadyTasks": "No hay tareas listas; revisar bloqueadores o dependencias.",
|
|
84
|
+
"cli.status.blockers": "Bloqueadores:",
|
|
85
|
+
"cli.status.noBlockers": "Sin bloqueadores.",
|
|
86
|
+
"cli.status.decisions": "Decisiones externas:",
|
|
87
|
+
"cli.status.noDecisions": "Ninguna.",
|
|
88
|
+
"cli.status.repo": "Repositorio:",
|
|
89
|
+
"cli.status.branch": "Rama: {branch} | Arbol: {treeStatus}",
|
|
90
|
+
"cli.status.treeClean": "limpio",
|
|
91
|
+
"cli.status.treeDirty": "sucio ({staged} staged, {unstaged} unstaged, {untracked} untracked)",
|
|
92
|
+
"cli.status.lastCommit": "Ultimo commit: {hash} {subject}",
|
|
93
|
+
"cli.status.divergence": "Divergencia: ahead {ahead}, behind {behind}",
|
|
94
|
+
"cli.status.runtime": "Runtime: {path}",
|
|
95
|
+
"cli.status.docsSynced": "Documentacion sincronizada: {status}",
|
|
96
|
+
"cli.status.docsSyncedYes": "si",
|
|
97
|
+
"cli.status.docsSyncedNo": "no ({files})",
|
|
98
|
+
|
|
99
|
+
"cli.next.phase": "fase",
|
|
100
|
+
"cli.next.priority": "prioridad",
|
|
101
|
+
"cli.next.stream": "stream",
|
|
102
|
+
"cli.next.summary": "resumen",
|
|
103
|
+
|
|
104
|
+
"cli.help.title": "Control operativo del proyecto",
|
|
105
|
+
"cli.help.usage": "Uso:",
|
|
106
|
+
|
|
107
|
+
"server.ready": "Ops dashboard listo en http://{host}:{port}",
|
|
108
|
+
"server.bannerTitle": "Serving!",
|
|
109
|
+
"server.localUrl": "- Local: {url}",
|
|
110
|
+
"server.networkUrl": "- Network: {url}",
|
|
111
|
+
"server.networkAltUrl": "- Network alt: {url}",
|
|
112
|
+
"server.copiedToClipboard": "Direccion local copiada al portapapeles.",
|
|
113
|
+
"server.clipboardUnavailable": "No se pudo copiar la direccion local al portapapeles.",
|
|
114
|
+
"server.portFallback": "El puerto {requestedPort} estaba ocupado; usando {actualPort}.",
|
|
115
|
+
"server.portBusyStrict": "El puerto solicitado {port} ya esta en uso.",
|
|
116
|
+
"server.portSearchExhausted": "No se encontro un puerto libre a partir de {port} tras {limit} intentos.",
|
|
117
|
+
"server.invalidPort": "Puerto invalido: {value}.",
|
|
118
|
+
"server.noNetworkAddress": "- Network: no se detecto una direccion externa util.",
|
|
119
|
+
"server.defaultProject": "Proyecto por defecto: {name} ({id})",
|
|
120
|
+
"server.titleRequired": "El titulo es obligatorio.",
|
|
121
|
+
"server.taskCreatedNote": "Tarea creada desde el dashboard.",
|
|
122
|
+
"server.taskEditedNote": "Tarea editada desde el dashboard.",
|
|
123
|
+
"server.payloadTooLarge": "Payload demasiado grande (>{limit}).",
|
|
124
|
+
"server.invalidJson": "JSON invalido.",
|
|
125
|
+
"server.sessionNotFound": "Sesion no encontrada.",
|
|
126
|
+
"server.noActiveSession": "No hay sesion activa para iniciar stream.",
|
|
127
|
+
"server.commandRequired": "Se requiere un comando.",
|
|
128
|
+
"server.projectNotResolved": "No se pudo resolver el proyecto.",
|
|
129
|
+
"server.invalidLocale": "Idioma invalido: {value}.",
|
|
130
|
+
|
|
131
|
+
"init.welcome": "Proyecto inicializado con trackops.",
|
|
132
|
+
"init.opsExists": "Ops ya esta instalado en este proyecto.",
|
|
133
|
+
"init.created": "Creado {file}",
|
|
134
|
+
"init.updated": "Actualizado {file}",
|
|
135
|
+
"init.registered": "Proyecto registrado en el portfolio global.",
|
|
136
|
+
"init.defaultFocus": "Bootstrap operativo del proyecto",
|
|
137
|
+
"init.defaultTarget": "Proyecto gestionado con trackops",
|
|
138
|
+
"init.defaultTaskTitle": "Configurar proyecto con trackops",
|
|
139
|
+
"init.defaultTaskSummary": "Verificar estructura inicial, ajustar fases y confirmar integracion operativa.",
|
|
140
|
+
|
|
141
|
+
"opera.installed": "Metodologia OPERA instalada (v{version}).",
|
|
142
|
+
"opera.alreadyInstalled": "OPERA ya esta instalado en este proyecto (v{version}).",
|
|
143
|
+
"opera.notInstalled": "OPERA no esta instalado en este proyecto.",
|
|
144
|
+
"opera.upgraded": "OPERA actualizado a v{version}.",
|
|
145
|
+
"opera.primitiveDetected": "Detectada instalacion OPERA existente (sin gestion por Ops).",
|
|
146
|
+
|
|
147
|
+
"skill.installed": "Skill '{name}' instalada.",
|
|
148
|
+
"skill.removed": "Skill '{name}' desinstalada.",
|
|
149
|
+
"skill.notFound": "Skill '{name}' no encontrada en el catalogo.",
|
|
150
|
+
"skill.alreadyInstalled": "Skill '{name}' ya esta instalada.",
|
|
139
151
|
"skill.notInstalled": "Skill '{name}' no esta instalada.",
|
|
140
152
|
"skill.catalogTitle": "Skills disponibles:",
|
|
141
|
-
"skill.listTitle": "Skills instaladas:"
|
|
153
|
+
"skill.listTitle": "Skills instaladas:",
|
|
154
|
+
|
|
155
|
+
"cli.status.bootstrap": "Bootstrap: {status} | Idioma: {locale}",
|
|
156
|
+
|
|
157
|
+
"bootstrap.header": "Bootstrap OPERA",
|
|
158
|
+
"bootstrap.subtitle": "Confirma el contexto real del proyecto para convertir OPERA en un framework operativo de verdad.",
|
|
159
|
+
"bootstrap.question.desiredOutcome": "Resultado singular deseado",
|
|
160
|
+
"bootstrap.question.externalServices": "Servicios externos (separados por comas)",
|
|
161
|
+
"bootstrap.question.sourceOfTruth": "Fuente de la verdad",
|
|
162
|
+
"bootstrap.question.payload": "Payload / objetivo de entrega",
|
|
163
|
+
"bootstrap.question.behaviorRules": "Reglas de comportamiento (separadas por punto y coma)",
|
|
164
|
+
"bootstrap.question.inputSchema": "Schema JSON de entrada",
|
|
165
|
+
"bootstrap.question.outputSchema": "Schema JSON de salida",
|
|
166
|
+
"bootstrap.question.invariants": "Invariantes arquitectonicas (separadas por punto y coma)",
|
|
167
|
+
"bootstrap.question.pipeline": "Pasos del pipeline (separados por punto y coma)",
|
|
168
|
+
"bootstrap.question.templates": "Archivos template (separados por comas)",
|
|
169
|
+
"bootstrap.question.repoTasks": "¿Incluir tareas opcionales de repo? [y/n]",
|
|
170
|
+
"bootstrap.completed": "Bootstrap OPERA completado.",
|
|
171
|
+
"bootstrap.pending": "Bootstrap OPERA guardado como pendiente. Reanuda con 'trackops opera bootstrap --resume'.",
|
|
172
|
+
"bootstrap.infer.envSourceHint": "Detectados archivos de entorno",
|
|
173
|
+
"bootstrap.noneDefined": "Aun no definido.",
|
|
174
|
+
"bootstrap.pendingValue": "Pendiente de definir.",
|
|
175
|
+
"bootstrap.servicePending": "pendiente",
|
|
176
|
+
"bootstrap.defaultFocus": "Completar bootstrap OPERA",
|
|
177
|
+
"bootstrap.defaultTarget": "Entrega objetivo pendiente de definir",
|
|
178
|
+
"bootstrap.blocker.missingData": "Todavia faltan datos clave del bootstrap.",
|
|
179
|
+
"bootstrap.history.seeded": "Sembrada por bootstrap OPERA.",
|
|
180
|
+
"bootstrap.acceptance.discovery": "Preguntas de descubrimiento respondidas.",
|
|
181
|
+
"bootstrap.acceptance.schema": "Schema de entrada/salida definido en genesis.md.",
|
|
182
|
+
"bootstrap.acceptance.rules": "Reglas de comportamiento documentadas.",
|
|
183
|
+
"bootstrap.acceptance.plan": "Plan revisado y aceptado.",
|
|
184
|
+
"bootstrap.acceptance.env": "Credenciales requeridas verificadas.",
|
|
185
|
+
"bootstrap.acceptance.tests": "Checks de conectividad pasando.",
|
|
186
|
+
"bootstrap.acceptance.shape": "Shapes externos validados contra genesis.md.",
|
|
187
|
+
"bootstrap.acceptance.findings": "Hallazgos documentados.",
|
|
188
|
+
"bootstrap.acceptance.sops": "SOPs documentados.",
|
|
189
|
+
"bootstrap.acceptance.tools": "Herramientas base implementadas.",
|
|
190
|
+
"bootstrap.acceptance.graph": "Grafo de pipeline documentado.",
|
|
191
|
+
"bootstrap.acceptance.integration": "Tests de integracion pasando.",
|
|
192
|
+
"bootstrap.acceptance.outputs": "Outputs validados contra templates.",
|
|
193
|
+
"bootstrap.acceptance.delivery": "Formato de entrega revisado.",
|
|
194
|
+
"bootstrap.acceptance.ui": "Revision visual completada cuando aplica.",
|
|
195
|
+
"bootstrap.acceptance.tmp": ".tmp limpio.",
|
|
196
|
+
"bootstrap.acceptance.deploy": "Despliegue completado.",
|
|
197
|
+
"bootstrap.acceptance.triggers": "Triggers configurados.",
|
|
198
|
+
"bootstrap.acceptance.smoke": "Smoke test pasando.",
|
|
199
|
+
"bootstrap.task.bootstrap.title": "Completar bootstrap OPERA",
|
|
200
|
+
"bootstrap.task.bootstrap.summary": "Convertir la estructura OPERA instalada en un modelo operativo especifico del proyecto.",
|
|
201
|
+
"bootstrap.task.prove.title": "Validar integraciones",
|
|
202
|
+
"bootstrap.task.prove.summary": "Verificar credenciales, conectividad y shape de respuestas antes de seguir construyendo.",
|
|
203
|
+
"bootstrap.task.structure.title": "Estructurar el sistema",
|
|
204
|
+
"bootstrap.task.structure.summary": "Documentar SOPs, implementar herramientas y capturar el grafo de dependencias.",
|
|
205
|
+
"bootstrap.task.refine.title": "Refinar la entrega",
|
|
206
|
+
"bootstrap.task.refine.summary": "Validar outputs contra templates y pulir el formato de entrega.",
|
|
207
|
+
"bootstrap.task.automate.title": "Automatizar el runtime",
|
|
208
|
+
"bootstrap.task.automate.summary": "Configurar despliegue, triggers y validacion smoke.",
|
|
209
|
+
"bootstrap.task.repoReadme.title": "Alinear README con el contexto OPERA",
|
|
210
|
+
"bootstrap.task.repoReadme.summary": "Revisar si el README debe reflejar el bootstrap OPERA.",
|
|
211
|
+
"bootstrap.task.repoLicense.title": "Revisar politica de licencia",
|
|
212
|
+
"bootstrap.task.repoLicense.summary": "Confirmar si el metadato de licencia requiere actualizacion.",
|
|
213
|
+
"bootstrap.task.repoChangelog.title": "Definir politica de changelog",
|
|
214
|
+
"bootstrap.task.repoChangelog.summary": "Decidir como se mantendra CHANGELOG.md en este proyecto.",
|
|
215
|
+
"bootstrap.task.repoGithub.title": "Revisar tareas de gobernanza GitHub",
|
|
216
|
+
"bootstrap.task.repoGithub.summary": "Comprobar si deben activarse tareas de automatizacion o gobernanza del repositorio.",
|
|
217
|
+
"bootstrap.field.desiredOutcome": "Resultado deseado",
|
|
218
|
+
"bootstrap.field.sourceOfTruth": "Fuente de la verdad",
|
|
219
|
+
"bootstrap.field.payload": "Payload",
|
|
220
|
+
"bootstrap.field.inputSchema": "Schema de entrada",
|
|
221
|
+
"bootstrap.field.outputSchema": "Schema de salida",
|
|
222
|
+
"bootstrap.decisionImpact": "Necesario para completar el bootstrap OPERA.",
|
|
223
|
+
"bootstrap.finding.genesisConflictTitle": "Genesis requiere revision manual",
|
|
224
|
+
"bootstrap.finding.genesisConflictDetail": "TrackOps detecto un genesis.md no plantilla y detuvo la sobreescritura automatica.",
|
|
225
|
+
"bootstrap.finding.genesisConflictImpact": "El bootstrap no puede completarse hasta revisar la constitucion existente.",
|
|
226
|
+
|
|
227
|
+
"ui.nav.overview": "Resumen",
|
|
228
|
+
"ui.nav.tasks": "Tareas",
|
|
229
|
+
"ui.nav.board": "Tablero",
|
|
230
|
+
"ui.nav.execution": "Ejecucion",
|
|
231
|
+
"ui.nav.skills": "Skills",
|
|
232
|
+
"ui.nav.insights": "Analiticas",
|
|
233
|
+
"ui.nav.settings": "Configuracion",
|
|
234
|
+
"ui.nav.help": "Ayuda y Tour",
|
|
235
|
+
"ui.nav.logs": "Registros",
|
|
236
|
+
"ui.sidebar.aria": "Navegacion principal",
|
|
237
|
+
"ui.sidebar.home": "TrackOps — Ir al inicio",
|
|
238
|
+
"ui.sidebar.menu": "Menu",
|
|
239
|
+
"ui.sidebar.general": "General",
|
|
240
|
+
"ui.sidebar.pendingCount": "{count} pendientes",
|
|
241
|
+
"ui.sidebar.tasksBadge": "{count} tareas",
|
|
242
|
+
"ui.sidebar.errors": "errores",
|
|
243
|
+
"ui.topbar.openMenu": "Abrir menu",
|
|
244
|
+
"ui.topbar.searchAria": "Buscar tareas",
|
|
245
|
+
"ui.topbar.searchPlaceholder": "Buscar tareas...",
|
|
246
|
+
"ui.topbar.timer": "Seguimiento de tiempo",
|
|
247
|
+
"ui.topbar.syncAria": "Sincronizar documentacion",
|
|
248
|
+
"ui.topbar.sync": "Sincronizar",
|
|
249
|
+
"ui.topbar.refresh": "Refrescar estado",
|
|
250
|
+
"ui.topbar.repoClean": "Repo limpio",
|
|
251
|
+
"ui.topbar.repoDirty": "{staged}s {unstaged}u {untracked}?",
|
|
252
|
+
"ui.topbar.noBranch": "sin rama",
|
|
253
|
+
"ui.topbar.unavailable": "no disponible",
|
|
254
|
+
"ui.topbar.activeProject": "Proyecto activo",
|
|
255
|
+
"ui.topbar.language": "Idioma",
|
|
256
|
+
"ui.topbar.languageAria": "Seleccionar idioma del dashboard",
|
|
257
|
+
"ui.topbar.languageEs": "ES",
|
|
258
|
+
"ui.topbar.languageEn": "EN",
|
|
259
|
+
"ui.topbar.localeUpdated": "Idioma actualizado.",
|
|
260
|
+
"ui.topbar.syncing": "Sincronizando...",
|
|
261
|
+
"ui.topbar.synced": "Documentacion sincronizada.",
|
|
262
|
+
"ui.onboarding.prev": "Anterior",
|
|
263
|
+
"ui.onboarding.next": "Siguiente ->",
|
|
264
|
+
"ui.onboarding.start": "Empezar",
|
|
265
|
+
"ui.onboarding.step": "Paso {current} de {total}",
|
|
266
|
+
"ui.onboarding.welcome.title": "Bienvenido a TrackOps",
|
|
267
|
+
"ui.onboarding.welcome.desc": "Tu motor operativo local para desarrollo. Este tour solo tarda un par de minutos.",
|
|
268
|
+
"ui.onboarding.nav.title": "Navegacion principal",
|
|
269
|
+
"ui.onboarding.nav.desc": "La barra lateral te lleva por las vistas principales y destaca el trabajo pendiente.",
|
|
270
|
+
"ui.onboarding.kpi.title": "Metricas instantaneas",
|
|
271
|
+
"ui.onboarding.kpi.desc": "Las KPI resumen trabajo abierto, completado, bloqueado y en revision en tiempo real.",
|
|
272
|
+
"ui.onboarding.activity.title": "Actividad semanal",
|
|
273
|
+
"ui.onboarding.activity.desc": "Este grafico muestra cambios recientes de estado para detectar picos o huecos de actividad.",
|
|
274
|
+
"ui.onboarding.progress.title": "Progreso global",
|
|
275
|
+
"ui.onboarding.progress.desc": "El donut desglosa el estado general de las tareas del proyecto.",
|
|
276
|
+
"ui.onboarding.time.title": "Seguimiento de tiempo",
|
|
277
|
+
"ui.onboarding.time.desc": "Registra tiempo por tarea y guardalo para analisis posterior.",
|
|
278
|
+
"ui.onboarding.search.title": "Busqueda global",
|
|
279
|
+
"ui.onboarding.search.desc": "Filtra tareas desde cualquier vista y cambia de proyecto activo desde la barra superior.",
|
|
280
|
+
"ui.onboarding.board.title": "Tablero Kanban",
|
|
281
|
+
"ui.onboarding.board.desc": "Arrastra tarjetas entre columnas para cambiar estado y regenerar docs operativos.",
|
|
282
|
+
"ui.onboarding.tasks.title": "Editor de tareas",
|
|
283
|
+
"ui.onboarding.tasks.desc": "Selecciona una tarea para editar estado, prioridad, criterios y notas.",
|
|
284
|
+
"ui.onboarding.execution.title": "Consola integrada",
|
|
285
|
+
"ui.onboarding.execution.desc": "Ejecuta comandos shell directamente desde el dashboard.",
|
|
286
|
+
"ui.onboarding.insights.title": "Analiticas del proyecto",
|
|
287
|
+
"ui.onboarding.insights.desc": "Revisa salud, tiempos, progreso por fase y actividad reciente.",
|
|
288
|
+
"ui.onboarding.skills.title": "Centro de skills",
|
|
289
|
+
"ui.onboarding.skills.desc": "Instala nuevas capacidades para tu copiloto desde el catalogo integrado.",
|
|
290
|
+
"ui.onboarding.theme.title": "Tema claro / oscuro",
|
|
291
|
+
"ui.onboarding.theme.desc": "Cambia el tema sin salir del dashboard.",
|
|
292
|
+
"ui.onboarding.done.title": "Todo listo",
|
|
293
|
+
"ui.onboarding.done.desc": "Puedes relanzar este tour desde Ayuda y Tour en la barra lateral.",
|
|
294
|
+
|
|
295
|
+
"ui.execution.eyebrow": "Ejecucion",
|
|
296
|
+
"ui.execution.title": "Consola de comandos",
|
|
297
|
+
"ui.execution.run": "Ejecutar",
|
|
298
|
+
"ui.execution.command": "Comando",
|
|
299
|
+
"ui.execution.commandAria": "Introduce el comando a ejecutar",
|
|
300
|
+
"ui.execution.runButtonAria": "Ejecutar comando",
|
|
301
|
+
"ui.execution.quickTitle": "Comandos rapidos",
|
|
302
|
+
"ui.execution.runQuick": "Ejecutar {label}",
|
|
303
|
+
"ui.execution.sessions": "Sesiones",
|
|
304
|
+
"ui.execution.noSessions": "Sin sesiones activas.",
|
|
305
|
+
"ui.execution.noSessionTitle": "ops@terminal — sin sesion activa",
|
|
306
|
+
"ui.execution.stopAria": "Detener proceso",
|
|
307
|
+
"ui.execution.stop": "Detener",
|
|
308
|
+
"ui.execution.output": "Salida del comando",
|
|
309
|
+
"ui.execution.outputPlaceholder": "# Ejecuta un comando para ver la salida aqui...",
|
|
310
|
+
"ui.execution.started": "Iniciado",
|
|
311
|
+
"ui.execution.running": "Ejecutando...",
|
|
312
|
+
"ui.execution.quick.status": "status",
|
|
313
|
+
"ui.execution.quick.sync": "sincronizar docs",
|
|
314
|
+
"ui.execution.quick.next": "siguientes tareas",
|
|
315
|
+
"ui.execution.quick.repo": "refrescar repo",
|
|
316
|
+
"ui.settings.workspaceTitle": "Workspace",
|
|
317
|
+
"ui.settings.workspaceRoot": "Raiz del workspace",
|
|
318
|
+
"ui.settings.appRoot": "Raiz de app",
|
|
319
|
+
"ui.settings.opsRoot": "Raiz de ops",
|
|
320
|
+
"ui.settings.envTitle": "Entorno",
|
|
321
|
+
"ui.settings.envHealthyBadge": "Listo",
|
|
322
|
+
"ui.settings.envMissingBadge": "{count} faltantes",
|
|
323
|
+
"ui.settings.envBridgeMode": "Modo de puente",
|
|
324
|
+
"ui.settings.envRootFile": ".env raiz",
|
|
325
|
+
"ui.settings.envExampleFile": ".env.example",
|
|
326
|
+
"ui.settings.envAppBridge": "Puente app/.env",
|
|
327
|
+
"ui.settings.envRequiredKeys": "Claves requeridas",
|
|
328
|
+
"ui.settings.envPresentKeys": "Claves presentes",
|
|
329
|
+
"ui.settings.envMissingKeys": "Claves faltantes",
|
|
330
|
+
"ui.settings.envNoMissing": "Ninguna",
|
|
331
|
+
"ui.settings.envLastAudit": "Ultima auditoria",
|
|
332
|
+
"ui.settings.envSync": "Sincronizar env",
|
|
333
|
+
"ui.settings.envSynced": "Entorno sincronizado."
|
|
142
334
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trackops",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Operational project control with task management,
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Operational project control with task management, document generation, multi-project dashboard, and optional OPERA methodology",
|
|
5
5
|
"main": "lib/control.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"trackops": "bin/trackops.js"
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
"bin/",
|
|
11
11
|
"lib/",
|
|
12
12
|
"locales/",
|
|
13
|
+
"skills/",
|
|
14
|
+
"scripts/",
|
|
13
15
|
"ui/",
|
|
14
16
|
"templates/"
|
|
15
17
|
],
|
|
@@ -18,7 +20,7 @@
|
|
|
18
20
|
"task-management",
|
|
19
21
|
"dashboard",
|
|
20
22
|
"ops",
|
|
21
|
-
"
|
|
23
|
+
"opera",
|
|
22
24
|
"methodology",
|
|
23
25
|
"cli",
|
|
24
26
|
"devops",
|
|
@@ -38,9 +40,18 @@
|
|
|
38
40
|
"url": "https://github.com/Baxahaun/trackops/issues"
|
|
39
41
|
},
|
|
40
42
|
"homepage": "https://github.com/Baxahaun/trackops#readme",
|
|
43
|
+
"funding": "https://baxahaun.github.io/trackops/#support",
|
|
41
44
|
"license": "MIT",
|
|
42
45
|
"type": "commonjs",
|
|
43
46
|
"engines": {
|
|
44
47
|
"node": ">=18"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"test": "node scripts/smoke-tests.js",
|
|
51
|
+
"test:smoke": "node scripts/smoke-tests.js",
|
|
52
|
+
"skill:sync-version": "node scripts/sync-skill-version.js",
|
|
53
|
+
"skill:validate": "node scripts/validate-skill.js",
|
|
54
|
+
"skill:smoke": "node scripts/skills-marketplace-smoke.js",
|
|
55
|
+
"release:check": "npm test && npm run skill:validate && npm run skill:smoke && npm pack --dry-run"
|
|
45
56
|
}
|
|
46
57
|
}
|