# Phase 6: 代码整合 - Context **Gathered:** 2026-03-16 **Status:** Ready for planning ## Phase Boundary 将独立的元数据技能和 Pipeline 模块整合进 kb-workflow。包括: - kb-bilibili-metadata + kb-zhihu-metadata → kb-workflow/metadata/ - kb_pipeline/ → kb-workflow/pipeline/ - 更新所有导入路径 - 删除原独立目录 此阶段不涉及新功能开发,只做代码整合和结构重组。 ## Implementation Decisions ### 目录结构 - **完全扁平化**: kb-workflow/metadata/ 和 kb-workflow/pipeline/ 作为顶级子目录 - **元数据目录**: kb-workflow/metadata/bilibili_extractor.py, zhihu_extractor.py 等 - **Pipeline 目录**: kb-workflow/pipeline/processors/, kb-workflow/pipeline/platforms/ 等 - **保留原文件名**: bilibili_extractor.py 不重命名为 bilibili.py,保持迁移安全 ### 导入策略 - **外部导入**: 统一从 kb_workflow 导入 - `from kb_workflow.metadata.bilibili_extractor import ...` - `from kb_workflow.pipeline.processors import ...` - **内部导入**: 使用绝对导入 - `from kb_workflow.pipeline.processors.base import BaseProcessor` - **更新范围**: 所有测试文件、CLI 入口、处理器间引用 ### 整合顺序 - **先 metadata 后 pipeline**: 1. 移动 kb-bilibili-metadata → kb-workflow/metadata/ 2. 移动 kb-zhihu-metadata → kb-workflow/metadata/ 3. 更新 metadata 相关导入 4. 运行测试验证 5. 移动 kb_pipeline → kb-workflow/pipeline/ 6. 更新 pipeline 相关导入 7. 运行测试验证 ### 验证策略 - **分步验证**: 每个子整合完成后运行测试 - **测试命令**: `pytest tests/ -v` - **失败处理**: 测试失败时不继续下一步,先修复问题 ### 清理策略 - **立即删除**: 整合完成且测试通过后立即删除原目录 - **删除目录**: kb-bilibili-metadata/, kb-zhihu-metadata/, kb_pipeline/ - **Git 提交**: 每个子整合单独提交,便于回滚 ### Claude's Discretion - 具体导入路径更新时的细节调整 - 处理意外的循环导入问题 - 测试文件的导入更新方式 ## Existing Code Insights ### 要整合的模块 - **kb-bilibili-metadata/** (3 files): - bilibili_extractor.py - B站 API 调用和元数据提取 - bilibili_metadata.py - CLI 入口 - __init__.py - **kb-zhihu-metadata/** (5 files): - zhihu_extractor.py - 知乎 Playwright 提取 - zhihu_metadata.py - CLI 入口 - zhihu_article_crawler.py - 文章爬虫 - markdown_converter.py - Markdown 转换 - __init__.py - **kb_pipeline/** (20 files): - 核心模块: pipeline.py, schemas.py, config.py, state.py, errors.py, retry.py, idempotency.py, link_parser.py - processors/: base.py, parse.py, download.py, asr.py, analyze.py, archive.py - platforms/: base.py, bilibili.py, zhihu.py ### 导入依赖关系 - kb-workflow/kb_workflow.py → kb_pipeline.pipeline, kb_pipeline.processors - kb_pipeline/platforms/zhihu.py → kb-zhihu-metadata (ZhihuPlaywrightExtractor) - kb_pipeline/platforms/bilibili.py → kb-bilibili-metadata (BilibiliExtractor) - tests/ → 多个 kb_pipeline 模块 ### Integration Points - CLI 入口: kb-workflow/kb_workflow.py 需要更新导入路径 - 平台适配器: platforms/zhihu.py, platforms/bilibili.py 需要更新元数据模块导入 - 测试文件: tests/ 目录下所有测试需要更新导入 ## Specific Ideas - 整合后目录结构: ``` kb-workflow/ ├── kb_workflow.py # CLI 入口 ├── metadata/ │ ├── __init__.py │ ├── bilibili_extractor.py │ ├── bilibili_metadata.py │ ├── zhihu_extractor.py │ ├── zhihu_metadata.py │ ├── zhihu_article_crawler.py │ └── markdown_converter.py └── pipeline/ ├── __init__.py ├── pipeline.py ├── schemas.py ├── config.py ├── state.py ├── errors.py ├── retry.py ├── idempotency.py ├── link_parser.py ├── processors/ │ ├── __init__.py │ ├── base.py │ ├── parse.py │ ├── download.py │ ├── asr.py │ ├── analyze.py │ └── archive.py └── platforms/ ├── __init__.py ├── base.py ├── bilibili.py └── zhihu.py ``` ## Deferred Ideas None — discussion stayed within phase scope --- *Phase: 06-code-consolidation* *Context gathered: 2026-03-16*