# Text Preserve Rules

> 判断控制符、占位符和格式结构的保护资格、正则表达与命中安全。

- Skill: `neavo/text-preserve-rules` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add neavo/text-preserve-rules`
- Raw SKILL.md: https://api.skillmd.com/api/skills/neavo/text-preserve-rules/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: neavo (https://skillmd.com/u/neavo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/neavo/text-preserve-rules

---


# 文本保护领域判据

本技能以单条 text_preserve 规则为领域判断单位，输出保护资格、表达式和命中边界结论。

text_preserve 面向翻译过程中必须逐字保持的非语义控制符、占位符和格式脚手架；保护资格由结构身份与逐字保持需求决定。自定义规则的运行时行为由 `src` 的 JavaScript 正则确定，`info` 供用户识别规则。

## 1. 保护资格

先判断结构对象是否必须原样保留，再判断怎样用安全正则表达：

- **必须保护**：已确认存在必须逐字保持的非语义结构，普通翻译不能稳定保持目标行为；保护资格与正则表达方案分别判断。
- **无需保护**：当前对象属于自然语言或其它规则类型，普通翻译能够稳定处理，或补充调查确认其中不存在必须逐字保持的结构。
- **尚不能判断**：仍无法确认命中是否为非语义结构；继续按形态、位置、固定前后缀或其它可观察边界缩小范围。

结构身份和逐字保持需求决定保护资格；出现次数、当前损坏、生效模式、既有规则存续时间和零命中作为辅助证据记录。

## 2. 单条规则的发现与核验

候选来自控制符、占位符、格式脚手架、相关 warning、已有译文中的结构损坏、glossary 路径发现的相邻固定标记和其它工程事实。

发现未覆盖结构时，从以下证据基础建立互补方向：

- **结构形态**：定界符、标签名、控制前缀、参数形式、转义和固定标记；
- **位置与分布**：不同文件、文本类型、行首行尾、相邻片段和容器结构中的重复槽位与例外；
- **已有结果与覆盖**：现有规则命中、未覆盖原文、相关 warning、译文结构损坏和长尾形态。

同一安全结构的变体、宽候选暴露的自然语言反例，以及缩小边界后保留下来的子结构，都可以形成新的候选与边界证据。

每个候选表达式均独立执行以下核验，表达式修改后按新值重新执行：

1. 扫描表面为按 `\n` 拆行的原始 `item.src`；
2. 以 `new RegExp(source, "giu")` 编译，拒绝非法或零长度表达式；
3. 完整聚合 item、行、片段、`text_type` 和文件分布；
4. 保留有限代表片段、位置和必要上下文；
5. 按结构形态和实际保护行为判断必须保护、无需保护或仍需核验；
6. 直接采用、缩小范围、拆分、保留确定部分或列为需要补充信息。

扫描结论的适用范围是该候选在声明的原始 `item.src` 中的单条规则事实。

## 3. 表达式收束

1. **直接表达**：候选合法、非零长度、不会危险回溯或吞掉正文，且全部已知命中都必须原样保留。
2. **形态分组**：候选同时命中结构和正文时，依据已观察的标签名、控制符前缀、参数字符集、定界符、固定长度、位置或 `text_type` 分析差异；`text_type` 提供分布证据，运行时匹配由正则决定。
3. **缩小范围或拆分**：为确定安全的结构子集生成更窄正则，分别重新编译和完整扫描；安全子表达式独立形成规则，宽候选保留为调查证据。
4. **保留确定部分**：已验证安全的子对象独立形成规则，剩余形态作为独立对象单独判断。
5. **需要补充信息**：已确认必须保护的结构无法由任何合法、非零长度且不会吞正文的正则隔离；记录缺少的格式事实或建议的手工边界。

## 4. 字段与安全边界

- 每条 `src` 独立按 JavaScript 正则语义执行；匹配结果由正则决定，`text_type` 和文件解释命中分布；
- `info` 使用简短结构说明，表达式含义改变时同步更新；无法可靠命名时允许为空；
- 非法、零长度、无界通配、嵌套量词回溯或会吞自然语言正文的表达式不得进入最终规则；
- 宽表达式失败后保留结构对象的保护资格，并继续收窄或拆分表达式；
- 零长度或非法的既有规则形成调整或删除依据，结构对象的保护资格独立判断；
- 安全的 text_preserve 规则集合只由已验证的直接规则和安全子表达式组成；无法安全表达的结构保留为待补信息，不改变其它规则类型的独立判断。

## 5. 判例

以下判例在完成相应工程扫描后应用：

|候选与证据|结论|理由|
|---|---|---|
|`\{player_name\}` 的全部命中都是同一角色名占位符|必须保护并直接形成规则|边界确定且每个命中都必须原样保留|
|`\{\d+\}` 的全部命中都是编号占位符|必须保护并直接形成规则|参数变化已由窄表达式覆盖，未吞掉自然语言|
|`\{.*\}` 同时覆盖占位符与正文|拒绝宽表达式，尝试由真实形态支持的窄候选|宽表达式不安全不代表占位符无需保护|
|`^` 或 `.*?` 会产生零长度命中|拒绝候选；既有规则形成调整依据，对象资格另行判断|表达式失败不能单独否定结构保护必要性|
|`<[^>]+>` 同时命中 HTML 标签和比较表达式|按实际标签集合拆出安全规则|比较表达式不保护，已确认标签仍可独立形成规则|
|控制结构与自然语言使用完全相同，任何正则都会吞正文|列为需要补充信息|缺少可区分格式边界，不能安全表达|

