# 完整性报告生成Skill 设计 ## 1. Skill 定位 `完整性报告生成Skill` 负责把完整性检查链路中的规则判定结果、风险映射结果和法规证据组装成稳定的 `registration_completeness_report`。 英文实现标识建议使用 `CompletenessReportBuildSkill`。 本 Skill 不重新判定缺失,不重新检索证据,只负责报告结构、展示摘要和审计载荷生成。 ## 2. 输入 ```python @dataclass class CompletenessReportBuildInput: execution_context: CompletenessExecutionContext item_results: list[CompletenessItemResult] evidence_refs: list[EvidenceRef] pass_status: str highest_risk_level: str ``` ## 3. 输出 ```python @dataclass class CompletenessReportBuildOutput: report: dict display_sections: list[dict] audit_payload: dict feishu_summary_payload: dict ``` ## 4. 报告结构 报告必须包含: 1. `report_type` 2. `batch_id` 3. `workflow_type` 4. `rule_package_id` 5. `rule_version` 6. `chapter_scope` 7. `summary` 8. `matched_items` 9. `missing_items` 10. `misplaced_items` 11. `manual_review_items` 12. `evidence_refs` 13. `suggestions` ## 5. 核心方法 ### 5.1 `run(input) -> CompletenessReportBuildOutput` 主入口方法。 ### 5.2 `build_summary(item_results) -> dict` 汇总: 1. 要求项数量。 2. 已提供数量。 3. 缺失数量。 4. 疑似提供数量。 5. 错放数量。 6. 待复核数量。 7. 最高风险等级。 8. 是否通过。 ### 5.3 `split_item_results(item_results) -> dict` 按状态拆分明细。 ### 5.4 `attach_evidence(item_results, evidence_refs) -> list[dict]` 把法规证据挂到对应要求项。 ### 5.5 `build_display_sections(report) -> list[dict]` 生成页面展示区块。 ### 5.6 `build_audit_payload(report, context) -> dict` 生成审计载荷。 ### 5.7 `build_feishu_summary_payload(report) -> dict` 生成飞书摘要载荷,供后续飞书通知步骤复用。 ## 6. 技术实现 使用技术: 1. Pydantic/dataclass 2. JSONField 3. Django Audit 服务层 4. 结构化消息模板 ## 7. 异常处理 1. 报告字段缺失:构建失败并写入失败审计。 2. 证据为空:正常输出,标记证据缺失。 3. 明细为空:输出空检查结果。 4. 风险等级缺失:按 `low` 处理,并记录规则警告。 ## 8. 测试要点 1. 输出 schema 字段稳定。 2. 缺失项进入 `missing_items`。 3. 错放项进入 `misplaced_items`。 4. 待复核项进入 `manual_review_items`。 5. 审计载荷包含规则版本和输入范围。 6. 飞书摘要载荷不包含敏感信息。