@cat-factory/app 0.196.1 → 0.198.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.
Files changed (45) hide show
  1. package/README.md +105 -0
  2. package/app/components/github/AddServiceFromRepoModal.vue +6 -1
  3. package/app/components/tutorial/TutorialOverlay.logic.spec.ts +164 -0
  4. package/app/components/tutorial/TutorialOverlay.logic.ts +125 -0
  5. package/app/components/tutorial/TutorialOverlay.vue +307 -0
  6. package/app/components/tutorial/TutorialPrompt.vue +102 -0
  7. package/app/composables/pipelineErrorToast/bespokeConflicts.ts +181 -0
  8. package/app/composables/useNavContributions.ts +1 -0
  9. package/app/composables/usePipelineErrorToast.spec.ts +4 -1
  10. package/app/composables/usePipelineErrorToast.ts +24 -165
  11. package/app/composables/useTutorialTours.ts +18 -0
  12. package/app/modular/nav-contributions.spec.ts +14 -0
  13. package/app/modular/nav-contributions.ts +70 -0
  14. package/app/modular/nav-gates.logic.spec.ts +41 -0
  15. package/app/modular/nav-gates.logic.ts +36 -0
  16. package/app/modular/nav-gates.ts +54 -0
  17. package/app/modular/registry.spec.ts +6 -0
  18. package/app/modular/registry.ts +3 -1
  19. package/app/modular/slots.ts +7 -0
  20. package/app/modular/tutorial-tours.spec.ts +222 -0
  21. package/app/modular/tutorial-tours.ts +421 -0
  22. package/app/pages/index.vue +61 -0
  23. package/app/stores/board/dependencies.ts +52 -0
  24. package/app/stores/board/placement.ts +4 -37
  25. package/app/stores/execution/pendingGates.ts +109 -0
  26. package/app/stores/execution.ts +7 -94
  27. package/app/stores/requirements/recommendations.ts +77 -0
  28. package/app/stores/requirements.ts +17 -43
  29. package/app/stores/tutorial.spec.ts +135 -0
  30. package/app/stores/tutorial.ts +145 -0
  31. package/app/stores/workspace/commands.ts +77 -0
  32. package/app/stores/workspace.ts +11 -50
  33. package/app/utils/tutorial.spec.ts +115 -0
  34. package/app/utils/tutorial.ts +246 -0
  35. package/i18n/locales/de.json +209 -2
  36. package/i18n/locales/en.json +215 -2
  37. package/i18n/locales/es.json +209 -2
  38. package/i18n/locales/fr.json +209 -2
  39. package/i18n/locales/he.json +209 -2
  40. package/i18n/locales/it.json +209 -2
  41. package/i18n/locales/ja.json +209 -2
  42. package/i18n/locales/pl.json +209 -2
  43. package/i18n/locales/tr.json +209 -2
  44. package/i18n/locales/uk.json +209 -2
  45. package/package.json +1 -1
@@ -2154,7 +2154,8 @@
2154
2154
  "sandbox": "Open Sandbox",
2155
2155
  "shortcuts": "Keyboard shortcuts",
2156
2156
  "bugHunt": "Bug hunt",
2157
- "toggleUiMode": "Switch interface mode"
2157
+ "toggleUiMode": "Switch interface mode",
2158
+ "tutorial": "Take a tour"
2158
2159
  },
2159
2160
  "keywords": {
2160
2161
  "newPipeline": "pipeline agents chain",
@@ -2176,7 +2177,8 @@
2176
2177
  "sandbox": "sandbox prompt model test experiment judge fixture benchmark evaluate",
2177
2178
  "shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help",
2178
2179
  "bugHunt": "bug hunt triage backlog issue tracker unassigned",
2179
- "toggleUiMode": "interface mode basic advanced simple expert show hide"
2180
+ "toggleUiMode": "interface mode basic advanced simple expert show hide",
2181
+ "tutorial": "tutorial onboarding tour guide help learn basics"
2180
2182
  }
