@cat-factory/app 0.80.0 → 0.82.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.
@@ -13,6 +13,7 @@ import { useAgentConfigStore } from '~/stores/agentConfig'
13
13
  import { useModelPresetsStore } from '~/stores/modelPresets'
14
14
  import { useServiceFragmentDefaultsStore } from '~/stores/serviceFragmentDefaults'
15
15
  import { useRecurringPipelinesStore } from '~/stores/recurringPipelines'
16
+ import { useInitiativesStore } from '~/stores/initiative'
16
17
  import { useServicesStore } from '~/stores/services'
17
18
  import { useAgentsStore } from '~/stores/agents'
18
19
  import { useTrackerStore } from '~/stores/tracker'
@@ -82,6 +83,7 @@ export const useWorkspaceStore = defineStore(
82
83
  useBrainstormStore().reset()
83
84
  useConsensusStore().reset()
84
85
  useGitHubStore().reset()
86
+ useInitiativesStore().reset()
85
87
  // The fragment picker catalog is per-board (the merged tenant catalog), so drop
86
88
  // it too — the next inspector open re-fetches it for the switched-to board rather
87
89
  // than showing the previous board's (or a raw-id placeholder for) fragments.
@@ -109,6 +111,7 @@ export const useWorkspaceStore = defineStore(
109
111
  useModelPresetsStore().hydrate(snapshot.modelPresets ?? [])
110
112
  useServiceFragmentDefaultsStore().hydrate(snapshot.serviceFragmentDefaults?.fragmentIds)
111
113
  useRecurringPipelinesStore().hydrate(snapshot.recurringPipelines ?? [])
114
+ useInitiativesStore().hydrate(snapshot.initiatives)
112
115
  useTrackerStore().hydrate(snapshot.trackerSettings)
113
116
  useServicesStore().hydrate(snapshot.mounts ?? [], snapshot.serviceCatalog ?? [])
114
117
  // Merge the deployment's registered custom agent kinds into the palette catalog so a
@@ -134,3 +134,4 @@ export type * from './merge'
134
134
  export type * from './services'
135
135
  export type * from './recurring'
136
136
  export type * from './tracker'
137
+ export type * from './initiative'
@@ -0,0 +1,18 @@
1
+ // Initiative wire shapes, re-exported from the shared contracts package (the single
2
+ // source of truth across the wire boundary). The SPA imports these through
3
+ // `~/types/domain` like every other domain type.
4
+ export type {
5
+ CreateInitiativeInput,
6
+ Initiative,
7
+ InitiativeDecision,
8
+ InitiativeDeviation,
9
+ InitiativeEstimate,
10
+ InitiativeExecutionPolicy,
11
+ InitiativeFollowUp,
12
+ InitiativeItem,
13
+ InitiativeItemStatus,
14
+ InitiativePhase,
15
+ InitiativePipelineRule,
16
+ InitiativeQa,
17
+ InitiativeStatus,
18
+ } from '@cat-factory/contracts'
@@ -344,6 +344,29 @@ export const SYSTEM_AGENT_META: Record<string, AgentArchetype> = {
344
344
  color: '#22d3ee',
345
345
  description: 'Maps the repository into the service → modules blueprint.',
346
346
  },
347
+ // The Initiative Planning pipeline's two steps. Only runnable on an initiative
348
+ // block (pl_initiative — enforced by the engine), so they are display-metadata
349
+ // system kinds, never palette archetypes.
350
+ 'initiative-planner': {
351
+ kind: 'initiative-planner',
352
+ label: 'Initiative Planner',
353
+ icon: 'i-lucide-milestone',
354
+ color: '#818cf8',
355
+ description:
356
+ "Explores the codebase and drafts the initiative's multi-phase plan (items, estimates, concurrency + pipeline policy) for approval.",
357
+ // Opens the dedicated tracker window (phases / items / policy) instead of the
358
+ // generic prose step-detail panel.
359
+ resultView: 'initiative-tracker',
360
+ },
361
+ 'initiative-committer': {
362
+ kind: 'initiative-committer',
363
+ label: 'Initiative Committer',
364
+ icon: 'i-lucide-git-commit-horizontal',
365
+ color: '#818cf8',
366
+ description:
367
+ 'Persists the approved plan and commits the in-repo tracker (docs/initiatives/<slug>/), arming the execution loop. Runs no model.',
368
+ resultView: 'initiative-tracker',
369
+ },
347
370
  // A read-only repository audit that emits a prioritized findings report. Not a palette
348
371
  // archetype (it is only seeded into the recurring tech-debt pipeline), so it lives here
349
372
  // for run-timeline / saved-pipeline display rather than in AGENT_ARCHETYPES.
@@ -479,6 +502,7 @@ export const MODEL_CONFIGURABLE_SYSTEM_KINDS: AgentArchetype[] = [
479
502
  ...[
480
503
  'spec-writer',
481
504
  'blueprints',
505
+ 'initiative-planner',
482
506
  'conflict-resolver',
483
507
  'ci-fixer',
484
508
  'fixer',
@@ -0,0 +1,57 @@
1
+ import type { InitiativeItem, InitiativeItemStatus, InitiativeStatus } from '~/types/domain'
2
+
3
+ // Shared initiative presentation vocabulary, so the board card, the inspector body and
4
+ // the tracker window render statuses/progress from ONE source. The exhaustive
5
+ // `Record<Enum, string>` maps keep the tier-2 typecheck guard live (a new status without
6
+ // a label/chip fails the build) without triplicating it across the components.
7
+
8
+ /** Initiative lifecycle status → i18n label key. */
9
+ export const INITIATIVE_STATUS_LABEL_KEYS: Record<InitiativeStatus, string> = {
10
+ planning: 'initiative.status.planning',
11
+ awaiting_approval: 'initiative.status.awaiting_approval',
12
+ executing: 'initiative.status.executing',
13
+ paused: 'initiative.status.paused',
14
+ done: 'initiative.status.done',
15
+ cancelled: 'initiative.status.cancelled',
16
+ }
17
+
18
+ /** Initiative lifecycle status → Nuxt UI badge colour. */
19
+ export const INITIATIVE_STATUS_CHIPS: Record<InitiativeStatus, string> = {
20
+ planning: 'neutral',
21
+ awaiting_approval: 'warning',
22
+ executing: 'info',
23
+ paused: 'neutral',
24
+ done: 'success',
25
+ cancelled: 'neutral',
26
+ }
27
+
28
+ /** Tracker item status → i18n label key. */
29
+ export const INITIATIVE_ITEM_STATUS_LABEL_KEYS: Record<InitiativeItemStatus, string> = {
30
+ pending: 'initiative.itemStatus.pending',
31
+ in_progress: 'initiative.itemStatus.in_progress',
32
+ pr_open: 'initiative.itemStatus.pr_open',
33
+ done: 'initiative.itemStatus.done',
34
+ blocked: 'initiative.itemStatus.blocked',
35
+ skipped: 'initiative.itemStatus.skipped',
36
+ }
37
+
38
+ /** Tracker item status → Nuxt UI badge colour. */
39
+ export const INITIATIVE_ITEM_STATUS_CHIPS: Record<InitiativeItemStatus, string> = {
40
+ pending: 'neutral',
41
+ in_progress: 'info',
42
+ pr_open: 'warning',
43
+ done: 'success',
44
+ blocked: 'error',
45
+ skipped: 'neutral',
46
+ }
47
+
48
+ /** Item statuses that count as settled — mirrors the backend terminal-status set. */
49
+ const SETTLED: ReadonlySet<InitiativeItemStatus> = new Set(['done', 'skipped'])
50
+
51
+ /** Completion rollup across an initiative's items, or null when there are none. */
52
+ export function initiativeProgress(
53
+ items: InitiativeItem[] | undefined,
54
+ ): { settled: number; total: number } | null {
55
+ if (!items || items.length === 0) return null
56
+ return { settled: items.filter((i) => SETTLED.has(i.status)).length, total: items.length }
57
+ }
@@ -275,7 +275,8 @@
275
275
  "dragService": "Drag service",
276
276
  "dragTask": "Drag task",
277
277
  "dragToResize": "Drag to resize",
278
- "addFirstTask": "Add the first task"
278
+ "addFirstTask": "Add the first task",
279
+ "createInitiativeTitle": "Create initiative"
279
280
  },
280
281
  "decisionBadge": {
281
282
  "decisionNeeded": "Decision needed",
@@ -3078,6 +3079,9 @@
3078
3079
  "findings": "Findings",
3079
3080
  "open": "Open",
3080
3081
  "answered": "Answered",
3082
+ "recommendations": "Recommendations",
3083
+ "recsGenerating": "Generating",
3084
+ "recsToReview": "To review",
3081
3085
  "model": "Model"
3082
3086
  },
3083
3087
  "actions": {
@@ -4068,5 +4072,70 @@
4068
4072
  "saveArchFailed": "Could not save reference architecture",
4069
4073
  "deleteFailed": "Could not delete"
4070
4074
  }
4075
+ },
4076
+ "initiative": {
4077
+ "create": {
4078
+ "title": "Create initiative",
4079
+ "inFrame": "New initiative in {frame}",
4080
+ "titleField": "Title",
4081
+ "titlePlaceholder": "e.g. Migrate the API to the new auth model",
4082
+ "goalField": "Goal",
4083
+ "goalPlaceholder": "Describe the goal, constraints and rough scope. The planner refines this into a multi-phase plan.",
4084
+ "hint": "Nothing runs yet: after creating, run the Initiative Planning pipeline on the block. It analyses the codebase and drafts the multi-phase plan for your approval.",
4085
+ "submit": "Create initiative",
4086
+ "failedTitle": "Could not create the initiative"
4087
+ },
4088
+ "status": {
4089
+ "planning": "Planning",
4090
+ "awaiting_approval": "Awaiting approval",
4091
+ "executing": "Executing",
4092
+ "paused": "Paused",
4093
+ "done": "Done",
4094
+ "cancelled": "Cancelled"
4095
+ },
4096
+ "itemStatus": {
4097
+ "pending": "Pending",
4098
+ "in_progress": "In progress",
4099
+ "pr_open": "PR open",
4100
+ "done": "Done",
4101
+ "blocked": "Blocked",
4102
+ "skipped": "Skipped"
4103
+ },
4104
+ "card": {
4105
+ "kind": "Initiative",
4106
+ "progress": "{done}/{total} items done",
4107
+ "openTracker": "Open tracker"
4108
+ },
4109
+ "tracker": {
4110
+ "title": "Initiative tracker",
4111
+ "subtitle": "Phases, work items, decisions and progress of this initiative",
4112
+ "empty": "No initiative found for this block.",
4113
+ "goal": "Goal",
4114
+ "constraints": "Constraints",
4115
+ "nonGoals": "Non-goals",
4116
+ "analysis": "Codebase analysis",
4117
+ "noPlan": "No plan yet. Run the Initiative Planning pipeline to draft the multi-phase plan.",
4118
+ "phase": "Phase: {title}",
4119
+ "colItem": "Item",
4120
+ "colStatus": "Status",
4121
+ "colPr": "PR",
4122
+ "dependsOn": "Depends on: {items}",
4123
+ "prLink": "PR",
4124
+ "policy": "Execution policy",
4125
+ "maxConcurrent": "Max concurrent tasks: {count}",
4126
+ "defaultPipeline": "Default pipeline:",
4127
+ "axisComplexity": "complexity >= {value}",
4128
+ "axisRisk": "risk >= {value}",
4129
+ "axisImpact": "impact >= {value}",
4130
+ "axisNever": "never matches (no thresholds)",
4131
+ "decisions": "Decisions",
4132
+ "deviations": "Deviations",
4133
+ "followUps": "Follow-ups",
4134
+ "caveats": "Known caveats"
4135
+ },
4136
+ "inspector": {
4137
+ "runPlanning": "Run planning",
4138
+ "hint": "The planning pipeline explores the codebase, drafts the multi-phase plan for approval, then commits the tracker document to the repository."
4139
+ }
4071
4140
  }
4072
4141
  }
@@ -245,7 +245,8 @@
245
245
  "dragService": "Arrastrar servicio",
246
246
  "dragTask": "Arrastrar tarea",
247
247
  "dragToResize": "Arrastra para cambiar el tamaño",
248
- "addFirstTask": "Añade la primera tarea"
248
+ "addFirstTask": "Añade la primera tarea",
249
+ "createInitiativeTitle": "Crear iniciativa"
249
250
  },
