UNPKG

@ttaqt/novel-workflow-mcp

Version:

MCP server for AI-assisted novel writing workflow with real-time web dashboard

200 lines (174 loc) 8.5 kB
export const steeringGuideTool = { name: 'steering-guide', description: `Load guide for creating story steering documents. # Instructions Call ONLY when user explicitly requests steering document creation or asks about story foundation docs. Not part of standard writing workflow. Provides templates and guidance for story-concept.md, world-building.md, and character-profiles.md creation. Its important that you follow this workflow exactly to avoid errors.`, inputSchema: { type: 'object', properties: {}, additionalProperties: false } }; export async function steeringGuideHandler(args, context) { return { success: true, message: 'Story steering workflow guide loaded - follow this workflow exactly', data: { guide: getSteeringGuide(), dashboardUrl: context.dashboardUrl }, nextSteps: [ 'Only proceed if user requested steering docs', 'Create story-concept.md first', 'Then world-building.md and character-profiles.md', 'Reference in future stories', context.dashboardUrl ? `Dashboard: ${context.dashboardUrl}` : 'Please start the dashboard or use "Novel Workflow MCP"' ] }; } function getSteeringGuide() { return `# 指导文档工作流 - Story Steering Workflow ## 概述 仅在明确请求时创建故事级别的指导文档。指导文档为整个小说项目建立核心概念、世界观和人物设定。严格遵循此工作流程避免错误。 ## 工作流程图 \`\`\`mermaid flowchart TD Start([开始:设置指导文档]) --> Guide[steering-guide<br/>加载工作流指导] %% 阶段 1: 故事概念 Guide --> P1_Template[检查user-templates,<br/>然后读取模板:<br/>story-concept-template.md] P1_Template --> P1_Generate[生成故事核心概念] P1_Generate --> P1_Create[创建文件:<br/>.novel-workflow/steering/<br/>story-concept.md] P1_Create --> P1_Approve[approvals<br/>action: request<br/>仅filePath] P1_Approve --> P1_Status[approvals<br/>action: status<br/>轮询状态] P1_Status --> P1_Check{Status?} P1_Check -->|needs-revision| P1_Update[根据评论更新文档] P1_Update --> P1_Create P1_Check -->|approved| P1_Clean[approvals<br/>action: delete] P1_Clean -->|failed| P1_Status %% 阶段 2: 世界观设定 P1_Clean -->|success| P2_Template[检查user-templates,<br/>然后读取模板:<br/>world-building-template.md] P2_Template --> P2_Build[构建世界观] P2_Build --> P2_Create[创建文件:<br/>.novel-workflow/steering/<br/>world-building.md] P2_Create --> P2_Approve[approvals<br/>action: request<br/>仅filePath] P2_Approve --> P2_Status[approvals<br/>action: status<br/>轮询状态] P2_Status --> P2_Check{Status?} P2_Check -->|needs-revision| P2_Update[根据评论更新文档] P2_Update --> P2_Create P2_Check -->|approved| P2_Clean[approvals<br/>action: delete] P2_Clean -->|failed| P2_Status %% 阶段 3: 人物档案 P2_Clean -->|success| P3_Template[检查user-templates,<br/>然后读取模板:<br/>character-profiles-template.md] P3_Template --> P3_Build[构建人物档案] P3_Build --> P3_Create[创建文件:<br/>.novel-workflow/steering/<br/>character-profiles.md] P3_Create --> P3_Approve[approvals<br/>action: request<br/>仅filePath] P3_Approve --> P3_Status[approvals<br/>action: status<br/>轮询状态] P3_Status --> P3_Check{Status?} P3_Check -->|needs-revision| P3_Update[根据评论更新文档] P3_Update --> P3_Create P3_Check -->|approved| P3_Clean[approvals<br/>action: delete] P3_Clean -->|failed| P3_Status P3_Clean -->|success| Complete([指导文档完成]) style Start fill:#e6f3ff style Complete fill:#e6f3ff style P1_Check fill:#ffe6e6 style P2_Check fill:#ffe6e6 style P3_Check fill:#ffe6e6 \`\`\` ## 指导文档阶段 ### 阶段 1: 故事概念文档 **目的**:定义故事核心概念、主题和两难抉择。 **文件操作**: - 检查自定义模板:\`.novel-workflow/user-templates/story-concept-template.md\` - 读取模板:\`.novel-workflow/templates/story-concept-template.md\`(如无自定义) - 创建文档:\`.novel-workflow/steering/story-concept.md\` **工具**: - steering-guide:加载工作流指导 - approvals:管理审批工作流(操作:request, status, delete) **流程**: 1. 加载 steering guide 获取工作流概述 2. 检查 \`.novel-workflow/user-templates/story-concept-template.md\` 3. 如无自定义,从 \`.novel-workflow/templates/story-concept-template.md\` 读取 4. 生成故事核心概念: - 一句话概括(类型+主角+任务,≤25词) - 五句话梗概(三幕式结构) - 两次两难抉择 - 道德前提 5. 在 \`.novel-workflow/steering/story-concept.md\` 创建文档 6. 使用 approvals 请求审批(action:'request',仅filePath) 7. 轮询状态(action:'status')直到 approved/needs-revision(绝不接受口头批准) 8. 如 needs-revision:更新文档,创建新审批,不要继续 9. 一旦 approved:使用 approvals(action:'delete',必须成功)然后继续 10. 如删除失败:停止 - 返回轮询 ### 阶段 2: 世界观设定文档 **目的**:建立完整的世界观体系。 **文件操作**: - 检查自定义模板:\`.novel-workflow/user-templates/world-building-template.md\` - 读取模板:\`.novel-workflow/templates/world-building-template.md\`(如无自定义) - 创建文档:\`.novel-workflow/steering/world-building.md\` **工具**: - approvals:管理审批工作流 **流程**: 1. 检查 \`.novel-workflow/user-templates/world-building-template.md\` 2. 如无自定义,从 \`.novel-workflow/templates/world-building-template.md\` 读取 3. 构建世界观设定: - 时代背景 - 地理环境 - 社会结构 - 力量体系 - 特殊设定 4. 在 \`.novel-workflow/steering/world-building.md\` 创建文档 5. 使用 approvals 请求审批 6. 轮询状态直到 approved/needs-revision 7. 如 needs-revision:更新文档,创建新审批,不要继续 8. 一旦 approved:删除审批(必须成功)然后继续 9. 如删除失败:停止 - 返回轮询 ### 阶段 3: 人物档案文档 **目的**:建立完整的人物体系和关系网络。 **文件操作**: - 检查自定义模板:\`.novel-workflow/user-templates/character-profiles-template.md\` - 读取模板:\`.novel-workflow/templates/character-profiles-template.md\`(如无自定义) - 创建文档:\`.novel-workflow/steering/character-profiles.md\` **工具**: - approvals:管理审批工作流 **流程**: 1. 检查 \`.novel-workflow/user-templates/character-profiles-template.md\` 2. 如无自定义,从 \`.novel-workflow/templates/character-profiles-template.md\` 读取 3. 构建人物档案: - 主角完整档案 - 重要配角设定 - 对手角色 - 人物关系 - 成长弧线 4. 在 \`.novel-workflow/steering/character-profiles.md\` 创建文档 5. 使用 approvals 请求审批 6. 轮询状态直到 approved/needs-revision 7. 如 needs-revision:更新文档,创建新审批,不要继续 8. 一旦 approved:删除审批(必须成功) 9. 如删除失败:停止 - 返回轮询 10. 成功清理后:"指导文档完成。准备创建故事大纲?" ## 工作流程规则 - 在指定文件路径直接创建文档 - 首先检查 \`.novel-workflow/user-templates/\` 中的自定义模板 - 如无自定义模板,从 \`.novel-workflow/templates/\` 读取 - 遵循准确的模板结构 - 各阶段间获取明确的用户批准(使用 approvals 工具,action:'request') - 按顺序完成阶段(不跳过) - 审批请求:仅提供 filePath,绝不提供 content - 阻塞:如审批删除失败绝不继续 - 关键:必须有 approved 状态且成功清理才能进入下一阶段 - 关键:绝不接受口头批准 - 仅通过仪表板或扩展 - 绝不在用户说"approved"后继续 - 仅检查系统状态 ## 文件结构 \`\`\` .novel-workflow/ ├── templates/ # 服务器启动时自动填充 │ ├── story-concept-template.md │ ├── world-building-template.md │ └── character-profiles-template.md └── steering/ ├── story-concept.md ├── world-building.md └── character-profiles.md \`\`\``; } //# sourceMappingURL=steering-guide.js.map