-
c_artifact_get 在机器可读的 sdd-mvcp-contract.json 里其实定义过 (GET /api/artifacts/:artifact_id),只是 03-C 正文一直没写出来,已订正 补全。c_artifact_list 连 MVCP JSON 里都没有 operation 定义,纯粹是 v_artifact_browser 自己的过滤字段倒逼出来的缺口,跟 U-025 补 c_task_list 是同一类问题。 新增 src/artifact_query.py:list_artifacts() 返回裸数组(跟已有的 list_tasks() 保持同款风格);get_artifact() 把血缘链(按 depends_on_artifact_ids 往回走,只走第一个依赖——这条流水线的实际产出 只有线性 BRD→PRD→SDD 链)和文件内容(artifact 表本身没有 content 列, 走 project.target_folder_path + artifact.file_path 现读磁盘)一起返回, 预览面板一次请求就够。 前端预览统一用 <pre> 纯文本展示,不做 Markdown 渲染/代码高亮——02-V 原文想要那个效果,但需要引入第一个前端第三方库,跟这个控制台一贯的纯 vanilla JS、无构建步骤做法冲突,是有意简化。顺手给 index.html 常驻导航 栏加上了"产物"链接。 真实服务器验证过三级血缘链(BRD→PRD→SDD)返回顺序正确。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>