docs(06): create phase 6 consolidation plans

This commit is contained in:
2026-03-16 23:52:44 +08:00
parent 5fc7000ef7
commit 444ac22e44
3 changed files with 731 additions and 6 deletions
+6 -6
View File
@@ -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 | - |
@@ -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"
---
<objective>
将独立的元数据技能模块 (kb-bilibili-metadata 和 kb-zhihu-metadata) 整合进 kb-workflow/metadata/。
Purpose: 统一代码结构,消除 sys.path 动态操作,使用标准包导入。
Output: kb-workflow/metadata/ 目录包含所有元数据提取模块,platform adapters 使用标准导入。
</objective>
<execution_context>
@/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md
@/home/starmen1265/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.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
<interfaces>
<!-- Key interfaces executor needs from codebase -->
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
```
</interfaces>
</context>
<tasks>
<task type="auto">
<name>Task 1: 创建 metadata 目录并移动 bilibili 模块</name>
<files>
kb-workflow/metadata/__init__.py,
kb-workflow/metadata/bilibili_extractor.py,
kb-workflow/metadata/bilibili_metadata.py
</files>
<action>
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 内部代码(保持原样)
</action>
<verify>
<automated>python -c "from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor; print('bilibili OK')"</automated>
</verify>
<done>kb-workflow/metadata/ 目录存在,bilibili_extractor.py 可从新路径导入</done>
</task>
<task type="auto">
<name>Task 2: 移动 zhihu 模块到 metadata 目录</name>
<files>
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
</files>
<action>
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. 移动后不要修改内部代码(保持原样)
</action>
<verify>
<automated>python -c "from kb_workflow.metadata.zhihu_extractor import ZhihuPlaywrightExtractor; print('zhihu OK')"</automated>
</verify>
<done>zhihu 模块文件已移动到 kb-workflow/metadata/,可从新路径导入</done>
</task>
<task type="auto">
<name>Task 3: 更新 platform adapters 导入路径</name>
<files>
kb_pipeline/platforms/bilibili.py,
kb_pipeline/platforms/zhihu.py
</files>
<action>
更新 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 处理逻辑,直接导入
</action>
<verify>
<automated>python -c "from kb_pipeline.platforms.bilibili import BilibiliAdapter; from kb_pipeline.platforms.zhihu import ZhihuAdapter; print('adapters OK')"</automated>
</verify>
<done>platform adapters 使用标准包导入,无 sys.path 操作</done>
</task>
<task type="auto">
<name>Task 4: 删除原独立目录并验证</name>
<files>
(删除) kb-bilibili-metadata/,
(删除) kb-zhihu-metadata/
</files>
<action>
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
```
</action>
<verify>
<automated>pytest tests/ -v --tb=short -x</automated>
</verify>
<done>原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除,所有测试通过</done>
</task>
</tasks>
<verification>
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"
</verification>
<success_criteria>
- [ ] kb-workflow/metadata/ 目录包含 bilibili 和 zhihu 所有模块
- [ ] kb_pipeline/platforms/ 使用标准导入,无 sys.path 操作
- [ ] 所有测试通过 (pytest tests/ -v)
- [ ] 原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除
</success_criteria>
<output>
After completion, create `.planning/phases/06-code-consolidation/06-01-SUMMARY.md`
</output>
@@ -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"
</interfaces>
---
<objective>
将 kb_pipeline/ 模块合并进 kb-workflow/pipeline/,更新所有导入路径,删除原目录。
Purpose: 完成代码整合,所有代码统一在 kb_workflow 包下。
Output: kb-workflow/pipeline/ 目录包含所有 pipeline 模块,CLI 和测试使用新导入路径。
</objective>
<execution_context>
@/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md
@/home/starmen1265/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.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
<interfaces>
<!-- Key interfaces executor needs from codebase -->
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
```
</interfaces>
</context>
<tasks>
<task type="auto">
<name>Task 1: 创建 pipeline 目录并移动核心文件</name>
<files>
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
</files>
<action>
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: 通常无外部导入
</action>
<verify>
<automated>python -c "from kb_workflow.pipeline import Pipeline, get_settings, WorkflowStateManager; print('core OK')"</automated>
</verify>
<done>pipeline 核心文件已移动到 kb-workflow/pipeline/,核心类可导入</done>
</task>
<task type="auto">
<name>Task 2: 移动 processors 和 platforms 子目录</name>
<files>
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
</files>
<action>
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",
]
```
</action>
<verify>
<automated>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')"</automated>
</verify>
<done>processors 和 platforms 已移动,所有处理器和适配器可导入</done>
</task>
<task type="auto">
<name>Task 3: 更新 CLI 入口和测试文件导入</name>
<files>
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
</files>
<action>
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/ 中的导入(如果有)
</action>
<verify>
<automated>cd /home/starmen1265/work/kb-skills/kb-workflow && python kb_workflow.py --help</automated>
</verify>
<done>CLI 入口可执行,测试文件导入路径已更新</done>
</task>
<task type="auto">
<name>Task 4: 删除原 kb_pipeline 目录并运行全量测试</name>
<files>
(删除) kb_pipeline/
</files>
<action>
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
```
</action>
<verify>
<automated>pytest tests/ -v --tb=short</automated>
</verify>
<done>原 kb_pipeline 目录已删除,所有测试通过,CLI 正常工作</done>
</task>
</tasks>
<verification>
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"
</verification>
<success_criteria>
- [ ] kb-workflow/pipeline/ 目录包含所有 pipeline 模块
- [ ] kb-workflow/kb_workflow.py 使用新导入路径
- [ ] 所有测试文件使用新导入路径
- [ ] 所有测试通过 (pytest tests/ -v)
- [ ] CLI 可执行 (python kb_workflow.py --help)
- [ ] 原 kb_pipeline 目录已删除
</success_criteria>
<output>
After completion, create `.planning/phases/06-code-consolidation/06-02-SUMMARY.md`
</output>