diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md
index a5f7513..79eef2c 100644
--- a/.planning/ROADMAP.md
+++ b/.planning/ROADMAP.md
@@ -64,8 +64,8 @@ Plans:
Plans:
- [x] 05-01-PLAN.md — 中间目录统一和配置 (INT-01, INT-02, INT-03)
-- [ ] 05-02-PLAN.md — ArchiveProcessor 归档处理器 (ARC-01, ARC-02, ARC-03, ARC-04)
-- [ ] 05-03-PLAN.md — 最终目录结构验证和测试 (OUT-01, OUT-02, OUT-03, OUT-04)
+- [x] 05-02-PLAN.md — ArchiveProcessor 归档处理器 (ARC-01, ARC-02, ARC-03, ARC-04)
+- [x] 05-03-PLAN.md — 最终目录结构验证和测试 (OUT-01, OUT-02, OUT-03, OUT-04)
#### Phase 6: 代码整合
**Goal**: 将独立的元数据技能和 Pipeline 模块整合进 kb-workflow
@@ -76,11 +76,11 @@ Plans:
2. kb_pipeline/ 代码合并入 kb-workflow/ 保持 processors/, platforms/, schemas.py 结构
3. 所有导入路径更新指向新位置,CLI 正常工作
4. 原独立的 kb-bilibili-metadata、kb-zhihu-metadata、kb_pipeline 目录已删除
-**Plans**: TBD
+**Plans**: 2 plans
Plans:
-- [ ] 06-01: 元数据技能整合
-- [ ] 06-02: Pipeline 模块整合
+- [ ] 06-01-PLAN.md — 元数据技能整合 (MET-01, MET-02, MET-03, MET-04, MET-05)
+- [ ] 06-02-PLAN.md — Pipeline 模块整合 (PIP-01, PIP-02, PIP-03, PIP-04)
## Progress
@@ -93,5 +93,5 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6
| 2. Adapters | v1.0 | 2/2 | Complete | 2026-03-15 |
| 3. Processors | v1.0 | 3/3 | Complete | 2026-03-15 |
| 4. Pipeline | v1.0 | 2/2 | Complete | 2026-03-15 |
-| 5. 归档与目录优化 | v1.1 | 1/3 | In progress | 2026-03-16 |
+| 5. 归档与目录优化 | v1.1 | 3/3 | Complete | 2026-03-16 |
| 6. 代码整合 | v1.1 | 0/2 | Not started | - |
diff --git a/.planning/phases/06-code-consolidation/06-01-PLAN.md b/.planning/phases/06-code-consolidation/06-01-PLAN.md
new file mode 100644
index 0000000..6171f7b
--- /dev/null
+++ b/.planning/phases/06-code-consolidation/06-01-PLAN.md
@@ -0,0 +1,255 @@
+---
+phase: 06-code-consolidation
+plan: 01
+type: execute
+wave: 1
+depends_on: []
+files_modified:
+ - kb-workflow/metadata/__init__.py
+ - kb-workflow/metadata/bilibili_extractor.py
+ - kb-workflow/metadata/bilibili_metadata.py
+ - kb-workflow/metadata/zhihu_extractor.py
+ - kb-workflow/metadata/zhihu_metadata.py
+ - kb-workflow/metadata/zhihu_article_crawler.py
+ - kb-workflow/metadata/markdown_converter.py
+ - kb_pipeline/platforms/bilibili.py
+ - kb_pipeline/platforms/zhihu.py
+autonomous: true
+requirements:
+ - MET-01
+ - MET-02
+ - MET-03
+ - MET-04
+ - MET-05
+
+must_haves:
+ truths:
+ - "kb_workflow.metadata.bilibili_extractor 可正常导入"
+ - "kb_workflow.metadata.zhihu_extractor 可正常导入"
+ - "kb_pipeline/platforms/ 模块可通过新路径导入 metadata 模块"
+ - "原 kb-bilibili-metadata 目录已删除"
+ - "原 kb-zhihu-metadata 目录已删除"
+ artifacts:
+ - path: "kb-workflow/metadata/__init__.py"
+ provides: "metadata 包入口,导出 BilibiliExtractor 和 ZhihuPlaywrightExtractor"
+ - path: "kb-workflow/metadata/bilibili_extractor.py"
+ provides: "B站元数据提取器"
+ - path: "kb-workflow/metadata/zhihu_extractor.py"
+ provides: "知乎内容提取器"
+ key_links:
+ - from: "kb_pipeline/platforms/bilibili.py"
+ to: "kb_workflow.metadata.bilibili_extractor"
+ via: "from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor"
+ - from: "kb_pipeline/platforms/zhihu.py"
+ to: "kb_workflow.metadata.zhihu_extractor"
+ via: "from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor"
+---
+
+
+将独立的元数据技能模块 (kb-bilibili-metadata 和 kb-zhihu-metadata) 整合进 kb-workflow/metadata/。
+
+Purpose: 统一代码结构,消除 sys.path 动态操作,使用标准包导入。
+Output: kb-workflow/metadata/ 目录包含所有元数据提取模块,platform adapters 使用标准导入。
+
+
+
+@/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md
+@/home/starmen1265/.claude/get-shit-done/templates/summary.md
+
+
+
+@.planning/PROJECT.md
+@.planning/ROADMAP.md
+@.planning/STATE.md
+@.planning/phases/06-code-consolidation/06-CONTEXT.md
+@.planning/phases/06-code-consolidation/06-RESEARCH.md
+
+
+
+
+From kb_pipeline/platforms/bilibili.py (需要修改的动态导入):
+```python
+# 旧代码 - 需要删除
+_BILIBILI_METADATA_PATH = Path(__file__).parent.parent.parent / "kb-bilibili-metadata"
+if _BILIBILI_METADATA_PATH.exists():
+ sys.path.insert(0, str(_BILIBILI_METADATA_PATH))
+from bilibili_extractor import BilibiliExtractor
+
+# 新代码 - 标准导入
+from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor
+```
+
+From kb_pipeline/platforms/zhihu.py (需要修改的动态导入):
+```python
+# 旧代码 - 需要删除
+_kb_zhihu_path = Path(__file__).parent.parent.parent / "kb-zhihu-metadata"
+if str(_kb_zhihu_path) not in sys.path:
+ sys.path.insert(0, str(_kb_zhihu_path))
+from zhihu_extractor import ZhihuPlaywrightExtractor
+
+# 新代码 - 标准导入
+from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor
+```
+
+
+
+
+
+
+ Task 1: 创建 metadata 目录并移动 bilibili 模块
+
+ kb-workflow/metadata/__init__.py,
+ kb-workflow/metadata/bilibili_extractor.py,
+ kb-workflow/metadata/bilibili_metadata.py
+
+
+1. 创建 kb-workflow/metadata/ 目录
+2. 使用 git mv 移动文件(保留历史):
+ - kb-bilibili-metadata/bilibili_extractor.py → kb-workflow/metadata/bilibili_extractor.py
+ - kb-bilibili-metadata/bilibili_metadata.py → kb-workflow/metadata/bilibili_metadata.py
+3. 创建 kb-workflow/metadata/__init__.py,内容如下:
+```python
+"""KB Workflow Metadata Module
+
+提供 B站和知乎的元数据提取功能
+"""
+
+from .bilibili_extractor import BilibiliExtractor
+
+__all__ = [
+ "BilibiliExtractor",
+]
+```
+4. 移动后不要修改 bilibili_extractor.py 内部代码(保持原样)
+
+
+ python -c "from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor; print('bilibili OK')"
+
+ kb-workflow/metadata/ 目录存在,bilibili_extractor.py 可从新路径导入
+
+
+
+ Task 2: 移动 zhihu 模块到 metadata 目录
+
+ kb-workflow/metadata/zhihu_extractor.py,
+ kb-workflow/metadata/zhihu_metadata.py,
+ kb-workflow/metadata/zhihu_article_crawler.py,
+ kb-workflow/metadata/markdown_converter.py,
+ kb-workflow/metadata/__init__.py
+
+
+1. 使用 git mv 移动文件:
+ - kb-zhihu-metadata/zhihu_extractor.py → kb-workflow/metadata/zhihu_extractor.py
+ - kb-zhihu-metadata/zhihu_metadata.py → kb-workflow/metadata/zhihu_metadata.py
+ - kb-zhihu-metadata/zhihu_article_crawler.py → kb-workflow/metadata/zhihu_article_crawler.py
+ - kb-zhihu-metadata/markdown_converter.py → kb-workflow/metadata/markdown_converter.py
+2. 更新 kb-workflow/metadata/__init__.py:
+```python
+"""KB Workflow Metadata Module
+
+提供 B站和知乎的元数据提取功能
+"""
+
+from .bilibili_extractor import BilibiliExtractor
+from .zhihu_extractor import ZhihuPlaywrightExtractor
+
+__all__ = [
+ "BilibiliExtractor",
+ "ZhihuPlaywrightExtractor",
+]
+```
+3. 移动后不要修改内部代码(保持原样)
+
+
+ python -c "from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor; print('zhihu OK')"
+
+ zhihu 模块文件已移动到 kb-workflow/metadata/,可从新路径导入
+
+
+
+ Task 3: 更新 platform adapters 导入路径
+
+ kb_pipeline/platforms/bilibili.py,
+ kb_pipeline/platforms/zhihu.py
+
+
+更新 kb_pipeline/platforms/bilibili.py:
+1. 删除 sys.path 动态操作代码(第 33-36 行):
+ ```python
+ # 删除以下代码
+ _BILIBILI_METADATA_PATH = Path(__file__).parent.parent.parent / "kb-bilibili-metadata"
+ if _BILIBILI_METADATA_PATH.exists():
+ sys.path.insert(0, str(_BILIBILI_METADATA_PATH))
+ ```
+2. 将 `from bilibili_extractor import BilibiliExtractor` 改为 `from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor`
+3. 删除 try/except 包装,直接导入(因为包已存在)
+
+更新 kb_pipeline/platforms/zhihu.py:
+1. 删除 sys.path 动态操作代码(第 18-20 行):
+ ```python
+ # 删除以下代码
+ _kb_zhihu_path = Path(__file__).parent.parent.parent / "kb-zhihu-metadata"
+ if str(_kb_zhihu_path) not in sys.path:
+ sys.path.insert(0, str(_kb_zhihu_path))
+ ```
+2. 将 `from zhihu_extractor import ZhihuPlaywrightExtractor` 改为 `from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor`
+3. 删除 try/except 包装中的 ImportError 处理逻辑,直接导入
+
+
+ python -c "from kb_pipeline.platforms.bilibili import BilibiliAdapter; from kb_pipeline.platforms.zhihu import ZhihuAdapter; print('adapters OK')"
+
+ platform adapters 使用标准包导入,无 sys.path 操作
+
+
+
+ Task 4: 删除原独立目录并验证
+
+ (删除) kb-bilibili-metadata/,
+ (删除) kb-zhihu-metadata/
+
+
+1. 运行测试验证整合成功:
+ ```bash
+ pytest tests/test_platforms/test_bilibili.py tests/test_platforms/test_zhihu.py -v
+ ```
+2. 测试通过后,使用 git rm 删除原目录:
+ ```bash
+ git rm -r kb-bilibili-metadata/ kb-zhihu-metadata/
+ ```
+3. 再次运行测试确认删除不影响功能:
+ ```bash
+ pytest tests/ -v --tb=short -x
+ ```
+
+
+ pytest tests/ -v --tb=short -x
+
+ 原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除,所有测试通过
+
+
+
+
+
+1. 导入验证:
+ - `from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor` 成功
+ - `from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor` 成功
+2. 平台适配器验证:
+ - `from kb_pipeline.platforms.bilibili import BilibiliAdapter` 成功
+ - `from kb_pipeline.platforms.zhihu import ZhihuAdapter` 成功
+3. 测试验证:
+ - `pytest tests/ -v` 全部通过
+4. 清理验证:
+ - `ls kb-bilibili-metadata/` 返回 "No such file or directory"
+ - `ls kb-zhihu-metadata/` 返回 "No such file or directory"
+
+
+
+- [ ] kb-workflow/metadata/ 目录包含 bilibili 和 zhihu 所有模块
+- [ ] kb_pipeline/platforms/ 使用标准导入,无 sys.path 操作
+- [ ] 所有测试通过 (pytest tests/ -v)
+- [ ] 原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除
+
+
+
diff --git a/.planning/phases/06-code-consolidation/06-02-PLAN.md b/.planning/phases/06-code-consolidation/06-02-PLAN.md
new file mode 100644
index 0000000..1cb7977
--- /dev/null
+++ b/.planning/phases/06-code-consolidation/06-02-PLAN.md
@@ -0,0 +1,470 @@
+---
+phase: 06-code-consolidation
+plan: 02
+type: execute
+wave: 2
+depends_on:
+ - 06-01
+files_modified:
+ - kb-workflow/pipeline/__init__.py
+ - kb-workflow/pipeline/pipeline.py
+ - kb-workflow/pipeline/schemas.py
+ - kb-workflow/pipeline/config.py
+ - kb-workflow/pipeline/state.py
+ - kb-workflow/pipeline/errors.py
+ - kb-workflow/pipeline/retry.py
+ - kb-workflow/pipeline/idempotency.py
+ - kb-workflow/pipeline/link_parser.py
+ - kb-workflow/pipeline/processors/__init__.py
+ - kb-workflow/pipeline/processors/base.py
+ - kb-workflow/pipeline/processors/parse.py
+ - kb-workflow/pipeline/processors/download.py
+ - kb-workflow/pipeline/processors/asr.py
+ - kb-workflow/pipeline/processors/analyze.py
+ - kb-workflow/pipeline/processors/archive.py
+ - kb-workflow/pipeline/platforms/__init__.py
+ - kb-workflow/pipeline/platforms/base.py
+ - kb-workflow/pipeline/platforms/bilibili.py
+ - kb-workflow/pipeline/platforms/zhihu.py
+ - kb-workflow/kb_workflow.py
+ - tests/test_pipeline/*.py
+ - tests/test_processors/*.py
+ - tests/test_platforms/*.py
+ - tests/test_cli/*.py
+ - tests/test_integration/*.py
+autonomous: true
+requirements:
+ - PIP-01
+ - PIP-02
+ - PIP-03
+ - PIP-04
+
+must_haves:
+ truths:
+ - "kb_workflow.pipeline 可正常导入"
+ - "kb_workflow.pipeline.processors 包含所有处理器"
+ - "kb_workflow.pipeline.platforms 包含所有平台适配器"
+ - "CLI 入口 kb_workflow.py 可正常执行"
+ - "所有测试通过"
+ - "原 kb_pipeline 目录已删除"
+ artifacts:
+ - path: "kb-workflow/pipeline/__init__.py"
+ provides: "pipeline 包入口,导出核心类和函数"
+ - path: "kb-workflow/pipeline/pipeline.py"
+ provides: "Pipeline 编排引擎"
+ - path: "kb-workflow/pipeline/schemas.py"
+ provides: "Pydantic Schema 定义"
+ - path: "kb-workflow/pipeline/processors/"
+ provides: "所有处理器实现"
+ - path: "kb-workflow/pipeline/platforms/"
+ provides: "所有平台适配器"
+ - path: "kb-workflow/kb_workflow.py"
+ provides: "CLI 入口"
+ key_links:
+ - from: "kb-workflow/kb_workflow.py"
+ to: "kb_workflow.pipeline"
+ via: "from kb_workflow.pipeline.xxx import ..."
+ - from: "tests/"
+ to: "kb_workflow.pipeline"
+ via: "from kb_workflow.pipeline.xxx import ..."
+ - from: "kb-workflow/pipeline/processors/base.py"
+ to: "kb_workflow.pipeline.config"
+ via: "from kb_workflow.pipeline.config import get_settings"
+ - from: "kb-workflow/pipeline/platforms/bilibili.py"
+ to: "kb_workflow.pipeline.errors"
+ via: "from kb_workflow.pipeline.errors import NetworkError"
+
+---
+
+
+将 kb_pipeline/ 模块合并进 kb-workflow/pipeline/,更新所有导入路径,删除原目录。
+
+Purpose: 完成代码整合,所有代码统一在 kb_workflow 包下。
+Output: kb-workflow/pipeline/ 目录包含所有 pipeline 模块,CLI 和测试使用新导入路径。
+
+
+
+@/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md
+@/home/starmen1265/.claude/get-shit-done/templates/summary.md
+
+
+
+@.planning/PROJECT.md
+@.planning/ROADMAP.md
+@.planning/STATE.md
+@.planning/phases/06-code-consolidation/06-CONTEXT.md
+@.planning/phases/06-code-consolidation/06-RESEARCH.md
+@.planning/phases/06-code-consolidation/06-01-SUMMARY.md
+
+
+
+
+From kb-workflow/kb_workflow.py (需要修改的导入):
+```python
+# 旧代码
+from kb_pipeline.config import get_settings
+from kb_pipeline.pipeline import Pipeline
+from kb_pipeline.processors import (
+ ASRProcessor, AnalyzeProcessor, ArchiveProcessor,
+ DownloadProcessor, ParseProcessor
+)
+from kb_pipeline.schemas import PipelineConfig
+
+# 新代码
+from kb_workflow.pipeline.config import get_settings
+from kb_workflow.pipeline.pipeline import Pipeline
+from kb_workflow.pipeline.processors import (
+ ASRProcessor, AnalyzeProcessor, ArchiveProcessor,
+ DownloadProcessor, ParseProcessor
+)
+from kb_workflow.pipeline.schemas import PipelineConfig
+```
+
+From kb_pipeline/__init__.py (需要移动后更新导入):
+```python
+# 所有 from .xxx 改为 from kb_workflow.pipeline.xxx
+from kb_workflow.pipeline.schemas import (...)
+from kb_workflow.pipeline.state import WorkflowStateManager
+from kb_workflow.pipeline.errors import (...)
+from kb_workflow.pipeline.config import KBSettings, get_settings
+from kb_workflow.pipeline.retry import retry_on_network_error
+from kb_workflow.pipeline.link_parser import LinkParser, ParsedLink
+from kb_workflow.pipeline.idempotency import IdempotencyChecker
+from kb_workflow.pipeline.platforms import PlatformAdapter, BilibiliAdapter, ZhihuAdapter
+```
+
+From kb_pipeline/processors/base.py (内部导入需要更新):
+```python
+# 旧
+from kb_pipeline.config import get_settings
+from kb_pipeline.schemas import StepInput, StepOutput
+
+# 新
+from kb_workflow.pipeline.config import get_settings
+from kb_workflow.pipeline.schemas import StepInput, StepOutput
+```
+
+From kb_pipeline/platforms/bilibili.py (已更新的 metadata 导入):
+```python
+# 在 06-01 中已更新为:
+from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor
+
+# 还需要更新内部导入:
+# 旧
+from .base import PlatformAdapter
+from ..errors import NetworkError, AuthError
+from ..retry import retry_on_network_error
+from ..state import WorkflowStateManager
+
+# 新
+from kb_workflow.pipeline.platforms.base import PlatformAdapter
+from kb_workflow.pipeline.errors import NetworkError, AuthError
+from kb_workflow.pipeline.retry import retry_on_network_error
+from kb_workflow.pipeline.state import WorkflowStateManager
+```
+
+
+
+
+
+
+ Task 1: 创建 pipeline 目录并移动核心文件
+
+ kb-workflow/pipeline/__init__.py,
+ kb-workflow/pipeline/pipeline.py,
+ kb-workflow/pipeline/schemas.py,
+ kb-workflow/pipeline/config.py,
+ kb-workflow/pipeline/state.py,
+ kb-workflow/pipeline/errors.py,
+ kb-workflow/pipeline/retry.py,
+ kb-workflow/pipeline/idempotency.py,
+ kb-workflow/pipeline/link_parser.py
+
+
+1. 创建 kb-workflow/pipeline/ 目录
+2. 使用 git mv 移动核心文件:
+ ```bash
+ git mv kb_pipeline/pipeline.py kb-workflow/pipeline/
+ git mv kb_pipeline/schemas.py kb-workflow/pipeline/
+ git mv kb_pipeline/config.py kb-workflow/pipeline/
+ git mv kb_pipeline/state.py kb-workflow/pipeline/
+ git mv kb_pipeline/errors.py kb-workflow/pipeline/
+ git mv kb_pipeline/retry.py kb-workflow/pipeline/
+ git mv kb_pipeline/idempotency.py kb-workflow/pipeline/
+ git mv kb_pipeline/link_parser.py kb-workflow/pipeline/
+ ```
+3. 创建 kb-workflow/pipeline/__init__.py(基于原 kb_pipeline/__init__.py,更新导入路径):
+```python
+"""KB Pipeline - 工作流管道基础设施
+
+提供内容处理工作流的核心 Schema 和工具。
+"""
+
+from kb_workflow.pipeline.schemas import (
+ StepInput,
+ StepOutput,
+ StepResult,
+ StepStatus,
+ StepRecord,
+ WorkflowState,
+ StepDefinition,
+)
+from kb_workflow.pipeline.state import WorkflowStateManager
+from kb_workflow.pipeline.errors import (
+ KBError,
+ NetworkError,
+ ValidationError,
+ SystemError,
+ AuthError,
+ ErrorType,
+)
+from kb_workflow.pipeline.config import KBSettings, get_settings
+from kb_workflow.pipeline.retry import retry_on_network_error
+from kb_workflow.pipeline.link_parser import LinkParser, ParsedLink
+from kb_workflow.pipeline.idempotency import IdempotencyChecker
+from kb_workflow.pipeline.platforms import PlatformAdapter, BilibiliAdapter, ZhihuAdapter
+
+__all__ = [
+ # Schemas
+ "StepInput",
+ "StepOutput",
+ "StepResult",
+ "StepStatus",
+ "StepRecord",
+ "WorkflowState",
+ "StepDefinition",
+ # State
+ "WorkflowStateManager",
+ # Errors
+ "KBError",
+ "NetworkError",
+ "ValidationError",
+ "SystemError",
+ "AuthError",
+ "ErrorType",
+ # Config
+ "KBSettings",
+ "get_settings",
+ # Retry
+ "retry_on_network_error",
+ # Link Parser
+ "LinkParser",
+ "ParsedLink",
+ # Idempotency
+ "IdempotencyChecker",
+ # Platform Adapters
+ "PlatformAdapter",
+ "BilibiliAdapter",
+ "ZhihuAdapter",
+]
+
+__version__ = "0.1.0"
+```
+4. 更新核心文件内部导入(使用绝对导入):
+ - pipeline.py: 所有 `from kb_pipeline.xxx` 改为 `from kb_workflow.pipeline.xxx`
+ - schemas.py: 检查是否有内部导入需要更新
+ - config.py: 检查是否有内部导入需要更新
+ - state.py: 检查是否有内部导入需要更新
+ - errors.py: 通常无外部导入
+ - retry.py: 通常无外部导入
+ - idempotency.py: 通常无外部导入
+ - link_parser.py: 通常无外部导入
+
+
+ python -c "from kb_workflow.pipeline import Pipeline, get_settings, WorkflowStateManager; print('core OK')"
+
+ pipeline 核心文件已移动到 kb-workflow/pipeline/,核心类可导入
+
+
+
+ Task 2: 移动 processors 和 platforms 子目录
+
+ kb-workflow/pipeline/processors/__init__.py,
+ kb-workflow/pipeline/processors/base.py,
+ kb-workflow/pipeline/processors/parse.py,
+ kb-workflow/pipeline/processors/download.py,
+ kb-workflow/pipeline/processors/asr.py,
+ kb-workflow/pipeline/processors/analyze.py,
+ kb-workflow/pipeline/processors/archive.py,
+ kb-workflow/pipeline/platforms/__init__.py,
+ kb-workflow/pipeline/platforms/base.py,
+ kb-workflow/pipeline/platforms/bilibili.py,
+ kb-workflow/pipeline/platforms/zhihu.py
+
+
+1. 创建子目录并移动文件:
+ ```bash
+ mkdir -p kb-workflow/pipeline/processors
+ mkdir -p kb-workflow/pipeline/platforms
+ git mv kb_pipeline/processors/*.py kb-workflow/pipeline/processors/
+ git mv kb_pipeline/platforms/*.py kb-workflow/pipeline/platforms/
+ ```
+
+2. 更新 processors 内部导入(改为绝对导入):
+ 在以下文件中将 `from kb_pipeline.xxx` 改为 `from kb_workflow.pipeline.xxx`:
+ - base.py: `from kb_pipeline.config` → `from kb_workflow.pipeline.config`
+ - base.py: `from kb_pipeline.schemas` → `from kb_workflow.pipeline.schemas`
+ - parse.py, download.py, asr.py, analyze.py, archive.py: 检查并更新所有 kb_pipeline 导入
+ - __init__.py: 更新所有 from .xxx 或 from ..xxx 为绝对导入
+
+3. 更新 platforms 内部导入:
+ - bilibili.py: 已在 06-01 更新 metadata 导入,现在更新:
+ - `from .base` → `from kb_workflow.pipeline.platforms.base`
+ - `from ..errors` → `from kb_workflow.pipeline.errors`
+ - `from ..retry` → `from kb_workflow.pipeline.retry`
+ - `from ..state` → `from kb_workflow.pipeline.state`
+ - `from ..config` → `from kb_workflow.pipeline.config`
+ - zhihu.py: 同样更新所有相对导入为绝对导入
+ - base.py: 检查并更新导入
+ - __init__.py: 更新导出
+
+4. 更新后的 processors/__init__.py:
+```python
+"""Pipeline Processors
+
+提供所有管道处理器实现。
+"""
+
+from kb_workflow.pipeline.processors.base import BaseProcessor
+from kb_workflow.pipeline.processors.parse import ParseProcessor
+from kb_workflow.pipeline.processors.download import DownloadProcessor
+from kb_workflow.pipeline.processors.asr import ASRProcessor
+from kb_workflow.pipeline.processors.analyze import AnalyzeProcessor
+from kb_workflow.pipeline.processors.archive import ArchiveProcessor
+
+__all__ = [
+ "BaseProcessor",
+ "ParseProcessor",
+ "DownloadProcessor",
+ "ASRProcessor",
+ "AnalyzeProcessor",
+ "ArchiveProcessor",
+]
+```
+
+5. 更新后的 platforms/__init__.py:
+```python
+"""Platform Adapters
+
+提供平台适配器接口和实现。
+"""
+
+from kb_workflow.pipeline.platforms.base import PlatformAdapter
+from kb_workflow.pipeline.platforms.bilibili import BilibiliAdapter
+from kb_workflow.pipeline.platforms.zhihu import ZhihuAdapter
+
+__all__ = [
+ "PlatformAdapter",
+ "BilibiliAdapter",
+ "ZhihuAdapter",
+]
+```
+
+
+ python -c "from kb_workflow.pipeline.processors import ParseProcessor, DownloadProcessor, ASRProcessor, AnalyzeProcessor, ArchiveProcessor; from kb_workflow.pipeline.platforms import BilibiliAdapter, ZhihuAdapter; print('processors and platforms OK')"
+
+ processors 和 platforms 已移动,所有处理器和适配器可导入
+
+
+
+ Task 3: 更新 CLI 入口和测试文件导入
+
+ kb-workflow/kb_workflow.py,
+ tests/test_pipeline/*.py,
+ tests/test_processors/*.py,
+ tests/test_platforms/*.py,
+ tests/test_cli/*.py,
+ tests/test_integration/*.py
+
+
+1. 更新 kb-workflow/kb_workflow.py:
+ - 删除 sys.path.insert 操作(第 41-43 行)
+ - 更新所有导入:
+ ```python
+ from kb_workflow.pipeline.config import get_settings
+ from kb_workflow.pipeline.pipeline import Pipeline
+ from kb_workflow.pipeline.processors import (
+ ASRProcessor, AnalyzeProcessor, ArchiveProcessor,
+ DownloadProcessor, ParseProcessor
+ )
+ from kb_workflow.pipeline.schemas import PipelineConfig
+ ```
+
+2. 使用 grep 找出所有需要更新的测试文件:
+ ```bash
+ grep -rn "from kb_pipeline" tests/ --include="*.py"
+ ```
+
+3. 批量更新测试文件导入(使用 sed 或手动):
+ - `from kb_pipeline.xxx` → `from kb_workflow.pipeline.xxx`
+ - 例如: `from kb_pipeline.schemas` → `from kb_workflow.pipeline.schemas`
+ - 例如: `from kb_pipeline.processors` → `from kb_workflow.pipeline.processors`
+ - 例如: `from kb_pipeline.platforms` → `from kb_workflow.pipeline.platforms`
+
+4. 更新 tests/test_zhihu_metadata/ 中的导入(如果有)
+
+
+ cd /home/starmen1265/work/kb-skills/kb-workflow && python kb_workflow.py --help
+
+ CLI 入口可执行,测试文件导入路径已更新
+
+
+
+ Task 4: 删除原 kb_pipeline 目录并运行全量测试
+
+ (删除) kb_pipeline/
+
+
+1. 运行全量测试验证整合成功:
+ ```bash
+ pytest tests/ -v --tb=short -x
+ ```
+
+2. 测试通过后,删除原目录:
+ ```bash
+ git rm -r kb_pipeline/
+ ```
+
+3. 再次运行测试确认删除不影响功能:
+ ```bash
+ pytest tests/ -v
+ ```
+
+4. 验证 CLI 功能:
+ ```bash
+ cd kb-workflow && python kb_workflow.py --help
+ ```
+
+
+ pytest tests/ -v --tb=short
+
+ 原 kb_pipeline 目录已删除,所有测试通过,CLI 正常工作
+
+
+
+
+
+1. 核心导入验证:
+ - `from kb_workflow.pipeline import Pipeline, get_settings` 成功
+ - `from kb_workflow.pipeline.processors import ParseProcessor` 成功
+ - `from kb_workflow.pipeline.platforms import BilibiliAdapter` 成功
+2. CLI 验证:
+ - `python kb-workflow/kb_workflow.py --help` 输出帮助信息
+3. 测试验证:
+ - `pytest tests/ -v` 全部通过
+4. 清理验证:
+ - `ls kb_pipeline/` 返回 "No such file or directory"
+
+
+
+- [ ] kb-workflow/pipeline/ 目录包含所有 pipeline 模块
+- [ ] kb-workflow/kb_workflow.py 使用新导入路径
+- [ ] 所有测试文件使用新导入路径
+- [ ] 所有测试通过 (pytest tests/ -v)
+- [ ] CLI 可执行 (python kb_workflow.py --help)
+- [ ] 原 kb_pipeline 目录已删除
+
+
+