{ "schema_version": "muse-fixture-chinese-prose-v1", "来源": "合成样例;无真实作品内容", "合同": "docs/系统架构/新版设计/接口契约/正文结构与中文选区.md", "位置语义": "start/end 按 Unicode 码点、左闭右开区间计数", "samples": [ { "sample_id": "zh-combining-emoji", "保护点": "组合字符(e+U+0301)、肤色修饰 emoji、ZWJ 序列不被规范化", "paragraphs": [ "他写下最后一个字, café́ 的灯光下,念作「卡非」。🧑‍🏽 点了点头。" ], "preserved_expectations": [ "段内包含字符 e 与组合分音符 U+0301 分离存储,不得合并为 é", "emoji 家族/肤色序列按原码点序列保留", "全角引号「」与全角标点原样保留" ], "codepoint_lengths": [ 37 ], "selections": [ { "paragraph_index": 0, "start": 10, "end": 15, "expected_text": "café́" }, { "paragraph_index": 0, "start": 28, "end": 31, "expected_text": "🧑‍🏽" } ] }, { "sample_id": "zh-blank-lines", "保护点": "连续空行、段首全角空格、行尾空白在导入/保存/导出中保持", "paragraphs": [ "第一段结束。", "", "", " 第二段有全角空格开头。", "第三段。" ], "preserved_expectations": [ "空段落数量与位置不变(第 2、3 段为空段落)", "段首全角空格 U+3000 不被剥离" ], "codepoint_lengths": null }, { "sample_id": "zh-duplicate-sentence", "保护点": "重复片段不能按任意首次命中替换", "paragraphs": [ "他把剑收回鞘中。风停了。他把剑收回鞘中,转身离开。" ], "preserved_expectations": [ "第二次出现的「他把剑收回鞘中」不因对第一次的替换而改变" ], "duplicate_spans": [ { "paragraph_index": 0, "start": 0, "end": 7, "expected_text": "他把剑收回鞘中" }, { "paragraph_index": 0, "start": 12, "end": 24, "expected_text": "他把剑收回鞘中,转身离开" } ], "selections": [ { "paragraph_index": 0, "start": 8, "end": 11, "expected_text": "风停了" } ] }, { "sample_id": "zh-cross-paragraph-selection", "保护点": "跨段选区显式表达受影响段落,不能折叠为整章偏移", "paragraphs": [ "这句话结束于第一段末尾,", "第二段从这里开始。" ], "cross_selection": { "from": { "paragraph_index": 0, "start": 9, "end": 12 }, "to": { "paragraph_index": 1, "start": 0, "end": 4 }, "expected_from_text": "末尾,", "expected_to_text": "第二段从" } }, { "sample_id": "zh-fullwidth-variants", "保护点": "全角标点、破折号、兼容异体字不被自动规范化", "paragraphs": [ "『你确定?』她问——用的是「旧式」引号,和一个 炙 类兼容异体字。" ], "preserved_expectations": [ "『』「」—— 及兼容异体字 U+F9FB 原样保留", "正文规范化必须是显式编辑操作,不是保存副作用" ], "selections": [ { "paragraph_index": 0, "start": 0, "end": 6, "expected_text": "『你确定?』" } ] } ] }