@cat-factory/app 0.79.2 → 0.80.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 (29) hide show
  1. package/app/components/documents/TaskContextDocs.vue +10 -7
  2. package/app/components/fragments/FragmentLibraryManager.vue +2 -10
  3. package/app/components/github/AddServiceFromRepoModal.vue +2 -1
  4. package/app/components/panels/InspectorPanel.vue +35 -18
  5. package/app/components/panels/inspector/ContainerSummary.vue +8 -2
  6. package/app/components/panels/inspector/EpicChildren.vue +9 -7
  7. package/app/components/panels/inspector/FrontendConfig.vue +175 -248
  8. package/app/components/panels/inspector/InspectorSection.vue +60 -0
  9. package/app/components/panels/inspector/ServiceConnections.vue +10 -10
  10. package/app/components/panels/inspector/ServiceFragments.vue +14 -9
  11. package/app/components/panels/inspector/ServiceReleaseHealthConfig.vue +8 -7
  12. package/app/components/panels/inspector/ServiceTestConfig.vue +45 -57
  13. package/app/components/panels/inspector/TaskAgentConfig.vue +8 -5
  14. package/app/components/panels/inspector/TaskDependencies.vue +12 -8
  15. package/app/components/panels/inspector/TaskEstimateBadge.vue +9 -8
  16. package/app/components/panels/inspector/TaskExecution.vue +9 -2
  17. package/app/components/panels/inspector/TaskRunSettings.vue +13 -2
  18. package/app/components/panels/inspector/TaskStructure.vue +9 -2
  19. package/app/components/tasks/TaskContextIssues.vue +10 -7
  20. package/app/stores/fragmentLibrary.ts +4 -4
  21. package/i18n/locales/en.json +25 -3
  22. package/i18n/locales/es.json +25 -3
  23. package/i18n/locales/fr.json +25 -3
  24. package/i18n/locales/he.json +25 -3
  25. package/i18n/locales/ja.json +25 -3
  26. package/i18n/locales/pl.json +25 -3
  27. package/i18n/locales/tr.json +25 -3
  28. package/i18n/locales/uk.json +25 -3
  29. package/package.json +2 -2
@@ -430,6 +430,8 @@
430
430
  },