2181
2183
  },
2182
2184
  "shortcuts": {
@@ -6110,5 +6112,216 @@
6110
6112
  "titleAny": "Connect cat-factory to your repositories",
6111
6113
  "intro": "cat-factory works by opening pull requests on your repositories. Connect your repository host to continue."
6112
6114
  }
6115
+ },
6116
+ "tutorial": {
6117
+ "prompt": {
6118
+ "title": "Take a quick tour?",
6119
+ "intro": "Guided tours walk you through the app right on this screen: they highlight the actual controls and tell you what to click.",
6120
+ "start": "Start",
6121
+ "restart": "Repeat",
6122
+ "completed": "Completed",
6123
+ "decline": "No thanks",
6124
+ "later": "Maybe later",
6125
+ "empty": "No tours are available for your role on this board yet."
6126
+ },
6127
+ "overlay": {
6128
+ "next": "Next",
6129
+ "back": "Back",
6130
+ "skip": "End tour",
6131
+ "done": "Finish",
6132
+ "progress": "Step {current} of {total}",
6133
+ "ariaLabel": "Tutorial step",
6134
+ "abridged": "1 step was skipped: that control is not part of this board. | {count} steps were skipped: those controls are not part of this board.",
6135
+ "@abridged": {
6136
+ "description": "Shown on a tour's final card when steps were skipped. Needs the plural forms of the target language (pl/uk take three: one | few | many); {count} is the number of skipped steps."
6137
+ },
6138
+ "searching": "Looking for the highlighted control...",
6139
+ "clickHint": "Click the highlighted control to continue"
6140
+ },
6141
+ "tours": {
6142
+ "boardBasics": {
6143
+ "title": "Board basics",
6144
+ "description": "Find your way around: the board, the sidebar, and the command palette.",
6145
+ "steps": {
6146
+ "welcome": {
6147
+ "title": "Welcome!",
6148
+ "body": "This is your delivery board: you plan work here, agents pick it up, and you review the results. This short tour points out the main controls."
6149
+ },
6150
+ "canvas": {
6151
+ "title": "The board",
6152
+ "body": "Services, modules, and tasks live on this canvas. Drag to pan, scroll to zoom, and click any card to inspect it."
6153
+ },
6154
+ "sidebar": {
6155
+ "title": "The sidebar",
6156
+ "body": "Everything else lives here: building pipelines, connecting repositories and integrations, and workspace settings."
6157
+ },
6158
+ "commandBar": {
6159
+ "title": "The command palette",
6160
+ "body": "The fastest way to reach any action: open it and start typing. You can restart this tutorial from there at any time."
6161
+ },
6162
+ "toolbar": {
6163
+ "title": "Board controls",
6164
+ "body": "Zoom in and out or fit the whole board into view with these controls."
6165
+ },
6166
+ "interfaceTier": {
6167
+ "title": "Basic and advanced",
6168
+ "body": "The interface starts in basic mode, which shows the everyday delivery surfaces. Switch to advanced here when you also want the experimentation, bootstrap and operator surfaces."
6169
+ },
6170
+ "finish": {
6171
+ "title": "That's the layout",
6172
+ "body": "You know your way around now. Try the next tour to create and run your first task, or come back later via the command palette."
6173
+ }
6174
+ }
6175
+ },
6176
+ "addService": {
6177
+ "title": "Add your first repository",
6178
+ "description": "Link a repository so the board has a service to plan work against.",
6179
+ "steps": {
6180
+ "intro": {
6181
+ "title": "Start with a repository",
6182
+ "body": "Work happens against code, so a board needs at least one service before an agent has anywhere to do it. This tour links one."
6183
+ },
6184
+ "open": {
6185
+ "title": "Add service from repo",
6186
+ "body": "This opens the repository picker. It lists the repositories this workspace's connection can see."
6187
+ },
6188
+ "search": {
6189
+ "title": "Pick a repository",
6190
+ "body": "Search for one of your own repositories. If you would rather practise on something small, {repo} is a sample service kept deliberately unfinished for these tours.",
6191
+ "@body": {
6192
+ "description": "{repo} is a repository slug (owner/name). Keep it verbatim, do not translate or reformat it."
6193
+ }
6194
+ },
6195
+ "add": {
6196
+ "title": "Add it",
6197
+ "body": "The repository becomes a service frame on the board. You can add more later, including one service per folder of a monorepo."
6198
+ },
6199
+ "finish": {
6200
+ "title": "You have a service",
6201
+ "body": "That frame is where tasks live. The next tour puts one in it."
6202
+ }
6203
+ }
6204
+ },
6205
+ "firstTask": {
6206
+ "title": "Create your first task",
6207
+ "description": "Add a task to a service and see it appear on the board.",
6208
+ "steps": {
6209
+ "intro": {
6210
+ "title": "Let's create a task",
6211
+ "body": "A task describes an outcome you want; an agent pipeline delivers it. This tour walks you through creating one for real."
6212
+ },
6213
+ "addTask": {
6214
+ "title": "Add a task",
6215
+ "body": "Every service frame has an add button in its header."
6216
+ },
6217
+ "describe": {
6218
+ "title": "Describe the outcome",
6219
+ "body": "Give the task a short title that says what should be true when it is done. Plain language is fine."
6220
+ },
6221
+ "create": {
6222
+ "title": "Create it",
6223
+ "body": "When the description feels right, create the task."
6224
+ },
6225
+ "card": {
6226
+ "title": "Task cards",
6227
+ "body": "This is a task card. From one you can start the pipeline, watch progress, and open the results."
6228
+ },
6229
+ "finish": {
6230
+ "title": "Nice work",
6231
+ "body": "That is the core loop: describe a task, run it, review the result. Explore the other tours whenever you like."
6232
+ }
6233
+ }
6234
+ },
6235
+ "runTask": {
6236
+ "title": "Run a task",
6237
+ "description": "Open a task, choose its pipeline and start the agents working.",
6238
+ "steps": {
6239
+ "intro": {
6240
+ "title": "From task to run",
6241
+ "body": "A task on the board is a request. Opening it shows the pipeline that will deliver it and the controls that start it."
6242
+ },
6243
+ "openTask": {
6244
+ "title": "Open a task",
6245
+ "body": "Clicking a card opens its inspector, which is where everything about that task lives."
6246
+ },
6247
+ "inspector": {
6248
+ "title": "The inspector",
6249
+ "body": "Status, repository, pipeline and the run itself: this panel is the task's whole story."
6250
+ },
6251
+ "pipeline": {
6252
+ "title": "Choose a pipeline",
6253
+ "body": "A pipeline is the sequence of agents that will do the work: write a spec, build it, review it, run the checks, merge it. Pick the one that fits the task."
6254
+ },
6255
+ "start": {
6256
+ "title": "Starting a run",
6257
+ "body": "This starts the pipeline for real, and agents spend model budget. So the click is yours to make: press it whenever you are ready, during this tour or after it."
6258
+ },
6259
+ "steps": {
6260
+ "title": "Watching it work",
6261
+ "body": "Every step reports its own progress here as it runs, pushed live. Click a step to read what the agent actually produced."
6262
+ },
6263
+ "finish": {
6264
+ "title": "That is the loop",
6265
+ "body": "Plan a task, pick a pipeline, start it, watch it. When a run needs something from you it pauses and says so, which the next tour covers."
6266
+ }
6267
+ }
6268
+ },
6269
+ "answerPark": {
6270
+ "title": "Answer a waiting run",
6271
+ "description": "A run has paused for a human. See where it asks, and how to reply.",
6272
+ "steps": {
6273
+ "intro": {
6274
+ "title": "A run is waiting for you",
6275
+ "body": "Some steps stop and ask: a question about the requirements, a plan to approve, a choice between approaches. A paused run waits for an answer indefinitely, so nothing moves until you reply."
6276
+ },
6277
+ "resolve": {
6278
+ "title": "Where it asks",
6279
+ "body": "A task waiting on a human says so on its card and offers this action. It takes you straight to whatever is being asked."
6280
+ },
6281
+ "decide": {
6282
+ "title": "Choosing an answer",
6283
+ "body": "Each option is a real instruction to the run: pick one and the pipeline carries on from there with your choice."
6284
+ },
6285
+ "approve": {
6286
+ "title": "Approving the work",
6287
+ "body": "Approve to let the run continue, or request changes to send the step back with your notes. Both are answers, and the run resumes either way."
6288
+ },
6289
+ "finish": {
6290
+ "title": "Nothing waits silently",
6291
+ "body": "Waiting tasks are marked on the board and counted in the toolbar, so you can find them without hunting."
6292
+ }
6293
+ }
6294
+ },
6295
+ "reviewMerge": {
6296
+ "title": "Review and merge",
6297
+ "description": "Read what a finished run produced, and get it merged.",
6298
+ "steps": {
6299
+ "intro": {
6300
+ "title": "A run finished",
6301
+ "body": "Finished is not the same as shipped. A task is done when its pull request is merged, so this tour is the last mile."
6302
+ },
6303
+ "openTask": {
6304
+ "title": "Open the task",
6305
+ "body": "Open a task whose run has finished. Its inspector holds the full step list."
6306
+ },
6307
+ "openStep": {
6308
+ "title": "Open a step",
6309
+ "body": "Clicking a step opens what that agent produced: its report, its findings and what it changed."
6310
+ },
6311
+ "result": {
6312
+ "title": "Reading the result",
6313
+ "body": "This is the agent's own account of the work. Review steps list findings, a tester reports verdicts, the merger explains how it scored the change."
6314
+ },
6315
+ "merge": {
6316
+ "title": "Merging",
6317
+ "body": "When a run opens a pull request, the inspector offers the merge here. A pipeline with a merger step can also merge for itself when the change scores above your threshold."
6318
+ },
6319
+ "finish": {
6320
+ "title": "Shipped",
6321
+ "body": "Merged work marks the task done on the board. That is the whole loop: plan, run, answer, review, merge."
6322
+ }
6323
+ }
6324
+ }
6325
+ }
6113
6326
  }
