This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-skills/.planning/phases/06-code-consolidation/06-01-PLAN.md
T

8.8 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous, requirements, must_haves
phase plan type wave depends_on files_modified autonomous requirements must_haves
06-code-consolidation 01 execute 1
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
true
MET-01
MET-02
MET-03
MET-04
MET-05
truths artifacts key_links
kb_workflow.metadata.bilibili_extractor 可正常导入
kb_workflow.metadata.zhihu_extractor 可正常导入
kb_pipeline/platforms/ 模块可通过新路径导入 metadata 模块
原 kb-bilibili-metadata 目录已删除
原 kb-zhihu-metadata 目录已删除
path provides
kb-workflow/metadata/__init__.py metadata 包入口,导出 BilibiliExtractor 和 ZhihuPlaywrightExtractor
path provides
kb-workflow/metadata/bilibili_extractor.py B站元数据提取器
path provides
kb-workflow/metadata/zhihu_extractor.py 知乎内容提取器
from to via
kb_pipeline/platforms/bilibili.py kb_workflow.metadata.bilibili_extractor from kb_workflow.metadata.bilibili_extractor import BilibiliExtractor
from to via
kb_pipeline/platforms/zhihu.py kb_workflow.metadata.zhihu_extractor 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 使用标准导入。

<execution_context> @/home/starmen1265/.claude/get-shit-done/workflows/execute-plan.md @/home/starmen1265/.claude/get-shit-done/templates/summary.md </execution_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

From kb_pipeline/platforms/bilibili.py (需要修改的动态导入):

# 旧代码 - 需要删除
_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 (需要修改的动态导入):

# 旧代码 - 需要删除
_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 内部代码(保持原样)
  </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",
]
  1. 移动后不要修改内部代码(保持原样) 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 行):
    # 删除以下代码
    _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"

<success_criteria>

  • kb-workflow/metadata/ 目录包含 bilibili 和 zhihu 所有模块
  • kb_pipeline/platforms/ 使用标准导入,无 sys.path 操作
  • 所有测试通过 (pytest tests/ -v)
  • 原 kb-bilibili-metadata 和 kb-zhihu-metadata 目录已删除 </success_criteria>
After completion, create `.planning/phases/06-code-consolidation/06-01-SUMMARY.md`