@claude-code
一个可以进行小说深度写作的平台,使用分层架构思想,从底层逻辑逐步构建,让情节自然流动。
📝 描述
实现一个基于分层架构的个人小说深度写作平台。核心理念:把 CLAUDE.md 的「分层原则」同时应用到写作方法论(世界观规则→人物→场景→章节→故事大纲,逐层支撑)和软件架构(L0/L1/L2/L3,逐层依赖)。每层由多张卡片构成,卡片之间通过有向支撑边(多对多)关联,使情节可向上追溯至世界观与人物。集成 AI 提供章节润色、内容补充与基于 MCP 的侧边栏自然语言 CRUD 助手。卡片支撑关系可视化用 cytoscape.js + dagre 纵向布局,支持本卡视图与全局视图。 In-scope(本 MVP): - 单用户(黄谦敏)使用,部署到 Server #1 (124.71.219.208),域名 novel.intelab.cn - 自定义层级方案,默认 5 层:世界观规则 / 人物 / 场景 / 章节 / 故事大纲 - 卡片 CRUD + markdown 正文 + 自定义 fields - 卡片支撑边 CRUD(高层→低层),自动 DAG 循环检测 - 卡片工作台(三栏):层级导航 / 卡片列表 / 卡片详情 - 支撑关系可视化:本卡视图(1-2 跳邻居) + 全局视图(整本纵向节点连线图) - AI 集成:章节润色(选区) + 内容补充(光标) + 侧边栏 MCP 自然语言 CRUD - Web 响应式适配:桌面 ≥1024px 三栏 / 平板 768-1023px 两栏 / 手机 <768px 单栏 - nginx IP 白名单限制访问;Let's Encrypt HTTPS;SQLite 每日 cron 备份 - 复用 arch-platform 已登记资产:llm-client(L1)/ certbot(L1)/ docker(L0)/ circuit-breaker(L1) Out-of-scope(本次不做): - 多用户协作 / 账号体系 / 角色权限 - 评论 / 订阅 / 商业化 - 导出 docx / pdf / epub - 移动端原生 App - 自动云端同步(多设备实时同步) - 离线编辑
👤 用户故事
作为作家(黄谦敏),我希望在一个分层结构的工作台中管理小说的世界观规则、人物、场景与章节,通过卡片之间的支撑关系让情节自然流动,通过 AI 助手(润色/补充/自然语言 CRUD)加速创作,以便在不同设备上(手机/电脑)专心写出一部结构严谨、可追溯的小说。
✅ 验收标准 (12 项)
-
Given 用户在 https://novel.intelab.cn 已通过 IP 白名单访问
When 创建第一部小说
Then 可以选择默认 5 层方案(世界观/人物/场景/章节/故事大纲)或复制后自定义,完成后进入卡片工作台 -
Given 已进入某部小说的卡片工作台
When 在任意层级新增卡片并填写 markdown 正文 + 自定义 fields
Then 卡片列表实时刷新,卡片详情可编辑,可保存并出现在全局图中 -
Given 已有 ≥2 张不同层级的卡片
When 在卡片详情页拖拽连线建立支撑边(高层→低层)
Then 支撑边写入并立即在支撑图中可视化;若构成循环则被拒绝并提示 -
Given 已建立 ≥3 张卡片和若干支撑边
When 切换到「全局视图」
Then cytoscape.js 渲染整本小说的纵向节点连线图,层级着色,异常(孤立/无支撑)节点带 ⚠️ 标记 -
Given 已有默认层级方案
When 新建层级方案并改名/调序/增删层,绑定到一部新小说
Then 新小说按自定义方案显示层级,旧小说继续使用默认方案,数据互不干扰 -
Given 在章节编辑器选中一段散文
When 点击「润色」按钮
Then AI 收到上下文(章节引用的人物/场景/规则卡片 + 选中文本)后返回润色版本,原版本写入 chapter_version 历史可切换 -
Given 在章节编辑器光标停在某位置
When 点击「补充 N 段」按钮
Then AI 基于章节上下文与当前段落生成自然续写,新内容追加并写入历史版本 -
Given 右侧 AI 侧栏打开
When 输入自然语言指令,如「给李四加一个复仇动机卡片,关联魔法消耗生命」
Then AI 通过 MCP tools 自动建卡 + 建支撑边,过程透明展示给用户,结果写入 ai_op_log -
Given 在手机(<768px)访问
When 打开任意页面
Then 切换为单栏布局,顶部 Tab 切换列表/详情,支撑图简化为列表+缩进视图,可双指缩放 -
Given 服务部署在 Server #1
When 每日 03:00 cron 触发
Then SQLite 数据库 tar 备份到 /backup/novel-platform/,保留 30 天 -
Given AI 调用出错或响应过慢
When circuit-breaker 检测到阈值
Then LLM 调用熔断,降级为纯人工模式,UI 显示提示,故障解除后自动恢复 -
Given 访问 https://novel.intelab.cn
When 客户端 IP 不在白名单
Then nginx 返回 403,前端不加载;白名单内 IP 正常返回 HTTPS 页面
⚙️ 非功能需求
| performance | 全局支撑图渲染 <500ms(单本 ≤500 卡片 + ≤1500 边);单卡 CRUD 响应 <100ms |
|---|---|
| scalability | 单小说 ≤1000 卡片流畅,超出提示考虑分库/升级 Postgres |
| availability | Server #1 健康检查可访问;SQLite 每日 cron 备份保留 30 天;故障恢复 RPO ≤24h |
| security | nginx IP 白名单强制;Let's Encrypt HTTPS 全程;SQLite 文件权限 700 owner=novel;无第三方 cookie/tracker |
| reliability | LLM 调用走 llm-client(限速/重试/熔断/成本跟踪),设置月预算上限;MCP tool 调用契约受 schema 校验 |
| maintainability | L1/L2 资产全部登记到 arch-platform;严格分层 L2→L1→L0,禁止循环依赖;每里程碑单测 + 集成测试 |
| compatibility | iOS Safari 17+ / Android Chrome 120+ / 桌面 Chrome/Edge/Firefox 最近 2 版 |
| usability | 首次进入有 onboarding 提示;移动端单手可操作(底部抽屉式详情);AI tool call 透明可见 |
| observability | ai_op_log 完整记录每次 AI 操作(prompt/response/tool_calls/tokens);FastAPI access log;异常告警(可选) |
🔄 推进状态
创建于 2026-06-21 04:34 · 决策于 2026-07-01 18:28