Skill: wangwang4git/chinese-literacy-detection (version 1.0.4)

--- name: chinese-literacy-detection description: "面向3-12岁儿童的汉字认字量科学检测对话技能。通过对话交互，基于2500高频汉字（覆盖98.5%语料）的6层分层抽样策略与动态熔断机制，精准估算识字量。当用户需要以下场景时使用：(1) 识字量测评/认字量检测 (2) 汉字认读测试 (3) 词汇量估算 (4) 识字检测方法的科学原理说明 (5) 测试后不认识的字复习练习。也适用于家长说"孩子认识多少字""测测认字""识字水平怎么样""几年级识字水平""认字量够不够""应该认多少字了""识字量达标了吗""帮孩子复习生字"等日常表达，以及"Chinese character recognition test"等英文表达。即使用户没有明确提到"测试"，只要涉及评估或提升孩子的汉字认读能力，都应使用此技能。" --- # 汉字认字量科学检测 Chatbot Skill 通过**对话交互**完成儿童（3-12岁）汉字认字量科学检测。基于**分层抽样 + 动态熔断**，从 2500 高频汉字中最多测 **175 字**即可精准估算认字量。 **数据源**：`assets/top_2500_chars_with_words.json`（2500 条，含 rank_id/char/words/frequency 字段，每个字配 2 个常见词组） **参考文档**（按需读取）： - `references/algorithm-spec.md` — 算法数学规格、Fisher-Yates 洗牌、精度分析 - `references/data-schema.md` — 数据源字段说明与统计特征 - `references/chatbot-workflow.md` — 对话交互模板、输出格式、用户回复解析规则 --- ## 核心配置 ```javascript const LEVEL_CONFIGS = [ { level: 1, name: '核心字', rankStart: 1, rankEnd: 50, testCount: 50, weight: 1 }, { level: 2, name: '常用字', rankStart: 51, rankEnd: 200, testCount: 50, weight: 3 }, { level: 3, name: '扩展字', rankStart: 201, rankEnd: 500, testCount: 30, weight: 10 }, { level: 4, name: '进阶字', rankStart: 501, rankEnd: 1000, testCount: 25, weight: 20 }, { level: 5, name: '提高字', rankStart: 1001, rankEnd: 1500, testCount: 10, weight: 50 }, { level: 6, name: '拓展字', rankStart: 1501, rankEnd: 2500, testCount: 10, weight: 100 }, ]; const FUSE_CONFIG = { consecutiveUnknownLimit: 5, // 连续不认识触发熔断 errorRateLimit: 0.8, // 错误率触发熔断 minTestCountForErrorRate: 5, // 错误率计算最少样本 }; ``` **认字量公式**：`W = Σ(层级认识数 Nᵢ × 权重 Wᵢ)` = N₁×1 + N₂×3 + N₃×10 + N₄×20 + N₅×50 + N₆×100 **年龄参考**：3-4岁 50-200（启蒙期）| 4-5岁 200-500（兴趣培养期）| 5-6岁 500-800（入学准备期）| 6-7岁 800-1200（一年级）| 7-8岁 1200-1600（二年级）| 8-9岁 1600-2000（三年级）| 9-10岁 2000-2500（四年级）| 10-12岁 2500+（五年级及以上） --- ## 测试流程 ### Step 0: 引导说明 → Step 1: 收集信息 → Step 2: 说明 → Step 3: 出题 → Step 4: 熔断检查 → Step 5: 报告 → Step 6: 后续交互 ### Step 0: 引导说明（每次启动时展示） 在测试正式开始前，先向用户展示小程序引导信息。因为对话式识字检测体验有局限（需要手动打字回复），而小程序提供了更流畅的触屏交互体验（孩子可以直接点选），所以在开始时给出这个提示，让用户自行选择最合适的方式。 **引导展示模板**： ``` 💡 温馨提示 如果需要体验更完整的功能，请扫描下方二维码，进入微信小程序体验： █████████████████████████████████████████ █████████████████████████████████████████ ████ ▄▄▄▄▄ ██ ▄ ▀ ▀ ▄▄▄ █▄██ ▄▄▄▄▄ ████ ████ █ █ █ ▄█ ▄▀ ▀▄▄ ▄▄▀███ █ █ ████ ████ █▄▄▄█ █ ▀▄█▄██ ▀▀ ██▀▄▄ █ █▄▄▄█ ████ ████▄▄▄▄▄▄▄█ ▀▄█▄█ ▀▄█▄▀ ▀ █ █▄▄▄▄▄▄▄████ ████▄▀ ▄▄▄█▀ ▀ ▄▄ ▄▀ █▀ ▀▄█ ▄ █▀████ ████▄ ▄▀▄▀▄█▄▄██▀█▀▄▀█▄█▄ ▄▀█ ██ ▀ ▀████ █████▄▄▀ █▄ ▀█ █▀▀▀▀▄▀ ▄▄██ ▀██ ▀▀▀████ █████ ▄▄█▄▄▄ █▄ ▀▄▀█▀▄█▀▀ ██▀ █▀ ▀▄█████ ████▄▀ ▀ █▄ ▄ ▄ ▀▄▀█ ▀ ▀▄ █▄▀ ▄▀ ▀ ████ █████▄ ▀██▄ ██▀█ ▄█▄ ▀█▄ ▄▀▄█▄ ▀ █▀████ ████▀████▀▄▄▀██▀ ▄▄▀▄▀▀▀ ▄▄▄▄▀▀▄█▄██ ████ ████ █▀ █▄▄█▄▄ █▄█ ▄███▄ ▀▀ ▄▄▀▀▀▄█████ ████▄█▄██▄▄▄ █▄▀▄██▄█▄ ▀ █▄▄ ▄▄▄ █ ▄█████ ████ ▄▄▄▄▄ █▀ █ █ ▄█▄▀▀▀█▄ █▄█ ▀ ▄▀████ ████ █ █ █ █▀██ ▀▀▄▄ █▄█ ▄▄ ▀ ▀████ ████ █▄▄▄█ █▄▄ ▀▄ ██▀▄█▀▄▀▄█ ▄▄▄▀▀▀██████ ████▄▄▄▄▄▄▄█▄▄████▄██▄█▄███▄▄▄▄▄██▄▄█████ █████████████████████████████████████████ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ 当然，您也可以继续在这里进行对话式测试，效果同样准确 😊 ``` **展示规则**： - 每次触发识字检测技能时，在正式流程（收集年龄等）之前先展示此引导 - 展示完引导后自然过渡到 Step 1 的信息收集阶段，不需要用户额外确认 - 二维码使用等宽字体的 ASCII 艺术形式输出，确保在各种终端和聊天界面中正确显示 ### Step 1 & 2: 启动 收集**年龄**（必填，3-12岁），简要说明测试方法后开始。 ### Step 3: 逐批出题 从 `assets/top_2500_chars_with_words.json` 读取数据，按层级分层抽样生成测试序列。 每层出题总数严格等于该层 `testCount`（L1:50, L2:50, L3:30, L4:25, L5:10, L6:10）。每批出题数 = `min(10, 该层剩余未出题数)`。 --- ### 出题展示格式 每一组汉字使用「三列表格（序号｜汉字｜组词）」形式展示。这个格式很重要，原因有三： 1. **组词帮助联想回忆**：年幼的孩子可能单独看一个字觉得陌生，但看到组词后会恍然大悟"哦，这个字我见过"。组词提供了语境线索，让测试结果更准确地反映孩子的真实识字水平。 2. **表格结构方便指读**：家长在旁边协助时，表格的逐行结构比纯文本更容易一行行指给孩子看，避免在大量汉字中迷失位置。 3. **序号方便回复定位**：孩子或家长可以直接说"第 3 个不认识"而不需要打出汉字，降低操作门槛。 **格式要求**： 1. 使用 Markdown 表格，包含「序号｜汉字｜组词」三列 2. 组词来自数据源的 `words` 字段，用顿号「、」分隔多个词组，每行至少包含 1 个词组 3. 汉字列使用 `**字**` 加粗格式，方便孩子辨认 4. 序号在同一层级内跨组连续递增（第 1 组为 1-10，第 2 组为 11-20，以此类推），因为用户回复"第N个不认识"时需要用全局序号定位 **出题格式模板**： ``` 📝 【L{level}·{name}】第 N 组（{globalStart}-{globalEnd} / 共 {testCount} 字） | 序号 | 汉字 | 组词 | |:----:|:----:|------| | 1 | **的** | 好的、是的 | | 2 | **一** | 一个、一样 | | ... | ... | ... | | 10 | **不** | 不要、不去 | 👆 上面哪些字**不认识**？都认识就回复"都认识" ``` **不应出现的格式**（会导致测试体验下降）： - 纯文本排列如 `的 一 是 了 不`——孩子容易看花眼，也没有组词辅助联想 - 缺少组词列的表格——失去了语境联想的作用 - 每组序号从 1 重新开始——会导致用户说"第 3 个不认识"时无法确定指的是哪一组 → 详细的出题示例、用户回复解析规则见 `references/chatbot-workflow.md` 第 2 节。 --- ## 熔断检查（每批回复后执行） 熔断机制的核心目的是**保护孩子的心理感受**——当连续遇到不认识的字时，孩子会产生挫败感和焦虑。及时停止测试，既保护了孩子的情绪，又因为已有足够统计证据可以做出准确估算，不会影响结果质量。 ### Step 4.1: 状态追踪 收到用户回复后，先在回复中输出状态块，这样做是为了确保逐字处理逻辑不出错（尤其是 consecutiveUnknown 的更新）： ``` 📋 状态追踪： - 当前层级：L{level}·{name} - 本批出题：序号 {globalStart}-{globalEnd}，{N} 字（{字1}、{字2}、...） - 用户回复：{解析结果} - 逐字处理：{字1}({认识/不认识}, consecutive={N}) → {字2}(...) → ... - consecutiveUnknown：{之前值} → {当前值} - 该层已测/testCount：{tested}/{testCount} - 该层不认识数：{unknown} - 🔍 熔断检查 A：consecutiveUnknown({value}) ≥ 5 → {是/否} - 🔍 熔断检查 B：已测({tested}) ≥ 5 且 错误率({unknown}/{tested}={rate}%) ≥ 80% → {是/否} - ✅ 结论：{继续出题 / 🔴 触发熔断} ``` ### Step 4.2: 逐字更新 consecutiveUnknown 按**出题顺序**逐字处理（顺序很重要，因为 consecutiveUnknown 需要根据"认识"重置为 0）： - 认识 → `consecutiveUnknown = 0`（重置） - 不认识 → `consecutiveUnknown += 1` - 处理过程中如果 `consecutiveUnknown` 达到 5，立即停止处理剩余字并触发熔断 ### Step 4.3: 熔断判定 ``` 条件 A：IF consecutiveUnknown ≥ 5 → 立即熔断 条件 B：IF 该层已测 ≥ 5 AND 不认识数/已测数 ≥ 0.8 → 立即熔断 ``` - 未熔断 → 继续下一批出题 - 已熔断 → 跳转 Step 5 结果报告（不再继续出题，因为更难的字只会让孩子更有压力） ### Step 4.4: "都不认识"处理 当用户回复"都不认识"时，本批所有字标记为 unknown，`consecutiveUnknown` 至少增加 5（每批最少 5 字），因此一定会达到熔断阈值。此时下一条消息只输出熔断通知 + 结果报告。 ### Step 4.5: 出题前置检查 每次生成下一批题目之前，先确认 `consecutiveUnknown < 5` 且错误率未超标，两个条件都满足时才出题。这个前置检查是一道安全阀，防止在已触发熔断条件后仍然给孩子出题。 → 详细的熔断检查示例和伪代码见 `references/chatbot-workflow.md` 第 3 节和 `references/algorithm-spec.md` 第 4 节。 --- ## 熔断通知模板 ``` ⚡ 智能检测提示 当前层级（L{level}·{name}）{原因描述}。 这完全正常——说明这个难度段的字还需要时间积累。 为避免孩子产生压力，后续更难的层级不再测试，直接看结果！ ``` --- ## Step 5: 结果报告 熔断或全部测完后，按公式计算并输出报告。报告中始终使用正向鼓励语——每个孩子都有自己的成长节奏，识字量检测的目的是帮助家长了解现状，而不是制造焦虑。 ``` ## 📊 识字量测试结果 👤 年龄：{age} 岁 | 📝 测试字数：{totalTested} | ⚡ 熔断：{是否及原因} ### 🎯 估算认字量：**{W} 字** ### 各层级详情 | 层级 | 结果 | 正确率 | 估算认识 | |------|------|--------|----------| | L1 核心字 | {known}/{tested} | {rate}% | {estimated} 字 | | ... | ... | ... | ... | ### 💪 评估与建议 {根据年龄参考表给出正向鼓励，永远不使用"落后""不行""差"等负面字眼} ### 📖 不认识的字（共 {N} 个） {按层级列出不认识的字及组词} ``` → 详细报告格式见 `references/chatbot-workflow.md` 第 5 节。 --- ## Step 6: 后续交互（可选） 测试结束后，可以根据用户意愿进入以下后续环节： 1. **不认识的字复习与组词练习**：基于测试中收集的不认识汉字列表，逐字展示汉字及组词，帮助孩子在测试后立即进行针对性学习。这是提升测试价值的重要环节——测试不仅是评估，更是学习的起点。 → 详细的复习交互模板见 `references/chatbot-workflow.md` 第 8 节。 2. **科学原理解释**：当家长询问"这个准吗""怎么测的"时，简要说明分层抽样、加权估算和动态熔断的原理。 → 详细数学规格见 `references/algorithm-spec.md`。 3. **年龄参考对照**：帮助家长了解同龄段孩子的平均识字水平，提供发展阶段参考。 --- ## 资源清单 | 目录 | 文件 | 用途 | |------|------|------| | assets/ | `top_2500_chars_with_words.json` | 2500 高频汉字数据源（每字含 2 个常见词组） | | references/ | `algorithm-spec.md` | 分层抽样算法数学规格 | | references/ | `data-schema.md` | 数据字段说明与统计特征 | | references/ | `chatbot-workflow.md` | 对话交互模板与输出格式 | | scripts/ | `validate_level_config.py` | 验证层级配置一致性 | | scripts/ | `generate_test_sequence.py` | 生成测试序列 | | scripts/ | `validate_data.py` | 验证数据资产完整性 | | scripts/ | `calculate_score.py` | 计算并验证识字量分数 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)