Sistema de códigos jerárquicos 2-niveles + asignación determinista post-IA
- hierarchy.ts: Spike (S) agregado, buildHierarchyPath genera [E01-F04] (2 niveles)
Legacy [E05-F04-U01] preservado (regex opcional 3er segmento)
- hierarchy-generator.ts (nuevo): analyzeExisting() computa contadores por épica+tipo
assignEpicCodes() asigna E{max+1} secuencial
assignItemCodes() asigna {epic}-{tipo}{n+1} a cada HU dentro de su épica
- project-analyzer.ts: post-procesa épicas y HUs con generador de códigos
saveEpicDrafts usa epicCode en metadata y título con [E01]
- prompts-db.ts: prompt FASE 2 instruye a la IA a no generar códigos
- workitems.ts: EnrichedEpic._epicCode, EnrichedUserStory._epicCode/_itemCode
- DashboardView: muestra códigos en drafts y tabla de épicas
This commit is contained in:
@@ -19,12 +19,15 @@ export interface EnrichedUserStory extends KappaUserStory {
|
||||
_assignedName: string
|
||||
_statusName: string
|
||||
_assignedEmployeeId: number | null
|
||||
_epicCode: string | null
|
||||
_itemCode: string | null
|
||||
}
|
||||
|
||||
export interface EnrichedEpic extends KappaEpicDevelopment {
|
||||
_itemType: ItemType
|
||||
_hierarchyPath: string | null
|
||||
_cleanName: string
|
||||
_epicCode: string | null
|
||||
}
|
||||
|
||||
export const useWorkItemsStore = defineStore('workitems', () => {
|
||||
@@ -61,6 +64,7 @@ export const useWorkItemsStore = defineStore('workitems', () => {
|
||||
_itemType: h?.items[h.items.length - 1]?.type || 'E',
|
||||
_hierarchyPath: h?.fullPath ?? null,
|
||||
_cleanName: h ? stripHierarchy(title) : title,
|
||||
_epicCode: h?.epicCode ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,6 +117,8 @@ export const useWorkItemsStore = defineStore('workitems', () => {
|
||||
_assignedName: assignedName,
|
||||
_statusName: hu.status_name || resolveStatusName(hu.status),
|
||||
_assignedEmployeeId: employeeId,
|
||||
_epicCode: h?.epicCode ?? null,
|
||||
_itemCode: h?.itemCode ?? null,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user