feat(impact): Impact Agent MVP —— 变更点定位 + 影响调查书(追加改修场景)
- 门控:用户提供 existing_system 路径 → 进入影响调查;未提供 → 原流程不变
- CodeParser 解析 Java(@RestController/@Service/@Entity/@TableName)+ ExistingSystemExplorer 组装
- ImpactAgent 变更点定位(变更区分×既存対応 确定性比对,无 LLM)→ ImpactReport(JSON 可下载)
- 影响调查结果作为 Writer 生成概要设计书的主上下文({{impact}},无专用影响章)
- source_aggregator 解除 existing_system=None 硬编码
- 既有系统样本 sunOnly/stock-trade-system(无 LICENSE,仅测试输入,保留来源标注)
- 新造股票交易域追加改修样本 要件定義_追加改修_股票.xlsx(对齐 sunOnly 真实类名)
- 全量 351 passed / 99.27% 覆盖;门禁 PASS(16 要素:新规5/変更8/削除3/未受影响50)
This commit is contained in:
@@ -175,6 +175,53 @@ class ExistingSystemInfo:
|
||||
source_path: str
|
||||
|
||||
|
||||
class ChangeType(Enum):
|
||||
"""变更点定位的变更区分(对应要件定義 変更区分 列值)"""
|
||||
NEW = "新規"
|
||||
MODIFIED = "変更"
|
||||
DELETED = "削除"
|
||||
UNCHANGED = "不变"
|
||||
|
||||
|
||||
@dataclass
|
||||
class ChangeElement:
|
||||
"""变更点定位结果中的一个要素(Impact Agent MVP)"""
|
||||
element_id: str
|
||||
element_type: str # 機能/画面/帳票/DB/IF/バッチ(取 ElementType.value 或表名)
|
||||
name: str
|
||||
change_type: ChangeType
|
||||
existing_mapping: list[str] = field(default_factory=list) # 既存対応 声明值(类名清单)
|
||||
impacted_existing: list[str] = field(default_factory=list) # 确认命中的既有类
|
||||
evidence: str = "" # 命中的既有类 source_uri / 空
|
||||
status: str = "ok" # "ok" | "conflict" | "warning"
|
||||
|
||||
|
||||
@dataclass
|
||||
class ImpactWarning:
|
||||
"""影响调查告警(不阻断,供用户/QA 关注)"""
|
||||
element_id: str
|
||||
issue: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class ChangeAnalysis:
|
||||
"""变更点定位结果集合(Impact Agent MVP)"""
|
||||
project_type: str # "enhancement"(追加改修)
|
||||
new_elements: list[ChangeElement]
|
||||
modified_elements: list[ChangeElement]
|
||||
deleted_elements: list[ChangeElement]
|
||||
unchanged_elements: list[ChangeElement]
|
||||
warnings: list[ImpactWarning]
|
||||
|
||||
|
||||
@dataclass
|
||||
class ImpactReport:
|
||||
"""影响调查书(MVP 子集,供 Writer 生成 + 独立下载)"""
|
||||
metadata: dict
|
||||
change_analysis: ChangeAnalysis | None = None
|
||||
summary: dict = field(default_factory=dict)
|
||||
|
||||
|
||||
@dataclass
|
||||
class UnifiedDocument:
|
||||
"""FileReader 的统一输出(多格式归一化)"""
|
||||
@@ -223,6 +270,7 @@ class StructuredSource:
|
||||
image_analyses: list[ImageAnalysis]
|
||||
existing_system: ExistingSystemInfo | None
|
||||
comments: list[CellComment]
|
||||
impact_report: "ImpactReport | None" = None # 影响调查书(生成后回填,门控未提供时为 None)
|
||||
|
||||
|
||||
@dataclass
|
||||
|
||||
Reference in New Issue
Block a user