skills/paragraph-reorder-yashu/SKILL.md
主题聚类重排文章段落顺序,将语义相近的段落归组消除话题跳跃。激活条件:用户消息须包含以下关键词之一:`调整段落顺序`、`段落重排`、`重排文章段落`、`段落顺序不合适`。
npx skillsauth add steelan9199/wechat-publisher paragraph-reorder-yashuInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本技能通过主题聚类策略重排文章段落顺序。AI 语义分析每个段落的核心主题,将语义相近的段落归组放在一起,消除"话题跳跃"现象,使文章读起来更连贯。调整后直接覆盖原文件,同时生成备份。
适用场景:信息密度高、段落较多、话题分散的长文(观点类、技术类、资讯类文章)。
不适用场景:叙事类(按时间线展开)、流程类(按步骤展开)等段落顺序有内在逻辑约束的文章。
$SKILL_DIR 指代本技能所在目录,即 SKILL.md 文件所在的文件夹。| 步骤 | 执行动作 | 具体操作 |
|------|---------|---------|
| 1 | 获取文件路径 | 从用户消息中提取文章文件路径。若用户未指定路径,询问用户提供文章文件路径。 |
| 2 | 读取文章 | 运行 Read 工具读取用户指定的 Markdown 文件全文。 |
| 3 | 段落切分 | 将文章内容按空行(双换行)切分为段落块。代码块(...)即使内部含空行也视为单个段落单元。为每个段落记录原始位置索引(从 1 开始)。详细切分规则见【段落切分规则】。 |
| 4 | 段落数量检查 | 统计段落数量。若 ≤3 段 -> 输出"文章段落数量过少(N 段),无需调整"并结束执行。 |
| 5 | 语义分析与主题聚类 | AI 逐段分析核心主题,将主题相关/相近的段落归入同一聚类组。聚类组内保持原始相对顺序(稳定排序)。聚类组之间按该组首个段落原始出现顺序排列,最小化对原文结构的扰动。详细策略见【聚类排序策略】。 |
| 6 | 顺序评估 | 比较新顺序与原始顺序。若完全一致 -> 输出"当前段落顺序已合理,无需调整"并结束执行。若不一致 -> 继续下一步。 |
| 7 | 展示对照表 | 输出段落映射对照表,格式见【输出格式】。此步骤仅为信息展示,不暂停等待用户确认。 |
| 8 | 创建备份 | 运行 Copy-Item "{原文件路径}" "{原文件目录}\{原文件名去扩展}_backup_{yyyyMMdd_HHmmss}.{扩展名}" 创建备份文件。 |
| 9 | 写入重排结果 | 使用 Write 工具将重排后的完整内容写入原文件路径。禁止使用 Set-Content、Out-File 等 PowerShell 写入命令,避免 BOM 编码问题。重排内容 = 按新顺序拼接段落,段落之间用双换行(空行)分隔。 |
| 10 | 输出结果摘要 | 输出备份文件路径、已更新原文件路径、调整段落数量,格式见【输出格式】。 |
段落切分是重排的基础,切分错误会导致文章结构损坏。遵循以下规则:
| 场景 | 处理方式 | 原因 |
|------|---------|------|
| 普通文本块 | 按空行分隔,每个连续非空行块为一个段落 | Markdown 标准段落定义 |
| 代码块(...) | 整体视为一个段落单元,不因内部空行拆分 | 代码块内部空行是代码结构的一部分,拆分会破坏代码完整性 |
| 标题行(#、## 等) | AI 语义判断:若标题与紧随其后的段落构成同一主题单元,则合并为一个段落;否则标题独立为一段 | 标题通常是其后续内容的概括,拆开可能导致标题与内容分离 |
| 列表块(-、1. 等) | 连续的列表项(无空行分隔)视为一个段落单元 | 列表项之间无空行时属于同一逻辑块,拆分会破坏列表结构 |
聚类排序是本技能的核心,遵循以下原则:
| 原位置 | 新位置 | 主题标签 | 段落预览(前 20 字) |
|--------|--------|---------|---------------------|
| 1 | 1 | 引言 | 本文将介绍... |
| 5 | 2 | 引言 | 在实际应用中... |
| 2 | 3 | 性能 | 性能优化是... |
| 4 | 4 | 性能 | 通过缓存机制... |
| 3 | 5 | 总结 | 综上所述... |
## 重排完成
- 备份文件:{备份文件路径}
- 已更新:{原文件路径}
- 调整段落数:{N} 段(共 {M} 段中有 {N} 段位置发生变化)
| 错误场景 | 错误表现 | 处理方式 |
|---------|---------|---------|
| 文件不存在 | Read 报错文件不存在 | 检查路径是否正确,提示用户确认文件路径 |
| 文件为空 | 读取后内容为空 | 输出"文件内容为空,无需调整"并结束执行 |
| 无段落结构 | 整篇文章只有一个段落块(无空行分隔) | 输出"文章只有一个段落,无需调整"并结束执行 |
| 写入失败 | Write 返回错误 | 检查文件是否被其他程序占用,提示用户关闭后重试 |
| 备份失败 | Copy-Item 报错 | 检查磁盘空间和路径权限,提示用户处理后重试 |
content-media
自动启停视频课程录制所需的辅助程序。激活条件:用户消息须包含以下关键词之一:`我要录制视频课程`、`开始录制视频课程`、`准备录课`、`视频课程录完了`、`录课结束`、`停止录制`。
content-media
生成扁平的 SVG 图(架构图、中心辐射图、流程图、简易时序图、思维导图、组织架构图、2×2对比矩阵、时间线、循环图、鱼骨图),也支持把已有 SVG 文件转成 PNG 图片。激活条件(满足任一即可):生成类关键词 `画架构图`、`画中心辐射图`、`画流程图`、`画时序图`、`画思维导图`、`画脑图`、`画组织架构图`、`画树形图`、`画对比矩阵`、`画四象限`、`画时间线`、`画循环图`、`画鱼骨图`、`画因果分析图`;转换类关键词`SVG 转图片`、`把 SVG 转成图片`、`把 SVG 转成 PNG`。
testing
检查指定技能文档中的废话文字并输出诊断报告。激活条件:用户消息须包含以下关键词之一:`检查技能废话`、`这个技能文档有没有多余内容`、`清理技能文档废话`、`审查技能文档废话`、`清理技能文档历史说明`。
testing
评审一个技能是否「自包含」——即其知识、经验、规范是否全部内置在技能文件内(SKILL.md + references/),不依赖特定 AI 客户端专有的知识接口命令(如 read_me / modules: / show_widget / Visualizer)去外部拉取,也不硬编码某个 AI 软件的私有路径(如 .workbuddy)。同时检查工具依赖(node、浏览器、命令行)是否仅作为用户自备工具声明、未写死私有路径。当用户要求「评审这个技能是否自包含 / 独立」「检查技能知识是否内置」「审查技能的独立性 / 可移植性」「audit / review a skill for self-containment」时触发。产出评审报告:结论(自包含 / 不独立)+ 问题清单(文件:行号 + 引用的外部依赖 + 为何影响独立性)+ 整改建议。