mit einem Klick
启动小说管理面板,查看项目状态、编辑文风约束。
npx skills add https://github.com/lujih/webnovel-writer-opencode --skill webnovel-dashboardKopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um den Skill zu installieren
启动小说管理面板,查看项目状态、编辑文风约束。
npx skills add https://github.com/lujih/webnovel-writer-opencode --skill webnovel-dashboardKopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um den Skill zu installieren
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
修复问题章节——诊断、清理脏实体、重审查、重提交。触发:章节断裂、OOC偏离、设定矛盾修复。
查询项目设定、角色、力量体系、势力、伏笔等信息。支持紧急度分析与金手指状态查询。
安全删除指定章节并清理关联投影数据(state/memory)。支持 dry-run 预览。触发:删除章节、回退写作、清理烂章。
重写指定章节——先安全删除旧版本再调用 webnovel-write 重新创作。触发:重写章节、翻修烂章、改剧情分支、修设定矛盾。
连续写作多章。当用户要求多章写作时必须使用此 skill。 ## 触发条件 - "连续写N章"、"写第X-Y章"、"批量写X-Y章"、"一次写N章" - "重写第X-Y章"、"修改第X-Y章" - "多章"、"多章节" ## 区分规则 - 单章 → webnovel-write - 多章 → 必须使用本 skill
| name | webnovel-dashboard |
| description | 启动小说管理面板,查看项目状态、编辑文风约束。 |
| compatibility | opencode |
在本地启动 Web 面板,查看创作进度、设定词典、关系图谱、章节内容与追读力数据,并可编辑文风约束。
| 页面 | 路由 | 功能 |
|---|---|---|
| 总览 | / | 统计卡片、章节趋势、告警 |
| 角色图鉴 | /characters | 实体列表、关系图谱 |
| 节奏雷达 | /pacing | 钩子强度、strand 分布、字数箱线图 |
| 伏笔追踪 | /foreshadowing | 伏笔甘特图、债务表 |
| 文档浏览 | /files | 文件树、正文预览 |
| 文风约束 | /style | 编辑文风约束(5 Tab) |
| 系统状态 | /system | 合同树、提交历史、RAG 环境、运维操作 |
5 个 Tab 对应 5 层文风约束:
| Tab | 数据源 | 读写 |
|---|---|---|
| 全局文风 | MASTER_SETTING.json → master_constraints | 读写(locked 字段不可改) |
| 禁止模式 | anti_patterns.json | 读写(增删) |
| 写作技法 | 写作技法.csv(104 条) | 只读(搜索+筛选+展开详情) |
| 章级合同 | .story-system/chapters/chapter_*.json | 只读(章节选择+详情查看) |
| 审查维度 | reviewer.md 13 维度 + anti_patterns.json | 只读 |
| Endpoint | Method | 功能 |
|---|---|---|
/api/style/master-setting | PUT | 更新 master_constraints |
/api/style/anti-patterns | POST | 追加反模式(自动去重) |
/api/style/anti-patterns/delete | POST | 按文本删除反模式 |
写入操作通过 atomic_write_json 原子写入,带文件锁防并发。
# 以下命令假设当前目录为 webnovel-writer 仓库根目录
export SCRIPTS_DIR="${PWD}/.opencode/scripts"
export DASHBOARD_DIR="${PWD}/.opencode/dashboard"
test -d "${DASHBOARD_DIR}" || { echo "错误: 未找到 ${DASHBOARD_DIR},请确保当前目录是 webnovel-writer 仓库根目录"; exit 1; }
python -m pip install -r "${DASHBOARD_DIR}/requirements.txt" --quiet
export PROJECT_ROOT="$(python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PWD}" where)"
test -n "$PROJECT_ROOT" && test -f "${PROJECT_ROOT}/.webnovel/state.json" || { echo "错误: PROJECT_ROOT 解析失败,请用 --project-root 显式指定"; exit 1; }
echo "项目路径: ${PROJECT_ROOT}"
test -f "${DASHBOARD_DIR}/frontend/dist/index.html" || { echo "错误: 缺少前端构建产物 ${DASHBOARD_DIR}/frontend/dist/index.html"; exit 1; }
Dashboard 是长运行服务(uvicorn),必须用后台模式启动。命令中设置
run_in_background: true。
PYTHONPATH="${PWD}/.opencode" python -X utf8 -m dashboard.server --project-root "${PROJECT_ROOT}"
默认端口 8765,访问 http://127.0.0.1:8765。
自定义端口:
PYTHONPATH="${PWD}/.opencode" python -X utf8 -m dashboard.server --project-root "${PROJECT_ROOT}" --port 9000 --no-browser
自动关闭旧进程并启动:
PYTHONPATH="${PWD}/.opencode" python -X utf8 -m dashboard.server --project-root "${PROJECT_ROOT}" --kill-existing --no-browser
curl -s http://127.0.0.1:8765/api/story-runtime/health || echo "服务未启动"
curl -s http://127.0.0.1:8765/api/style/master-setting || echo "文风编辑器不可用"
server.py 按以下优先级解析项目根目录:
--project-root 参数WEBNOVEL_PROJECT_ROOT 环境变量.webnovel/state.json 的目录).opencode/.webnovel-current-project 指针文件E:\workspace\webnovel\书名\)127.0.0.1:8765pip install -r requirements.txt)chcp 65001 后重试--kill-existing 自动关闭旧进程| 故障 | 恢复方式 |
|---|---|
| 依赖安装失败 | 检查 Python 版本,手动 pip install -r requirements.txt |
前端 dist/ 缺失 | 确认插件完整安装 |
| PROJECT_ROOT 解析失败 | 显式传 --project-root 或设置 WEBNOVEL_PROJECT_ROOT 环境变量 |
| 端口占用 | 使用 --kill-existing 自动关闭旧进程,或 --port <其他端口> |
| 服务被 timeout 终止 | 确保使用后台模式(run_in_background: true)启动 |
| 页面空白/数据缺失 | 确认 .webnovel/ 下有 state.json、index.db 等数据文件 |