@cat-factory/app 0.274.0 → 0.275.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 (38) hide show
  1. package/README.md +69 -2
  2. package/app/components/board/nodes/BlockNode.vue +7 -1
  3. package/app/components/layout/CommandBar.vue +8 -1
  4. package/app/components/layout/RolePrompt.vue +75 -0
  5. package/app/components/layout/SideBar.vue +22 -13
  6. package/app/components/layout/UiRoleSwitcher.vue +73 -0
  7. package/app/composables/useNavContributions.ts +3 -0
  8. package/app/docs/consumer-extensions.md +20 -6
  9. package/app/modular/external-tools.spec.ts +0 -45
  10. package/app/modular/external-tools.ts +12 -23
  11. package/app/modular/nav-contributions.spec.ts +176 -17
  12. package/app/modular/nav-contributions.ts +106 -23
  13. package/app/modular/nav-gates.ts +11 -2
  14. package/app/modular/registry.spec.ts +1 -0
  15. package/app/modular/tutorial-tours.spec.ts +5 -3
  16. package/app/modular/tutorial-tours.ts +53 -8
  17. package/app/pages/index.vue +36 -7
  18. package/app/stores/launchPrompt.ts +63 -0
  19. package/app/stores/tutorial.ts +4 -4
  20. package/app/stores/uiMode.spec.ts +11 -0
  21. package/app/stores/uiMode.ts +14 -2
  22. package/app/stores/uiRole.spec.ts +185 -0
  23. package/app/stores/uiRole.ts +86 -0
  24. package/app/utils/uiMode.spec.ts +12 -0
  25. package/app/utils/uiMode.ts +24 -6
  26. package/app/utils/uiRole.ts +123 -0
  27. package/i18n/locales/de.json +26 -0
  28. package/i18n/locales/en.json +32 -0
  29. package/i18n/locales/es.json +26 -0
  30. package/i18n/locales/fr.json +26 -0
  31. package/i18n/locales/he.json +26 -0
  32. package/i18n/locales/it.json +26 -0
  33. package/i18n/locales/ja.json +26 -0
  34. package/i18n/locales/pl.json +26 -0
  35. package/i18n/locales/tr.json +26 -0
  36. package/i18n/locales/uk.json +26 -0
  37. package/package.json +1 -1
  38. package/app/stores/tutorial.prompt.ts +0 -59