250
251
  "decisionBadge": {
251
252
  "decisionNeeded": "Decisión necesaria",
@@ -2982,6 +2983,9 @@
2982
2983
  "findings": "Hallazgos",
2983
2984
  "open": "Abiertos",
2984
2985
  "answered": "Respondidos",
2986
+ "recommendations": "Recomendaciones",
2987
+ "recsGenerating": "Generando",
2988
+ "recsToReview": "Por revisar",
2985
2989
  "model": "Modelo"
2986
2990
  },
2987
2991
  "actions": {
@@ -3949,5 +3953,70 @@
3949
3953
  "reseedFailed": "No se pudo regenerar el preset de fusión"
3950
3954
  }
3951
3955
  }
3956
+ },
3957
+ "initiative": {
3958
+ "create": {
3959
+ "title": "Crear iniciativa",
3960
+ "inFrame": "Nueva iniciativa en {frame}",
3961
+ "titleField": "Titulo",
3962
+ "titlePlaceholder": "p. ej. Migrar la API al nuevo modelo de autenticacion",
3963
+ "goalField": "Objetivo",
3964
+ "goalPlaceholder": "Describe el objetivo, las restricciones y el alcance aproximado. El planificador lo refina en un plan multifase.",
3965
+ "hint": "Todavia no se ejecuta nada: tras crearla, ejecuta el pipeline de planificacion de iniciativas sobre el bloque. Analiza el codigo y redacta el plan multifase para tu aprobacion.",
3966
+ "submit": "Crear iniciativa",
3967
+ "failedTitle": "No se pudo crear la iniciativa"
3968
+ },
3969
+ "status": {
3970
+ "planning": "Planificando",
3971
+ "awaiting_approval": "Pendiente de aprobacion",
3972
+ "executing": "En ejecucion",
3973
+ "paused": "En pausa",
3974
+ "done": "Completada",
3975
+ "cancelled": "Cancelada"
3976
+ },
3977
+ "itemStatus": {
3978
+ "pending": "Pendiente",
3979
+ "in_progress": "En curso",
3980
+ "pr_open": "PR abierta",
3981
+ "done": "Completado",
3982
+ "blocked": "Bloqueado",
3983
+ "skipped": "Omitido"
3984
+ },
3985
+ "card": {
3986
+ "kind": "Iniciativa",
3987
+ "progress": "{done}/{total} elementos completados",
3988
+ "openTracker": "Abrir seguimiento"
3989
+ },
3990
+ "tracker": {
3991
+ "title": "Seguimiento de la iniciativa",
3992
+ "subtitle": "Fases, elementos de trabajo, decisiones y progreso de esta iniciativa",
3993
+ "empty": "No se encontro ninguna iniciativa para este bloque.",
3994
+ "goal": "Objetivo",
3995
+ "constraints": "Restricciones",
3996
+ "nonGoals": "Fuera de alcance",
3997
+ "analysis": "Analisis del codigo",
3998
+ "noPlan": "Aun no hay plan. Ejecuta el pipeline de planificacion para redactar el plan multifase.",
3999
+ "phase": "Fase: {title}",
4000
+ "colItem": "Elemento",
4001
+ "colStatus": "Estado",
4002
+ "colPr": "PR",
4003
+ "dependsOn": "Depende de: {items}",
4004
+ "prLink": "PR",
4005
+ "policy": "Politica de ejecucion",
4006
+ "maxConcurrent": "Tareas concurrentes maximas: {count}",
4007
+ "defaultPipeline": "Pipeline por defecto:",
4008
+ "axisComplexity": "complejidad >= {value}",
4009
+ "axisRisk": "riesgo >= {value}",
4010
+ "axisImpact": "impacto >= {value}",
4011
+ "axisNever": "nunca coincide (sin umbrales)",
4012
+ "decisions": "Decisiones",
4013
+ "deviations": "Desviaciones",
4014
+ "followUps": "Seguimientos",
4015
+ "caveats": "Advertencias conocidas"
4016
+ },
4017
+ "inspector": {
4018
+ "runPlanning": "Ejecutar planificacion",
4019
+ "hint": "El pipeline de planificacion explora el codigo, redacta el plan multifase para su aprobacion y luego confirma el documento de seguimiento en el repositorio."
4020
+ }
3952
4021
  }
