| name | project-health-mimo |
| version | 2.1.0 |
| description | 项目健康检查与修复。检测写作项目文件是否齐全,自动修复缺失文件。
触发方式:/project-health-mimo、/检查项目、「项目检查」「修复项目」「检查文件」
|
| inputs | [{"name":"project_dir","type":"directory","required":true,"description":"写作项目根目录"}] |
project-health-mimo:项目健康检查与修复
你是项目健康检查专家。检测写作项目的所有必需文件是否齐全,自动修复缺失文件。
触发条件
| 用户说 | 动作 |
|---|
| /project-health-mimo | 检查当前项目 |
| /project-health-mimo <项目目录> | 检查指定项目 |
| /project-health-mimo --fix | 检查并修复 |
| 检查项目 | 同 /project-health-mimo |
| 修复项目 | 同 /project-health-mimo --fix |
| 检查文件 | 同 /project-health-mimo |
必需文件清单
严重度分级说明:
- BLOCK(阻断):缺少会导致写作出错,必须立即修复
- WARN(警告):缺少会影响阅读/写作体验,建议修复
- OPTIONAL(可选):锦上添花,不强制
一级文件
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
AGENTS.md | BLOCK | Writing Project Rules | AI无法自动读取写作规则 |
.story-deployed | WARN | 部署标记 | 无法判断项目是否已初始化 |
.active-book | WARN | 当前书目标记 | 多书项目无法切换 |
设定目录(设定/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
设定/世界观/世界观.md | BLOCK | 核心世界观定义 | 世界观不完整,写作失去根基 |
设定/世界观/背景设定.md | BLOCK | 世界背景设定 | 世界观不完整(与世界观.md 二选一即可) |
设定/世界观/金手指.md | BLOCK | 金手指规则 | 金手指机制不明,力量体系混乱 |
设定/世界观/力量体系.md | BLOCK | 力量等级/修炼体系 | 战力崩坏风险 |
设定/角色/{角色名}.md | WARN | 角色设定 | 角色人设缺失 |
设定/势力/{势力名}.md | WARN | 势力设定 | 势力关系不明(通配检查:目录存在但无文件 = 警告) |
设定/关系.md | WARN | 角色关系 | 关系网缺失 |
设定/题材定位.md | WARN | 题材与目标读者 | 写作方向不明确 |
设定/文风.md | WARN | 文风约束 | 文风不一致 |
大纲目录(大纲/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
大纲/大纲.md | BLOCK | 全书卷级大纲 | 无法把握全书结构 |
大纲/卷纲_第X卷.md | WARN | 每卷详细大纲(通配检查) | 无法规划卷级节奏 |
大纲/细纲_第XXX章.md | WARN | 每章详细大纲(通配检查) | 章节写作无指引 |
大纲/存档/ | OPTIONAL | 大纲版本存档目录 | 历史版本丢失 |
追踪目录(追踪/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
追踪/上下文.md | BLOCK | 进度摘要 | 跨会话无法恢复 |
追踪/伏笔.md | BLOCK | 伏笔追踪 | 伏笔遗漏 |
追踪/角色状态.md | BLOCK | 角色状态 | 角色不一致 |
追踪/时间线.md | WARN | 事件时间线 | 时间混乱 |
追踪/物品.md | WARN | 物品追踪 | 物品位置矛盾 |
追踪/环境.md | WARN | 环境追踪 | 环境描述矛盾 |
追踪/物资.md | WARN | 物资追踪 | 经济状态不明 |
追踪/重复语句.md | WARN | 重复语句黑名单 | 重复表达 |
故事线目录(故事线/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
故事线/故事线_索引.md | WARN | 故事线列表+状态 | 主线/支线不明 |
故事线/故事线_主线_*.md | WARN | 主线故事线(通配检查) | 主线进展丢失 |
故事线/故事线_交叉点.md | WARN | 线与线交汇 | 交叉点遗漏 |
跨卷追踪目录(跨卷追踪/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
跨卷追踪/跨卷伏笔.md | WARN | 跨卷伏笔 | 长线伏笔遗漏 |
跨卷追踪/跨卷角色弧线.md | WARN | 角色全书成长 | 角色弧线断裂 |
跨卷追踪/卷间过渡.md | WARN | 卷与卷衔接 | 过渡不自然 |
正文目录(正文/)
| 文件 | 严重度 | 用途 | 缺失影响 |
|---|
正文/第XXX章_章名.md | WARN | 章节文件 | 无正文内容 |
其他目录
| 目录 | 严重度 | 用途 | 缺失影响 |
|---|
对标/ | OPTIONAL | 对标作品分析 | 参考素材丢失 |
参考资料/ | WARN | 参考资料 | 影响设定可信度 |
执行流程
Step 1:检测项目结构
node {skill_dir}/scripts/step-guard.js pre 01 <项目目录>
node {skill_dir}/scripts/project-health.js <项目目录> --check
node {skill_dir}/scripts/step-guard.js post 02 <项目目录>
Step 2:输出检测报告
🔍 项目健康检查报告
📊 项目:{项目名}
📁 状态:{健康/需修复}
✅ 已存在:
- AGENTS.md
- .story-deployed
- 设定/世界观/背景设定.md
- ...
❌ 缺失:
- 设定/关系.md
- 追踪/时间线.md
- ...
⚠️ 警告:
- 设定/角色/ 目录为空
- 大纲/ 目录缺少卷纲
Step 3:自动修复(--fix 模式)
node {skill_dir}/scripts/step-guard.js pre 04 <项目目录>
node {skill_dir}/scripts/project-health.js <项目目录> --fix
node {skill_dir}/scripts/step-guard.js post 04 <项目目录>
修复内容:
- 创建缺失目录
- 创建缺失文件(使用默认模板)
- 初始化追踪文件
- 更新 .story-deployed 标记
Step 4:输出修复报告
🔧 项目修复完成
✅ 已创建:
- 设定/关系.md(空模板)
- 设定/题材定位.md(空模板)
- 追踪/时间线.md(空模板)
- ...
📝 下一步:
- 填充设定文件内容
- 开始写作
默认模板
关系.md 模板
# 角色关系
> 基于第001-XXX章
---
## 主要关系
| 角色A | 角色B | 关系类型 | 当前状态 |
|-------|-------|---------|---------|
| {主角} | {配角} | {关系} | {状态} |
时间线.md 模板
# 故事时间线
> 基于第001-XXX章
---
## 关键事件时序
| 章节 | 故事时间 | 事件 | 涉及角色 |
|------|---------|------|---------|
| Ch001 | {时间} | {事件} | {角色} |
物品.md 模板
# 物品追踪
> 基于第001-XXX章
---
## 核心道具
| 物品 | 当前状态 | 位置 | 备注 |
|------|---------|------|------|
环境.md 模板
# 环境追踪
> 基于第001-XXX章
---
## 当前环境
| 维度 | 当前状态 |
|------|---------|
| 季节 | |
| 位置 | |
| 天气 | |
物资.md 模板
# 物资追踪
> 基于第001-XXX章
---
## 经济状态
| 角色 | 钱财 | 食物 | 工具 | 备注 |
|------|------|------|------|------|
重复语句.md 模板
# 重复语句黑名单
> 写正文前必读,黑名单中的语句禁止再次使用
---
| 序号 | 重复内容 | 出现位置 | 重复次数 | 建议替代 |
|------|---------|---------|---------|---------|
文风.md 模板
# 文风设定
> 本书的写作风格约束
---
## 语言风格
- 叙事视角:
- 语言基调:
- 句式特点:
## 对话风格
- 口语化程度:
- 角色区分度:
## 描写风格
- 环境描写:
- 心理描写:
- 动作描写:
故事线_索引.md 模板
# 故事线索引
---
## 主线:{主线名称}
- 状态:进行中
- 涉及章节:-
- 当前进展:待补充
## 支线
(待补充)
故事线_交叉点.md 模板
# 故事线交叉点
---
| 章节 | 主线 | 支线 | 事件 |
|------|------|------|------|
跨卷伏笔.md 模板
# 跨卷伏笔追踪
> 记录跨越多卷的长线伏笔
---
## 跨卷伏笔状态
| ID | 伏笔 | 埋设 | 预计回收 | 状态 | 备注 |
|----|------|------|---------|------|------|
跨卷角色弧线.md 模板
# 跨卷角色弧线
> 记录主要角色的跨卷成长轨迹
---
## {角色名} · 弧线总览
| 卷 | 阶段 | 身份 | 核心矛盾 | 情绪 |
|----|------|------|---------|------|
卷间过渡.md 模板
# 卷间过渡
> 记录各卷之间的过渡设计
---
## 已完成卷间过渡
(待补充)
## 待完成卷间过渡
(待补充)
检查项详细说明
文件完整性检查
| 检查项 | 检查方法 |
|---|
| 文件存在 | fs.existsSync() |
| 文件非空 | fs.statSync().size > 0 |
| 格式正确 | 检查 markdown 格式 |
目录结构检查
| 目录 | 必需子目录 | 通配检查 |
|---|
| 设定/ | 世界观/、角色/、势力/ | - |
| 设定/世界观/ | - | 世界观.md 或 背景设定.md 至少存在其一 |
| 大纲/ | - | 卷纲_.md(通配)、细纲_.md(通配) |
| 大纲/存档/ | - | 目录存在性 |
| 正文/ | - | 第*.md(通配) |
| 追踪/ | - | - |
| 故事线/ | - | 故事线_主线_*.md(通配) |
| 跨卷追踪/ | - | - |
| 对标/ | - | 目录存在性 |
| 参考资料/ | - | 目录存在性 |
内容完整性检查
| 文件 | 必需内容 |
|---|
| 角色状态.md | 至少一个角色 |
| 伏笔.md | 表格格式 |
| 时间线.md | 表格格式 |
| 上下文.md | 当前进度 |
| 角色/ 角色设定 | 与追踪/角色状态.md 互相印证(character-sync.js) |
与其他skill的关系
| 关系 | 说明 |
|---|
| 被调用 | story-setup-mimo(初始化后检查) |
| 被调用 | story-long-write-mimo(写作前检查) |
| 调用 | project-health.js(检查/修复脚本) |
使用场景
| 场景 | 说明 |
|---|
| 项目初始化后 | 确认所有文件已创建 |
| 写作前检查 | 确保追踪文件完整 |
| 遇到问题时 | 检查是否缺少文件 |
| 导入旧项目后 | 修复缺失的文件 |
| 定期维护 | 每月检查一次项目健康 |
Task 跟踪集成
规范详见 $globalRefPathtask-tracking-conventions.md`。
触发时第一步:读取下方任务树,然后逐条创建。不跳步。
强制执行顺序:
- 读取上方「任务树」
- 严格按照列表逐条创建任务
- 逐个执行
固定任务列表
# ===== 第1层:父任务 =====
1. task create "T-HEALTH: 项目健康检查与修复" → T-HEALTH
# ===== 第2层:阶段任务 =====
2. task create "T-HEALTH-PHASE1: Phase 1 检测项目结构" parent=T-HEALTH → T-HEALTH-PHASE1
3. task create "T-HEALTH-PHASE2: Phase 2 输出检测报告" parent=T-HEALTH → T-HEALTH-PHASE2
4. task create "T-HEALTH-PHASE3: Phase 3 自动修复" parent=T-HEALTH → T-HEALTH-PHASE3
5. task create "T-HEALTH-PHASE4: Phase 4 输出修复报告" parent=T-HEALTH → T-HEALTH-PHASE4
# ===== 第3层:具体步骤 =====
# Phase 1: 检测项目结构
6. task create "T-HEALTH-P1-01: 运行 project-health.js --check" parent=T-HEALTH-PHASE1 → T-HEALTH-P1-01
# Phase 2: 输出检测报告
7. task create "T-HEALTH-P2-01: 分类缺失文件(BLOCK/WARN/OPTIONAL)" parent=T-HEALTH-PHASE2 → T-HEALTH-P2-01
8. task create "T-HEALTH-P2-02: 向用户输出检测报告" parent=T-HEALTH-PHASE2 → T-HEALTH-P2-02
# Phase 3: 自动修复(条件)
9. task create "T-HEALTH-P3-01: 创建缺失目录" parent=T-HEALTH-PHASE3 → T-HEALTH-P3-01
10. task create "T-HEALTH-P3-02: 创建缺失文件(使用默认模板)" parent=T-HEALTH-PHASE3 → T-HEALTH-P3-02
11. task create "T-HEALTH-P3-03: 初始化追踪文件" parent=T-HEALTH-PHASE3 → T-HEALTH-P3-03
12. task create "T-HEALTH-P3-04: 更新 .story-deployed 标记" parent=T-HEALTH-PHASE3 → T-HEALTH-P3-04
# Phase 4: 输出修复报告
13. task create "T-HEALTH-P4-01: 列出已创建文件" parent=T-HEALTH-PHASE4 → T-HEALTH-P4-01
14. task create "T-HEALTH-P4-02: 提示下一步操作" parent=T-HEALTH-PHASE4 → T-HEALTH-P4-02
条件创建规则
| 任务 | 执行时判断 | 跳过则 abandoned |
|---|
| T-HEALTH-PHASE3 | 用户传入 --fix 或说"修复项目" | 未传 --fix 则 abandoned |
| T-HEALTH-P3-01~04 | Phase 3 执行时 | 全部顺序执行,无跳过 |
条件分支处理
| 分支 | 触发 | 处理 |
|---|
| BLOCK 文件补建 | Phase 3 中发现 BLOCK 级缺失 | 优先创建,block 当前任务直到补建完成 |
| WARN 文件补建 | Phase 3 中发现 WARN 级缺失 | 问用户是否补建,用户同意则创建,否则 abandoned |
完成标准
| 任务 | 完成标准 |
|---|
| T-HEALTH-P1-01 | 检测报告 JSON 生成完毕 |
| T-HEALTH-P2-01 | 文件按严重度分类完成 |
| T-HEALTH-P2-02 | 检测报告已输出给用户 |
| T-HEALTH-P3-01 | 缺失目录已创建 |
| T-HEALTH-P3-02 | 缺失文件已用模板创建 |
| T-HEALTH-P3-03 | 追踪文件已初始化 |
| T-HEALTH-P3-04 | .story-deployed 已更新 |
| T-HEALTH-P4-01 | 修复报告已生成 |
| T-HEALTH-P4-02 | 下一步提示已输出 |
使用场景