@@ -0,0 +1,123 @@
1
+ /**
2
+ * The ROLE the person at the keyboard is here to do: `engineer`, `product-manager` or
3
+ * `designer`. Pure resolution logic, kept out of the store so it is testable without Pinia.
4
+ *
5
+ * This is the third narrowing axis in the SPA and it answers a different question from the
6
+ * other two. The interface MODE (`utils/uiMode.ts`) asks how much of the product to show;
7
+ * the AGENT TIER asks how deep into the agent catalog one surface reaches; the role asks
8
+ * WHICH JOB the surfaces are for. Engineer and product-manager do the same job here (plan
9
+ * work, run it, review and merge it), so they resolve to the same surface today and are kept
10
+ * as separate members because the copy people pick themselves by is the thing that makes the
11
+ * question answerable, and because the two diverge the moment one of them gets a surface the
12
+ * other does not.
13
+ *
14
+ * It is NOT authorization. Workspace RBAC (ADR 0025) decides what a request may do, is
15
+ * enforced server-side, and cannot be widened from a browser; this decides what the SPA
16
+ * OFFERS, and every role resolves to a surface the caller's permissions still gate. A role
17
+ * that hid a permitted destination would be a lie about the product, which is why the way
18
+ * back out of a narrowed role is reachable from inside it (see `UiRoleSwitcher`).
19
+ */
20
+ export const UI_ROLES = ['engineer', 'product-manager', 'designer'] as const
21
+
22
+ export type UiRole = (typeof UI_ROLES)[number]
23
+
24
+ /**
25
+ * The role a browser gets before the person picks one.
26
+ *
27
+ * The FULL surface, deliberately: an unanswered question must never take capability away.
28
+ * The first-run prompt is offered once per session until it is answered (see `stores/uiRole.ts`),
29
+ * and closing it leaves the whole product in place rather than guessing a narrower persona.
30
+ */
31
+ export const DEFAULT_UI_ROLE: UiRole = 'engineer'
32
+
33
+ /**
34
+ * How much of the SPA a role is offered.
35
+ *
36
+ * - `full`: every destination the caller's permissions and the interface tier allow.
37
+ * - `intake`: the services already on the board, the tasks in flight on them, and the routes
38
+ * that bring new work IN (a new task, a task from a tracker ticket, a task from a design).
39
+ * None of the platform configuration behind them: an intake role never sets up a repo, a
40
+ * model, a pipeline or an integration, so carrying those destinations costs the surface more
41
+ * than the capability is worth there.
42
+ *
43
+ * A SURFACE rather than a per-role list of ids, because the narrowing is a property of the
44
+ * WORK, not of the persona's name: a second delivery-only persona reuses `intake` instead of
45
+ * copying its allow-list, and nothing has to be re-decided per role. The mapping is an
46
+ * exhaustive Record, so a new role fails the build until it picks a side.
47
+ */
48
+ export type RoleSurface = 'full' | 'intake'
49
+
50
+ export const ROLE_SURFACES: Record<UiRole, RoleSurface> = {
51
+ engineer: 'full',
52
+ 'product-manager': 'full',
53
+ designer: 'intake',
54
+ }
55
+
56
+ /**
57
+ * How each role is PRESENTED: its name, the one line that says what picking it gives you, and
58
+ * its glyph. One table rather than a copy in the switcher and another in the first-run prompt,
59
+ * because the two surfaces must not be able to describe the same role differently. The prompt
60
+ * is where the choice is explained and the switcher is where it is recognised later.
61
+ *
62
+ * i18n keys rather than strings (no display copy in code), and an exhaustive Record, so a new
63
+ * role fails the build until it has both. The keys themselves are invisible to typed messages
64
+ * and to `i18n:check`, since neither sees a key reached through a table lookup rather than
65
+ * written literally at the call site, which is what `uiRole.spec.ts` asserts against the base
66
+ * catalog instead.
67
+ */
68
+ export interface RolePresentation {
69
+ labelKey: string
70
+ hintKey: string
71
+ icon: string
72
+ }
73
+
74
+ export const ROLE_PRESENTATION: Record<UiRole, RolePresentation> = {
75
+ engineer: {
76
+ labelKey: 'uiRole.roles.engineer',
77
+ hintKey: 'uiRole.hints.engineer',
78
+ icon: 'i-lucide-code-xml',
79
+ },
80
+ 'product-manager': {
81
+ labelKey: 'uiRole.roles.productManager',
82
+ hintKey: 'uiRole.hints.productManager',
83
+ icon: 'i-lucide-clipboard-list',
84
+ },
85
+ designer: {
86
+ labelKey: 'uiRole.roles.designer',
87
+ hintKey: 'uiRole.hints.designer',
88
+ icon: 'i-lucide-frame',
89
+ },
90
+ }
91
+
92
+ /**
93
+ * Coerce an untrusted value (a restored localStorage blob, possibly written by an older
94
+ * build or hand-edited) to a known role. Anything unrecognised resolves to `null`, i.e.
95
+ * "nobody has picked one", so {@link resolveUiRole} falls back to the default and the
96
+ * first-run prompt asks again. Never throws: a stale persisted value must not fail the boot.
97
+ */
98
+ export function parseUiRole(raw: unknown): UiRole | null {
99
+ if (typeof raw !== 'string') return null
100
+ const value = raw.trim().toLowerCase()
101
+ return (UI_ROLES as readonly string[]).includes(value) ? (value as UiRole) : null
102
+ }
103
+
104
+ /** Apply the precedence: the person's own stored choice → {@link DEFAULT_UI_ROLE}. */
105
+ export function resolveUiRole(stored: UiRole | null): UiRole {
106
+ return stored ?? DEFAULT_UI_ROLE
107
+ }
108
+
109
+ /** Which surface a role is offered. */
110
+ export function roleSurface(role: UiRole): RoleSurface {
111
+ return ROLE_SURFACES[role]
112
+ }
113
+
114
+ /**
115
+ * Whether the role sees the whole product.
116
+ *
117
+ * Stated POSITIVELY, and read that way everywhere (the `fullSurface` nav gate, the
118
+ * `intake` contribution flag it admits): a narrowing expressed as "not hidden" inverts once
119
+ * per reader and the reader that gets it backwards shows a designer the operator dashboard.
120
+ */
121
+ export function isFullSurfaceRole(role: UiRole): boolean {
122
+ return roleSurface(role) === 'full'
123
+ }
@@ -2667,6 +2667,7 @@
2667
2667
  "shortcuts": "Tastenkürzel",
2668
2668
  "bugHunt": "Fehlerjagd",
2669
2669
  "toggleUiMode": "Oberflächenmodus wechseln",
2670
+ "chooseRole": "Rolle wechseln",
2670
2671
  "foundationalServices": "Basisdienste",
2671
2672
  "notificationSettings": "Benachrichtigungs-Routing verwalten"
2672
2673
  },
@@ -2691,6 +2692,7 @@
2691
2692
  "shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help",
2692
2693
  "bugHunt": "fehler bug jagd triage backlog tracker nicht zugewiesen",
2693
2694
  "toggleUiMode": "oberfläche modus einfach erweitert anzeigen ausblenden",
2695
+ "chooseRole": "rolle entwickler produktmanager designer persona einfachere ansicht",
2694
2696
  "tutorial": "tutorial tour einführung hilfe onboarding lernen grundlagen",
