trackops 2.0.1 → 2.0.3

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