🏛 架构平台 Arch.Platform

一个可以进行小说深度写作的平台,使用分层架构思想,从底层逻辑逐步构建,让情节自然流动。

7043c9c4
✏️ 编辑
优先级 P2
类型 新功能
状态 进行中
负责人 @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 项)

  1. Given 用户在 https://novel.intelab.cn 已通过 IP 白名单访问
    When 创建第一部小说
    Then 可以选择默认 5 层方案(世界观/人物/场景/章节/故事大纲)或复制后自定义,完成后进入卡片工作台
  2. Given 已进入某部小说的卡片工作台
    When 在任意层级新增卡片并填写 markdown 正文 + 自定义 fields
    Then 卡片列表实时刷新,卡片详情可编辑,可保存并出现在全局图中
  3. Given 已有 ≥2 张不同层级的卡片
    When 在卡片详情页拖拽连线建立支撑边(高层→低层)
    Then 支撑边写入并立即在支撑图中可视化;若构成循环则被拒绝并提示
  4. Given 已建立 ≥3 张卡片和若干支撑边
    When 切换到「全局视图」
    Then cytoscape.js 渲染整本小说的纵向节点连线图,层级着色,异常(孤立/无支撑)节点带 ⚠️ 标记
  5. Given 已有默认层级方案
    When 新建层级方案并改名/调序/增删层,绑定到一部新小说
    Then 新小说按自定义方案显示层级,旧小说继续使用默认方案,数据互不干扰
  6. Given 在章节编辑器选中一段散文
    When 点击「润色」按钮
    Then AI 收到上下文(章节引用的人物/场景/规则卡片 + 选中文本)后返回润色版本,原版本写入 chapter_version 历史可切换
  7. Given 在章节编辑器光标停在某位置
    When 点击「补充 N 段」按钮
    Then AI 基于章节上下文与当前段落生成自然续写,新内容追加并写入历史版本
  8. Given 右侧 AI 侧栏打开
    When 输入自然语言指令,如「给李四加一个复仇动机卡片,关联魔法消耗生命」
    Then AI 通过 MCP tools 自动建卡 + 建支撑边,过程透明展示给用户,结果写入 ai_op_log
  9. Given 在手机(<768px)访问
    When 打开任意页面
    Then 切换为单栏布局,顶部 Tab 切换列表/详情,支撑图简化为列表+缩进视图,可双指缩放
  10. Given 服务部署在 Server #1
    When 每日 03:00 cron 触发
    Then SQLite 数据库 tar 备份到 /backup/novel-platform/,保留 30 天
  11. Given AI 调用出错或响应过慢
    When circuit-breaker 检测到阈值
    Then LLM 调用熔断,降级为纯人工模式,UI 显示提示,故障解除后自动恢复
  12. Given 访问 https://novel.intelab.cn
    When 客户端 IP 不在白名单
    Then nginx 返回 403,前端不加载;白名单内 IP 正常返回 HTTPS 页面

⚙️ 非功能需求

performance全局支撑图渲染 <500ms(单本 ≤500 卡片 + ≤1500 边);单卡 CRUD 响应 <100ms
scalability单小说 ≤1000 卡片流畅,超出提示考虑分库/升级 Postgres
availabilityServer #1 健康检查可访问;SQLite 每日 cron 备份保留 30 天;故障恢复 RPO ≤24h
securitynginx IP 白名单强制;Let's Encrypt HTTPS 全程;SQLite 文件权限 700 owner=novel;无第三方 cookie/tracker
reliabilityLLM 调用走 llm-client(限速/重试/熔断/成本跟踪),设置月预算上限;MCP tool 调用契约受 schema 校验
maintainabilityL1/L2 资产全部登记到 arch-platform;严格分层 L2→L1→L0,禁止循环依赖;每里程碑单测 + 集成测试
compatibilityiOS Safari 17+ / Android Chrome 120+ / 桌面 Chrome/Edge/Firefox 最近 2 版
usability首次进入有 onboarding 提示;移动端单手可操作(底部抽屉式详情);AI tool call 透明可见
observabilityai_op_log 完整记录每次 AI 操作(prompt/response/tool_calls/tokens);FastAPI access log;异常告警(可选)

🔄 推进状态

新状态
负责人
描述(rejected/cancelled 必填)

创建于 2026-06-21 04:34 · 决策于 2026-07-01 18:28