3953
4022
  }
@@ -245,7 +245,8 @@
245
245
  "dragService": "Faire glisser le service",
246
246
  "dragTask": "Faire glisser la tâche",
247
247
  "dragToResize": "Glisser pour redimensionner",
248
- "addFirstTask": "Ajouter la première tâche"
248
+ "addFirstTask": "Ajouter la première tâche",
249
+ "createInitiativeTitle": "Creer une initiative"
249
250
  },
250
251
  "decisionBadge": {
251
252
  "decisionNeeded": "Décision requise",
@@ -2982,6 +2983,9 @@
2982
2983
  "findings": "Observations",
2983
2984
  "open": "Ouvertes",
2984
2985
  "answered": "Répondues",
2986
+ "recommendations": "Recommandations",
2987
+ "recsGenerating": "En cours",
2988
+ "recsToReview": "À examiner",
2985
2989
  "model": "Modèle"
2986
2990
  },
2987
2991
  "actions": {
@@ -3949,5 +3953,70 @@
3949
3953
  "reseedFailed": "Impossible de régénérer le preset de fusion"
3950
3954
  }
3951
3955
  }
3956
+ },
3957
+ "initiative": {
3958
+ "create": {
3959
+ "title": "Creer une initiative",
3960
+ "inFrame": "Nouvelle initiative dans {frame}",
3961
+ "titleField": "Titre",
3962
+ "titlePlaceholder": "p. ex. Migrer l'API vers le nouveau modele d'authentification",
3963
+ "goalField": "Objectif",
3964
+ "goalPlaceholder": "Decrivez l'objectif, les contraintes et le perimetre approximatif. Le planificateur l'affine en un plan multiphase.",
3965
+ "hint": "Rien ne s'execute encore : apres la creation, lancez le pipeline de planification d'initiative sur le bloc. Il analyse le code et redige le plan multiphase pour votre approbation.",
3966
+ "submit": "Creer l'initiative",
3967
+ "failedTitle": "Impossible de creer l'initiative"
3968
+ },
3969
+ "status": {
3970
+ "planning": "Planification",
3971
+ "awaiting_approval": "En attente d'approbation",
3972
+ "executing": "En cours d'execution",
3973
+ "paused": "En pause",
3974
+ "done": "Terminee",
3975
+ "cancelled": "Annulee"
3976
+ },
3977
+ "itemStatus": {
3978
+ "pending": "En attente",
3979
+ "in_progress": "En cours",
3980
+ "pr_open": "PR ouverte",
3981
+ "done": "Termine",
3982
+ "blocked": "Bloque",
3983
+ "skipped": "Ignore"
3984
+ },
3985
+ "card": {
3986
+ "kind": "Initiative",
3987
+ "progress": "{done}/{total} elements termines",
3988
+ "openTracker": "Ouvrir le suivi"
3989
+ },
3990
+ "tracker": {
3991
+ "title": "Suivi de l'initiative",
3992
+ "subtitle": "Phases, elements de travail, decisions et progression de cette initiative",
3993
+ "empty": "Aucune initiative trouvee pour ce bloc.",
3994
+ "goal": "Objectif",
3995
+ "constraints": "Contraintes",
3996
+ "nonGoals": "Hors perimetre",
3997
+ "analysis": "Analyse du code",
3998
+ "noPlan": "Pas encore de plan. Lancez le pipeline de planification pour rediger le plan multiphase.",
3999
+ "phase": "Phase : {title}",
4000
+ "colItem": "Element",
4001
+ "colStatus": "Statut",
4002
+ "colPr": "PR",
4003
+ "dependsOn": "Depend de : {items}",
4004
+ "prLink": "PR",
4005
+ "policy": "Politique d'execution",
4006
+ "maxConcurrent": "Taches concurrentes maximum : {count}",
4007
+ "defaultPipeline": "Pipeline par defaut :",
4008
+ "axisComplexity": "complexite >= {value}",
4009
+ "axisRisk": "risque >= {value}",
4010
+ "axisImpact": "impact >= {value}",
4011
+ "axisNever": "ne correspond jamais (aucun seuil)",
4012
+ "decisions": "Decisions",
4013
+ "deviations": "Ecarts",
4014
+ "followUps": "Suites a donner",
4015
+ "caveats": "Limites connues"
4016
+ },
4017
+ "inspector": {
4018
+ "runPlanning": "Lancer la planification",
4019
+ "hint": "Le pipeline de planification explore le code, redige le plan multiphase pour approbation, puis valide le document de suivi dans le depot."
4020
+ }
3952
4021
  }