6114
6327
  }
@@ -2072,7 +2072,8 @@
2072
2072
  "sandbox": "Abrir el entorno de pruebas",
2073
2073
  "shortcuts": "Atajos de teclado",
2074
2074
  "bugHunt": "Caza de errores",
2075
- "toggleUiMode": "Cambiar el modo de interfaz"
2075
+ "toggleUiMode": "Cambiar el modo de interfaz",
2076
+ "tutorial": "Hacer un recorrido"
2076
2077
  },
2077
2078
  "keywords": {
2078
2079
  "newPipeline": "canalización agentes cadena pipeline",
@@ -2094,7 +2095,8 @@
2094
2095
  "sandbox": "entorno de pruebas prompt modelo prueba experimento juez fixture benchmark evaluar",
2095
2096
  "shortcuts": "atajos teclado teclas ayuda",
2096
2097
  "bugHunt": "error bug caza triaje backlog incidencias sin asignar",
2097
- "toggleUiMode": "interfaz modo básico avanzado mostrar ocultar"
2098
+ "toggleUiMode": "interfaz modo básico avanzado mostrar ocultar",
2099
+ "tutorial": "tutorial recorrido guía ayuda aprender introducción"
2098
2100
  }
2099
2101
  },
2100
2102
  "integrationsHub": {
@@ -5894,5 +5896,210 @@
5894
5896
  "titleAny": "Conecta cat-factory con tus repositorios",
5895
5897
  "intro": "cat-factory funciona abriendo solicitudes de incorporación de cambios en tus repositorios. Conecta tu proveedor de repositorios para continuar."
5896
5898
  }