431
431
  "inspector": {
432
432
  "container": {
433
+ "title": "Contents",
434
+ "hint": "The modules and tasks inside this block. Click an entry to select it on the board.",
433
435
  "modules": "Modules ({count})",
434
436
  "taskCount": "{count} task | {count} tasks",
435
437
  "allTasks": "All tasks ({count})",
@@ -440,6 +442,7 @@
440
442
  },
441
443
  "epicChildren": {
442
444
  "title": "Epic tasks",
445
+ "hint": "All tasks assigned to this epic, grouped by the service and module they live in. An epic only groups tasks; it does not run anything itself.",
443
446
  "doneCount": "{done}/{total} done",
444
447
  "empty": "No tasks belong to this epic yet. Import an epic's children, or set a task's epic.",
445
448
  "unassigned": "Unassigned"
@@ -478,6 +481,7 @@
478
481
  },
479
482
  "fragments": {
480
483
  "serviceTitle": "Service best practices",
484
+ "serviceHint": "Programming standards for the whole service. The content of each selected fragment is added to the prompt of every code-aware agent working on tasks under this service.",
481
485
  "serviceEmpty": "None. Code-aware agents on this service follow their default guidance.",
482
486
  "manageBoard": "Manage this board's fragment library…",
483
487
  "manageAccount": "Manage account fragments…"
@@ -562,6 +566,7 @@
562
566
  },
563
567
  "releaseHealth": {
564
568
  "title": "Post-release health",
569
+ "sectionHint": "After this service's changes merge and ship, a gate watches the mapped monitors and SLOs for a while. On a regression it starts an on-call agent to investigate; nothing is reverted automatically.",
565
570
  "clear": "Clear",
566
571
  "connectPrompt": "Connect an observability integration to watch this service after releases.",
567
572
  "connectFirst": "Connect an observability integration first",
@@ -578,6 +583,7 @@
578
583
  },
579
584
  "testConfig": {
580
585
  "title": "Test infrastructure",
586
+ "hint": "How a test environment is stood up for this service when a pipeline needs to run it: no infrastructure, a Docker Compose file, Kubernetes manifests, or a custom manifest type.",
581
587
  "provisionType": "Provision type",
582
588
  "provisionTypeHint": "How this service stands up its environment for the Tester. The workspace configures how each type is handled (the engine + connection).",
583
589
  "provisionTypes": {
@@ -661,11 +667,13 @@
661
667
  },
662
668
  "agentConfig": {
663
669
  "title": "Agent configuration",
670
+ "hint": "Options contributed by the agents in this task's pipeline. Each option stays editable until its agent starts, then it is locked for that run.",
664
671
  "inherited": "inherited from service",
665
672
  "frozen": "Frozen: the agent has started"
666
673
  },
667
674
  "dependencies": {
668
675
  "title": "Depends on",
676
+ "hint": "Tasks that must merge before this one can run. The Run control stays locked until every dependency is done.",
669
677
  "merged": "Merged",
670
678
  "notMerged": "Not merged yet",
671
679
  "empty": "No dependencies. Can run any time.",
@@ -677,11 +685,14 @@
677
685
  },
678
686
  "estimate": {
679
687
  "title": "Estimate",
688
+ "hint": "Produced by the task estimator agent: how complex, risky, and impactful this task looks. Used to decide whether consensus (multi-run) steps are worth running.",
680
689
  "complexity": "Complexity",
681
690
  "risk": "Risk",
682
691
  "impact": "Impact"
683
692
  },
684
693
  "execution": {
694
+ "title": "Execution",
695
+ "hint": "The live run of this task's pipeline: each agent step, its progress, and the resulting pull request.",
685
696
  "stage": {
686
697
  "incorporating": "Incorporating…",
687
698
  "reviewing": "Re-reviewing…",
@@ -735,12 +746,18 @@
735
746
  "mergePr": "Merge PR"
736
747
  },
737
748
  "structure": {
749
+ "title": "Structure",
750
+ "hint": "Where this task lives in its service and which coding standards its agents follow.",
738
751
  "module": "Module",
739
752
  "modulePlaceholder": "e.g. Sessions (created on implement if new)",
753
+ "moduleHint": "The service module this task belongs to. Type a name; a module that does not exist yet is created when the task is implemented.",
740
754
  "bestPractices": "Best practices",
741
- "bestPracticesEmpty": "None. Agents follow their default guidance."
755
+ "bestPracticesEmpty": "None. Agents follow their default guidance.",
756
+ "bestPracticesHint": "Best-practice fragments folded into the prompts of this task's agents, on top of the service-level standards."
742
757
  },
743
758
  "runSettings": {
759
+ "title": "Run settings",
760
+ "hint": "How this task's pipeline runs: which pipeline starts, which merge and model policies apply, and what happens around the run.",
744
761
  "unassigned": "Unassigned",
745
762
  "workspaceDefault": "Workspace default",
746
763
  "workspaceDefaultParen": "(workspace default)",
@@ -759,10 +776,13 @@
759
776
  },
760
777
  "pipeline": "Pipeline",
761
778
  "pipelineEmpty": "No default. Pick a pipeline when you run this task.",
779
+ "pipelineHint": "The pipeline the Run button starts by default: the sequence of agent steps (for example spec, code, test, merge) executed for this task.",
762
780
  "mergePolicy": "Merge policy",
763
781
  "mergePresetDetail": "{name}: auto-merge when complexity ≤ {complexity}, risk ≤ {risk}, impact ≤ {impact}; up to {attempts} CI-fix attempts.",
764
782
  "mergePresetEmpty": "No preset configured. The merger raises a review notification for every PR.",
783
+ "mergePolicyHint": "Decides when a finished pull request merges automatically instead of waiting for a human review, and how many CI-fix attempts a run gets.",
765
784
  "modelPreset": "Model preset",
785
+ "modelPresetHint": "Decides which AI model each agent step runs on.",
766
786
  "modelPresetBase": "base {model}",
767
787
  "modelPresetOverrides": ", {count} override | , {count} overrides",
768
788
  "modelPresetEmpty": "No preset configured. Agents run on the deployment's default routing.",
@@ -2676,6 +2696,7 @@
2676
2696
  },
2677
2697
  "taskDocs": {
2678
2698
  "heading": "Context documents",
2699
+ "hint": "Documents attached to this task as context. Their content is given to the agents that work on the task.",
2679
2700
  "attach": "Attach",
2680
2701
  "importPage": "Import a page…",
2681
2702
  "empty": "Attach a requirement, RFC or PRD so agents see it while implementing this task.",
@@ -2696,6 +2717,7 @@
2696
2717
  },
2697
2718
  "contextIssues": {
2698
2719
  "title": "Context issues",
2720
+ "hint": "Tracker issues attached to this task as context. Their content is given to the agents that work on the task.",
2699
2721
  "attach": "Attach",
2700
2722
  "attached": "Issue attached",
2701
2723
  "attachFailed": "Could not attach",
@@ -3802,7 +3824,7 @@
3802
3824
  "sources": {
3803
3825
  "metaSynced": "synced · ref {ref}",
3804
3826
  "metaNever": "never synced · ref {ref}",
3805
- "changes": "{count} change | {count} changes",
3827
+ "changes": "Changes",
3806
3828
  "empty": "No linked guideline repos. Link one below to import its Markdown files as fragments.",
3807
3829
  "linkTitle": "Link a guideline repo",
3808
3830
  "ownerPlaceholder": "owner",
@@ -3827,7 +3849,7 @@
3827
3849
  "linkSourceFailed": "Could not link source",
3828
3850
  "synced": "Synced: {updated} updated, {removed} removed",
3829
3851
  "syncFailed": "Could not sync source",
3830
- "changesAvailable": "{count} change available | {count} changes available",
3852
+ "changesAvailable": "Changes available",
3831
3853
  "upToDate": "Up to date",
3832
3854
  "checkSourceFailed": "Could not check source",
3833
3855
  "sourceUnlinked": "Source unlinked",
@@ -387,6 +387,8 @@
387
387
  },
388
388
  "inspector": {
389
389
  "container": {
390
+ "title": "Contenido",
391
+ "hint": "Los módulos y tareas dentro de este bloque. Haz clic en una entrada para seleccionarla en el tablero.",
390
392
  "modules": "Módulos ({count})",
391
393
  "taskCount": "{count} tarea | {count} tareas",
392
394
  "allTasks": "Todas las tareas ({count})",
@@ -397,6 +399,7 @@
397
399
  },
398
400
  "epicChildren": {
399
401
  "title": "Tareas de la épica",
402
+ "hint": "Todas las tareas asignadas a esta épica, agrupadas por el servicio y el módulo donde viven. Una épica solo agrupa tareas; no ejecuta nada por sí misma.",
400
403
  "doneCount": "{done}/{total} completadas",
401
404
  "empty": "Aún no hay tareas en esta épica. Importa las hijas de una épica o asigna la épica de una tarea.",
402
405
  "unassigned": "Sin asignar"
@@ -435,6 +438,7 @@
435
438
  },
436
439
  "fragments": {
437
440
  "serviceTitle": "Buenas prácticas del servicio",
441
+ "serviceHint": "Estándares de programación para todo el servicio. El contenido de cada fragmento seleccionado se añade al prompt de cada agente que conoce el código y trabaja en tareas de este servicio.",
438
442
  "serviceEmpty": "Ninguna. Los agentes que conocen el código en este servicio siguen su guía predeterminada.",
439
443
  "manageBoard": "Gestionar la biblioteca de fragmentos de este tablero…",
440
444
  "manageAccount": "Gestionar los fragmentos de la cuenta…"
@@ -519,6 +523,7 @@
519
523
  },
520
524
  "releaseHealth": {
521
525
  "title": "Salud posterior al lanzamiento",
526
+ "sectionHint": "Cuando los cambios de este servicio se fusionan y publican, una verificación vigila durante un tiempo los monitores y SLO configurados. Ante una regresión inicia un agente de guardia para investigar; nada se revierte automáticamente.",
522
527
  "clear": "Limpiar",
523
528
  "connectPrompt": "Conecta una integración de observabilidad para vigilar este servicio tras los lanzamientos.",
524
529
  "connectFirst": "Conecta primero una integración de observabilidad",
@@ -535,6 +540,7 @@
535
540
  },
536
541
  "testConfig": {
537
542
  "title": "Infraestructura de pruebas",
543
+ "hint": "Cómo se levanta un entorno de prueba para este servicio cuando un pipeline necesita ejecutarlo: sin infraestructura, un archivo de Docker Compose, manifiestos de Kubernetes o un tipo de manifiesto personalizado.",
538
544
  "provisionType": "Tipo de aprovisionamiento",
539
545
  "provisionTypeHint": "Cómo este servicio levanta su entorno para el Tester. El espacio de trabajo configura cómo se gestiona cada tipo (el motor + la conexión).",
540
546
  "provisionTypes": {
@@ -618,11 +624,13 @@
618
624
  },
619
625
  "agentConfig": {
620
626
  "title": "Configuración del agente",
627
+ "hint": "Opciones aportadas por los agentes del pipeline de esta tarea. Cada opción se puede editar hasta que su agente arranca; después queda bloqueada para esa ejecución.",
621
628
  "inherited": "heredado del servicio",
622
629
  "frozen": "Congelado: el agente ya ha comenzado"
623
630
  },
624
631
  "dependencies": {
625
632
  "title": "Depende de",
633
+ "hint": "Tareas que deben fusionarse antes de que esta pueda ejecutarse. El control Ejecutar permanece bloqueado hasta que todas las dependencias estén completas.",
626
634
  "merged": "Fusionado",
627
635
  "notMerged": "Aún sin fusionar",
628
636
  "empty": "Sin dependencias. Puede ejecutarse en cualquier momento.",
@@ -634,11 +642,14 @@
634
642
  },
635
643
  "estimate": {
636
644
  "title": "Estimación",
645
+ "hint": "Producida por el agente estimador de tareas: cuán compleja, arriesgada e impactante parece esta tarea. Se usa para decidir si merecen la pena los pasos de consenso (multiejecución).",
637
646
  "complexity": "Complejidad",
638
647
  "risk": "Riesgo",
639
648
  "impact": "Impacto"
640
649
  },
641
650
  "execution": {
651
+ "title": "Ejecución",
652
+ "hint": "La ejecución en vivo del pipeline de esta tarea: cada paso de agente, su progreso y el pull request resultante.",
642
653
  "stage": {
643
654
  "incorporating": "Incorporando…",
644
655
  "reviewing": "Revisando de nuevo…",
@@ -692,12 +703,18 @@
692
703
  }
693
704
  },
694
705
  "structure": {
706
+ "title": "Estructura",
707
+ "hint": "Dónde vive esta tarea dentro de su servicio y qué estándares de código siguen sus agentes.",
695
708
  "module": "Módulo",
696
709
  "modulePlaceholder": "p. ej. Sesiones (creado al implementar si es nuevo)",
710
+ "moduleHint": "El módulo del servicio al que pertenece esta tarea. Escribe un nombre; un módulo que aún no existe se crea cuando la tarea se implementa.",
697
711
  "bestPractices": "Buenas prácticas",
698
- "bestPracticesEmpty": "Ninguna. Los agentes siguen su guía predeterminada."
712
+ "bestPracticesEmpty": "Ninguna. Los agentes siguen su guía predeterminada.",
713
+ "bestPracticesHint": "Fragmentos de buenas prácticas incorporados a los prompts de los agentes de esta tarea, además de los estándares a nivel de servicio."
699
714
  },
700
715
  "runSettings": {
716
+ "title": "Ajustes de ejecución",
717
+ "hint": "Cómo se ejecuta el pipeline de esta tarea: qué pipeline arranca, qué políticas de fusión y de modelo se aplican y qué ocurre alrededor de la ejecución.",
701
718
  "unassigned": "Sin asignar",
702
719
  "workspaceDefault": "Predeterminado del espacio de trabajo",
703
720
  "workspaceDefaultParen": "(predeterminado del espacio de trabajo)",
@@ -716,10 +733,13 @@
716
733
  },
717
734
  "pipeline": "Pipeline",
718
735
  "pipelineEmpty": "Sin predeterminado. Elige un pipeline cuando ejecutes esta tarea.",
736
+ "pipelineHint": "El pipeline que el botón Ejecutar inicia por defecto: la secuencia de pasos de agente (por ejemplo especificación, código, pruebas, fusión) que se ejecuta para esta tarea.",
719
737
  "mergePolicy": "Política de fusión",
720
738
  "mergePresetDetail": "{name}: fusión automática cuando complejidad ≤ {complexity}, riesgo ≤ {risk}, impacto ≤ {impact}; hasta {attempts} intentos de corrección de CI.",
721
739
  "mergePresetEmpty": "No hay preajuste configurado. El fusionador genera una notificación de revisión para cada PR.",
740
+ "mergePolicyHint": "Decide cuándo un pull request terminado se fusiona automáticamente en lugar de esperar una revisión humana, y cuántos intentos de arreglo de CI tiene una ejecución.",
722
741
  "modelPreset": "Preajuste de modelo",
742
+ "modelPresetHint": "Decide con qué modelo de IA se ejecuta cada paso de agente.",
723
743
  "modelPresetBase": "base {model}",
724
744
  "modelPresetOverrides": ", {count} anulación | , {count} anulaciones",
725
745
  "modelPresetEmpty": "No hay preajuste configurado. Los agentes se ejecutan con el enrutamiento predeterminado del despliegue.",
@@ -2602,6 +2622,7 @@
2602
2622
  },
2603
2623
  "taskDocs": {
2604
2624
  "heading": "Documentos de contexto",
2625
+ "hint": "Documentos adjuntos a esta tarea como contexto. Su contenido se entrega a los agentes que trabajan en la tarea.",
2605
2626
  "attach": "Adjuntar",
2606
2627
  "importPage": "Importar una página…",
2607
2628
  "empty": "Adjunta un requisito, RFC o PRD para que los agentes lo vean mientras implementan esta tarea.",
@@ -2622,6 +2643,7 @@
2622
2643
  },
2623
2644
  "contextIssues": {
2624
2645
  "title": "Incidencias de contexto",
2646
+ "hint": "Incidencias del tracker adjuntas a esta tarea como contexto. Su contenido se entrega a los agentes que trabajan en la tarea.",
2625
2647
  "attach": "Adjuntar",
2626
2648
  "attached": "Incidencia adjuntada",
2627
2649
  "attachFailed": "No se pudo adjuntar",
@@ -3667,7 +3689,7 @@
3667
3689
  "sources": {
3668
3690
  "metaSynced": "sincronizado · ref {ref}",
3669
3691
  "metaNever": "nunca sincronizado · ref {ref}",
3670
- "changes": "{count} cambio | {count} cambios",
3692
+ "changes": "Cambios",
3671
3693
  "empty": "No hay repositorios de pautas vinculados. Vincula uno abajo para importar sus archivos Markdown como fragmentos.",
3672
3694
  "linkTitle": "Vincular un repositorio de pautas",
3673
3695
  "ownerPlaceholder": "propietario",
@@ -3692,7 +3714,7 @@
3692
3714
  "linkSourceFailed": "No se pudo vincular el origen",
3693
3715
  "synced": "Sincronizado: {updated} actualizados, {removed} eliminados",
3694
3716
  "syncFailed": "No se pudo sincronizar el origen",
3695
- "changesAvailable": "{count} cambio disponible | {count} cambios disponibles",
3717
+ "changesAvailable": "Cambios disponibles",
3696
3718
  "upToDate": "Al día",
3697
3719
  "checkSourceFailed": "No se pudo comprobar el origen",
3698
3720
  "sourceUnlinked": "Origen desvinculado",
@@ -387,6 +387,8 @@
387
387
  },
388
388
  "inspector": {
389
389
  "container": {
390
+ "title": "Contenu",
391
+ "hint": "Les modules et les tâches contenus dans ce bloc. Cliquez sur une entrée pour la sélectionner sur le tableau.",
390
392
  "modules": "Modules ({count})",
391
393
  "taskCount": "{count} tâche | {count} tâches",
392
394
  "allTasks": "Toutes les tâches ({count})",
@@ -397,6 +399,7 @@
397
399
  },
398
400
  "epicChildren": {
399
401
  "title": "Tâches de l'epic",
402
+ "hint": "Toutes les tâches assignées à cet epic, regroupées par service et module. Un epic ne fait que regrouper des tâches ; il n'exécute rien lui-même.",
400
403
  "doneCount": "{done}/{total} terminées",
401
404
  "empty": "Aucune tâche n'appartient encore à cet epic. Importez les enfants d'un epic, ou définissez l'epic d'une tâche.",
402
405
  "unassigned": "Non assigné"
@@ -435,6 +438,7 @@
435
438
  },
436
439
  "fragments": {
437
440
  "serviceTitle": "Bonnes pratiques du service",
441
+ "serviceHint": "Normes de programmation pour tout le service. Le contenu de chaque fragment sélectionné est ajouté au prompt de chaque agent conscient du code travaillant sur les tâches de ce service.",
438
442
  "serviceEmpty": "Aucune. Les agents conscients du code sur ce service suivent leurs consignes par défaut.",
439
443
  "manageBoard": "Gérer la bibliothèque de fragments de ce tableau…",
440
444
  "manageAccount": "Gérer les fragments du compte…"
@@ -519,6 +523,7 @@
519
523
  },
520
524
  "releaseHealth": {
521
525
  "title": "Santé post-déploiement",
526
+ "sectionHint": "Une fois les changements de ce service fusionnés et déployés, une gate surveille pendant un temps les monitors et SLO configurés. En cas de régression, elle lance un agent d'astreinte pour enquêter ; rien n'est annulé automatiquement.",
522
527
  "clear": "Effacer",
523
528
  "connectPrompt": "Connectez une intégration d'observabilité pour surveiller ce service après les déploiements.",
524
529
  "connectFirst": "Connectez d'abord une intégration d'observabilité",
@@ -535,6 +540,7 @@
535
540
  },
536
541
  "testConfig": {
537
542
  "title": "Infrastructure de test",
543
+ "hint": "Comment un environnement de test est mis en place pour ce service quand un pipeline doit l'exécuter : sans infrastructure, un fichier Docker Compose, des manifestes Kubernetes ou un type de manifeste personnalisé.",
538
544
  "provisionType": "Type de provisionnement",
539
545
  "provisionTypeHint": "Comment ce service met en place son environnement pour le Tester. L'espace de travail configure la gestion de chaque type (le moteur + la connexion).",
540
546
  "provisionTypes": {
@@ -618,11 +624,13 @@
618
624
  },
619
625
  "agentConfig": {
620
626
  "title": "Configuration de l'agent",
627
+ "hint": "Options apportées par les agents du pipeline de cette tâche. Chaque option reste modifiable jusqu'au démarrage de son agent, puis elle est verrouillée pour cette exécution.",
621
628
  "inherited": "hérité du service",
622
629
  "frozen": "Figé : l'agent a démarré"
623
630
  },
624
631
  "dependencies": {
625
632
  "title": "Dépend de",
633
+ "hint": "Tâches qui doivent être fusionnées avant que celle-ci puisse s'exécuter. Le contrôle Exécuter reste verrouillé tant que toutes les dépendances ne sont pas terminées.",
626
634
  "merged": "Fusionné",
627
635
  "notMerged": "Pas encore fusionné",
628
636
  "empty": "Aucune dépendance. Peut s'exécuter à tout moment.",
@@ -634,11 +642,14 @@
634
642
  },
635
643
  "estimate": {
636
644
  "title": "Estimation",
645
+ "hint": "Produite par l'agent estimateur de tâches : la complexité, le risque et l'impact estimés de cette tâche. Sert à décider si les étapes de consensus (multi-exécutions) en valent la peine.",
637
646
  "complexity": "Complexité",
638
647
  "risk": "Risque",
639
648
  "impact": "Impact"
640
649
  },
641
650
  "execution": {
651
+ "title": "Exécution",
652
+ "hint": "L'exécution en direct du pipeline de cette tâche : chaque étape d'agent, sa progression et la pull request obtenue.",
642
653
  "stage": {
643
654
  "incorporating": "Intégration en cours…",
644
655
  "reviewing": "Nouvelle revue en cours…",
@@ -692,12 +703,18 @@
692
703
  }
693
704
  },
694
705
  "structure": {
706
+ "title": "Structure",
707
+ "hint": "Où vit cette tâche dans son service et quelles normes de code ses agents suivent.",
695
708
  "module": "Module",
696
709
  "modulePlaceholder": "ex. Sessions (créé lors de l'implémentation s'il est nouveau)",
710
+ "moduleHint": "Le module du service auquel cette tâche appartient. Saisissez un nom ; un module qui n'existe pas encore est créé lors de l'implémentation de la tâche.",
697
711
  "bestPractices": "Bonnes pratiques",
698
- "bestPracticesEmpty": "Aucune. Les agents suivent leurs consignes par défaut."
712
+ "bestPracticesEmpty": "Aucune. Les agents suivent leurs consignes par défaut.",
713
+ "bestPracticesHint": "Fragments de bonnes pratiques ajoutés aux prompts des agents de cette tâche, en plus des normes au niveau du service."
699
714
  },
700
715
  "runSettings": {
716
+ "title": "Paramètres d'exécution",
717
+ "hint": "Comment le pipeline de cette tâche s'exécute : quel pipeline démarre, quelles politiques de fusion et de modèle s'appliquent et ce qui se passe autour de l'exécution.",
701
718
  "unassigned": "Non assigné",
702
719
  "workspaceDefault": "Valeur par défaut de l'espace de travail",
703
720
  "workspaceDefaultParen": "(valeur par défaut de l'espace de travail)",
@@ -716,10 +733,13 @@
716
733
  },
717
734
  "pipeline": "Pipeline",
718
735
  "pipelineEmpty": "Aucune valeur par défaut. Choisissez un pipeline lorsque vous exécutez cette tâche.",
736
+ "pipelineHint": "Le pipeline que le bouton Exécuter démarre par défaut : la séquence d'étapes d'agent (par exemple spécification, code, test, fusion) exécutée pour cette tâche.",
719
737
  "mergePolicy": "Politique de fusion",
720
738
  "mergePresetDetail": "{name} : fusion automatique lorsque la complexité ≤ {complexity}, le risque ≤ {risk}, l'impact ≤ {impact} ; jusqu'à {attempts} tentatives de correction CI.",
721
739
  "mergePresetEmpty": "Aucun preset configuré. Le fusionneur déclenche une notification de revue pour chaque PR.",
740
+ "mergePolicyHint": "Décide quand une pull request terminée est fusionnée automatiquement au lieu d'attendre une revue humaine, et combien de tentatives de correction de CI une exécution obtient.",
722
741
  "modelPreset": "Preset de modèle",
742
+ "modelPresetHint": "Décide avec quel modèle d'IA chaque étape d'agent s'exécute.",
723
743
  "modelPresetBase": "base {model}",
724
744
  "modelPresetOverrides": ", {count} remplacement | , {count} remplacements",
725
745
  "modelPresetEmpty": "Aucun preset configuré. Les agents s'exécutent avec le routage par défaut du déploiement.",
@@ -2602,6 +2622,7 @@
2602
2622
  },
2603
2623
  "taskDocs": {
2604
2624
  "heading": "Documents de contexte",
2625
+ "hint": "Documents joints à cette tâche comme contexte. Leur contenu est fourni aux agents qui travaillent sur la tâche.",
2605
2626
  "attach": "Joindre",
2606
2627
  "importPage": "Importer une page…",
2607
2628
  "empty": "Joignez une exigence, un RFC ou un PRD pour que les agents le voient pendant l'implémentation de cette tâche.",
@@ -2622,6 +2643,7 @@
2622
2643
  },
2623
2644
  "contextIssues": {
2624
2645
  "title": "Tickets de contexte",
2646
+ "hint": "Tickets du tracker joints à cette tâche comme contexte. Leur contenu est fourni aux agents qui travaillent sur la tâche.",
2625
2647
  "attach": "Joindre",
2626
2648
  "attached": "Ticket joint",
2627
2649
  "attachFailed": "Impossible de joindre",
@@ -3667,7 +3689,7 @@
3667
3689
  "sources": {
3668
3690
  "metaSynced": "synchronisé · ref {ref}",
3669
3691
  "metaNever": "jamais synchronisé · ref {ref}",
3670
- "changes": "{count} changement | {count} changements",
3692
+ "changes": "Changements",
3671
3693
  "empty": "Aucun dépôt de consignes lié. Liez-en un ci-dessous pour importer ses fichiers Markdown comme fragments.",
3672
3694
  "linkTitle": "Lier un dépôt de consignes",
3673
3695
  "ownerPlaceholder": "propriétaire",
@@ -3692,7 +3714,7 @@
3692
3714
  "linkSourceFailed": "Impossible de lier la source",
3693
3715
  "synced": "Synchronisé : {updated} mis à jour, {removed} supprimés",
3694
3716
  "syncFailed": "Impossible de synchroniser la source",
3695
- "changesAvailable": "{count} changement disponible | {count} changements disponibles",
3717
+ "changesAvailable": "Changements disponibles",
3696
3718
  "upToDate": "À jour",
3697
3719
  "checkSourceFailed": "Impossible de vérifier la source",
3698
3720
  "sourceUnlinked": "Source dissociée",
@@ -387,6 +387,8 @@
387
387
  },
388
388
  "inspector": {
389
389
  "container": {
390
+ "title": "תוכן",
391
+ "hint": "המודולים והמשימות בתוך בלוק זה. לחץ על פריט כדי לבחור אותו בלוח.",
390
392
  "modules": "מודולים ({count})",
391
393
  "taskCount": "משימה {count} | {count} משימות",
392
394
  "allTasks": "כל המשימות ({count})",
@@ -397,6 +399,7 @@
397
399
  },
398
400
  "epicChildren": {
399
401
  "title": "משימות אפיק",
402
+ "hint": "כל המשימות המשויכות לאפיק זה, מקובצות לפי השירות והמודול שבהם הן נמצאות. אפיק רק מקבץ משימות; הוא אינו מריץ דבר בעצמו.",
400
403
  "doneCount": "{done}/{total} הושלמו",
401
404
  "empty": "אף משימה אינה שייכת לאפיק זה עדיין. ייבא את צאצאי האפיק, או הגדר אפיק למשימה.",
402
405
  "unassigned": "לא משויך"
@@ -435,6 +438,7 @@
435
438
  },
436
439
  "fragments": {
437
440
  "serviceTitle": "מומלצות עבודה לשירות",
441
+ "serviceHint": "תקני תכנות לכל השירות. התוכן של כל פרגמנט שנבחר מתווסף לפרומפט של כל סוכן מודע-קוד שעובד על משימות תחת שירות זה.",
438
442
  "serviceEmpty": "אין. סוכנים מודעי-קוד בשירות זה פועלים לפי ההנחיות המוגדרות כברירת מחדל.",
439
443
  "manageBoard": "נהל את ספריית הקטעים של לוח זה…",
440
444
  "manageAccount": "נהל קטעי חשבון…"
@@ -519,6 +523,7 @@
519
523
  },
520
524
  "releaseHealth": {
521
525
  "title": "תקינות לאחר שחרור",
526
+ "sectionHint": "לאחר שהשינויים של שירות זה ממוזגים ומשוחררים, שער עוקב במשך זמן מה אחרי המוניטורים וה-SLO שהוגדרו. במקרה של רגרסיה הוא מפעיל סוכן כוננות לחקירה; דבר אינו משוחזר אוטומטית.",
522
527
  "clear": "נקה",
523
528
  "connectPrompt": "חבר אינטגרציית תצפיתיות כדי לעקוב אחר שירות זה לאחר שחרורים.",
524
529
  "connectFirst": "חבר תחילה אינטגרציית תצפיתיות",
@@ -535,6 +540,7 @@
535
540
  },
536
541
  "testConfig": {
537
542
  "title": "תשתית בדיקות",
543
+ "hint": "כיצד מוקמת סביבת בדיקה לשירות זה כאשר פייפליין צריך להריץ אותו: ללא תשתית, קובץ Docker Compose, מניפסטים של Kubernetes או סוג מניפסט מותאם אישית.",
538
544
  "provisionType": "סוג ההקצאה",
539
545
  "provisionTypeHint": "כיצד שירות זה מקים את הסביבה שלו עבור ה-Tester. סביבת העבודה מגדירה כיצד מטופל כל סוג (המנוע + החיבור).",
540
546
  "provisionTypes": {
@@ -618,11 +624,13 @@
618
624
  },
619
625
  "agentConfig": {
620
626
  "title": "תצורת סוכן",
627
+ "hint": "אפשרויות שתורמים הסוכנים בפייפליין של משימה זו. כל אפשרות ניתנת לעריכה עד שהסוכן שלה מתחיל, ואז היא ננעלת לאותה הרצה.",
621
628
  "inherited": "נורש מהשירות",
622
629
  "frozen": "מוקפא: הסוכן כבר התחיל"
623
630
  },
624
631
  "dependencies": {
625
632
  "title": "תלוי ב",
633
+ "hint": "משימות שחייבות להתמזג לפני שמשימה זו תוכל לרוץ. פקד ההרצה נשאר נעול עד שכל התלויות הושלמו.",
626
634
  "merged": "מוזג",
627
635
  "notMerged": "טרם מוזג",
628
636
  "empty": "אין תלויות. יכול לרוץ בכל עת.",
@@ -634,11 +642,14 @@
634
642
  },
635
643
  "estimate": {
636
644
  "title": "הערכה",
645
+ "hint": "מופק על ידי סוכן הערכת המשימות: עד כמה המשימה נראית מורכבת, מסוכנת ובעלת השפעה. משמש כדי להחליט אם שלבי קונצנזוס (ריבוי הרצות) משתלמים.",
637
646
  "complexity": "מורכבות",
638
647
  "risk": "סיכון",
639
648
  "impact": "השפעה"
640
649
  },
641
650
  "execution": {
651
+ "title": "הרצה",
652
+ "hint": "ההרצה החיה של הפייפליין של משימה זו: כל שלב סוכן, ההתקדמות שלו ובקשת המשיכה שנוצרת.",
642
653
  "stage": {
643
654
  "incorporating": "משלב…",
644
655
  "reviewing": "סוקר מחדש…",
@@ -692,12 +703,18 @@
692
703
  }
693
704
  },
694
705
  "structure": {
706
+ "title": "מבנה",
707
+ "hint": "היכן משימה זו נמצאת בשירות שלה ואילו תקני קוד הסוכנים שלה מיישמים.",
695
708
  "module": "מודול",
696
709
  "modulePlaceholder": "למשל Sessions (נוצר במהלך המימוש אם חדש)",
710
+ "moduleHint": "מודול השירות שאליו שייכת משימה זו. הקלד שם; מודול שעדיין לא קיים נוצר כשהמשימה ממומשת.",
697
711
  "bestPractices": "מומלצות עבודה",
698
- "bestPracticesEmpty": "אין. הסוכנים פועלים לפי ההנחיות המוגדרות כברירת מחדל."
712
+ "bestPracticesEmpty": "אין. הסוכנים פועלים לפי ההנחיות המוגדרות כברירת מחדל.",
713
+ "bestPracticesHint": "פרגמנטים של שיטות עבודה מומלצות שמתווספים לפרומפטים של סוכני משימה זו, בנוסף לתקנים ברמת השירות."
699
714
  },
700
715
  "runSettings": {
716
+ "title": "הגדרות הרצה",
717
+ "hint": "כיצד רץ הפייפליין של משימה זו: איזה פייפליין מופעל, אילו מדיניות מיזוג ומודל חלות ומה קורה סביב ההרצה.",
701
718
  "unassigned": "לא משויך",
702
719
  "workspaceDefault": "ברירת מחדל של מרחב העבודה",
703
720
  "workspaceDefaultParen": "(ברירת מחדל של מרחב העבודה)",
@@ -716,10 +733,13 @@
716
733
  },
717
734
  "pipeline": "פייפליין",
718
735
  "pipelineEmpty": "אין ברירת מחדל. בחר פייפליין כשאתה מריץ משימה זו.",
736
+ "pipelineHint": "הפייפליין שכפתור ההרצה מפעיל כברירת מחדל: רצף שלבי הסוכנים (למשל אפיון, קוד, בדיקות, מיזוג) שמורץ עבור משימה זו.",
719
737
  "mergePolicy": "מדיניות מיזוג",
720
738
  "mergePresetDetail": "{name}: מיזוג אוטומטי כאשר מורכבות ≤ {complexity}, סיכון ≤ {risk}, השפעה ≤ {impact}; עד {attempts} ניסיונות תיקון CI.",
721
739
  "mergePresetEmpty": "לא הוגדר תבנית. הממזג מעלה התראת סקירה עבור כל PR.",
740
+ "mergePolicyHint": "קובע מתי בקשת משיכה שהושלמה ממוזגת אוטומטית במקום להמתין לסקירה אנושית, וכמה ניסיונות תיקון CI מקבלת הרצה.",
722
741
  "modelPreset": "תבנית מודל",
742
+ "modelPresetHint": "קובע על איזה מודל AI רץ כל שלב סוכן.",
723
743
  "modelPresetBase": "בסיס {model}",
724
744
  "modelPresetOverrides": ", עקיפה {count} | , {count} עקיפות",
725
745
  "modelPresetEmpty": "לא הוגדר תבנית. הסוכנים רצים לפי ניתוב ברירת המחדל של הפריסה.",
@@ -2613,6 +2633,7 @@
2613
2633
  },
2614
2634
  "taskDocs": {
2615
2635
  "heading": "מסמכי הקשר",
2636
+ "hint": "מסמכים המצורפים למשימה זו כהקשר. תוכנם נמסר לסוכנים שעובדים על המשימה.",
2616
2637
  "attach": "צרף",
2617
2638
  "importPage": "ייבא דף…",
2618
2639
  "empty": "צרף דרישה, RFC או PRD כדי שהסוכנים יראו אותם בעת מימוש משימה זו.",
@@ -2633,6 +2654,7 @@
2633
2654
  },
2634
2655
  "contextIssues": {
2635
2656
  "title": "ניושני הקשר",
2657
+ "hint": "כרטיסי ה-tracker המצורפים למשימה זו כהקשר. תוכנם נמסר לסוכנים שעובדים על המשימה.",
2636
2658
  "attach": "צרף",
2637
2659
  "attached": "הניושן צורף",
2638
2660
  "attachFailed": "לא ניתן היה לצרף",
@@ -3678,7 +3700,7 @@
3678
3700
  "sources": {
3679
3701
  "metaSynced": "סונכרן · ref {ref}",
3680
3702
  "metaNever": "מעולם לא סונכרן · ref {ref}",
3681
- "changes": "שינוי אחד | {count} שינויים",
3703
+ "changes": "שינויים",
3682
3704
  "empty": "אין מאגרי הנחיות מקושרים. קשר אחד למטה כדי לייבא את קובצי ה-Markdown שלו כמקטעים.",
3683
3705
  "linkTitle": "קשר מאגר הנחיות",
3684
3706
  "ownerPlaceholder": "בעלים",
@@ -3703,7 +3725,7 @@
3703
3725
  "linkSourceFailed": "לא ניתן היה לקשר מקור",
3704
3726
  "synced": "סונכרן: {updated} עודכנו, {removed} הוסרו",
3705
3727
  "syncFailed": "לא ניתן היה לסנכרן מקור",
3706
- "changesAvailable": "שינוי אחד זמין | {count} שינויים זמינים",
3728
+ "changesAvailable": "יש שינויים זמינים",
3707
3729
  "upToDate": "מעודכן",
3708
3730
  "checkSourceFailed": "לא ניתן היה לבדוק את המקור",
3709
3731
  "sourceUnlinked": "קישור המקור בוטל",