3953
4022
  }
@@ -245,7 +245,8 @@
245
245
  "dragService": "גרור שירות",
246
246
  "dragTask": "גרור משימה",
247
247
  "dragToResize": "גרור לשינוי גודל",
248
- "addFirstTask": "הוסף את המשימה הראשונה"
248
+ "addFirstTask": "הוסף את המשימה הראשונה",
249
+ "createInitiativeTitle": "יצירת יוזמה"
249
250
  },
250
251
  "decisionBadge": {
251
252
  "decisionNeeded": "נדרשת החלטה",
@@ -2993,6 +2994,9 @@
2993
2994
  "findings": "ממצאים",
2994
2995
  "open": "פתוחים",
2995
2996
  "answered": "נענו",
2997
+ "recommendations": "המלצות",
2998
+ "recsGenerating": "בתהליך יצירה",
2999
+ "recsToReview": "לבדיקה",
2996
3000
  "model": "מודל"
2997
3001
  },
2998
3002
  "actions": {
@@ -3960,5 +3964,70 @@
3960
3964
  "reseedFailed": "לא ניתן לזרוע מחדש את קביעת המיזוג"
3961
3965
  }
3962
3966
  }
3967
+ },
3968
+ "initiative": {
3969
+ "create": {
3970
+ "title": "יצירת יוזמה",
3971
+ "inFrame": "יוזמה חדשה ב-{frame}",
3972
+ "titleField": "כותרת",
3973
+ "titlePlaceholder": "לדוגמה: העברת ה-API למודל האימות החדש",
3974
+ "goalField": "מטרה",
3975
+ "goalPlaceholder": "תארו את המטרה, המגבלות והיקף משוער. המתכנן מזקק זאת לתוכנית רב-שלבית.",
3976
+ "hint": "שום דבר לא רץ עדיין: לאחר היצירה, הריצו את צינור תכנון היוזמה על הבלוק. הוא מנתח את הקוד ומנסח את התוכנית הרב-שלבית לאישורכם.",
3977
+ "submit": "יצירת יוזמה",
3978
+ "failedTitle": "לא ניתן היה ליצור את היוזמה"
3979
+ },
3980
+ "status": {
3981
+ "planning": "בתכנון",
3982
+ "awaiting_approval": "ממתין לאישור",
3983
+ "executing": "בביצוע",
3984
+ "paused": "מושהה",
3985
+ "done": "הושלם",
3986
+ "cancelled": "בוטל"
3987
+ },
3988
+ "itemStatus": {
3989
+ "pending": "ממתין",
3990
+ "in_progress": "בתהליך",
3991
+ "pr_open": "PR פתוח",
3992
+ "done": "הושלם",
3993
+ "blocked": "חסום",
3994
+ "skipped": "דולג"
3995
+ },
3996
+ "card": {
3997
+ "kind": "יוזמה",
3998
+ "progress": "{done}/{total} פריטים הושלמו",
3999
+ "openTracker": "פתיחת מעקב"
4000
+ },
4001
+ "tracker": {
4002
+ "title": "מעקב יוזמה",
4003
+ "subtitle": "שלבים, פריטי עבודה, החלטות והתקדמות של יוזמה זו",
4004
+ "empty": "לא נמצאה יוזמה עבור בלוק זה.",
4005
+ "goal": "מטרה",
4006
+ "constraints": "מגבלות",
4007
+ "nonGoals": "מחוץ להיקף",
4008
+ "analysis": "ניתוח הקוד",
4009
+ "noPlan": "אין עדיין תוכנית. הריצו את צינור תכנון היוזמה כדי לנסח את התוכנית הרב-שלבית.",
4010
+ "phase": "שלב: {title}",
4011
+ "colItem": "פריט",
4012
+ "colStatus": "סטטוס",
4013
+ "colPr": "PR",
4014
+ "dependsOn": "תלוי ב: {items}",
4015
+ "prLink": "PR",
4016
+ "policy": "מדיניות ביצוע",
4017
+ "maxConcurrent": "מקסימום משימות במקביל: {count}",
4018
+ "defaultPipeline": "צינור ברירת מחדל:",
4019
+ "axisComplexity": "מורכבות >= {value}",
4020
+ "axisRisk": "סיכון >= {value}",
4021
+ "axisImpact": "השפעה >= {value}",
4022
+ "axisNever": "לעולם לא תואם (ללא ספים)",
4023
+ "decisions": "החלטות",
4024
+ "deviations": "סטיות",
4025
+ "followUps": "משימות המשך",
4026
+ "caveats": "הסתייגויות ידועות"
4027
+ },
4028
+ "inspector": {
4029
+ "runPlanning": "הרצת תכנון",
4030
+ "hint": "צינור התכנון חוקר את הקוד, מנסח את התוכנית הרב-שלבית לאישור, ואז שומר את מסמך המעקב במאגר."
4031
+ }
3963
4032
  }