5899
+ },
5900
+ "tutorial": {
5901
+ "prompt": {
5902
+ "title": "¿Hacer un recorrido rápido?",
5903
+ "intro": "Los recorridos guiados te muestran la aplicación directamente en esta pantalla: resaltan los controles reales y te dicen dónde hacer clic.",
5904
+ "start": "Empezar",
5905
+ "restart": "Repetir",
5906
+ "completed": "Completado",
5907
+ "decline": "No, gracias",
5908
+ "later": "Quizás más tarde",
5909
+ "empty": "Todavía no hay recorridos disponibles para tu rol en este tablero."
5910
+ },
5911
+ "overlay": {
5912
+ "next": "Siguiente",
5913
+ "back": "Atrás",
5914
+ "skip": "Terminar recorrido",
5915
+ "done": "Finalizar",
5916
+ "progress": "Paso {current} de {total}",
5917
+ "ariaLabel": "Paso del tutorial",
5918
+ "abridged": "Se omitió 1 paso: ese control no forma parte de este tablero. | Se omitieron {count} pasos: esos controles no forman parte de este tablero.",
5919
+ "searching": "Buscando el control resaltado...",
5920
+ "clickHint": "Haz clic en el control resaltado para continuar"
5921
+ },
5922
+ "tours": {
5923
+ "boardBasics": {
5924
+ "title": "Conceptos básicos del tablero",
5925
+ "description": "Orientación básica: el tablero, la barra lateral y la paleta de comandos.",
5926
+ "steps": {
5927
+ "welcome": {
5928
+ "title": "Te damos la bienvenida",
5929
+ "body": "Este es tu tablero de entrega: aquí planificas el trabajo, los agentes lo ejecutan y tú revisas los resultados. Este breve recorrido muestra los controles principales."
5930
+ },
5931
+ "canvas": {
5932
+ "title": "El tablero",
5933
+ "body": "Los servicios, módulos y tareas viven en este lienzo. Arrastra para desplazarte, usa la rueda para hacer zoom y haz clic en cualquier tarjeta para inspeccionarla."
5934
+ },
5935
+ "sidebar": {
5936
+ "title": "La barra lateral",
5937
+ "body": "Aquí está todo lo demás: crear canalizaciones, conectar repositorios e integraciones y los ajustes del espacio de trabajo."
5938
+ },
5939
+ "commandBar": {
5940
+ "title": "La paleta de comandos",
5941
+ "body": "La forma más rápida de llegar a cualquier acción: ábrela y empieza a escribir. Desde ahí puedes reiniciar este tutorial en cualquier momento."
5942
+ },
5943
+ "toolbar": {
5944
+ "title": "Controles del tablero",
5945
+ "body": "Con estos controles acercas, alejas o ajustas todo el tablero a la vista."
5946
+ },
5947
+ "interfaceTier": {
5948
+ "title": "Básico y avanzado",
5949
+ "body": "La interfaz arranca en modo básico, que muestra las superficies del trabajo diario. Cambia aquí a avanzado cuando también quieras las de experimentación, arranque de repositorios y operación."
5950
+ },
5951
+ "finish": {
5952
+ "title": "Eso es todo",
5953
+ "body": "Ya sabes orientarte. Prueba el siguiente recorrido para crear y ejecutar tu primera tarea, o vuelve más tarde desde la paleta de comandos."
5954
+ }
5955
+ }
5956
+ },
5957
+ "addService": {
5958
+ "title": "Añade tu primer repositorio",
5959
+ "description": "Vincula un repositorio para que el tablero tenga un servicio sobre el que planificar trabajo.",
5960
+ "steps": {
5961
+ "intro": {
5962
+ "title": "Empieza por un repositorio",
5963
+ "body": "El trabajo ocurre sobre código, así que un tablero necesita al menos un servicio antes de que un agente tenga dónde trabajar. Este recorrido vincula uno."
5964
+ },
5965
+ "open": {
5966
+ "title": "Añadir servicio desde repositorio",
5967
+ "body": "Esto abre el selector de repositorios. Lista los repositorios que la conexión de este espacio de trabajo puede ver."
5968
+ },
5969
+ "search": {
5970
+ "title": "Elige un repositorio",
5971
+ "body": "Busca uno de tus propios repositorios. Si prefieres practicar con algo pequeño, {repo} es un servicio de ejemplo que se mantiene sin terminar a propósito para estos recorridos."
5972
+ },
5973
+ "add": {
5974
+ "title": "Añádelo",
5975
+ "body": "El repositorio pasa a ser un marco de servicio en el tablero. Después puedes añadir más, incluido un servicio por carpeta en un monorrepo."
5976
+ },
5977
+ "finish": {
5978
+ "title": "Ya tienes un servicio",
5979
+ "body": "En ese marco viven las tareas. El siguiente recorrido coloca una dentro."
5980
+ }
5981
+ }
5982
+ },
5983
+ "firstTask": {
5984
+ "title": "Crea tu primera tarea",
5985
+ "description": "Añade una tarea a un servicio y mírala aparecer en el tablero.",
5986
+ "steps": {
5987
+ "intro": {
5988
+ "title": "Vamos a crear una tarea",
5989
+ "body": "Una tarea describe un resultado que quieres; una canalización de agentes lo entrega. Este recorrido te guía para crear una de verdad."
5990
+ },
5991
+ "addTask": {
5992
+ "title": "Añadir una tarea",
5993
+ "body": "Cada marco de servicio tiene un botón de añadir en su cabecera."
5994
+ },
5995
+ "describe": {
5996
+ "title": "Describe el resultado",
5997
+ "body": "Da a la tarea un título corto que diga qué debe cumplirse cuando esté terminada. El lenguaje normal es suficiente."
5998
+ },
5999
+ "create": {
6000
+ "title": "Créala",
6001
+ "body": "Cuando la descripción te convenza, crea la tarea."
6002
+ },
6003
+ "card": {
6004
+ "title": "Tarjetas de tarea",
6005
+ "body": "Esta es una tarjeta de tarea. Desde ella puedes iniciar la canalización, seguir el progreso y abrir los resultados."
6006
+ },
6007
+ "finish": {
6008
+ "title": "Buen trabajo",
6009
+ "body": "Ese es el ciclo principal: describir una tarea, ejecutarla y revisar el resultado. Explora los demás recorridos cuando quieras."
6010
+ }
6011
+ }
6012
+ },
6013
+ "runTask": {
6014
+ "title": "Ejecutar una tarea",
6015
+ "description": "Abre una tarea, elige su pipeline y pon a trabajar a los agentes.",
6016
+ "steps": {
6017
+ "intro": {
6018
+ "title": "De la tarea a la ejecución",
6019
+ "body": "Una tarea en el tablero es una petición. Al abrirla verás el pipeline que la entregará y los controles que lo arrancan."
6020
+ },
6021
+ "openTask": {
6022
+ "title": "Abre una tarea",
6023
+ "body": "Al hacer clic en una tarjeta se abre su inspector, donde está todo lo relativo a esa tarea."
6024
+ },
6025
+ "inspector": {
6026
+ "title": "El inspector",
6027
+ "body": "Estado, repositorio, pipeline y la propia ejecución: este panel es la historia completa de la tarea."
6028
+ },
6029
+ "pipeline": {
6030
+ "title": "Elige un pipeline",
6031
+ "body": "Un pipeline es la secuencia de agentes que hará el trabajo: escribir una especificación, construirla, revisarla, pasar las comprobaciones y fusionarla. Elige el que encaje con la tarea."
6032
+ },
6033
+ "start": {
6034
+ "title": "Arrancar una ejecución",
6035
+ "body": "Esto arranca el pipeline de verdad, y los agentes gastan presupuesto de modelo. Por eso el clic es tuyo: púlsalo cuando quieras, durante este recorrido o después."
6036
+ },
6037
+ "steps": {
6038
+ "title": "Ver cómo avanza",
6039
+ "body": "Cada paso informa aquí de su propio progreso, en directo. Haz clic en un paso para leer lo que el agente produjo realmente."
6040
+ },
6041
+ "finish": {
6042
+ "title": "Ese es el ciclo",
6043
+ "body": "Planificar una tarea, elegir un pipeline, arrancarla y seguirla. Cuando una ejecución necesita algo de ti se detiene y lo dice, que es lo que cubre el siguiente recorrido."
6044
+ }
6045
+ }
6046
+ },
6047
+ "answerPark": {
6048
+ "title": "Responder a una ejecución en espera",
6049
+ "description": "Una ejecución se ha detenido a esperar a una persona. Mira dónde pregunta y cómo responder.",
6050
+ "steps": {
6051
+ "intro": {
6052
+ "title": "Una ejecución te está esperando",
6053
+ "body": "Algunos pasos se detienen y preguntan: una duda sobre los requisitos, un plan que aprobar, una elección entre enfoques. Una ejecución en pausa espera respuesta indefinidamente, así que nada avanza hasta que contestes."
6054
+ },
6055
+ "resolve": {
6056
+ "title": "Dónde pregunta",
6057
+ "body": "Una tarea que espera a una persona lo indica en su tarjeta y ofrece esta acción. Te lleva directo a lo que se está preguntando."
6058
+ },
6059
+ "decide": {
6060
+ "title": "Elegir una respuesta",
6061
+ "body": "Cada opción es una instrucción real para la ejecución: elige una y el pipeline continúa desde ahí con tu decisión."
6062
+ },
6063
+ "approve": {
6064
+ "title": "Aprobar el trabajo",
6065
+ "body": "Aprueba para que la ejecución siga, o pide cambios para devolver el paso con tus notas. Ambas son respuestas, y la ejecución se reanuda en cualquier caso."
6066
+ },
6067
+ "finish": {
6068
+ "title": "Nada espera en silencio",
6069
+ "body": "Las tareas en espera se marcan en el tablero y se cuentan en la barra de herramientas, para que las encuentres sin buscarlas."
6070
+ }
6071
+ }
6072
+ },
6073
+ "reviewMerge": {
6074
+ "title": "Revisar y fusionar",
6075
+ "description": "Lee lo que produjo una ejecución terminada y consigue fusionarlo.",
6076
+ "steps": {
6077
+ "intro": {
6078
+ "title": "Una ejecución ha terminado",
6079
+ "body": "Terminado no es lo mismo que entregado. Una tarea está hecha cuando su pull request se fusiona, así que este recorrido es la última milla."
6080
+ },
6081
+ "openTask": {
6082
+ "title": "Abre la tarea",
6083
+ "body": "Abre una tarea cuya ejecución haya terminado. Su inspector contiene la lista completa de pasos."
6084
+ },
6085
+ "openStep": {
6086
+ "title": "Abre un paso",
6087
+ "body": "Al hacer clic en un paso se abre lo que produjo ese agente: su informe, sus hallazgos y lo que cambió."
6088
+ },
6089
+ "result": {
6090
+ "title": "Leer el resultado",
6091
+ "body": "Este es el relato del propio agente. Los pasos de revisión listan hallazgos, un tester informa de veredictos y el fusionador explica cómo puntuó el cambio."
6092
+ },
6093
+ "merge": {
6094
+ "title": "Fusionar",
6095
+ "body": "Cuando una ejecución abre una pull request, el inspector ofrece aquí la fusión. Un pipeline con paso de fusión también puede fusionar por su cuenta si el cambio supera tu umbral."
6096
+ },
6097
+ "finish": {
6098
+ "title": "Entregado",
6099
+ "body": "El trabajo fusionado marca la tarea como hecha en el tablero. Ese es el ciclo completo: planificar, ejecutar, responder, revisar y fusionar."
6100
+ }
6101
+ }
6102
+ }
6103
+ }
5897
6104
  }
5898
6105
  }