text-condenser · git:20260828.21694dd · 2026-08-28 · sha256 f9ee36b2495e1805
text-condenser git:20260828.21694ddA
Immutable. This exact content is served forever at /api/v1/blob/f9ee36b2495e1805.
--- name: text-condenser description: >- 字数裁剪/摘要:把长文本压缩到指定字数,保留核心信息。支持硬裁剪(严格字数)、 摘要(保留要点)、金句提取(只保留最精华的句子)三种模式。 特别适合从长文生成平台适配的短文。 使用时机:用户说"裁到 140 字"、"压缩一下"、"太长了"、"摘要"、"精简"、 "缩写"、"字数裁剪"、"帮我缩短"、"提炼要点"。 和 text-polisher 的区别:polisher 润色文案不改长度,condenser 压缩篇幅不做质量提升。 layer: produce --- # 字数裁剪/摘要 > 把长文本压缩到指定字数,保留核心信息,适配不同平台的字数限制。 ## 输入 | 字段 | 必填 | 说明 | |------|------|------| | `text` | 是 | 待压缩的原文 | | `target_length` | 否 | 目标字数(如 `140`、`280`、`500`);不指定则自动压缩到原文 30%-50% | | `mode` | 否 | 压缩模式:`strict` / `summary` / `extract`(默认 `summary`) | | `platform` | 否 | 目标平台(自动设定字数限制):`weibo`(140) / `twitter`(280) / `xiaohongshu`(1000) / `zhihu_answer`(自由) | | `preserve` | 否 | 必须保留的关键信息/关键词列表 | | `tone` | 否 | 压缩后的语气倾向:`neutral`(默认)/ `punchy`(有力)/ `soft`(柔和) | ### 压缩模式说明 | 模式 | 行为 | 适用场景 | |------|------|----------| | `strict` | 严格控制在目标字数 ±5%,逐字斟酌 | 有硬性字数限制的平台(微博、Twitter) | | `summary` | 保留所有要点,允许字数浮动 ±15% | 生成摘要、文章导语 | | `extract` | 只提取原文中最精华的原句,不改写 | 金句提取、精华摘录 | ## 输出 - 压缩后的文案 - 压缩报告:原文字数、目标字数、实际字数、压缩率、保留的核心要点列表 - 写入 `outputs/` 目录 ## 执行步骤 > **字数以脚本为准**:字数统计和达标判定一律用 `skills/shared/scripts/wordcount.py`, > 不靠自己数。LLM 负责改写,脚本负责判定。 > 社媒计数口径(`social_count`)= 中文字符 + 英文单词 + 数字串 + 标点。 ### Step 1 — 原文分析 1. 统计原文字数:`python3 skills/shared/scripts/wordcount.py count -f <原文>`(或经 stdin 传入) 2. 提取核心信息结构: - 中心论点 / 核心事实 - 关键论据 / 支撑数据 - 次要信息 / 补充说明 - 修饰性内容 / 过渡句 3. 对每条信息标注优先级(P0 必留 / P1 尽量留 / P2 可删) ### Step 2 — 裁剪策略 根据保留率(目标字数 / 原文字数)选择策略: | 保留率 | 策略 | 说明 | |--------|------|------| | > 70% | 轻度删减 | 删冗余修饰、合并重复表达 | | 40%-70% | 中度压缩 | 删 P2 信息、精简句式、合并相似段落 | | 20%-40% | 重度压缩 | 只留 P0/P1、改写为高密度表达 | | < 20% | 极限压缩 | 只留 P0、一句话概括 | ### Step 3 — 执行压缩 按 `mode` 执行: **strict 模式(脚本兜底,闭环调整):** 1. 先裁到目标字数的 120% 2. 逐句精简,去掉每句中可删的词 3. **调用脚本校验**:`python3 skills/shared/scripts/wordcount.py check --target <N> -f <文件>`(或经 stdin 传入) - 退出码 0 = 达标;非 0 = 未达标,脚本会给出「还需增/删 X 字」 - 平台硬限制默认 ±5%,可用 `--tolerance` 调整(如 `--tolerance 0.1`) 4. **未达标则继续改写并重新 check,直到脚本判定 pass(退出码 0)**,不得凭感觉收尾 5. 确认无断句、无残句 **summary 模式:** 1. 按信息优先级筛选内容 2. 用自己的话重写,不受原文句式约束 3. 确保逻辑连贯、可独立阅读 **extract 模式:** 1. 对每句打分(信息密度 x 表达质量) 2. 按得分降序选句,直到接近目标字数 3. 调整句序使其连贯 4. 不改写原句(最多做衔接过渡) ### Step 4 — 质量检查 - 字数是否达标:**strict 模式必须以 `wordcount.py check` 退出码 0 为准**;其他模式用 `wordcount.py count` 核对是否落在容差范围 - `preserve` 中的关键信息是否全部保留 - 压缩后是否可独立阅读(不需要看原文就能理解) - 是否有信息失真(压缩导致意思改变) - 句子是否完整(无残句、无悬空指代) ### Step 5 — 输出压缩报告 ``` 压缩报告: - 原文: 2,350 字 - 目标: 500 字 - 实际: 487 字 (压缩率 79.3%,压缩率 = 已删减比例 = 1 − 实际/原文) - 模式: summary - 保留要点: 1. [P0] 核心论点 — 已保留 2. [P0] 关键数据 — 已保留 3. [P1] 案例说明 — 已精简 4. [P2] 背景介绍 — 已删除 ``` ## Profile 感知 - **有 Profile**:从 `style.md` 读取品牌调性,压缩时保持一致的语言风格;参考 `platforms.md` 中的平台偏好,自动匹配最常用平台的字数规范 - **无 Profile**:按用户指定的参数压缩;未指定平台时默认 `summary` 模式,压缩到原文 30%-50% > 自研溯源与参考项目见同目录 `EASEL-META.md`。