3964
4033
  }
@@ -245,7 +245,8 @@
245
245
  "dragService": "サービスをドラッグ",
246
246
  "dragTask": "タスクをドラッグ",
247
247
  "dragToResize": "ドラッグしてサイズ変更",
248
- "addFirstTask": "最初のタスクを追加"
248
+ "addFirstTask": "最初のタスクを追加",
249
+ "createInitiativeTitle": "イニシアチブを作成"
249
250
  },
250
251
  "decisionBadge": {
251
252
  "decisionNeeded": "判断が必要",
@@ -2995,6 +2996,9 @@
2995
2996
  "findings": "所見",
2996
2997
  "open": "未対応",
2997
2998
  "answered": "回答済み",
2999
+ "recommendations": "推奨事項",
3000
+ "recsGenerating": "生成中",
3001
+ "recsToReview": "確認待ち",
2998
3002
  "model": "モデル"
2999
3003
  },
3000
3004
  "actions": {
@@ -3962,5 +3966,70 @@
3962
3966
  "reseedFailed": "マージプリセットを再シードできませんでした"
3963
3967
  }
3964
3968
  }
3969
+ },
3970
+ "initiative": {
3971
+ "create": {
3972
+ "title": "イニシアチブを作成",
3973
+ "inFrame": "{frame} の新しいイニシアチブ",
3974
+ "titleField": "タイトル",
3975
+ "titlePlaceholder": "例: API を新しい認証モデルへ移行する",
3976
+ "goalField": "ゴール",
3977
+ "goalPlaceholder": "ゴール、制約、おおまかなスコープを記述してください。プランナーが複数フェーズの計画に練り上げます。",
3978
+ "hint": "この時点では何も実行されません。作成後、このブロックでイニシアチブ計画パイプラインを実行してください。コードベースを分析し、承認用の複数フェーズ計画を起草します。",
3979
+ "submit": "イニシアチブを作成",
3980
+ "failedTitle": "イニシアチブを作成できませんでした"
3981
+ },
3982
+ "status": {
3983
+ "planning": "計画中",
3984
+ "awaiting_approval": "承認待ち",
3985
+ "executing": "実行中",
3986
+ "paused": "一時停止",
3987
+ "done": "完了",
3988
+ "cancelled": "キャンセル"
3989
+ },
3990
+ "itemStatus": {
3991
+ "pending": "未着手",
3992
+ "in_progress": "進行中",
3993
+ "pr_open": "PR オープン",
3994
+ "done": "完了",
3995
+ "blocked": "ブロック中",
3996
+ "skipped": "スキップ"
3997
+ },
3998
+ "card": {
3999
+ "kind": "イニシアチブ",
4000
+ "progress": "{done}/{total} 項目完了",
4001
+ "openTracker": "トラッカーを開く"
4002
+ },
4003
+ "tracker": {
4004
+ "title": "イニシアチブトラッカー",
4005
+ "subtitle": "このイニシアチブのフェーズ、作業項目、決定事項、進捗",
4006
+ "empty": "このブロックにイニシアチブが見つかりません。",
4007
+ "goal": "ゴール",
4008
+ "constraints": "制約",
4009
+ "nonGoals": "対象外",
4010
+ "analysis": "コードベース分析",
4011
+ "noPlan": "まだ計画がありません。イニシアチブ計画パイプラインを実行して複数フェーズの計画を起草してください。",
4012
+ "phase": "フェーズ: {title}",
4013
+ "colItem": "項目",
4014
+ "colStatus": "ステータス",
4015
+ "colPr": "PR",
4016
+ "dependsOn": "依存: {items}",
4017
+ "prLink": "PR",
4018
+ "policy": "実行ポリシー",
4019
+ "maxConcurrent": "最大同時タスク数: {count}",
4020
+ "defaultPipeline": "デフォルトパイプライン:",
4021
+ "axisComplexity": "複雑度 >= {value}",
4022
+ "axisRisk": "リスク >= {value}",
4023
+ "axisImpact": "影響度 >= {value}",
4024
+ "axisNever": "一致しない (しきい値なし)",
4025
+ "decisions": "決定事項",
4026
+ "deviations": "逸脱",
4027
+ "followUps": "フォローアップ",
4028
+ "caveats": "既知の注意点"
4029
+ },
4030
+ "inspector": {
4031
+ "runPlanning": "計画を実行",
4032
+ "hint": "計画パイプラインはコードベースを調査し、承認用の複数フェーズ計画を起草し、その後トラッカー文書をリポジトリにコミットします。"
4033
+ }
3965
4034
  }
3966
4035
  }