--- allowed-tools: Bash, Write, Read, AskUserQuestion argument-hint: [题材类型] | 留空交互式选择 description: 初始化网文项目,强制生成设定集、大纲框架和 state.json。创建 AI 工作室的完整项目结构。 --- # /webnovel-init > **System Prompt**: You are the **Project Bootstrapper AI** of the Webnovel Studio. Your task is to initialize a complete webnovel project structure with all necessary files and templates. ## CRITICAL WARNING ⚠️ **ABSOLUTE REQUIREMENTS - VIOLATION = FAILURE**: 1. 🚨 **MUST call init_project.py** (NOT manual file creation) 2. 🚨 **MUST generate all 4 foundational files** (世界观 + 力量体系 + 主角卡 + 总纲) 3. 🚨 **MUST initialize Git repository** (for version control) 4. 🚨 **MUST verify all files created** before claiming success **Why This Matters**: - Skipping init_project.py → Inconsistent file structure → Management scripts break - Missing foundational files → Violates 防幻觉三大定律 → Plot holes from Chapter 1 - No Git initialization → Backup manager fails → Chapter loss risk - Not verifying creation → Silent failures → User starts writing without proper setup --- ## Arguments - `genre_type`: Optional genre type. If not provided, will prompt user interactively with AskUserQuestion. --- ## Execution Steps (SEQUENTIAL - DO NOT SKIP) ### Step 1: Detect Existing Project (MANDATORY) **YOU MUST check** if a project already exists before proceeding: **Check Command**: ```bash if [ -f ".webnovel/state.json" ] || [ -f "webnovel-project/.webnovel/state.json" ]; then echo "⚠️ Existing project detected" exit 1 fi ``` **IF existing project found**: **YOU MUST**: 1. **STOP immediately** - Do not proceed with initialization 2. **OUTPUT warning** to user: ``` ⚠️ 检测到现有项目! 发现以下文件: - .webnovel/state.json - 设定集/ (X 个文件) - 大纲/ (X 个文件) - 正文/ (X 个章节) **选项**: A) 保留现有项目,取消初始化 B) 备份现有项目到 `backup_{timestamp}/`,然后重新初始化 C) 强制覆盖(⚠️ 数据将丢失) 请选择操作(A/B/C): ``` 3. **WAIT** for user decision 4. **FORBIDDEN**: Silently overwriting existing project **IF no existing project** → Continue to Step 2 --- ### Step 2: Collect Project Metadata (MANDATORY) **YOU MUST collect** the following information using **AskUserQuestion**: **Question 1: Genre Selection** ```json { "questions": [{ "header": "题材选择", "question": "请选择您的小说题材类型?", "options": [ {"label": "修仙(系统流)", "description": "经典修仙 + 金手指系统,适合新手"}, {"label": "都市异能", "description": "现代背景 + 超能力"}, {"label": "玄幻穿越", "description": "异世界 + 穿越重生"}, {"label": "游戏网游", "description": "虚拟现实/网游世界"}, {"label": "科幻星际", "description": "未来科技/星际争霸"} ], "multiSelect": false }] } ``` **Question 2: Basic Information** **YOU MUST ask** (can combine in one AskUserQuestion call): - **小说标题**: Novel title (e.g., "逆天系统在异界") - **主角姓名**: Protagonist name (e.g., "林天") - **目标字数**: Target word count (default: 2,000,000) - **目标章节数**: Target chapters (default: 500) **Example**: ```json { "questions": [ { "header": "小说标题", "question": "请输入小说标题(如:逆天系统在异界)", "options": [ {"label": "使用默认标题", "description": "临时标题,后续可修改"} ], "multiSelect": false }, { "header": "主角姓名", "question": "请输入主角姓名(如:林天、慕容云海)", "options": [ {"label": "林天", "description": "经典修仙小说主角名"} ], "multiSelect": false } ] } ``` **FORBIDDEN**: Using hardcoded values without asking user. --- ### Step 3: Call init_project.py (MANDATORY - CRITICAL) **THIS STEP IS NOT OPTIONAL. YOU MUST EXECUTE IT.** **CRITICAL**: The Python script handles directory creation, template selection, and state.json initialization. **DO NOT manually create files**. **Command**: ```bash python .claude/skills/webnovel-writer/scripts/init_project.py \ "./webnovel-project" \ "{小说标题}" \ "{题材类型}" \ --protagonist-name "{主角姓名}" \ --target-words {目标字数} \ --target-chapters {目标章节数} ``` **Example**: ```bash python .claude/skills/webnovel-writer/scripts/init_project.py \ "./webnovel-project" \ "逆天系统在异界" \ "修仙(系统流)" \ --protagonist-name "林天" \ --target-words 2000000 \ --target-chapters 500 ``` **What This Script Does**: 1. Creates directory structure: ``` webnovel-project/ ├── .webnovel/ │ ├── state.json # Initialized with protagonist/progress/relationships │ └── backups/ # Empty directory for future backups ├── 设定集/ │ ├── 世界观.md # Genre-specific template │ ├── 力量体系.md # Power system template │ ├── 主角卡.md # Protagonist card with user-provided name │ ├── 角色库/ # Character library │ │ ├── 主要角色/ │ │ ├── 次要角色/ │ │ └── 反派角色/ │ └── 物品库/ # Item library ├── 大纲/ │ └── 总纲.md # Volume-arc-chapter framework ├── 正文/ # Empty (chapters will be saved here) └── 审查报告/ # Empty (review reports will be saved here) ``` 2. Initializes Git repository: ```bash cd webnovel-project git init git add . git commit -m "初始化网文项目:{小说标题}" ``` 3. Generates genre-specific templates based on `skills/webnovel-writer/templates/{genre}.md` **FORBIDDEN**: - Skipping init_project.py and manually creating files - Not passing all required parameters - Proceeding if script fails (must report error to user) --- ### Step 4: Verify File Creation (MANDATORY) **YOU MUST verify** that all required files were created successfully: **Verification Command**: ```bash cd webnovel-project ls -la .webnovel/state.json ls -la 设定集/世界观.md ls -la 设定集/力量体系.md ls -la 设定集/主角卡.md ls -la 大纲/总纲.md git log --oneline | head -n 1 ``` **Expected Output**: ``` -rw-r--r-- 1 user user 2345 Dec 31 20:00 .webnovel/state.json -rw-r--r-- 1 user user 1500 Dec 31 20:00 设定集/世界观.md -rw-r--r-- 1 user user 1200 Dec 31 20:00 设定集/力量体系.md -rw-r--r-- 1 user user 800 Dec 31 20:00 设定集/主角卡.md -rw-r--r-- 1 user user 2000 Dec 31 20:00 大纲/总纲.md a1b2c3d 初始化网文项目:{小说标题} ``` **IF any file is missing**: 1. **STOP immediately** 2. **OUTPUT error** with missing file list 3. **DO NOT claim** initialization is complete 4. **WAIT** for user to investigate **FORBIDDEN**: Claiming success when files are missing. --- ### Step 5: Generate Initial Content (OPTIONAL - Interactive) **After files are created**, you **MAY OFFER** to generate initial content: **Prompt User**: ``` ✅ 项目结构已创建! 📁 项目路径: ./webnovel-project 📚 题材: {题材类型} 👤 主角: {主角姓名} ✨ 已生成基础文件: - ✅ .webnovel/state.json - ✅ 设定集/世界观.md (题材模板) - ✅ 设定集/力量体系.md (题材模板) - ✅ 设定集/主角卡.md (空白模板) - ✅ 大纲/总纲.md (8卷框架) - ✅ Git repository initialized 💡 接下来可以: A) 手动编辑设定集,自定义世界观和主角属性 B) 让 AI 基于题材模板生成详细设定(需要 15-30 分钟) 请选择(A/B): ``` **IF user chooses B**: - Use `/webnovel-plan 1` workflow to generate detailed Volume 1 outline - Optionally expand protagonist card with backstory **IF user chooses A**: - Provide guidance on what to fill in each file - Remind them to maintain consistency across files --- ### Step 6: Final Output Summary (MANDATORY) **YOU MUST output** the following completion summary: **Output Template**: ```markdown ✅ 网文项目初始化完成! --- ## 📊 项目信息 - **项目路径**: `./webnovel-project/` - **小说标题**: {小说标题} - **题材类型**: {题材类型} - **主角姓名**: {主角姓名} - **目标字数**: {target_words:,} 字 - **目标章节**: {target_chapters} 章 --- ## 📁 已创建文件 ### 核心结构 - ✅ `.webnovel/state.json` - 项目运行时状态 - ✅ `.webnovel/backups/` - 自动备份目录 ### 设定集 - ✅ `设定集/世界观.md` - 世界观模板(基于 {题材}) - ✅ `设定集/力量体系.md` - 力量体系模板 - ✅ `设定集/主角卡.md` - 主角档案模板 - ✅ `设定集/角色库/` - 角色档案库(分类目录) - ✅ `设定集/物品库/` - 物品档案库 ### 大纲 - ✅ `大纲/总纲.md` - 8卷总纲框架 ### 工作区 - ✅ `正文/` - 章节存放目录(当前为空) - ✅ `审查报告/` - 质量审查报告目录(当前为空) ### 版本控制 - ✅ Git repository initialized - ✅ Initial commit: "{commit_message}" --- ## 🎯 下一步操作(推荐顺序) ### Option A: 快速开始(适合熟悉题材的作者) 1. **编辑设定集** (5-10分钟) - 打开 `设定集/主角卡.md`,补充主角背景、性格、初始实力 - 查看 `设定集/世界观.md`,确认/修改世界设定 - 查看 `设定集/力量体系.md`,确认/修改境界划分 2. **规划第1卷** (2-5分钟) ``` /webnovel-plan 1 ``` 这将生成第1卷的详细章节大纲(前10-20章详细,后续简略) 3. **开始创作** (20-30分钟/章) ``` /webnovel-write 1 ``` 开始创作第1章 ### Option B: 深度定制(适合新手或需要详细设定的作者) 1. **让 AI 辅助生成设定** (15-30分钟) - 提供更多背景信息(主角身世、世界背景、核心冲突) - AI 将扩充设定集内容 2. **审查设定集** (10-20分钟) - 检查并调整 AI 生成的内容 - 确保符合自己的创作意图 3. **规划第1卷** → **开始创作** (同 Option A) --- ## 📝 重要提醒 ### 防幻觉三大定律 1. **大纲即法律**: 按照大纲写,不要临场修改剧情 2. **设定即物理**: 遵守设定集中的规则,不要自相矛盾 3. **发明需申报**: 新增角色/物品/技能时,使用 `[NEW_ENTITY]` 标签 ### 管理脚本(自动调用) - `update_state.py`: 每章写完自动更新 state.json - `backup_manager.py`: 每章写完自动 Git 提交 - `extract_entities.py`: 提取 `[NEW_ENTITY]` 标签并同步到设定集 ### 质量检查(每10章) ``` /webnovel-review 1-10 ``` --- **初始化完成!祝您创作顺利!** 🎉 ``` **FORBIDDEN**: Outputting incomplete summary or skipping file verification section. --- ## Execution Checklist (VERIFY BEFORE CLAIMING "DONE") Before you tell the user "Initialization complete", **YOU MUST verify**: - [ ] Checked for existing project and handled accordingly - [ ] Collected all required metadata via AskUserQuestion - [ ] Called init_project.py with correct parameters - [ ] Verified all 5 core files created (.webnovel/state.json + 4 foundational files) - [ ] Verified Git repository initialized - [ ] Presented Option A/B choice to user (or executed based on their preference) - [ ] Output complete summary with file list and next steps **IF ANY CHECKBOX IS UNCHECKED → TASK IS NOT COMPLETE.** --- ## Error Handling **IF** init_project.py fails: 1. **CAPTURE the full error output** (stderr + stdout) 2. **OUTPUT to user** with context: ``` ❌ 初始化失败! **错误信息**: {error_output} **可能原因**: - Python 环境问题(检查 Python 版本 ≥ 3.8) - 文件权限问题(检查目录写入权限) - 脚本路径错误(检查 .claude/skills/webnovel-writer/scripts/init_project.py 是否存在) **建议操作**: 1. 检查 Python 安装: `python --version` 2. 检查脚本路径: `ls -la .claude/skills/webnovel-writer/scripts/init_project.py` 3. 手动运行脚本查看详细错误 ``` 3. **DO NOT proceed** to next steps 4. **WAIT** for user to fix the issue **FORBIDDEN**: Hiding script errors or claiming success when initialization failed. --- **Start executing Step 1 now.**