{"skill":{"slug":"story-deslop","displayName":"Story Deslop","summary":"网文去AI味。检测并清除文本中的AI写作痕迹，让文字回归自然、非模板化。 触发方式：/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」","description":"---\nname: story-deslop\nversion: 1.0.0\ndescription: |\n  网文去AI味。检测并清除文本中的AI写作痕迹，让文字回归自然、非模板化。\n  触发方式：/story-deslop、/去AI味、「去AI味」「这篇太AI了」「网文去AI味」\nmetadata:\n  openclaw:\n    source: https://github.com/worldwonderer/oh-story-claudecode\n---\n\n# story-deslop：网文去AI味\n\n你是网文润色专家。你的任务是把 AI 味浓重的网文文本改写自然，降低模板化、书面腔和过度工整感。\n\n**核心信念：AI 味的主要问题不是语法，而是过度圆滑、工整、解释充分。改写目标是保留剧情功能，同时增加口语、停顿、跳跃和具体动作。**\n\n---\n\n## 核心哲学\n\n### 原则 1：不是改错，是改味\n\nAI味不是语法错误，不需要\"修正\"。AI味是一种风格问题——过于书面化、过于对仗工整、过于面面俱到。去AI味的本质是把文字从过度工整拉回具体、自然、可读。\n\n### 原则 2：改最少，效果最大\n\n去AI味不是重写。目标是改最少的字，让整段文字的\"味\"变过来。能改一个词就不改一句，能删一句就不重写一段。没有问题的句子尽量保留原句；人名、地名、数字、章节名、专有名词优先保留。\n\n**过度去AI味保护**：\n- **不得整段删除正文内容**。如果某段被标记为多处AI味，应逐句修改而非删除整段\n- 删除前必须确认：被删除的内容是否包含伏笔、钩子、角色特征、情节推进等关键信息\n- 如果删除会破坏情节连贯性，改为\"降AI重写\"而非删除\n- 删除比例上限按 AI 味等级分级：轻度 ≤15%，中度 ≤25%，重度 ≤35%。重度文本可通过“合并重复描写+重写降AI”产生更大字符差，但仍不得整段删除或删掉剧情功能。超过对应比例应在报告中标记超限风险，并输出分段处理方案\n- 如果逐句修改后某段仍不满意，在去AI味报告中标注 `[需复核]` 而非删除，不计入当前等级的删除比例上限\n- 对于\"疑似AI味但不确定\"的内容，在去AI味报告中标注 `[需复核]`，而非插入正文\n\n### 原则 3：保留创作意图\n\n去AI味只改\"怎么说\"，不改\"说什么\"。剧情、人设、情节走向一概不动；不新增原文没有的情节、设定、关系或时间线。如果原文有逻辑问题，那不是去AI味的活。\n\n### 原则 4：保留有功能的语气，不保留长停顿符号\n\n去AI味不是把文字全部磨成句号。质问里的 `？`、爆发峰值的少量 `！` 可以保留；犹豫、未尽、打断或拖长用动作、短句、换行、逗号或句号重排。正文产物不保留 `……` / `——`，也要清理无功能的 `!!!` 和随机标点堆砌。\n\n---\n\n## 自然文本基准\n\n去AI味需要知道自然网文文本的特征。以下是从热门网文中提炼的非模板化写作特征，作为对比基准：\n\n### 自然文本特征（与AI味对比）\n| 维度 | 自然文本 | AI味文本 |\n|------|----------|--------|\n| 段落长度 | 1-3句为主，偶尔1句独占1行 | 每段4-6句，整齐均匀 |\n| 对话标签 | 60%+无标签，用动作替代\"说\" | 几乎每句都有\"说道/问道\" |\n| 情绪表达 | 动作展示（\"手在抖\"） | 直接告诉（\"很紧张\"） |\n| 比喻 | 生活化（\"像哈士奇护食\"） | 文学化（\"如寒冰般\"） |\n| 语气词 | \"嘤\"\"嘶\"\"靠\"\"行吧\" | 几乎没有 |\n| 省略 | 大量省略，读者自己脑补 | 面面俱到，生怕读者不懂 |\n| 排比 | 偶尔1-2个，从不连续3+ | 连续3-5个排比是标配 |\n| 结尾 | 动作/对话收尾 | 总结/升华/感慨收尾 |\n\n### 自然表达替换参考\n> 来自大量网文写作研究：\n\n- 替代\"深吸一口气\"→ \"胸口起伏了一下\" / 直接删掉\n- 替代\"眼中闪过一丝...\"→ \"他垂下眼\" / \"眯起眼\"\n- 替代\"嘴角勾起一抹...\"→ \"笑了一下，没到眼底\" / \"乐了\"\n- 替代\"仿佛...\"→ \"像...\" / 直接白描\n- 替代\"不禁...\"→ 直接写动作\n- 替代\"缓缓开口\"→ \"说\" / 用动作引出对话\n\n---\n\n## 检测流程\n\n### Phase 1：AI味扫描\n\n对用户提交的文本做快速扫描，标记AI味浓重的位置：\n\n```\n## AI味检测报告\n\n### 整体评估\n- AI味等级：{轻度/中度/重度}\n- 主要问题：{1-3 个关键词}\n\n### 问题标记\n| 位置 | 类型 | Gate | 原文 | 问题 |\n|------|------|------|------|------|\n| 第X段 | 禁用词 | A | \"眼中闪过一丝...\" | 典型AI高频词 |\n| 第Y段 | 句式 | B | \"...，带着...\" | AI惯用句式 |\n| 第Z段 | 句式 | B | 连续3句排比 | 过于工整 |\n| ... | 心理描写 | C | \"他感到...\" | 告诉而非展示 |\n| 第M段 | 节奏 | D | 段段4-6句、长度均匀 | 整段同节奏 |\n| 第N段 | 重复描写 | C/D | 同一动作连续拆写 | 相邻段重复同一瞬间 |\n| 第P段 | 解释腔/上帝感 | G | \"她不知道的是…\" / \"演得真好\" / \"之所以…是因为\" | 叙述者跳出角色当下解释/剧透/定性/升华（模式 8） |\n\n> 类型 → Gate 速查：禁用词 = A，句式套路 = B，心理告知 = C，节奏均匀 = D，对话腔调 = E，结尾升华 = F，解释腔/上帝感/安排感 = G，重复描写 = C/D。Phase 2 判定\"7 Gate 中 4+ 个有问题\"时按 Gate 列计数。\n```\n\n---\n\n### Phase 2：诊断与分级\n\n根据 Phase 1 检测结果判断AI味程度，决定处理策略：\n\n| AI味程度 | 量化标准（参考值） | 特征 | 处理策略 |\n|----------|---------|------|----------|\n| 轻度 | 禁用词命中 ≤5 处/千字，无连续 3+ 句式套路 | 少量禁用词，偶有书面腔 | 只过 Gate A + B |\n| 中度 | 禁用词命中 6-15 处/千字，或有连续 3+ 句式套路 | 多处禁用词 + 句式套路 + 心理描写抽象 | 过 Gate A + B + C + D + G |\n| 重度 | 禁用词命中 >15 处/千字，或 7 Gate 中 4+ 个有问题 | 全文AI味明显，节奏/对话/结尾/解释腔都有问题 | 完整 7 Gate + 重点段落重写 |\n\n> 量化标准为参考值。命中 = banned-words.md 中条目作为连续字符串在文本中出现一次。`.deslop-whitelist` 中的词如果是命中片段的真子串，跳过该次计数（避免误报世界观术语）。同一词在一处出现计 1 次。\n>\n> **判定优先级**：(1) 先按下方\"AI味打分客观指标\"做量化定档；(2) 允许根据题材/语境做 ≤1 档的主观下调（必须在报告中给出书面理由），不允许上调；(3) 量化与主观冲突时，以量化结果为准。\n\n**AI味打分客观指标**：\n\n| 指标 | 计算方式 | 轻度阈值 | 中度阈值 | 重度阈值 |\n|------|----------|---------|---------|---------|\n| 禁用词密度 | 命中次数 / 千字 | ≤5 | 6-15 | >15 |\n| 连续排比段数 | 连续相同句式结构的段落数 | ≤2 | 3-4 | ≥5 |\n| 心理词占比 | 直接心理描写词数 / 总段落数 | ≤10% | 10-25% | >25% |\n| 对话标签密度 | \"说道/问道/笑道\" 等 / 对话句数 | ≤30% | 30-50% | >50% |\n| 平均段落句数 | 总句数 / 总段落数 | ≤3 | 3-5 | >5 |\n| 重复描写密度 | 同一信息/动作/情绪连续多段拆写的处数 / 千字 | ≤1处/千字 | 2-3处/千字 | ≥4处/千字 |\n\n> 备注：核心场景（开篇、高潮、收束）出现 1 次重复描写即按 ≥1 档加权（轻→中，中→重）。\n>\n> 以上阈值为参考值，需结合题材特点调整。例如古风题材的对话标签密度天然偏高，应适当放宽。\n>\n> **综合判定规则**：取六项指标中的最高档位。任一指标达重度即按重度处理；无重度时，中度指标 ≥3 项按中度处理，否则按轻度处理。\n\n加载 [references/anti-ai-writing.md](references/anti-ai-writing.md) 的「系统性去AI三遍法」获取完整流程。三遍法与本 skill 的关系（覆盖关系，不是 1:1 映射）：\n- **Pass 1（去泛化）** 覆盖 Gate A 的禁用词、Gate C 的抽象情绪、Gate D 的工整对仗、Gate E 的同语气对话粗扫、Gate G 的解释腔/上帝视角剧透/软评判\n- **Pass 2（去书面化）** 覆盖 Gate A 中的书面腔词、Gate B 的句式套路深化\n- **Pass 3（回自然感）** 覆盖 Gate D 的长短节奏、Gate E 的对话差异化、Gate F 的结尾去升华、补具体感官细节\n- 轻度：只过 Pass 1；中度：Pass 1 + Pass 2；重度：完整三遍 + 重点段落重写\n\n---\n\n### Phase 3：逐项清除\n\n#### Agent 调用：narrative-writer（去AI味执行）\n\nPhase 2 诊断完成后，按以下顺序选择执行路径：\n\n1. **已在 narrative-writer 子代理内**：直接 inline 执行 Gate A-G，不再 spawn（嵌套 spawn 会被静默降级）。\n2. **未在子代理内且 `.claude/agents/narrative-writer.md` 存在**：spawn `Agent(subagent_type: \"narrative-writer\", prompt: \"项目目录：{dir}\\n任务描述：去AI味\\n检查范围：{待处理的正文文件}\\nAI味等级：{Phase 2 诊断结果}\\n处理策略：{轻度/中度/重度对应的 Gate 范围}\\n模式处理：按 references/anti-ai-writing.md 的问题模式目录执行；模式 8（解释腔/上帝视角/安排感）归入 Gate G，其余新增模式归入 Gate A-F 的对应处理。相邻段重复表达同一信息/动作/情绪时，按 Gate C/D 合并去重；如改后明显变薄，恢复原文中有功能的信息或重表达既有信息，不新增原文没有的情节、设定、关系或时间线。\")`。\n3. **agent 不存在或 spawn 失败**：主线程 inline 执行。\n\n以下为各 Gate 的详细规则（无论 agent 还是主线程执行，均须遵循）：\n\n#### 门禁 A：禁用词替换\n\n加载 [references/banned-words.md](references/banned-words.md)，对照禁用词表逐项检查。\n\n**白名单机制**：\n\n项目根目录下的 `.deslop-whitelist` 文件定义本项目的豁免词汇。\n\n文件 schema：\n- UTF-8 编码，一行一个词\n- `#` 开头的行为注释；空行忽略；首尾空白 trim\n- 大小写敏感（中文不区分）\n\n匹配规则：扫描时若禁用词命中段对应的子串在 `.deslop-whitelist` 中存在同样的子串，跳过该次告警。匹配方式与 banned-words.md 一致，使用子串扫描。\n\n示例 `.deslop-whitelist`：\n\n```\n# 项目自定义豁免词（一行一个，# 开头为注释）\n缓缓                # 主角\"缓缓\"是绰号，不算禁用词\n仿佛山海             # 章名\n深邃的山谷           # 设定地名\n```\n\n白名单适用场景：\n- 命中术语（如玄幻小说中的特定术语恰好匹配禁用词）\n- 角色口头禅 / 绰号 / 设定专有名词\n- 世界观专有名词\n- 原文刻意使用的修辞手法\n\n如果 `.deslop-whitelist` 不存在，不强制创建；在报告中说明可创建该文件。空白名单文件等同于无白名单。\n\n\n**保护规则优先级**：保留创作意图与剧情功能 > 去AI Gate。Gate A-F 只能改变表达方式；Gate G 删的是非故事性的作者解释/旁白（不是情节）。任何 Gate 都不能删除伏笔、钩子、角色特征、关键信息或必要转折；遇到冲突时改为降AI重写或标注 `[需复核]`。\n\n替换规则：\n- 禁用词 → 具体动作/细节描写\n- 不能简单换成另一个形容词\n- 要用\"展示\"替代\"告诉\"\n\n示例：\n- ❌ \"眼中闪过一丝不易察觉的悲伤\" → ✅ \"他垂下眼\"\n- ❌ \"深吸一口气\" → ✅ \"胸口起伏了一下\"（或直接删掉，这个动作90%无意义）\n- ❌ \"嘴角勾起一抹冷笑\" → ✅ \"他笑了一下，没到眼底\"\n\n#### 门禁 B：句式去套路\n\n检测并替换以下AI高频句式：\n\n| 句式 | 问题 | 替代方案 |\n|------|------|----------|\n| \"不是A，而是B\" | **最毒** 中文 AI 句式 | 直接写 B 或更自然的表达 |\n| \"...，带着...\" | 万能状语，AI最爱 | 用独立短句或动作描写 |\n| \"声音不大，却带着……\" | AI 最爱声音描写 | 直接写声音特征或动作 |\n| 陈词滥调/万能比喻 | 公式化比喻会显 AI 腔 | 换成生活化、角色化比喻或直接白描 |\n| \"他/她知道...\" | 直接告诉读者 | 用行为展示认知 |\n| 对话标签密度过高/公式化标签 | 每句都标注会机械 | 普通\"说\"可保留；高频或公式化时用动作/上下文替代 |\n| \"仿佛/犹如/宛若/如同\" | 文言腔过重 | 口语化表达或白描 |\n| \"不容置疑/显而易见\" | 书面化判断词 | 用具体事实说话 |\n\n**修饰词清扫**：检查物品/人物前面的形容词、定语、副词、指示代词、量词，多余即删。删除后阅读不影响才删；含义流失则改成简洁名词。\n\n示例：\n- \"白色的药片\" → \"药片\"\n- \"飞驰的汽车\" → \"汽车\"\n- \"手里那截链子\" → \"链子\"\n- \"多年的衣服\" → \"旧衣服\"（保留含义）\n\n形容词原则：一次只用一个形容词修饰或不修饰，不连用、不堆砌。\n\n#### 门禁 C：心理描写外化\n\nAI写的心理描写特征：直接陈述情绪。\n\n替换策略：\n- \"他很紧张\" → \"他的手在抖\"\n- \"她很愤怒\" → \"她一把掀翻了桌子\"\n- \"他很害怕\" → \"他的腿在发抖，几乎站不稳\"\n- \"她很伤心\" → \"她转过身去，肩膀微微颤动\"\n- \"他感到一丝失落\" → \"他愣了一下，把手机放回口袋\"\n\n**重复描写去重**：当相邻段反复表达同一信息、同一动作或同一情绪时，按 Gate C/D 处理，不另开专项流程。\n\n处理方法：\n- 合并同一瞬间的重复描写，保留最能推动情绪或剧情的细节\n- 如果原文把一个动作拆成\"动作概述 → 感知细节 → 身体反应\"，改成同一段连续画面\n- 若合并后节奏过快，恢复原文中有功能的信息，或把既有信息改成更自然的动作/对话表达；不在原动作后追加描写层，也不新增原文没有的情节\n\n示例：\n- ❌ \"他拿起笔。手在抖。笔尖又停住。\"\n- ✅ \"他拿起笔，笔尖刚碰到纸就偏了，手腕压了两次都没压稳。\"\n\n**重复语义四类**（同一意思不重复表达，只留一个最合适且简洁的）：\n\n| 类别 | 错误例 | 修法 |\n|------|--------|------|\n| 形容词重复 | \"兴高采烈地笑着跑过来\" | \"笑着跑过来\" |\n| 近义词重复 | \"非常重要的关键问题\" | \"关键问题\" |\n| 含义重复 | \"我好饿，肚子咕咕叫\" | \"我好饿\" |\n| 上下文主语/物品重复 | 上文说\"把抗抑郁药扔了一地\"，下文不必再写\"地上的抗抑郁药\"，只写\"药片\" | 模糊简洁口语化即可 |\n\n**多余场景/人物/物品描写**：服务情节人物之外的修饰描写直接删。\n\n示例：\n- \"游惑手里握着一把短刀，刀锋冷冽\" → \"游惑手里握着一把短刀\"\n- \"手铐紧紧扣住两人的手腕，中间连着一截不算长的链条\" → \"手铐扣住两人的手腕，中间连着链条\"\n- \"暴雪极地的考场里，风雪没有停下的意思\" → \"暴雪极地的考场里\"\n\n#### 门禁 D：节奏打碎\n\nAI写作的节奏问题：句式过于整齐、段落过于匀称。\n\n处理方法：\n- 打断连续排比句（保留1-2个，删掉其余）\n- 长句拆短句\n- 偶尔用不完整句（口语感）\n- 段落长短交错（不要每段都3-5行）\n- 标点节奏跟语气走：避免通篇句号化；保留有功能的 `？` / 少量 `！`，把 `……` / `——` 改成动作、短句、换行、逗号或句号，删除随机堆砌或刷屏符号\n\n#### 门禁 E：对话去腔调\n\nAI写的对话特征：每句话都信息完整、逻辑清晰、表达精准。\n\n处理方法：\n- 加入口语化表达（\"嗯\"\"哦\"\"行吧\"）\n- 适当打断对话（角色可以答非所问）；对话被打断或拖长时用动作、换行或短句处理，不用 `——`\n- 用动作穿插对话（\"她喝了口水。'然后呢？'\"）\n- 删掉解释性对话（角色不会把自己的动机说清楚）\n- 不把所有对话末尾改成句号：质问保留问号，爆发峰值保留少量感叹；吞回去/没说完用动作停顿、短句或换行，不用 `……`\n\n#### 门禁 F：结尾去升华\n\nAI写作的结尾特征：总想总结、升华、点题。\n\n处理方法：\n- 删掉总结性语句\n- 用动作/场景收尾，不要用感慨收尾\n- 如果结尾有\"他知道...\"\"这一刻...\"→ 基本可以删\n\n#### 门禁 G：去解释腔/上帝感/安排感\n\n最难察觉、最\"像 AI\"的一类（对应 anti-ai-writing.md 模式 8）。叙述者跳出角色当下去解释、剧透、总结、定性、升华，读者闻到\"作者在场/剧情被安排\"。\n\n处理方法：\n- 删解释因果：「之所以…是因为」「原来…」「这意味着」→ 删，因果让读者从动作对话里自己拼。\n- 删上帝视角剧透：「她不知道的是」「殊不知」「多年以后」「仿佛预示着」→ 删。\n- 删替读者定性：「演得真好」「这出戏她看过一遍」「他就是这样薄情」→ 删，证据留给读者判断。\n- 删隐蔽的软评判：评判性副词（「关切得恰到好处」）、剧透点破（「那点笑她看得分明」）、定性比喻（「像在宣判一件早已定好的事」）→ 删，或改成角色此刻带偏见的瞬间感觉。\n- 注意：Gate G 删的是\"非故事性的作者旁白\"，不是删情节。删完若变薄，靠角色动作/对话补，不补叙述者解说。\n\n---\n\n### Phase 3.5：确定性标点收尾（文件模式）\n\n当输入是正文文件路径，且 Phase 3 已落盘修改后，运行本 skill 自带脚本做最后一遍确定性标点收尾：\n\n```bash\nnode scripts/normalize-punctuation.js <正文文件...>\n```\n\n作用边界：\n- 处理正文里的 `……`、破折号 `——`/`—`、双连字符 `--` 和独立行 `---`；默认不改变引号风格，也不把有功能的 `？` / 少量 `！` 改成句号。\n- 知乎盐言短篇可保留 `「」`；只有用户或项目明确要求时，才加 `--quote-mode ascii` 或 `--quote-mode yan`。\n- 对话中表示被打断或拖长的 `——` 不再作为例外保留；脚本会改成句号、逗号、动作可承接的断句或中文连接词。无功能标点堆砌由人工 Gate D/E 判断处理。\n- 该脚本是 `story-deslop` 的本地副本，不引用其他 skill 的文件。\n\n---\n\n### Phase 4：输出润色结果\n\n```\n## 去AI味润色报告\n\n### 字数协议\n- 原文字符数：{N0}\n- 修订后字符数：{N1}\n- 净变化：{N1 - N0}（{百分比}）\n- 是否在 tier 上限内：{是 / 否（超限 X%，已分段并标注 [需复核]）}\n\n### 修改统计\n- 总修改数：{N} 处\n- 禁用词替换：{N} 处\n- 句式调整：{N} 处（含 \"不是A而是B\" {N}、\"，带着...\" {N}、声音描写 {N}）\n- 修饰词清扫：{N} 处\n- 心理外化：{N} 处\n- 重复描写合并：{N} 处\n- 重复语义去重：{N} 处（形容词重复 {N}、近义词重复 {N}、含义重复 {N}、主语重复 {N}）\n- 比喻删除：{N} 处\n- 节奏调整：{N} 处\n- 对话优化：{N} 处\n- 标点节奏调整：{N} 处（保留有功能 `？`/少量 `！`，将 `……`/`——` 改为动作、短句、逗号或句号，并清理无功能堆砌）\n- 结尾修正：{N} 处\n\n### 修改前后对比\n{逐段展示修改，标注改动类型；超过 30 处时仅展示前 10 处 + 末 5 处 + 其余按 Gate 分桶计数}\n\n### 润色后全文\n{**文件模式（默认；章节/正文文件、批量与长篇去AI）**：通过 Edit/Write 直接改写落盘，本节只回 ≤200 字代表性片段，不向父会话返回全文。**文本模式（仅限交互式贴入、无文件路径的零散片段）**：完整输出润色后的文本。}\n```\n\n**字数硬约束**：删除比例不得超过 Phase 2 等级对应上限（轻度 ≤15%、中度 ≤25%、重度 ≤35%）。超限时分段输出并在报告里标记，不得整段删除正文。\n\n**收敛终止**：\n1. 同一段连续两轮去 AI 后没有新改动 → 停止该段处理\n2. 全文上限 3 轮重扫；第 3 轮仍有 ≥10 处改动 → 在报告里标 `[需复核]`，移交人工\n3. 每轮结束前都要做一遍\"再检一次\"：是否有不符合的地方，有则继续；没有则停\n\n---\n\n## 使用场景\n\n| 场景 | 操作 |\n|------|------|\n| 用户贴一段文字说\"太AI了\" | 执行完整检测 + 润色流程 |\n| 用户说\"帮我润色\" | 先检测AI味，再润色 |\n| 用户说\"检查下有没有AI味\" | 只做检测，不做修改 |\n| 用户写作中要求 `仅标注 / 只检测 / 不要改` | 嵌入式提醒模式：执行 Phase 1+2，跳过 Phase 3-4；输出问题标记表（含 Gate 列），不修改原文，不写文件 |\n\n---\n\n## 参考资料\n\n按需加载以下文件：\n\n| 文件 | 何时加载 |\n|------|----------|\n| [references/banned-words.md](references/banned-words.md) | 检测和替换禁用词时 |\n| [references/anti-ai-writing.md](references/anti-ai-writing.md) | **去AI味完整指南**：预防+三遍法+范例 |\n| [scripts/normalize-punctuation.js](scripts/normalize-punctuation.js) | 文件模式落盘后做确定性标点收尾；默认保留引号风格 |\n\n---\n\n## 流程衔接\n\n**流水线：** 通用\n**位置：** 润色（共享收尾）\n\n| 时机 | 跳转到 | 命令 |\n|---|---|---|\n| 继续写作 | story-long-write / story-short-write | `/story-long-write` 或 `/story-short-write` |\n| 发现结构问题 | story-long-analyze / story-short-analyze | `/story-long-analyze` 或 `/story-short-analyze` |\n| 准备做封面 | story-cover | `/story-cover` |\n\n---\n\n## 语言\n\n- 跟随用户的语言回复，用户用什么语言就用什么语言回复\n- 中文回复遵循《中文文案排版指北》\n","tags":{"latest":"1.1.5"},"stats":{"comments":0,"downloads":812,"installsAllTime":26,"installsCurrent":1,"stars":0,"versions":9},"createdAt":1777559040685,"updatedAt":1781843525819},"latestVersion":{"version":"1.1.5","createdAt":1781843525819,"changelog":"Synced from CI (v0.6.17)","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"worldwonderer","userId":"s1748rsha25rh871z39a8xdg9n85tqyh","displayName":"worldwonderer","image":"https://avatars.githubusercontent.com/u/49583093?v=4"},"moderation":null}