docs(01-02): complete core pipeline schemas plan
- Create 01-02-SUMMARY.md with execution results - Update STATE.md: Plan 2 of 3 completed, 8% progress - Mark requirements complete: PIPE-01, PIPE-03, VAL-01, REL-03 - Update ROADMAP.md with plan progress Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,19 +9,19 @@ Requirements for initial release. Each maps to roadmap phases.
|
|||||||
|
|
||||||
### Pipeline Model (管道模型)
|
### Pipeline Model (管道模型)
|
||||||
|
|
||||||
- [ ] **PIPE-01**: 统一的管道模型 - 每个步骤是独立管道,定义清晰的输入→处理→输出
|
- [x] **PIPE-01**: 统一的管道模型 - 每个步骤是独立管道,定义清晰的输入→处理→输出
|
||||||
- [ ] **PIPE-02**: 步骤级状态管理 - 主要步骤完成后记录状态到 workflow_state.json,支持断点续传
|
- [ ] **PIPE-02**: 步骤级状态管理 - 主要步骤完成后记录状态到 workflow_state.json,支持断点续传
|
||||||
- [ ] **PIPE-03**: 统一 JSON Schema - 所有子技能遵守统一的 StepInput/StepOutput 格式规范
|
- [x] **PIPE-03**: 统一 JSON Schema - 所有子技能遵守统一的 StepInput/StepOutput 格式规范
|
||||||
|
|
||||||
### Reliability (可靠性)
|
### Reliability (可靠性)
|
||||||
|
|
||||||
- [ ] **REL-01**: 幂等执行保证 - 重复执行同一链接不会产生重复文件或重复处理
|
- [ ] **REL-01**: 幂等执行保证 - 重复执行同一链接不会产生重复文件或重复处理
|
||||||
- [ ] **REL-02**: 错误恢复策略 - 403/超时/网络错误有明确的降级策略和重试机制
|
- [ ] **REL-02**: 错误恢复策略 - 403/超时/网络错误有明确的降级策略和重试机制
|
||||||
- [ ] **REL-03**: 清晰的流程定义 - 每个步骤的前置条件、输出格式、成功标准明确
|
- [x] **REL-03**: 清晰的流程定义 - 每个步骤的前置条件、输出格式、成功标准明确
|
||||||
|
|
||||||
### Validation (验证)
|
### Validation (验证)
|
||||||
|
|
||||||
- [ ] **VAL-01**: Schema 验证机制 - 每个步骤输出通过 Pydantic Schema 验证,失败则阻止进入下一步
|
- [x] **VAL-01**: Schema 验证机制 - 每个步骤输出通过 Pydantic Schema 验证,失败则阻止进入下一步
|
||||||
|
|
||||||
### Maintainability (可维护性)
|
### Maintainability (可维护性)
|
||||||
|
|
||||||
@@ -69,13 +69,13 @@ Which phases cover which requirements. Updated during roadmap creation.
|
|||||||
|
|
||||||
| Requirement | Phase | Status |
|
| Requirement | Phase | Status |
|
||||||
|-------------|-------|--------|
|
|-------------|-------|--------|
|
||||||
| PIPE-01 | Phase 1 | Pending |
|
| PIPE-01 | Phase 1 | Complete |
|
||||||
| PIPE-02 | Phase 1 | Pending |
|
| PIPE-02 | Phase 1 | Pending |
|
||||||
| PIPE-03 | Phase 1 | Pending |
|
| PIPE-03 | Phase 1 | Complete |
|
||||||
| REL-01 | Phase 1 | Pending |
|
| REL-01 | Phase 1 | Pending |
|
||||||
| REL-02 | Phase 1 | Pending |
|
| REL-02 | Phase 1 | Pending |
|
||||||
| REL-03 | Phase 1 | Pending |
|
| REL-03 | Phase 1 | Complete |
|
||||||
| VAL-01 | Phase 1 | Pending |
|
| VAL-01 | Phase 1 | Complete |
|
||||||
| MNT-02 | Phase 1 | Pending |
|
| MNT-02 | Phase 1 | Pending |
|
||||||
| MNT-03 | Phase 1 | Pending |
|
| MNT-03 | Phase 1 | Pending |
|
||||||
| PLAT-01 | Phase 2 | Pending |
|
| PLAT-01 | Phase 2 | Pending |
|
||||||
|
|||||||
+21
-17
@@ -3,15 +3,15 @@ gsd_state_version: 1.0
|
|||||||
milestone: v1.0
|
milestone: v1.0
|
||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
status: planning
|
status: planning
|
||||||
stopped_at: Phase 1 context gathered
|
stopped_at: Plan 02 completed (Core Pipeline Schemas)
|
||||||
last_updated: "2026-03-13T08:35:31.810Z"
|
last_updated: "2026-03-13T09:09:01Z"
|
||||||
last_activity: 2026-03-13 — Roadmap created, phases defined
|
last_activity: 2026-03-13 — Plan 02 completed (Core Pipeline Schemas)
|
||||||
progress:
|
progress:
|
||||||
total_phases: 4
|
total_phases: 4
|
||||||
completed_phases: 0
|
completed_phases: 0
|
||||||
total_plans: 0
|
total_plans: 3
|
||||||
completed_plans: 0
|
completed_plans: 1
|
||||||
percent: 0
|
percent: 8
|
||||||
---
|
---
|
||||||
|
|
||||||
# Project State
|
# Project State
|
||||||
@@ -26,24 +26,25 @@ See: .planning/PROJECT.md (updated 2026-03-13)
|
|||||||
## Current Position
|
## Current Position
|
||||||
|
|
||||||
Phase: 1 of 4 (Foundation)
|
Phase: 1 of 4 (Foundation)
|
||||||
Plan: 0 of 3 in current phase
|
Current Plan: 2 of 3 in current phase
|
||||||
Status: Ready to plan
|
Total Plans in Phase: 3
|
||||||
Last activity: 2026-03-13 — Roadmap created, phases defined
|
Status: Executing
|
||||||
|
Last activity: 2026-03-13 — Plan 02 completed (Core Pipeline Schemas)
|
||||||
|
|
||||||
Progress: [░░░░░░░░░░] 0%
|
Progress: [█░░░░░░░░░] 8%
|
||||||
|
|
||||||
## Performance Metrics
|
## Performance Metrics
|
||||||
|
|
||||||
**Velocity:**
|
**Velocity:**
|
||||||
- Total plans completed: 0
|
- Total plans completed: 1
|
||||||
- Average duration: - min
|
- Average duration: 7 min
|
||||||
- Total execution time: 0.0 hours
|
- Total execution time: 0.1 hours
|
||||||
|
|
||||||
**By Phase:**
|
**By Phase:**
|
||||||
|
|
||||||
| Phase | Plans | Total | Avg/Plan |
|
| Phase | Plans | Total | Avg/Plan |
|
||||||
|-------|-------|-------|----------|
|
|-------|-------|-------|----------|
|
||||||
| 1. Foundation | 0 | - | - |
|
| 1. Foundation | 1 | 7 min | 7 min |
|
||||||
| 2. Platform Skills | 0 | - | - |
|
| 2. Platform Skills | 0 | - | - |
|
||||||
| 3. Processing Skills | 0 | - | - |
|
| 3. Processing Skills | 0 | - | - |
|
||||||
| 4. Analysis & Orchestration | 0 | - | - |
|
| 4. Analysis & Orchestration | 0 | - | - |
|
||||||
@@ -62,6 +63,9 @@ Decisions are logged in PROJECT.md Key Decisions table.
|
|||||||
Recent decisions affecting current work:
|
Recent decisions affecting current work:
|
||||||
|
|
||||||
- [Roadmap]: 采用4阶段结构(coarse粒度),合并Processing和Analysis相关需求
|
- [Roadmap]: 采用4阶段结构(coarse粒度),合并Processing和Analysis相关需求
|
||||||
|
- [01-02]: 使用 Pydantic v2 作为 Schema 验证框架
|
||||||
|
- [01-02]: WorkflowState 包含步骤状态管理方法
|
||||||
|
- [01-02]: 创建 pytest.ini 配置 pythonpath
|
||||||
|
|
||||||
### Pending Todos
|
### Pending Todos
|
||||||
|
|
||||||
@@ -77,6 +81,6 @@ None yet.
|
|||||||
|
|
||||||
## Session Continuity
|
## Session Continuity
|
||||||
|
|
||||||
Last session: 2026-03-13T08:35:31.808Z
|
Last session: 2026-03-13T09:09:01Z
|
||||||
Stopped at: Phase 1 context gathered
|
Stopped at: Plan 02 completed (Core Pipeline Schemas)
|
||||||
Resume file: .planning/phases/01-foundation/01-CONTEXT.md
|
Resume file: .planning/phases/01-foundation/01-02-SUMMARY.md
|
||||||
|
|||||||
@@ -0,0 +1,130 @@
|
|||||||
|
---
|
||||||
|
phase: 01-foundation
|
||||||
|
plan: 02
|
||||||
|
subsystem: pipeline
|
||||||
|
tags: [pydantic, schema, validation, tdd, pytest]
|
||||||
|
|
||||||
|
# Dependency graph
|
||||||
|
requires: []
|
||||||
|
provides:
|
||||||
|
- StepInput - 步骤输入基类,包含 content_id 和 platform
|
||||||
|
- StepOutput - 步骤输出基类,包含 success 和 error_message
|
||||||
|
- StepStatus - 步骤状态枚举 (PENDING, RUNNING, COMPLETED, FAILED, SKIPPED)
|
||||||
|
- StepRecord - 步骤执行记录
|
||||||
|
- WorkflowState - 工作流状态管理
|
||||||
|
- StepDefinition - 步骤定义配置
|
||||||
|
affects: [01-03, 02-*, 03-*, 04-*]
|
||||||
|
|
||||||
|
# Tech tracking
|
||||||
|
tech-stack:
|
||||||
|
added: [pydantic v2, pytest, pytest-cov]
|
||||||
|
patterns: [Pydantic BaseModel, TDD workflow, JSON serialization]
|
||||||
|
|
||||||
|
key-files:
|
||||||
|
created:
|
||||||
|
- kb_pipeline/__init__.py
|
||||||
|
- kb_pipeline/schemas.py
|
||||||
|
- tests/test_pipeline/__init__.py
|
||||||
|
- tests/test_pipeline/conftest.py
|
||||||
|
- tests/test_pipeline/test_schemas.py
|
||||||
|
- pytest.ini
|
||||||
|
modified: []
|
||||||
|
|
||||||
|
key-decisions:
|
||||||
|
- "使用 Pydantic v2 作为 Schema 验证框架"
|
||||||
|
- "WorkflowState 包含步骤状态管理方法 (mark_step_started/completed/failed)"
|
||||||
|
- "StepDefinition 支持依赖声明"
|
||||||
|
|
||||||
|
patterns-established:
|
||||||
|
- "Schema 继承: 所有步骤输入继承 StepInput,输出继承 StepOutput"
|
||||||
|
- "状态管理: WorkflowState 通过方法管理步骤状态转换"
|
||||||
|
- "JSON 序列化: 所有 Schema 支持 model_dump_json() 和 model_validate_json()"
|
||||||
|
|
||||||
|
requirements-completed: [PIPE-01, PIPE-03, VAL-01, REL-03]
|
||||||
|
|
||||||
|
# Metrics
|
||||||
|
duration: 7min
|
||||||
|
completed: 2026-03-13
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 1 Plan 2: Core Pipeline Schemas Summary
|
||||||
|
|
||||||
|
**定义工作流管道核心 Schema (StepInput, StepOutput, StepStatus, StepRecord, WorkflowState, StepDefinition),使用 Pydantic v2 实现类型安全和自动验证,100% 测试覆盖率**
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
- **Duration:** 7 min
|
||||||
|
- **Started:** 2026-03-13T09:02:08Z
|
||||||
|
- **Completed:** 2026-03-13T09:09:01Z
|
||||||
|
- **Tasks:** 3
|
||||||
|
- **Files modified:** 6
|
||||||
|
|
||||||
|
## Accomplishments
|
||||||
|
- 建立核心 Schema 体系,支持步骤输入/输出验证
|
||||||
|
- WorkflowState 实现步骤状态管理方法
|
||||||
|
- 37 个测试用例,100% 代码覆盖率
|
||||||
|
- 完整的 JSON 序列化/反序列化支持
|
||||||
|
|
||||||
|
## Task Commits
|
||||||
|
|
||||||
|
Each task was committed atomically:
|
||||||
|
|
||||||
|
1. **Task 1: Create package structure and write failing tests** - `85413bc` (test)
|
||||||
|
2. **Task 2: Implement core schemas** - `2caddd7` (feat)
|
||||||
|
3. **Task 3: Refactor and verify JSON serialization** - `7ffaafd` (refactor)
|
||||||
|
|
||||||
|
_Note: TDD tasks have multiple commits (test -> feat -> refactor)_
|
||||||
|
|
||||||
|
## Files Created/Modified
|
||||||
|
- `kb_pipeline/__init__.py` - 包初始化和公共接口导出
|
||||||
|
- `kb_pipeline/schemas.py` - 核心 Schema 定义 (163 行)
|
||||||
|
- `tests/test_pipeline/__init__.py` - 测试包初始化
|
||||||
|
- `tests/test_pipeline/conftest.py` - Pytest fixtures
|
||||||
|
- `tests/test_pipeline/test_schemas.py` - Schema 测试 (375 行, 37 个测试)
|
||||||
|
- `pytest.ini` - Pytest 配置 (pythonpath 设置)
|
||||||
|
|
||||||
|
## Decisions Made
|
||||||
|
- 使用 Pydantic v2 BaseModel 作为 Schema 基类
|
||||||
|
- StepStatus 使用 str Enum 便于 JSON 序列化
|
||||||
|
- WorkflowState 方法直接操作 steps 字典,简化状态管理
|
||||||
|
- 创建 pytest.ini 配置 pythonpath,避免 PYTHONPATH 环境变量
|
||||||
|
|
||||||
|
## Deviations from Plan
|
||||||
|
|
||||||
|
### Auto-fixed Issues
|
||||||
|
|
||||||
|
**1. [Rule 3 - Blocking] Created virtual environment and installed dependencies**
|
||||||
|
- **Found during:** Task 1 (test collection)
|
||||||
|
- **Issue:** pytest 未安装,系统 Python 禁止直接安装包
|
||||||
|
- **Fix:** 创建 .venv 虚拟环境,安装 pytest 和 pydantic
|
||||||
|
- **Files modified:** .venv/ (新目录)
|
||||||
|
- **Verification:** pytest 成功运行测试
|
||||||
|
- **Committed in:** N/A (环境配置,未提交到版本控制)
|
||||||
|
|
||||||
|
**2. [Rule 3 - Blocking] Added pytest.ini for PYTHONPATH configuration**
|
||||||
|
- **Found during:** Task 2 (test execution)
|
||||||
|
- **Issue:** 模块导入失败,kb_pipeline 未在 Python 路径中
|
||||||
|
- **Fix:** 创建 pytest.ini 配置 pythonpath = .
|
||||||
|
- **Files modified:** pytest.ini
|
||||||
|
- **Verification:** 测试无需设置环境变量即可运行
|
||||||
|
- **Committed in:** `2caddd7` (Task 2 commit)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Total deviations:** 2 auto-fixed (2 blocking)
|
||||||
|
**Impact on plan:** 所有修复均为必要的开发环境配置,未影响计划功能
|
||||||
|
|
||||||
|
## Issues Encountered
|
||||||
|
None - TDD 流程顺利执行
|
||||||
|
|
||||||
|
## User Setup Required
|
||||||
|
None - 无外部服务配置要求
|
||||||
|
|
||||||
|
## Next Phase Readiness
|
||||||
|
- 核心 Schema 定义完成,可为后续步骤提供类型安全验证
|
||||||
|
- WorkflowState 状态管理方法可用于 01-03 计划的状态持久化
|
||||||
|
- pytest 和 venv 配置完成,后续测试可直接使用
|
||||||
|
|
||||||
|
---
|
||||||
|
*Phase: 01-foundation*
|
||||||
|
*Completed: 2026-03-13*
|
||||||
Reference in New Issue
Block a user