文档版本: 1.0
创建日期: 2025年6月14日
执行原则: 测试驱动开发 (Test-First), 模块化构建, 持续集成
撰写人: “植耕大师”程序员
阶段零:项目奠基与环境搭建 (Phase 0: Project Scaffolding & CI Setup)
此阶段为所有后续开发工作铺设基石,确保工程规范与自动化流程先行。
- [基础设施] 初始化Git仓库,并建立主干/开发分支策略。
- [基础设施] 配置项目结构:
/src,/tests,/docs,/config。 - [基础设施] 设置依赖管理(如
package.json或pyproject.toml)。 - [开发规范] 配置代码格式化工具(如Prettier/Black)与静态检查工具(ESLint/Flake8)。
- [测试框架] 集成测试框架(如Jest/Pytest)与断言库。
- [CI/CD] 建立持续集成流水线(如GitHub Actions):配置自动化任务,在每次提交时运行代码检查与单元测试。
- [配置管理] 设定环境变量管理机制(如
.env),用于存储API密钥等敏感信息。
阶段一:耕耘【数据核心】(Phase 1: Build DP₁ - Project Data Core)
目标: 构建稳定、可靠的数据持久化与验证层。这是整个系统的基石。
- [编码] 定义数据契约: 在
/src/models或类似目录中,使用JSON Schema或TypeScript/Pydantic类,精确定义URD中所有的核心数据模型 (ProjectConfig,CoreConcept,CharacterProfile等)。 - [测试] 编写服务层测试: 在
/tests/services中创建test_project_data_service.ts/.py。test_create_and_load_project: 编写测试用例,模拟创建一个新项目,然后尝试加载它,断言加载后的数据与初始数据完全一致。此测试初始应为失败状态。
- [编码] 实现核心服务: 在
/src/services中创建ProjectDataService。- 实现
createProject和loadProject方法(例如,使用文件系统读写JSON文件),直到test_create_and_load_project通过。
- 实现
- [测试]
test_validation_logic: 编写测试用例,创建一个缺少必要字段(如角色档案缺少epiphany)的数据对象,断言ProjectDataService.validate()方法返回{isValid: false}及具体的错误信息。此测试初始应为失败状态。 - [编码] 实现验证逻辑: 在
ProjectDataService中实现validate方法,使用JSON Schema验证库来执行校验,直到test_validation_logic通过。 - [测试]
test_save_functionality: 编写测试用例,加载一个项目,对其进行修改,然后调用saveProject,再次加载,断言数据为修改后的状态。此测试初始应为失败状态。 - [编码] 实现保存逻辑: 实现
saveProject方法,直到test_save_functionality通过。 - [重构] 审视
ProjectDataService的代码,确保其逻辑清晰,错误处理得当。
阶段二:铸造【结构规划器】(Phase 2: Build DP₂ - Structural Planner)
目标: 将无形的“冲突”锻造成有形的“大纲”。
- [编码] 定义数据模型: 在
/src/models中定义OutlineTemplate和StoryOutline的数据结构。 - [编码] 建立模板库: 在
/config/templates目录下,创建至少两个模板的JSON文件(如three-act-structure.json,save-the-cat.json)。 - [测试] 编写生成器测试: 在
/tests/generators中创建test_outline_generator.ts/.py。test_prompt_generation_for_inciting_incident: 编写测试用例,提供一个模拟的ConflictMatrix和一个“三幕式”模板。此测试应专注于断言为“激励事件”节点生成的AI Prompt是正确的(即包含了预期的冲突信息),而非测试AI的返回结果。需要对AI调用进行Mock。此测试初始应为失败状态。
- [编码] 实现大纲生成器: 在
/src/generators中创建OutlineGeneratorModule。- 实现
generateOutline函数的核心逻辑,包括模板解析和冲突-节点映射算法,以生成正确的prompt。让test_prompt_generation_for_inciting_incident通过。
- 实现
- [测试]
test_full_outline_structure: 编写测试用例,断言在给定模板下,generateOutline函数返回的StoryOutline对象具有与模板完全一致的节点结构(数量、ID和标签)。 - [编码] 完善生成器: 确保
generateOutline完整实现了与AI的交互,并能将AI返回的内容组装成StoryOutline对象。让test_full_outline_structure通过。 - [重构] 优化prompt构建逻辑,使其更具通用性和扩展性。
阶段三:培育【写作环境】(Phase 3: Build DP₃ - Immersive Writing Environment)
目标: 创建核心的写作界面及其背后的智能辅助功能。
- [测试] 上下文检索测试: 在
/tests/retrievers中创建test_context_retriever.ts/.py。test_context_retrieval_for_chapter: 编写测试用例,给定一个包含角色实体名称的章节梗概和完整的ProjectData,断言retrieveContextForChapter返回的ChapterContext对象准确地包含了这些角色的关键信息。此测试初始应为失败状态。
- [编码] 实现上下文检索器: 在
/src/retrievers中实现retrieveContextForChapter函数。让test_context_retrieval_for_chapter通过。 - [测试] 一致性检查器测试: 在
/tests/checkers中创建test_consistency_checker.ts/.py。test_phobia_consistency_alert: 编写测试用例,提供一个有“恐高症”设定的角色档案和一段描述其“站在悬崖边”的文本,断言checkConsistency函数返回一个包含特定警告信息的数组。此测试初始应为失败状态。
- [编码] 实现一致性检查器: 在
/src/checkers中实现checkConsistency函数。让test_phobia_consistency_alert通过。 - [编码] UI原型开发: 使用UI框架(如React/Vue/Svelte),在
/src/components中开发MainEditorComponent的静态布局(三栏视图)。 - [集成] 连接后端逻辑: 将UI组件中的按钮和事件与已实现的后端函数 (
retrieveContextForChapter,generateDraft,checkConsistency) 进行连接。 - [UI测试] 编写组件测试: 使用UI测试库,测试
MainEditorComponent的交互逻辑,如点击“生成样章”按钮是否会触发相应的服务调用。
阶段四:审校【全局分析引擎】(Phase 4: Build DP₄ - Global Analysis Engine)
目标: 实现对作品的深度、全局性分析,赋予作品灵魂。
- [测试] 逻辑一致性测试: 在
/tests/analyzers中创建test_global_reviewer.ts/.py。test_detect_contradiction_dead_character_speaks: 编写测试用例,提供一个包含“角色死亡后又发言”的文本集,断言generateGlobalReview返回的报告中包含对此逻辑错误的准确描述。此测试初始应为失败状态。
- [编码] 实现逻辑一致性分析: 在
/src/analyzers中实现generateGlobalReview函数的逻辑一致性检查部分。让test_detect_contradiction_dead_character_speaks通过。 - [测试] 角色弧光测试:
test_positive_character_arc_detection: 编写测试用例,提供一个主角从懦弱到勇敢的完整故事文本和相应的角色档案,断言返回报告中对该角色的弧光分析结果为“正面完成”。需要对NLP模型进行Mock或使用简化的关键词评估。此测试初始应为失败状态。
- [编码] 实现角色弧光分析: 实现报告中的角色弧光分析部分。让
test_positive_character_arc_detection通过。 - [测试] 主题追踪测试:
test_motif_tracker_accuracy: 编写测试用例,提供一篇包含特定意象(如“鸟”)的文本,断言报告中的主题分析部分能准确统计其出现次数。此测试初始应为失败状态。
- [编码] 实现主题追踪分析: 实现报告中的主题意象追踪部分。让
test_motif_tracker_accuracy通过。 - [优化] 性能考量: 由于全局分析可能耗时较长,将
generateGlobalReview封装为异步任务,并设计好前端的加载与等待状态。
阶段五:整合、润色与发布 (Phase 5: Integration, Polish & Release)
目标: 将所有模块无缝整合,打磨用户体验,准备最终交付。
- [E2E测试] 编写端到端测试脚本: 使用Cypress或Playwright,编写一个完整的用户故事测试脚本,模拟从创建项目到生成最终审核报告的全过程。
- [UI/UX] 界面润色: 全面审查UI,确保所有界面元素符合URD中的NFR-5原则(界面抽象),对用户隐藏所有技术术语。
- [UI/UX] 完善用户引导: 添加必要的提示、工具说明(Tooltips)和新手引导流程。
- [文档] 撰写用户手册和帮助文档。
- [文档] 整理并归档所有设计与开发文档。
- [构建] 创建生产环境的构建版本。
- [部署] 部署应用或打包为可执行文件。
- [发布] 庆祝“植耕大师”的诞生。
这份清单将指引我们,以严谨的工程纪律,去实现那个富有诗意的创作梦想。
植耕大师”程序员
2025年6月14日