2695
2697
  "foundationalServices": "gemeinsame Fähigkeit Plattform Dienst API Vertrag OpenAPI Katalog",
2696
2698
  "notificationSettings": "benachrichtigungen e-mail routing kanäle posteingang"
@@ -5665,6 +5667,25 @@
5665
5667
  "switchTo": "Zu „{mode}“ wechseln",
5666
5668
  "pinned": "Von dieser Installation festgelegt"
5667
5669
  },
5670
+ "uiRole": {
5671
+ "switcher": "Deine Rolle",
5672
+ "roles": {
5673
+ "engineer": "Entwickler",
5674
+ "productManager": "Produktmanager",
5675
+ "designer": "Designer"
5676
+ },
5677
+ "hints": {
5678
+ "engineer": "Alles: Arbeit planen, ausführen, prüfen und mergen sowie die Plattform dahinter einrichten.",
5679
+ "productManager": "Dieselben Flächen wie beim Entwickler: Arbeit planen, ausführen und bis zum Merge begleiten.",
5680
+ "designer": "Ein einfacheres Board: die Services, die schon darauf sind, die laufende Arbeit und neue Aufgaben aus einem Design oder Issue."
5681
+ },
5682
+ "prompt": {
5683
+ "title": "Woran arbeitest du?",
5684
+ "intro": "Wähle das Passendste, dann startet die App mit den Flächen, die diese Aufgabe braucht. Das ändert nur, was du SIEHST, nie was du darfst.",
5685
+ "change": "Du kannst das jederzeit oben in der Seitenleiste ändern.",
5686
+ "later": "Jetzt nicht"
5687
+ }
5688
+ },
5668
5689
  "common": {
5669
5690
  "loading": "Wird geladen…",
5670
5691
  "save": "Speichern",
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "Ein fehlgeschlagener Lauf",
7454
7475
  "infrastructure": "Ein mit diesem Workspace verbundenes Ausführungs-Backend",
7455
7476
  "advancedTier": "Der erweiterte Oberflächenmodus",
7477
+ "fullSurface": "Die Rolle „Entwickler“ oder „Produktmanager“",
7456
7478
  "designSource": "Eine verbundene Design-Quelle"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "Board-Steuerung",
7495
7517
  "body": "Mit diesen Steuerelementen zoomst du hinein und heraus oder bringst das ganze Board ins Bild."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "Deine Rolle",
7521
+ "body": "Das Board richtet sich nach deiner Aufgabe: Entwickler und Produktmanager sehen alle Flächen, Designer eine einfachere, die Arbeit hereinholt und verfolgt. Du kannst das hier jederzeit ändern."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "Einfach und erweitert",
7499
7525
  "body": "Die Oberfläche startet im einfachen Modus, der die alltäglichen Arbeitsflächen zeigt. Wechsle hier auf erweitert, wenn du zusätzlich die Flächen für Experimente, Bootstrap und Betrieb brauchst."
@@ -38,6 +38,31 @@
38
38
  },
39
39
  "pinned": "Set by this deployment"
40
40
  },
41
+ "uiRole": {
42
+ "switcher": "Your role",
43
+ "@switcher": {
44
+ "description": "Label above the picker that chooses which job the person does (Engineer, Product manager, Designer). It tunes which surfaces the app shows; it is NOT a permission or a job title in an org chart."
45
+ },
46
+ "roles": {
47
+ "engineer": "Engineer",
48
+ "productManager": "Product manager",
49
+ "designer": "Designer",
50
+ "@designer": {
51
+ "description": "A product/UX designer: the person who makes the designs the work is built from. Not a 'designer' in any other sense."
52
+ }
53
+ },
54
+ "hints": {
55
+ "engineer": "Everything: plan work, run it, review and merge it, and set up the platform it runs on.",
56
+ "productManager": "The same surfaces as an engineer: plan work, run it, and follow it through to a merge.",
57
+ "designer": "A simpler board: the services already on it, the work in flight, and new tasks from a design or a ticket."
58
+ },
59
+ "prompt": {
60
+ "title": "What do you work on?",
61
+ "intro": "Pick the closest match and the app opens on the surfaces that job needs. This changes what you SEE, never what you are allowed to do.",
62
+ "change": "You can change this at any time from the top of the sidebar.",
63
+ "later": "Not now"
64
+ }
65
+ },
41
66
  "common": {
42
67
  "loading": "Loading…",
43
68
  "save": "Save",
@@ -2512,6 +2537,7 @@
2512
2537
  "shortcuts": "Keyboard shortcuts",
2513
2538
  "bugHunt": "Bug hunt",
2514
2539
  "toggleUiMode": "Switch interface mode",
2540
+ "chooseRole": "Change your role",
2515
2541
  "foundationalServices": "Foundational services",
2516
2542
  "notificationSettings": "Manage notification routing"
2517
2543
  },
