docs(plan): P3 Task 3 勾选 + Task 6 编排义务六项
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -73,7 +73,7 @@ tests/integration/import-*.test.ts
|
||||
- content_terms 写入(is_primary:首个为 true 余 false——WP 单主分类语义近似,JSDoc 注明)
|
||||
- [ ] 实现 + 绿 → commit `feat(import): term 物化与缺失自建`
|
||||
|
||||
### Task 3: 内容写入器(稳定身份 + checksum skip)
|
||||
### Task 3: 内容写入器(稳定身份 + checksum skip)✅ 完成(2b61431 + rider fe72df3,双审通过;296 测试;幂等三态含跨快照五列身份、checksum 三方独立对拍、published 全程未碰;审查沉淀:counts 键全局命名空间契约、unsupported/failed 分项键、NULL-entry 缝归属 Task 6)
|
||||
|
||||
**Files:** `content-writer.ts`;Test `tests/integration/import-content.test.ts`
|
||||
|
||||
@@ -112,6 +112,7 @@ tests/integration/import-*.test.ts
|
||||
**Files:** `import.service.ts` 补全;Test `tests/integration/import-full.test.ts`
|
||||
|
||||
- [ ] 失败测试:mini.xml register→import 全链:site/connection/snapshot→job→terms(2+自建0)→content_entries(**3**:post/product/page——attachment 不建,前置事实 11)→media(2+对拍)→routes(首页+2列表+3内容+2媒体 asset+2 attachment 301+tags…)→报告(各计数+**清洗统计**+版本块+冲突/失配清单);**published_revision_id 全 NULL**(导入不发布断言);**mapConfig.locale=site.default_locale 接线断言**(前置事实 8)
|
||||
- [ ] **Task 3 审查移交的编排义务**:① NULL-entry 占位行收编(content-writer 六列分支 UPDATE 挂 entry——精确位置已标注在代码缝注释)② 多写入器 counts 按**求和**聚合(import.service 现为⊕覆盖——键名全局唯一已 JSDoc 契约化;编排层改或约定各写入器键前缀,二选一定死)③ 写入器 identity 参数共享基类型(Pick<ImportJobContext,…>)防漂移 ④ stale 回收(已在清单)⑤ REPORT_WRITE_FAILED 测试补 ⑥ wp:attachment 双写入方单一 owner 决策(content-writer record-only 足迹 vs media-writer——媒体域归 Task 4,编排广播时 media-writer 消费 attachment 行、content-writer 只留 record 足迹,Task 6 定分派规则)
|
||||
- [ ] 报告落 artifacts/import/<jobId>/reports/import.json+html(沿用 Plan 2 Task 6 报告纪律:动态文本转义/错误封顶/清洗统计入报告)
|
||||
- [ ] stale 回收:超时 running → stale 置位与心跳列决策(ADR-017)
|
||||
- [ ] 绿 → commit `feat(import): 全链编排与导入报告`
|
||||
|
||||
Reference in New Issue
Block a user