trackops 2.0.4 → 2.0.6

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 (92) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +660 -575
  3. package/bin/trackops.js +127 -106
  4. package/lib/cli-format.js +118 -0
  5. package/lib/config.js +352 -326
  6. package/lib/control.js +408 -246
  7. package/lib/env.js +234 -222
  8. package/lib/i18n.js +5 -4
  9. package/lib/init.js +390 -282
  10. package/lib/locale.js +41 -41
  11. package/lib/opera-bootstrap.js +1066 -880
  12. package/lib/opera.js +615 -444
  13. package/lib/preferences.js +74 -74
  14. package/lib/registry.js +214 -214
  15. package/lib/release.js +56 -56
  16. package/lib/runtime-state.js +144 -144
  17. package/lib/skills.js +114 -89
  18. package/lib/workspace.js +259 -248
  19. package/locales/en.json +311 -167
  20. package/locales/es.json +314 -170
  21. package/package.json +61 -58
  22. package/scripts/postinstall-locale.js +21 -21
  23. package/scripts/skills-marketplace-smoke.js +124 -124
  24. package/scripts/smoke-tests.js +563 -517
  25. package/scripts/sync-skill-version.js +21 -21
  26. package/scripts/validate-skill.js +103 -103
  27. package/skills/trackops/SKILL.md +126 -122
  28. package/skills/trackops/agents/openai.yaml +7 -7
  29. package/skills/trackops/locales/en/SKILL.md +126 -122
  30. package/skills/trackops/locales/en/references/activation.md +94 -90
  31. package/skills/trackops/locales/en/references/troubleshooting.md +73 -67
  32. package/skills/trackops/locales/en/references/workflow.md +55 -32
  33. package/skills/trackops/references/activation.md +94 -90
  34. package/skills/trackops/references/troubleshooting.md +73 -67
  35. package/skills/trackops/references/workflow.md +55 -32
  36. package/skills/trackops/skill.json +29 -29
  37. package/templates/hooks/post-checkout +2 -2
  38. package/templates/hooks/post-commit +2 -2
  39. package/templates/hooks/post-merge +2 -2
  40. package/templates/opera/agent.md +28 -27
  41. package/templates/opera/architecture/dependency-graph.md +24 -24
  42. package/templates/opera/architecture/runtime-automation.md +24 -24
  43. package/templates/opera/architecture/runtime-operations.md +34 -34
  44. package/templates/opera/en/agent.md +22 -21
  45. package/templates/opera/en/architecture/dependency-graph.md +24 -24
  46. package/templates/opera/en/architecture/runtime-automation.md +24 -24
  47. package/templates/opera/en/architecture/runtime-operations.md +34 -34
  48. package/templates/opera/en/reviews/delivery-audit.md +18 -18
  49. package/templates/opera/en/reviews/integration-audit.md +18 -18
  50. package/templates/opera/en/router.md +24 -19
  51. package/templates/opera/references/autonomy-and-recovery.md +117 -117
  52. package/templates/opera/references/opera-cycle.md +193 -193
  53. package/templates/opera/registry.md +28 -28
  54. package/templates/opera/reviews/delivery-audit.md +18 -18
  55. package/templates/opera/reviews/integration-audit.md +18 -18
  56. package/templates/opera/router.md +54 -49
  57. package/templates/skills/changelog-updater/SKILL.md +69 -69
  58. package/templates/skills/commiter/SKILL.md +99 -99
  59. package/templates/skills/opera-contract-auditor/SKILL.md +38 -38
  60. package/templates/skills/opera-contract-auditor/locales/en/SKILL.md +38 -38
  61. package/templates/skills/opera-policy-guard/SKILL.md +26 -26
  62. package/templates/skills/opera-policy-guard/locales/en/SKILL.md +26 -26
  63. package/templates/skills/opera-skill/SKILL.md +279 -0
  64. package/templates/skills/opera-skill/locales/en/SKILL.md +279 -0
  65. package/templates/skills/opera-skill/locales/en/references/phase-dod.md +138 -0
  66. package/templates/skills/opera-skill/references/phase-dod.md +138 -0
  67. package/templates/skills/project-starter-skill/SKILL.md +150 -131
  68. package/templates/skills/project-starter-skill/locales/en/SKILL.md +143 -105
  69. package/templates/skills/project-starter-skill/references/opera-cycle.md +195 -193
  70. package/ui/css/base.css +284 -284
  71. package/ui/css/charts.css +425 -425
  72. package/ui/css/components.css +1107 -1107
  73. package/ui/css/onboarding.css +133 -133
  74. package/ui/css/terminal.css +125 -125
  75. package/ui/css/timeline.css +58 -58
  76. package/ui/css/tokens.css +284 -284
  77. package/ui/favicon.svg +5 -5
  78. package/ui/index.html +99 -99
  79. package/ui/js/charts.js +526 -526
  80. package/ui/js/console-logger.js +172 -172
  81. package/ui/js/filters.js +247 -247
  82. package/ui/js/icons.js +129 -129
  83. package/ui/js/keyboard.js +229 -229
  84. package/ui/js/router.js +142 -142
  85. package/ui/js/theme.js +100 -100
  86. package/ui/js/time-tracker.js +248 -248
  87. package/ui/js/views/dashboard.js +870 -870
  88. package/ui/js/views/flash.js +47 -47
  89. package/ui/js/views/projects.js +745 -745
  90. package/ui/js/views/scrum.js +476 -476
  91. package/ui/js/views/settings.js +331 -331
  92. 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