@@ -2536,6 +2562,7 @@
2536
2562
  "shortcuts": "keyboard shortcuts keys hotkeys cheatsheet help",
2537
2563
  "bugHunt": "bug hunt triage backlog issue tracker unassigned",
2538
2564
  "toggleUiMode": "interface mode basic advanced simple expert show hide",
2565
+ "chooseRole": "role engineer product manager designer persona simpler view",
2539
2566
  "tutorial": "tutorial onboarding tour guide help learn basics",
2540
2567
  "foundationalServices": "shared capability platform service api contract openapi catalog",
2541
2568
  "notificationSettings": "notifications email routing channels inbox"
@@ -7727,6 +7754,7 @@
7727
7754
  "failedRun": "A run that failed",
7728
7755
  "infrastructure": "An execution backend connected to this workspace",
7729
7756
  "advancedTier": "The advanced interface mode",
7757
+ "fullSurface": "The Engineer or Product manager role",
7730
7758
  "designSource": "A connected design source"
7731
7759
  },
7732
7760
  "overlay": {
@@ -7774,6 +7802,10 @@
7774
7802
  "title": "Board controls",
7775
7803
  "body": "Zoom in and out or fit the whole board into view with these controls."
7776
7804
  },
7805
+ "role": {
7806
+ "title": "Your role",
7807
+ "body": "The board is tuned to the job you do. Engineers and product managers get every surface; designers get a simpler one that brings work in and follows it. Change it here whenever you like."
7808
+ },
7777
7809
  "interfaceTier": {
7778
7810
  "title": "Basic and advanced",
7779
7811
  "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."
@@ -32,6 +32,25 @@
32
32
  "switchTo": "Cambiar a {mode}",
33
33
  "pinned": "Definido por este despliegue"
34
34
  },
35
+ "uiRole": {
36
+ "switcher": "Tu rol",
37
+ "roles": {
38
+ "engineer": "Ingeniero",
39
+ "productManager": "Gestor de producto",
40
+ "designer": "Diseñador"
41
+ },
42
+ "hints": {
43
+ "engineer": "Todo: planificar el trabajo, ejecutarlo, revisarlo y fusionarlo, y configurar la plataforma que lo ejecuta.",
44
+ "productManager": "Las mismas superficies que un ingeniero: planificar el trabajo, ejecutarlo y seguirlo hasta la fusión.",
45
+ "designer": "Un tablero más sencillo: los servicios que ya están en él, el trabajo en curso y tareas nuevas desde un diseño o una incidencia."
46
+ },
47
+ "prompt": {
48
+ "title": "¿En qué trabajas?",
49
+ "intro": "Elige la opción más parecida y la app se abrirá en las superficies que necesita ese trabajo. Esto cambia lo que VES, nunca lo que puedes hacer.",
50
+ "change": "Puedes cambiarlo cuando quieras desde la parte superior de la barra lateral.",
51
+ "later": "Ahora no"
52
+ }
53
+ },
35
54
  "common": {
36
55
  "loading": "Cargando…",
37
56
  "save": "Guardar",
@@ -2387,6 +2406,7 @@
2387
2406
  "shortcuts": "Atajos de teclado",
2388
2407
  "bugHunt": "Caza de errores",
2389
2408
  "toggleUiMode": "Cambiar el modo de interfaz",
2409
+ "chooseRole": "Cambiar tu rol",
2390
2410
  "foundationalServices": "Servicios fundamentales",
2391
2411
  "notificationSettings": "Gestionar el enrutamiento de notificaciones"
2392
2412
  },
@@ -2411,6 +2431,7 @@
2411
2431
  "shortcuts": "atajos teclado teclas ayuda",
2412
2432
  "bugHunt": "error bug caza triaje backlog incidencias sin asignar",
2413
2433
  "toggleUiMode": "interfaz modo básico avanzado mostrar ocultar",
2434
+ "chooseRole": "rol ingeniero gestor de producto diseñador perfil vista sencilla",
2414
2435
  "tutorial": "tutorial recorrido guía ayuda aprender introducción",
2415
2436
  "foundationalServices": "capacidad compartida plataforma servicio api contrato openapi catálogo",
2416
2437
  "notificationSettings": "notificaciones correo enrutamiento canales bandeja"
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "Una ejecución que ha fallado",
7454
7475
  "infrastructure": "Un backend de ejecución conectado a este espacio de trabajo",
7455
7476
  "advancedTier": "El modo de interfaz avanzado",
7477
+ "fullSurface": "El rol de Ingeniero o Gestor de producto",
7456
7478
  "designSource": "Una fuente de diseño conectada"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "Controles del tablero",
7495
7517
  "body": "Con estos controles acercas, alejas o ajustas todo el tablero a la vista."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "Tu rol",
