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
@@ -1,21 +1,21 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require("fs");
4
- const path = require("path");
5
-
6
- const ROOT = path.resolve(__dirname, "..");
7
- const PACKAGE_FILE = path.join(ROOT, "package.json");
8
- const SKILL_FILE = path.join(ROOT, "skills", "trackops", "skill.json");
9
-
10
- function main() {
11
- const pkg = JSON.parse(fs.readFileSync(PACKAGE_FILE, "utf8"));
12
- const skill = JSON.parse(fs.readFileSync(SKILL_FILE, "utf8"));
13
-
14
- skill.skillVersion = pkg.version;
15
- skill.trackopsVersion = pkg.version;
16
-
17
- fs.writeFileSync(SKILL_FILE, `${JSON.stringify(skill, null, 2)}\n`, "utf8");
18
- console.log(`Synced skills/trackops/skill.json to version ${pkg.version}.`);
19
- }
20
-
21
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const ROOT = path.resolve(__dirname, "..");
7
+ const PACKAGE_FILE = path.join(ROOT, "package.json");
8
+ const SKILL_FILE = path.join(ROOT, "skills", "trackops", "skill.json");
9
+
10
+ function main() {
11
+ const pkg = JSON.parse(fs.readFileSync(PACKAGE_FILE, "utf8"));
12
+ const skill = JSON.parse(fs.readFileSync(SKILL_FILE, "utf8"));
13
+
14
+ skill.skillVersion = pkg.version;
15
+ skill.trackopsVersion = pkg.version;
16
+
17
+ fs.writeFileSync(SKILL_FILE, `${JSON.stringify(skill, null, 2)}\n`, "utf8");
18
+ console.log(`Synced skills/trackops/skill.json to version ${pkg.version}.`);
19
+ }
20
+
21
+ main();
@@ -1,103 +1,103 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require("fs");
4
- const path = require("path");
5
-
6
- const ROOT = path.resolve(__dirname, "..");
7
- const PACKAGE_FILE = path.join(ROOT, "package.json");
8
- const SKILL_DIR = path.join(ROOT, "skills", "trackops");
9
- const SKILL_FILE = path.join(SKILL_DIR, "skill.json");
10
- const REQUIRED_FILES = [
11
- path.join(SKILL_DIR, "SKILL.md"),
12
- path.join(SKILL_DIR, "skill.json"),
13
- path.join(SKILL_DIR, "references", "activation.md"),
14
- path.join(SKILL_DIR, "references", "workflow.md"),
15
- path.join(SKILL_DIR, "references", "troubleshooting.md"),
16
- ];
17
-
18
- function fail(message) {
19
- console.error(message);
20
- process.exit(1);
21
- }
22
-
23
- function main() {
24
- const pkg = JSON.parse(fs.readFileSync(PACKAGE_FILE, "utf8"));
25
- const skill = JSON.parse(fs.readFileSync(SKILL_FILE, "utf8"));
26
- const skillMd = fs.readFileSync(path.join(SKILL_DIR, "SKILL.md"), "utf8");
27
-
28
- for (const file of REQUIRED_FILES) {
29
- if (!fs.existsSync(file)) {
30
- fail(`Missing required skill file: ${path.relative(ROOT, file)}`);
31
- }
32
- }
33
-
34
- if (!Array.isArray(pkg.files) || !pkg.files.includes("skills/")) {
35
- fail("package.json must publish the skills/ directory.");
36
- }
37
-
38
- if (skill.name !== "trackops") {
39
- fail("skills/trackops/skill.json must declare name 'trackops'.");
40
- }
41
-
42
- if (skill.skillVersion !== pkg.version || skill.trackopsVersion !== pkg.version) {
43
- fail(`skills/trackops/skill.json must be synced to package version ${pkg.version}.`);
44
- }
45
-
46
- if (skill.npmPackage !== pkg.name) {
47
- fail(`skills/trackops/skill.json must target npm package '${pkg.name}'.`);
48
- }
49
-
50
- if (skill.bootstrapPolicy !== "explicit_install") {
51
- fail("skills/trackops/skill.json must use bootstrapPolicy 'explicit_install'.");
52
- }
53
-
54
- const supportedAgents = Array.isArray(skill.supportedAgentsV1) ? skill.supportedAgentsV1 : [];
55
- for (const agent of ["antigravity", "claude-code", "codex", "cursor", "gemini-cli", "github-copilot", "kiro-cli"]) {
56
- if (!supportedAgents.includes(agent)) {
57
- fail(`skills/trackops/skill.json must include supported agent '${agent}'.`);
58
- }
59
- }
60
-
61
- if (!skill.distribution || skill.distribution.source !== "Baxahaun/trackops") {
62
- fail("skills/trackops/skill.json must declare distribution.source 'Baxahaun/trackops'.");
63
- }
64
-
65
- if (skill.distribution.skill !== "trackops") {
66
- fail("skills/trackops/skill.json must declare distribution.skill 'trackops'.");
67
- }
68
-
69
- if (skill.distribution.fullDepth !== true) {
70
- fail("skills/trackops/skill.json must declare distribution.fullDepth true.");
71
- }
72
-
73
- for (const requiredPhrase of [
74
- "npx skills add Baxahaun/trackops",
75
- "npm install -g trackops",
76
- "trackops --version",
77
- "trackops init",
78
- "trackops opera install",
79
- "trackops opera bootstrap --resume",
80
- ]) {
81
- if (!skillMd.includes(requiredPhrase)) {
82
- fail(`skills/trackops/SKILL.md must mention '${requiredPhrase}'.`);
83
- }
84
- }
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
-
100
- console.log("skills/trackops validated successfully.");
101
- }
102
-
103
- main();
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const ROOT = path.resolve(__dirname, "..");
7
+ const PACKAGE_FILE = path.join(ROOT, "package.json");
8
+ const SKILL_DIR = path.join(ROOT, "skills", "trackops");
9
+ const SKILL_FILE = path.join(SKILL_DIR, "skill.json");
10
+ const REQUIRED_FILES = [
11
+ path.join(SKILL_DIR, "SKILL.md"),
12
+ path.join(SKILL_DIR, "skill.json"),
13
+ path.join(SKILL_DIR, "references", "activation.md"),
14
+ path.join(SKILL_DIR, "references", "workflow.md"),
15
+ path.join(SKILL_DIR, "references", "troubleshooting.md"),
16
+ ];
17
+
18
+ function fail(message) {
19
+ console.error(message);
20
+ process.exit(1);
21
+ }
22
+
23
+ function main() {
24
+ const pkg = JSON.parse(fs.readFileSync(PACKAGE_FILE, "utf8"));
25
+ const skill = JSON.parse(fs.readFileSync(SKILL_FILE, "utf8"));
26
+ const skillMd = fs.readFileSync(path.join(SKILL_DIR, "SKILL.md"), "utf8");
27
+
28
+ for (const file of REQUIRED_FILES) {
29
+ if (!fs.existsSync(file)) {
30
+ fail(`Missing required skill file: ${path.relative(ROOT, file)}`);
31
+ }
32
+ }
33
+
34
+ if (!Array.isArray(pkg.files) || !pkg.files.includes("skills/")) {
35
+ fail("package.json must publish the skills/ directory.");
36
+ }
37
+
38
+ if (skill.name !== "trackops") {
39
+ fail("skills/trackops/skill.json must declare name 'trackops'.");
40
+ }
41
+
42
+ if (skill.skillVersion !== pkg.version || skill.trackopsVersion !== pkg.version) {
43
+ fail(`skills/trackops/skill.json must be synced to package version ${pkg.version}.`);
44
+ }
45
+
46
+ if (skill.npmPackage !== pkg.name) {
47
+ fail(`skills/trackops/skill.json must target npm package '${pkg.name}'.`);
48
+ }
49
+
50
+ if (skill.bootstrapPolicy !== "explicit_install") {
51
+ fail("skills/trackops/skill.json must use bootstrapPolicy 'explicit_install'.");
52
+ }
53
+
54
+ const supportedAgents = Array.isArray(skill.supportedAgentsV1) ? skill.supportedAgentsV1 : [];
55
+ for (const agent of ["antigravity", "claude-code", "codex", "cursor", "gemini-cli", "github-copilot", "kiro-cli"]) {
56
+ if (!supportedAgents.includes(agent)) {
57
+ fail(`skills/trackops/skill.json must include supported agent '${agent}'.`);
58
+ }
59
+ }
60
+
61
+ if (!skill.distribution || skill.distribution.source !== "Baxahaun/trackops") {
62
+ fail("skills/trackops/skill.json must declare distribution.source 'Baxahaun/trackops'.");
63
+ }
64
+
65
+ if (skill.distribution.skill !== "trackops") {
66
+ fail("skills/trackops/skill.json must declare distribution.skill 'trackops'.");
67
+ }
68
+
69
+ if (skill.distribution.fullDepth !== true) {
70
+ fail("skills/trackops/skill.json must declare distribution.fullDepth true.");
71
+ }
72
+
73
+ for (const requiredPhrase of [
74
+ "npx skills add Baxahaun/trackops",
75
+ "npm install -g trackops",
76
+ "trackops --version",
77
+ "trackops init",
78
+ "trackops opera install",
79
+ "trackops opera bootstrap --resume",
80
+ ]) {
81
+ if (!skillMd.includes(requiredPhrase)) {
82
+ fail(`skills/trackops/SKILL.md must mention '${requiredPhrase}'.`);
83
+ }
84
+ }
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
+
100
+ console.log("skills/trackops validated successfully.");
101
+ }
102
+
103
+ main();
@@ -1,122 +1,126 @@
1
- ---
2
- name: "trackops"
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
- ---
5
-
6
- # TrackOps
7
-
8
- Si la conversacion y el proyecto deben trabajar en ingles, lee `locales/en/SKILL.md` antes de seguir.
9
-
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
38
-
39
- Instala la skill del marketplace con:
40
-
41
- ```bash
42
- npx skills add Baxahaun/trackops
43
- ```
44
-
45
- Despues, confirma que el runtime `trackops` existe. Si no esta disponible, pide al usuario que lo instale de forma explicita:
46
-
47
- ```bash
48
- npm install -g trackops
49
- trackops --version
50
- ```
51
-
52
- Reglas:
53
-
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
58
-
59
- ## Activacion en un proyecto
60
-
61
- Dentro del repositorio:
62
-
63
- ```bash
64
- trackops init
65
- trackops opera install
66
- ```
67
-
68
- Reglas base:
69
-
70
- - trata la skill global como capa de instrucciones
71
- - trata la instalacion del runtime como explicita y separada
72
- - usa `ops/contract/operating-contract.json` como contrato de maquina cuando exista
73
- - usa `ops/project_control.json` como fuente de verdad operativa
74
- - usa `ops/policy/autonomy.json` antes de acciones sensibles
75
- - usa `/.env` y `/.env.example` como contrato de entorno
76
- - deja la documentacion operativa generada dentro de `ops/`
77
- - usa `trackops locale get|set` y `trackops doctor locale` cuando el idioma importe
78
-
79
- ## Como entra OPERA
80
-
81
- OPERA ya no asume que todo usuario es tecnico.
82
-
83
- TrackOps clasifica:
84
-
85
- - nivel tecnico del usuario
86
- - estado actual del proyecto
87
- - documentacion disponible
88
-
89
- Luego elige una de dos rutas:
90
-
91
- - `direct bootstrap`
92
- para usuarios tecnicos y repos ya definidos
93
- - `agent handoff`
94
- para ideas tempranas, usuarios no tecnicos o documentacion debil
95
-
96
- Si TrackOps deriva al agente:
97
-
98
- - lee `ops/bootstrap/agent-handoff.md`
99
- - o imprimelo con `trackops opera handoff --print`
100
- - exige como salida:
101
- - `ops/bootstrap/intake.json`
102
- - `ops/bootstrap/spec-dossier.md`
103
- - `ops/bootstrap/open-questions.md` cuando queden huecos importantes
104
- - reanuda con:
105
-
106
- ```bash
107
- trackops opera bootstrap --resume
108
- ```
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
-
118
- ## Que referencia leer y cuando
119
-
120
- - lee `references/activation.md` solo para instalacion, verificacion del runtime, locale bootstrap y activacion de un repo
121
- - lee `references/workflow.md` solo cuando TrackOps ya esta activo y haga falta operar el dia a dia del repositorio
122
- - lee `references/troubleshooting.md` solo cuando fallen la instalacion explicita, la deteccion de `trackops`, el resume o el contrato de entorno
1
+ ---
2
+ name: "trackops"
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
+ ---
5
+
6
+ # TrackOps
7
+
8
+ Si la conversacion y el proyecto deben trabajar en ingles, lee `locales/en/SKILL.md` antes de seguir.
9
+
10
+ TrackOps es un sistema local de control y coordinación para desarrollo de software con agentes IA.
11
+
12
+ Esta skill es la puerta de entrada al sistema. Úsala 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 qué es TrackOps y cuándo conviene usarlo
24
+ - exige una instalación explícita y visible del runtime
25
+ - guía la activación por repositorio
26
+ - ayuda a decidir si OPERA debe seguir por `direct bootstrap` o por `agent handoff`
27
+ - explica que al instalar OPERA se activa un equipo de agentes coordinados por `opera-skill`
28
+
29
+ ## Que no hace esta skill
30
+
31
+ Esta skill no:
32
+
33
+ - instala paquetes por su cuenta
34
+ - ejecuta codigo remoto en silencio
35
+ - modifica un repositorio antes de que el runtime exista
36
+ - sustituye al runtime `trackops`
37
+
38
+ ## Flujo rapido
39
+
40
+ Instala la skill del marketplace con:
41
+
42
+ ```bash
43
+ npx skills add Baxahaun/trackops
44
+ ```
45
+
46
+ Despues, confirma que el runtime `trackops` existe. Si no esta disponible, pide al usuario que lo instale de forma explicita:
47
+
48
+ ```bash
49
+ npm install -g trackops
50
+ trackops --version
51
+ ```
52
+
53
+ Reglas:
54
+
55
+ - la skill no debe instalar paquetes ni ejecutar codigo remoto por si sola
56
+ - el runtime se instala con un paso visible y auditable
57
+ - la skill puede verificar `trackops --version`, pero no debe encadenar instalaciones silenciosas
58
+ - la skill no debe crear archivos dentro de un repositorio por si sola
59
+
60
+ ## Activacion en un proyecto
61
+
62
+ Dentro del repositorio:
63
+
64
+ ```bash
65
+ trackops init
66
+ trackops opera install
67
+ ```
68
+
69
+ Reglas base:
70
+
71
+ - trata la skill global como capa de instrucciones
72
+ - trata la instalacion del runtime como explicita y separada
73
+ - usa `ops/contract/operating-contract.json` como contrato de maquina cuando exista
74
+ - usa `ops/project_control.json` como fuente de verdad operativa
75
+ - usa `ops/policy/autonomy.json` antes de acciones sensibles
76
+ - usa `/.env` y `/.env.example` como contrato de entorno
77
+ - deja la documentacion operativa generada dentro de `ops/`
78
+ - usa `trackops locale get|set` y `trackops doctor locale` cuando el idioma importe
79
+
80
+ ## Como entra OPERA
81
+
82
+ OPERA ya no asume que todo usuario es tecnico.
83
+
84
+ TrackOps clasifica:
85
+
86
+ - nivel tecnico del usuario
87
+ - estado actual del proyecto
88
+ - documentacion disponible
89
+
90
+ Luego elige una de dos rutas:
91
+
92
+ - `direct bootstrap`
93
+ para usuarios tecnicos y repos ya definidos
94
+ - `agent handoff`
95
+ para ideas tempranas, usuarios no tecnicos o documentacion debil
96
+
97
+ Una vez activo, OPERA instala automáticamente un equipo de agentes especializados en `ops/.agents/skills/`. La coordinadora (`opera-skill`) decide en qué fase está el proyecto, qué agente debe actuar, cuándo delegar y cuándo frenar el avance.
98
+
99
+ Si TrackOps deriva al agente:
100
+
101
+ - lee `ops/bootstrap/agent-handoff.md`
102
+ - o imprímelo con `trackops opera handoff --print`
103
+ - exige como salida:
104
+ - `ops/bootstrap/intake.json`
105
+ - `ops/bootstrap/spec-dossier.md`
106
+ - `ops/bootstrap/open-questions.md` cuando queden huecos importantes
107
+ - reanuda con:
108
+
109
+ ```bash
110
+ trackops opera bootstrap --resume
111
+ ```
112
+
113
+ ## Que debe entender alguien que llega desde skills.sh
114
+
115
+ - la skill global instala instrucciones en el agente
116
+ - el runtime se instala por separado con npm
117
+ - `trackops init` activa el proyecto
118
+ - `trackops opera install` anade el framework operativo completo solo cuando hace falta
119
+ - TrackOps separa producto y operacion para que el repo no se vuelva caotico
120
+
121
+ ## Que referencia leer y cuando
122
+
123
+ - lee `references/activation.md` solo para instalación, verificación del runtime, locale bootstrap y activación de un repositorio
124
+ - lee `references/workflow.md` solo cuando TrackOps ya está activo y haga falta operar el día a día del repositorio
125
+ - lee `references/troubleshooting.md` solo cuando fallen la instalación explícita, la detección de `trackops`, el resume o el contrato de entorno
126
+ - `opera-skill` es una skill de proyecto, no una referencia de esta skill global. Se instala con OPERA y coordina el trabajo dentro del repositorio.
@@ -1,7 +1,7 @@
1
- interface:
2
- display_name: "TrackOps"
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
-
6
- policy:
7
- allow_implicit_invocation: true
1
+ interface:
2
+ display_name: "TrackOps"
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
+
6
+ policy:
7
+ allow_implicit_invocation: true