Files
memory-manager-concurrent/prompts/table-filler/default-independent-template.json
user 6078f85d06 feat: v0.5.0 - 总结世界书拆分优化、Part调试面板、Amily表格并发等
主要更新:
- 总结世界书并发拆分功能(自动检测约5万字拆分为Part)
- Part调试面板
- Amily表格并发填充模块(src/table-filler/)
- 合并去重开关
- 内置默认独立模板
- 多主题支持优化
- 添加.gitignore排除不必要文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 01:46:18 +08:00

27 lines
79 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"version": "1.0",
"templates": {
"角色表": {
"template": "# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2角色表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使死亡)\n- ⚠️ 身体状态2-6字禁止解释原因、动作描述\n- ⚠️ 外貌/性器官特征:禁止临时变化(脸红出汗)和场景描述\n- ⚠️ 角色背景:必须通过【背景字段判定规则】验证后才能更新\n\n定位找到\"角色表\"对应的 tableIndex\n检查清单\n1. 新角色识别:剧情中是否有明确姓名的非路人角色首次出现?且该角色不在现有表格中?\n → 是:执行 insertRow填写所有字段\n \n2. 现有角色更新:已有角色的以下信息是否发生变化?\n - 外貌特征(仅固定特征)\n - 着装与配饰变化\n - 身体状态2-6字\n - 关联角色\n - 性器官特征(仅客观物理描述)\n - 职业身份/所属组织/拥有能力\n - 角色背景(⚠️ 必须判定是否符合背景更新条件)\n → 是:执行 updateRow只更新变化字段\n \n3. 背景更新判定:\n - 检查剧情中是否有回忆/闪回/自述过去/第三方讲述历史/过去时态描述\n - 若有,提取历史信息写入背景\n - 若是当前事件/近况/未来计划,禁止写入背景\n\n---\n\n【阶段3重复检测与最终校验】\n对表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 身体状态 | 2-6字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n4. 背景字段复核:\n - 确认所有背景更新都符合【背景字段判定规则】\n - 发现近况/未来目标被误写入背景时,移除该内容\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>"
},
"关系表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2关系表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使关系断绝)\n- ⚠️ 关系评语严格4-6字\n- ⚠️ 双向记录:新建关系时必须同时创建 A→B 和 B→A 两条记录\n- ⚠️ 填写视角:始终以\"主体角色\"列的角色为第一人称视角\n- ⚠️ 同名角色:若存在同名角色,使用\"角色名称角色ID\"格式区分\n\n定位找到\"关系表\"对应的 tableIndex\n检查清单\n1. 新关系识别:剧情中是否有两个重要角色建立新关系?\n - 两者在各自内心认为对方与自己是什么关系,两者各自对该关系的理解是否存在差异?\n - 在第三者视角两者是什么关系\n - 评语应该是正向、嫉妒还是内涵的?\n - 评语应该体现好感度、欲望值、堕落程度还是背德关系?\n - 双方给对方的评语是什么?\n → 是:执行两次 insertRowA→B 和 B→A\n\n2. 现有关系更新:已有关系是否发生变化?\n → 是:执行 updateRow\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 关系评语 | 严格4-6字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
},
"物品表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2物品表检查】\n⚠ 关键规则:\n- ❌ 禁止删除:任务物品、损坏的非消耗品\n- ✅ 允许删除:消耗品归零、物品完全消失(非损坏)\n- ⚠️ 物品状态2-6字禁止场景描述\n\n定位找到\"物品表\"对应的 tableIndex\n检查清单\n1. 新物品识别:是否有符合\"重要物品定义\"的新物品出现?\n → 是:执行 insertRow填写所有字段\n \n2. 物品更新:\n - 物品数量变化识别:当剧情描述角色使用、消耗、给予、丢弃物品时(如\"射出一箭\"、\"喝下药水\"、\"递给某人\"),需更新对应物品数量\n - 物品归属(持有人变更)\n - 物品状态\n → 是:执行 updateRow\n \n3. 物品删除:消耗品数量归零后执行删除操作\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 物品状态 | 2-6字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
},
"组织表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2组织表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使消亡)\n- ⚠️ \"组织背景\":必须通过【背景字段判定规则】验证后才能更新\n- ✅ 允许更新\"组织详情\"(动态信息:核心成员变动、近期动态)\n\n定位找到\"组织表\"对应的 tableIndex\n检查清单\n1. 新组织识别:是否有符合\"重要组织定义\"的新组织出现?\n → 是:执行 insertRow填写所有字段\n \n2. 组织更新:\n - 组织详情(核心成员变动、近期动态等)← 可更新\n - 组织归属/组织关系/组织状态 ← 可更新\n - 组织背景 ← ⚠️ 必须判定是否符合背景更新条件\n → 是:执行 updateRow\n\n3. 背景更新判定:\n - 检查是否有回忆/讲述/文献揭示的组织历史\n - 禁止将当前事件写入背景\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 组织状态 | 2-6字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n4. 背景字段复核:\n - 确认所有背景更新都符合【背景字段判定规则】\n - 发现近况/未来目标被误写入背景时,移除该内容\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
},
"地点表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2地点表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使拆除)\n- ⚠️ \"地点背景\":必须通过【背景字段判定规则】验证后才能更新\n- ✅ 允许更新\"地点详情\"(动态信息:内部结构、资源分布变化)\n\n定位找到\"地点表\"对应的 tableIndex\n检查清单\n1. 新地点识别:是否有符合\"重要地点定义\"的新地点出现?\n → 是:执行 insertRow填写所有字段\n \n2. 地点更新:\n - 地点详情 ← 可更新\n - 地点归属/地点状态 ← 可更新\n - 地点背景 ← ⚠️ 必须判定是否符合背景更新条件\n → 是:执行 updateRow\n\n3. 背景更新判定:\n - 检查是否有回忆/传说/文献揭示的地点历史\n - 禁止将当前事件写入背景\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 地点状态 | 2-6字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n4. 背景字段复核:\n - 确认所有背景更新都符合【背景字段判定规则】\n - 发现近况/未来目标被误写入背景时,移除该内容\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
},
"能力表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2能力表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使无人拥有)\n- ❌ 能力升级 → 必须新增行,禁止修改旧行\n- ✅ 仅\"能力归属\"允许更新(增加或减少)\n- ✅ 例外:可增量补充新揭示的能力信息(禁止覆盖式修改)\n\n定位找到\"能力表\"对应的 tableIndex\n检查清单\n1. 新能力识别:是否有区别于\"基础/普遍能力\"的新能力出现?\n - 是什么拥有该能力?角色还是物品?\n → 是:执行 insertRow填写所有字段\n \n2. 能力升级:已有能力是否明确出现成长/升级,且有新名称?\n → 是:以新能力名称执行 insertRow禁止修改旧行\n \n3. 能力归属变化:能力归属是否增加或减少?\n → 是:执行 updateRow 更新\"能力归属\"字段\n\n4. 能力信息补充:是否有新揭示的能力信息(首次填写遗漏或剧情新揭示)?\n → 是:遵循【增量更新原则】补充,禁止覆盖原有内容\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
},
"任务表": {
"template": "\n# Amily-Fanhua dataTable 说明\n\nAmily2 Table preset 1.09 By繁华\n\n## 1. 用途\n\n`dataTable` 是一个用于存储和管理故事数据的核心系统。它通过 `Amily2TableData` 占位符注入一系列格式化的文本块,作为后续内容的关键参考。你的任务是根据故事发展,通过调用指定的函数来动态更新这些表格。\n\n## 2. 数据结构与格式\n\n注入的数据由多个表格块组成每个表格块都遵循以下结构\n【说明】:\n· [表格用途和规则的说明]\n<[tableName]内容>\n| rowIndex | [colIndex]:[colName] | [colIndex]:[colName] | ... |\n| ---------- | -------------------- | -------------------- | --- |\n| [rowIndex] | [单元格数据] | [单元格数据] | ... |\n...\n</[tableName]内容>\n【增加】: · [插入新行的触发条件]\n【删除】: · [删除行的触发条件]\n【修改】: · [更新行的触发条件]\n\n---\n\n### 格式解析\n\n* `* [tableIndex]:[tableName]`: 表格的标题行,包含表格的索引(`tableIndex`)和名称(`tableName`)。\n* `【说明】`: 提供了表格的详细用途和填写规则。\n* `<[tableName]内容>`: 包含了使用 Markdown 格式的实际数据表格。\n * 表头行定义了每一列的索引 (`colIndex`) 和名称 (`colName`)。第一列名为 `rowIndex`,用于标识每行数据的唯一索引。\n * 后续每一行都是一条数据记录,第一列是该行的索引 (`rowIndex`),后面跟着对应列的单元格数据。\n* `【增加】`, `【删除】`, `【修改】`: 分别描述了你应该在何种剧情下对表格进行增、删、改操作。\n\n### 表格引用关系(若无其他表格数据可忽略)\n\n```\n角色表 ←┬─ 关系表(主体/相对角色)\n ├─ 物品表(物品归属)\n ├─ 组织表(组织归属)\n └─ 能力表(能力归属)\n\n组织表 ←── 物品表(物品归属)\n ←── 地点表(地点归属)\n\n角色表/物品表/地点表 ←── 任务表(涉及名称)\n```\n\n---\n\n### 以下为需要更新的表格内容\n\n<需要更新的旧表格>\n{{tableData}}\n</需要更新的旧表格>\n\n---\n\n## 3. 表格操作指南\n\n你需要根据每个表格的【说明】、【增加】、【删除】、【修改】规则来判断是否需要更新表格。如果需要请在 `<Amily2Edit>` 标签内调用以下 JavaScript 函数。\n\n### 3.1. 操作函数解释\n\n* **插入行**: `insertRow(tableIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `data` (object): 一个对象,键为列索引 (`colIndex`),值为单元格数据。\n * 参考示例: `insertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})`\n\n* **删除行**: `deleteRow(tableIndex, rowIndex)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要删除的行的索引。\n * 参考示例: `deleteRow(\"1\", \"0\")`\n\n* **更新对应行的某列**: `updateRow(tableIndex, rowIndex, data)`\n * `tableIndex` (string): 目标表格的索引。\n * `rowIndex` (string): 要更新的行的索引。\n * `data` (object): 一个包含要修改的列数据对象,键为列索引 (`colIndex`)。\n * 参考示例: `updateRow(\"3\", \"0\", {\"4\": \"破败\"})`\n\n### 3.2. 重要规范\n\n* **用户优先**: 当 `<user>` 明确要求修改表格时,其指令拥有最高优先级。\n* **忠于原文**: 所有操作必须基于当前剧情,严禁捏造信息。\n* **信息丰富**: 信息避免过度简洁丢失关键细节。\n* **数据完整**: 使用 `insertRow` 时,`data` 对象应包含所有列的数据。\n* **注释封装**: 所有在 `<Amily2Edit>` 标签内的函数调用都必须被一对 `<!-- -->` 注释完全包裹。\n\n#### 【通用规范】\n\n**空值处理**:所有列不得留空,禁止填入\"无\"、\"未知\"、\"空值\",必须使用\"N\"代替。\n\n**隐私标注规则**\n- 触发条件:信息属于秘密、隐私、或仅特定角色知晓\n- 标注格式:在对应字段内容后添加\"知情者姓名A/姓名B/...\"\n- 绝对禁止隐私泄露\n\n**ID生成规则**\n- 新ID = 当前表格中最大ID序号 + 1格式为[前缀]_XXX如CHAR_001\n- ID一旦分配永久不变不复用已删除的ID\n- 各表格前缀CHAR_角色、REL_关系、ITEM_物品、ORG_组织、LOC_地点、ABIL_能力、QUEST_任务\n\n**时间格式**:精确时间格式为\"年月日-时分\",如\"2025年01月17日-17:45\",必须精确到分钟\n\n**数据校验**\n- 空值检查:所有列不得留空\n- 整行完整性:确保每行所有列都有值\n- 名称列异常:禁删表格(角色、组织、地点、能力、任务)尝试从剧情修正;仅物品表可删除无效行\n- 一致性:确保表格间引用的名称相互对应(若无其他表格数据可忽略)\n\n**增量更新原则**\n- 更新描述性字段(背景、描述、详情、功效、效果、代价等)时,必须保留原有内容并自然融入新信息,禁止覆盖替换\n- 正确示例:原内容\"出生于A城\"→更新后\"出生于A城曾落水被救\"\n- 错误示例:更新后仅剩\"落水被救\"\n- 禁止输出\"追加:\"\"补充:\"\"核心背景:\"等格式标记\n\n**智能压缩**\n- 若新信息与原有内容重复,不重复添加\n- 若新信息与原有内容可合并,整合为连贯语句\n- 消除冗余修饰,保持精炼\n- 示例:原\"核心成员:张三、李四\"新增\"李四离开王五加入\"→更新为\"核心成员:张三、王五\"\n\n**背景字段判定规则**(适用于角色背景、组织背景、地点背景):\n- 背景的定义:背景是过往简史,是已经发生且固定不变的历史事实\n- 背景更新的判定条件(必须符合以下至少一项叙事语境):\n * 剧情出现回忆、闪回场景\n * 角色主动讲述自己的过去经历\n * 通过第三方(他人讲述、文献、传闻)了解到的历史\n * 明确使用过去时态描述的往事(如\"三年前\"、\"曾经\"、\"当年\"\n- 时间判定(辅助验证):若任务表存在数据,该信息所述事件应发生在任务接受时间之前\n- 禁止写入背景的内容:\n * 当前剧情中正在发生的事件\n * 角色当前的状态、行为、想法\n * 未来的计划、目标、决心\n * 无法确定是过去还是现在的模糊信息(宁缺勿滥)\n\n### 3.3. 输出示例\n\n【错误示例】函数的对象参数跨行拆分且存在冗余换行导致工具无法完整识别函数调用结构调用失败。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\n \"0\": \"高级润滑剂\", \n \"1\": \"消耗品\", \n \"2\": \"1\", \n \"3\": \"进口高档润滑剂,透明液体,香草香味\", \n \"4\": \"用于特殊服务时的身体准备\", \n \"5\": \"进口\", \n \"6\": \"张三\", \n \"7\": \"未使用\"\n})\n-->\n</Amily2Edit>\n\n【正确示例】函数名与所有参数完整置于同一行格式简洁无冗余工具可精准识别并执行调用成功。\n<Amily2Edit>\n<!--\n// 获得新物品\ninsertRow(\"1\", {\"0\": \"高级润滑剂\", \"1\": \"消耗品\", \"2\": \"1\", \"3\": \"进口高档润滑剂,透明液体,香草香味\", \"4\": \"用于特殊服务时的身体准备\", \"5\": \"进口\", \"6\": \"张三\", \"7\": \"正常\", \"8\": \"ITEM_001\"})\n// 高级润滑剂被使用殆尽,从物品表删除\ndeleteRow(\"1\", \"0\")\n// 张三偷偷购买房子,新增地点\"张三的家\",判断属于隐私需要备注\"(知情者:张三)\"\ninsertRow(\"3\", {\"0\": \"张三的家\", \"1\": \"偷偷用多年积蓄购买\", \"2\": \"两房一厅一厨一卫\", \"3\": \"张三(知情者:张三)\", \"4\": \"正常\", \"5\": \"LOC_001\"})\n// 张三的家因年久失修破败了,需要更新\nupdateRow(\"3\", \"0\", {\"4\": \"破败\"})\n-->\n</Amily2Edit>\n\n---\n\n# 通用表格转换思考框架\n\n## 核心原则\n\n1. **表格驱动**: 以表格为单位进行检查,而非以叙事元素为单位\n2. **动态索引**: 通过表格名称识别类型,动态获取对应 tableIndex\n3. **精准匹配**: 严格对照每个表格的【说明】、【增加】、【删除】、【修改】规则\n4. **一次到位**: 每轮思考必须完成所有必要的表格操作,禁止遗漏\n5. **字段限制**: 严格遵守每个字段的字数和内容限制\n\n---\n\n## 思考流程 (<thinking></thinking>)\n\n请严格按此框架思考并在<thinking>标签内输出:\n\n<thinking>\n\n【阶段0旧表格数据错误检查】\n核心目的避免错误累积和延续确保基于正确数据进行操作\n检查步骤\n1. 读取旧表格数据:查看 <需要更新的旧表格> 中的所有表格数据\n2. 逐表检查(参照【通用规范】):\n - 空值检查、整行完整性、名称列异常、字段格式、一致性\n - ⚠️ 内容完整性检查(对照剧情核实):\n * 列检查:表格有哪些列名\n * 列内容:列内容是否有填错列\n * 内容检查:各列内容是否符合定义、说明、增删改等要求\n3. 错误修正:记录需要执行的修正操作\n\n---\n\n【阶段1解析表格映射】\n查看 <需要更新的旧表格>,建立\"表格列`colIndex`→列名\"映射:\n- 1 → \"?\"\n- 2 → \"?\"\n...\n列出所有列名\n\n---\n\n【阶段2任务表检查】\n⚠ 关键规则:\n- ❌ 禁止删除(即使已完成/终止)\n- ⚠️ 任务状态2-4字禁止详细进度描述\n- ⚠️ 每轮必须更新\"剩余时间\"(根据当前剧情时间计算)\n\n定位找到\"任务表\"对应的 tableIndex\n检查清单\n1. 新任务识别:是否有符合\"任务定义\"的新任务产生?\n → 是:执行 insertRow填写所有字段\n \n2. 任务更新:\n - 任务状态2-4字应该是什么是否存在放弃任务\n - 剩余时间(根据当前时间与截止时间的差值更新)\n - 任务详情\n → 是:执行 updateRow\n\n---\n\n【阶段3重复检测与最终校验】\n对每个表格执行以下检查\n1. ID唯一性检查是否有重复ID\n2. 名称重复:以 colIndex=0名称列为基准检查\n - 若发现重复且约等同:合并信息,删除多余行(仅物品表可删)\n - 若发现重复但不等同:添加备注区分\n\n3. 字段格式校验:\n | 检查项 | 要求 |\n |--------|------|\n | 任务状态 | 2-4字 |\n | 空值 | 用\"N\"替代 |\n | 隐私信息 | 标注\"(知情者:...\" |\n | 函数格式 | 单行,禁止换行 |\n | insertRow | 包含所有列 |\n\n</thinking>\n\n<Amily2Edit>\n<!--\ninsertRow(\"1\", {\"0\": \"示例\", \"1\": \"示例\"})\n-->\n</Amily2Edit>\n<finish>The form filling work has been completed.</finish>\n"
}
},
"tagName": "Instructions for filling out the form"
}