7521
+ "body": "El tablero se adapta al trabajo que haces: los ingenieros y los gestores de producto ven todas las superficies; los diseñadores, una más sencilla que trae trabajo nuevo y lo sigue. Puedes cambiarlo aquí cuando quieras."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "Básico y avanzado",
7499
7525
  "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."
@@ -32,6 +32,25 @@
32
32
  "switchTo": "Passer en {mode}",
33
33
  "pinned": "Défini par ce déploiement"
34
34
  },
35
+ "uiRole": {
36
+ "switcher": "Votre rôle",
37
+ "roles": {
38
+ "engineer": "Ingénieur",
39
+ "productManager": "Chef de produit",
40
+ "designer": "Designer"
41
+ },
42
+ "hints": {
43
+ "engineer": "Tout : planifier le travail, l'exécuter, le relire et le fusionner, et configurer la plateforme qui l'exécute.",
44
+ "productManager": "Les mêmes surfaces qu'un ingénieur : planifier le travail, l'exécuter et le suivre jusqu'à la fusion.",
45
+ "designer": "Un tableau plus simple : les services déjà présents, le travail en cours et de nouvelles tâches à partir d'une maquette ou d'un ticket."
46
+ },
47
+ "prompt": {
48
+ "title": "Sur quoi travaillez-vous ?",
49
+ "intro": "Choisissez ce qui correspond le mieux : l'application s'ouvrira sur les surfaces dont ce métier a besoin. Cela change ce que vous VOYEZ, jamais ce que vous avez le droit de faire.",
50
+ "change": "Vous pouvez changer ce choix à tout moment en haut de la barre latérale.",
51
+ "later": "Pas maintenant"
52
+ }
53
+ },
35
54
  "common": {
36
55
  "loading": "Chargement…",
37
56
  "save": "Enregistrer",
@@ -2387,6 +2406,7 @@
2387
2406
  "shortcuts": "Raccourcis clavier",
2388
2407
  "bugHunt": "Chasse aux bugs",
2389
2408
  "toggleUiMode": "Changer le mode d'interface",
2409
+ "chooseRole": "Changer de rôle",
2390
2410
  "foundationalServices": "Services fondamentaux",
2391
2411
  "notificationSettings": "Gérer le routage des notifications"
2392
2412
  },
@@ -2411,6 +2431,7 @@
2411
2431
  "shortcuts": "raccourcis clavier touches aide",
2412
2432
  "bugHunt": "bug chasse tri backlog tickets non assignés",
2413
2433
  "toggleUiMode": "interface mode simple avancé afficher masquer",
2434
+ "chooseRole": "rôle ingénieur chef de produit designer profil vue simplifiée",
2414
2435
  "tutorial": "tutoriel visite guide aide apprendre découverte",
2415
2436
  "foundationalServices": "capacité partagée plateforme service api contrat openapi catalogue",
2416
2437
  "notificationSettings": "notifications e-mail routage canaux boîte"
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "Une exécution en échec",
7454
7475
  "infrastructure": "Un backend d’exécution connecté à cet espace de travail",
7455
7476
  "advancedTier": "Le mode d’interface avancé",
7477
+ "fullSurface": "Le rôle Ingénieur ou Chef de produit",
7456
7478
  "designSource": "Une source de design connectée"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "Contrôles du tableau",
7495
7517
  "body": "Ces contrôles permettent de zoomer ou d'ajuster tout le tableau à la vue."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "Votre rôle",
7521
+ "body": "Le tableau s'adapte au métier que vous exercez : les ingénieurs et les chefs de produit voient toutes les surfaces, les designers une version plus simple qui fait entrer le travail et le suit. Vous pouvez en changer ici à tout moment."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "Simple et avancé",
7499
7525
  "body": "L'interface démarre en mode simple, qui montre les surfaces de travail quotidiennes. Passez en avancé ici lorsque vous voulez aussi les surfaces d'expérimentation, d'amorçage et d'exploitation."
@@ -32,6 +32,25 @@
32
32
  "switchTo": "מעבר ל{mode}",
33
33
  "pinned": "נקבע על ידי פריסה זו"
34
34
  },
35
+ "uiRole": {
36
+ "switcher": "התפקיד שלך",
37
+ "roles": {
38
+ "engineer": "מהנדס",
39
+ "productManager": "מנהל מוצר",
40
+ "designer": "מעצב"
41
+ },
42
+ "hints": {
43
+ "engineer": "הכול: לתכנן עבודה, להריץ אותה, לבדוק ולמזג, וגם להגדיר את הפלטפורמה שמריצה אותה.",
44
+ "productManager": "אותם משטחים כמו למהנדס: לתכנן עבודה, להריץ אותה ולעקוב אחריה עד המיזוג.",
45
+ "designer": "לוח פשוט יותר: השירותים שכבר נמצאים בו, העבודה שבתהליך ומשימות חדשות מעיצוב או מאישיו."
46
+ },
47
+ "prompt": {
48
+ "title": "על מה אתה עובד?",
49
+ "intro": "בחר את האפשרות הקרובה ביותר, והאפליקציה תיפתח במשטחים שהתפקיד הזה צריך. זה משנה מה שאתה רואה, לא מה שמותר לך לעשות.",
50
+ "change": "אפשר לשנות זאת בכל עת בראש סרגל הצד.",
51
+ "later": "לא כרגע"
52
+ }
53
+ },
35
54
  "common": {
36
55
  "loading": "טוען…",
37
56
  "save": "שמור",
@@ -2387,6 +2406,7 @@
2387
2406
  "shortcuts": "קיצורי מקלדת",
2388
2407
  "bugHunt": "ציד באגים",
2389
2408
  "toggleUiMode": "החלפת מצב ממשק",
2409
+ "chooseRole": "החלפת תפקיד",
2390
2410
  "foundationalServices": "שירותי תשתית",
2391
2411
  "notificationSettings": "ניהול ניתוב התראות"
2392
2412
  },
@@ -2411,6 +2431,7 @@
2411
2431
  "shortcuts": "קיצורים מקלדת מקשים עזרה",
2412
2432
  "bugHunt": "באג bug ציד מיון צבר פניות לא משויכות",
2413
2433
  "toggleUiMode": "ממשק מצב בסיסי מתקדם הצגה הסתרה",
2434
+ "chooseRole": "תפקיד מהנדס מנהל מוצר מעצב תצוגה פשוטה",
2414
2435
  "tutorial": "מדריך סיור עזרה הדרכה לימוד",
2415
2436
  "foundationalServices": "יכולת משותפת פלטפורמה שירות api חוזה openapi קטלוג",
2416
2437
  "notificationSettings": "התראות אימייל ניתוב ערוצים תיבה"
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "ריצה שנכשלה",
7454
7475
  "infrastructure": "עורף הרצה המחובר למרחב העבודה הזה",
7455
7476
  "advancedTier": "מצב הממשק המתקדם",
7477
+ "fullSurface": "תפקיד מהנדס או מנהל מוצר",
7456
7478
  "designSource": "מקור עיצוב מחובר"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "פקדי הלוח",
7495
7517
  "body": "בעזרת הפקדים האלה מתקרבים, מתרחקים או מתאימים את כל הלוח לתצוגה."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "התפקיד שלך",
7521
+ "body": "הלוח מותאם לתפקיד שלך: מהנדסים ומנהלי מוצר רואים את כל המשטחים, ומעצבים רואים לוח פשוט יותר שמכניס עבודה ועוקב אחריה. אפשר לשנות זאת כאן בכל עת."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "בסיסי ומתקדם",
7499
7525
  "body": "הממשק נפתח במצב הבסיסי, שמציג את משטחי העבודה היומיומיים. עבור כאן למתקדם כשאתה רוצה גם את משטחי הניסויים, הקמת המאגרים והתפעול."
@@ -2667,6 +2667,7 @@
2667
2667
  "shortcuts": "Scorciatoie da tastiera",
2668
2668
  "bugHunt": "Caccia ai bug",
2669
2669
  "toggleUiMode": "Cambia modalità interfaccia",
2670
+ "chooseRole": "Cambia il tuo ruolo",
2670
2671
  "foundationalServices": "Servizi fondamentali",
2671
2672
  "notificationSettings": "Gestisci l'instradamento delle notifiche"
2672
2673
  },
@@ -2691,6 +2692,7 @@
2691
2692
  "shortcuts": "scorciatoie da tastiera tasti hotkey cheatsheet aiuto",
2692
2693
  "bugHunt": "bug caccia triage backlog ticket non assegnati",
2693
2694
  "toggleUiMode": "interfaccia modalità base avanzata mostra nascondi",
2695
+ "chooseRole": "ruolo ingegnere responsabile di prodotto designer profilo vista semplice",
2694
2696
  "tutorial": "tutorial tour guida aiuto imparare introduzione",
2695
2697
  "foundationalServices": "capacità condivisa piattaforma servizio api contratto openapi catalogo",
2696
2698
  "notificationSettings": "notifiche email instradamento canali casella"
@@ -5665,6 +5667,25 @@
5665
5667
  "switchTo": "Passa alla modalità {mode}",
5666
5668
  "pinned": "Impostato da questo deployment"
5667
5669
  },
5670
+ "uiRole": {
5671
+ "switcher": "Il tuo ruolo",
5672
+ "roles": {
5673
+ "engineer": "Ingegnere",
5674
+ "productManager": "Responsabile di prodotto",
5675
+ "designer": "Designer"
5676
+ },
5677
+ "hints": {
5678
+ "engineer": "Tutto: pianificare il lavoro, eseguirlo, revisionarlo e fare il merge, e configurare la piattaforma che lo esegue.",
5679
+ "productManager": "Le stesse superfici di un ingegnere: pianificare il lavoro, eseguirlo e seguirlo fino al merge.",
5680
+ "designer": "Una board più semplice: i servizi già presenti, il lavoro in corso e nuove attività da un design o da una issue."
5681
+ },
5682
+ "prompt": {
5683
+ "title": "Su cosa lavori?",
5684
+ "intro": "Scegli l'opzione più vicina e l'app si aprirà sulle superfici che quel lavoro richiede. Cambia ciò che VEDI, non ciò che ti è permesso fare.",
5685
+ "change": "Puoi cambiarlo quando vuoi dall'alto della barra laterale.",
5686
+ "later": "Non ora"
5687
+ }
5688
+ },
5668
5689
  "common": {
5669
5690
  "loading": "Caricamento…",
5670
5691
  "save": "Salva",
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "Un’esecuzione fallita",
7454
7475
  "infrastructure": "Un backend di esecuzione collegato a questo workspace",
7455
7476
  "advancedTier": "La modalità interfaccia avanzata",
7477
+ "fullSurface": "Il ruolo Ingegnere o Responsabile di prodotto",
7456
7478
  "designSource": "Una sorgente di design collegata"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "Controlli della board",
7495
7517
  "body": "Con questi controlli ingrandisci, riduci o adatti l’intera board alla vista."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "Il tuo ruolo",
7521
+ "body": "La board si adatta al lavoro che fai: ingegneri e responsabili di prodotto vedono tutte le superfici, i designer una più semplice che porta dentro il lavoro e lo segue. Puoi cambiarlo qui quando vuoi."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "Base e avanzata",
7499
7525
  "body": "L'interfaccia parte in modalità base, che mostra le superfici di lavoro quotidiane. Passa qui ad avanzata quando vuoi anche quelle di sperimentazione, avvio dei repository e gestione operativa."
@@ -32,6 +32,25 @@
32
32
  "switchTo": "{mode}に切り替える",
33
33
  "pinned": "このデプロイで設定されています"
34
34
  },
35
+ "uiRole": {
36
+ "switcher": "あなたの役割",
37
+ "roles": {
38
+ "engineer": "エンジニア",
39
+ "productManager": "プロダクトマネージャー",
40
+ "designer": "デザイナー"
41
+ },
42
+ "hints": {
43
+ "engineer": "すべて。作業の計画、実行、レビューとマージ、そして実行基盤の設定まで。",
44
+ "productManager": "エンジニアと同じ画面です。作業を計画し、実行し、マージまで見届けます。",
45
+ "designer": "よりシンプルなボード。すでにあるサービス、進行中の作業、そしてデザインや課題から作る新しいタスクだけ。"
46
+ },
47
+ "prompt": {
48
+ "title": "どのような仕事をしていますか?",
49
+ "intro": "最も近いものを選ぶと、その仕事に必要な画面でアプリが開きます。変わるのは表示される内容だけで、権限は変わりません。",
50
+ "change": "サイドバー上部からいつでも変更できます。",
51
+ "later": "後にする"
52
+ }
53
+ },
35
54
  "common": {
36
55
  "loading": "読み込み中…",
37
56
  "save": "保存",
@@ -2387,6 +2406,7 @@
2387
2406
  "shortcuts": "キーボードショートカット",
2388
2407
  "bugHunt": "バグハント",
2389
2408
  "toggleUiMode": "インターフェースモードを切り替え",
2409
+ "chooseRole": "役割を変更",
2390
2410
  "foundationalServices": "基盤サービス",
2391
2411
  "notificationSettings": "通知ルーティングを管理"
2392
2412
  },
@@ -2411,6 +2431,7 @@
2411
2431
  "shortcuts": "キーボード ショートカット キー ヘルプ",
2412
2432
  "bugHunt": "bug バグ ハント トリアージ バックログ 課題 未割り当て",
2413
2433
  "toggleUiMode": "インターフェース モード 基本 詳細 表示 非表示",
2434
+ "chooseRole": "役割 ロール エンジニア プロダクトマネージャー デザイナー 簡易表示",
2414
2435
  "tutorial": "チュートリアル ツアー ガイド ヘルプ 使い方 オンボーディング",
2415
2436
  "foundationalServices": "共通機能 プラットフォーム サービス api コントラクト openapi カタログ",
2416
2437
  "notificationSettings": "通知 メール ルーティング チャネル 受信箱"
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "失敗した実行",
7454
7475
  "infrastructure": "このワークスペースに接続された実行バックエンド",
7455
7476
  "advancedTier": "詳細インターフェースモード",
7477
+ "fullSurface": "エンジニアまたはプロダクトマネージャーの役割",
7456
7478
  "designSource": "接続済みのデザインソース"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "ボードの操作",
7495
7517
  "body": "これらのコントロールでズームイン・ズームアウトしたり、ボード全体を表示に収めたりできます。"
7496
7518
  },
7519
+ "role": {
7520
+ "title": "あなたの役割",
7521
+ "body": "ボードは仕事に合わせて調整されます。エンジニアとプロダクトマネージャーはすべての画面を、デザイナーは作業を取り込んで追いかけるためのシンプルな画面を使います。ここでいつでも変更できます。"
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "ベーシックとアドバンスト",
7499
7525
  "body": "画面は日々の作業に必要なものだけを表示するベーシックモードで始まります。実験用、リポジトリ立ち上げ用、運用向けの画面も使いたくなったら、ここでアドバンストに切り替えてください。"
@@ -32,6 +32,25 @@
32
32
  "switchTo": "Przełącz na {mode}",
33
33
  "pinned": "Ustawione przez to wdrożenie"
34
34
  },
35
+ "uiRole": {
36
+ "switcher": "Twoja rola",
37
+ "roles": {
38
+ "engineer": "Inżynier",
39
+ "productManager": "Menedżer produktu",
40
+ "designer": "Projektant"
41
+ },
42
+ "hints": {
43
+ "engineer": "Wszystko: planowanie pracy, uruchamianie, przegląd i scalanie oraz konfiguracja platformy, na której to działa.",
44
+ "productManager": "Te same powierzchnie co u inżyniera: planowanie pracy, uruchamianie i prowadzenie jej aż do scalenia.",
45
+ "designer": "Prostsza tablica: usługi, które już na niej są, praca w toku i nowe zadania z projektu lub zgłoszenia."
46
+ },
47
+ "prompt": {
48
+ "title": "Nad czym pracujesz?",
49
+ "intro": "Wybierz najbliższą opcję, a aplikacja otworzy się na powierzchniach potrzebnych do tej pracy. To zmienia to, co WIDZISZ, a nie to, co możesz zrobić.",
50
+ "change": "Możesz to zmienić w dowolnym momencie u góry panelu bocznego.",
51
+ "later": "Nie teraz"
52
+ }
53
+ },
35
54
  "common": {
36
55
  "loading": "Ładowanie…",
37
56
  "save": "Zapisz",
@@ -2387,6 +2406,7 @@
2387
2406
  "shortcuts": "Skróty klawiszowe",
2388
2407
  "bugHunt": "Polowanie na błędy",
2389
2408
  "toggleUiMode": "Zmień tryb interfejsu",
2409
+ "chooseRole": "Zmień swoją rolę",
2390
2410
  "foundationalServices": "Usługi fundamentalne",
2391
2411
  "notificationSettings": "Zarządzaj routingiem powiadomień"
2392
2412
  },
@@ -2411,6 +2431,7 @@
2411
2431
  "shortcuts": "skróty klawiatura klawisze pomoc",
2412
2432
  "bugHunt": "błąd bug polowanie triage zaległości zgłoszenia nieprzypisane",
2413
2433
  "toggleUiMode": "interfejs tryb podstawowy zaawansowany pokaż ukryj",
2434
+ "chooseRole": "rola inżynier menedżer produktu projektant persona prostszy widok",
2414
2435
  "tutorial": "samouczek przewodnik pomoc nauka wprowadzenie",
2415
2436
  "foundationalServices": "wspólna możliwość platforma usługa api kontrakt openapi katalog",
2416
2437
  "notificationSettings": "powiadomienia e-mail routing kanały skrzynka"
@@ -7453,6 +7474,7 @@
7453
7474
  "failedRun": "Nieudane uruchomienie",
7454
7475
  "infrastructure": "Backend wykonawczy podłączony do tego workspace’u",
7455
7476
  "advancedTier": "Zaawansowany tryb interfejsu",
7477
+ "fullSurface": "Rola inżyniera lub menedżera produktu",
7456
7478
  "designSource": "Podłączone źródło projektów"
7457
7479
  },
7458
7480
  "overlay": {
@@ -7494,6 +7516,10 @@
7494
7516
  "title": "Sterowanie tablicą",
7495
7517
  "body": "Tymi przyciskami przybliżasz, oddalasz lub dopasowujesz całą tablicę do widoku."
7496
7518
  },
7519
+ "role": {
7520
+ "title": "Twoja rola",
7521
+ "body": "Tablica dostosowuje się do twojej pracy: inżynierowie i menedżerowie produktu widzą wszystkie powierzchnie, projektanci prostszą, która wprowadza pracę i ją śledzi. Możesz to zmienić tutaj w każdej chwili."
7522
+ },
7497
7523
  "interfaceTier": {
7498
7524
  "title": "Tryb podstawowy i zaawansowany",
7499
7525
  "body": "Interfejs startuje w trybie podstawowym, który pokazuje codzienne powierzchnie pracy. Przełącz się tutaj na zaawansowany, gdy potrzebujesz także powierzchni do eksperymentów, zakładania repozytoriów i pracy operacyjnej."