关于 conversation-json-to-md
将聊天导出 JSON 转换为 Markdown 文件的技能,每段对话单独成档。它保留用户与助手的问答及回答格式,并在第二轮检查文件名和标题结构。
主要功能
- 01识别常见聊天导出结构
- 02每段对话生成一个 Markdown 文件
- 03仅保留用户与助手的问答
- 04保留回答 Markdown 并规范标题
- 05检查文件名和格式
适用场景
- 01将聊天导出内容拆分为多个对话文件
- 02从导出聊天生成问答 Markdown
- 03规范转换文件的标题和文件名
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yangsonhung/ awesome-agent-skills --skill conversation-json-to-md安装后在 Claude Code 中输入/conversation-json-to-md确认已加载。
附带文件scripts/convert_conversations.py
详细介绍
Conversation JSON 转 MD
概述
将用户提供的聊天导出 JSON 转换为多个 Markdown 文件,并统一问答格式。此工作流仅保留用户与助手之间的对话,将每段对话写入一个 Markdown 文件,保留答案中的 Markdown,并通过第二轮处理规范文件名和标题结构。
适用场景
用户提出以下需求时,使用此技能:
- 将一份 JSON 聊天导出文件拆分为多个
.md文件 - 每个 Markdown 文件保存一段对话
- 仅保留用户和助手的问答内容
- 将回复部分的标题改为
Answer - 通过第二轮格式处理规范导出的文件
不适用场景
以下情况不要使用此技能:
- 不涉及 JSON 聊天导出的纯文本转换
- 非对话 JSON 处理任务
- 需要语义总结而非结构转换的请求
说明
- 读取用户提供的输入文件路径。不要假设文件名是默认值。
- 自动检测对话/消息结构。
- 每段对话导出为一个 Markdown 文件。
- 仅保留用户/助手的问答内容。
- 将每个问答块格式化为:
## <question text>### Answer
- 保留答案中的 Markdown,并将答案内部标题级别降低一级。
- 运行独立的第二轮格式检查,在最终交付前修正文件名和标题结构。
支持的输入结构
随附脚本支持常见的导出格式,包括:
- DeepSeek/ChatGPT 类映射树(
mapping/root/children/fragments) - Qwen 类导出(
data[].chat.messages[]、带有phase=answer的content_list) - Claude 网页导出格式(
list[{ name, chat_messages: [...] }]) - 通用消息数组(
messages、history、conversations、dialog、turns) - 成对字段(
question-answer、prompt-response、input-output)
如果格式检测失败,请停止并向用户索要一段示例片段,然后扩展解析规则。
运行脚本
python3 scripts/convert_conversations.py \
--input /path/to/<user-provided>.json \
--output-dir /path/to/output_md \
--clean
输出格式
每个输出文件使用以下结构:
# <conversation title>
## <user question 1>
### Answer
<assistant answer markdown>
## <user question 2>
### Answer
<assistant answer markdown>
第二轮格式处理(必需)
导出后,对输出文件运行第二轮检查/修正:
- 文件名规范化:
- 仅使用标题命名
- 移除非法文件名字符
- 使用
(2)、(3)……解决重名问题
- 标题规范化:
- 仅保留一个 H1:
# <conversation title> - 确保问题为 H2
- 确保回复标题严格为
### Answer
- 正文规范化:
- 保留答案正文中的 Markdown
- 保留答案内部标题降级
- 最终验证:
- 确认没有文件违反文件名或标题规则
验证清单
- 文件数量与检测到的对话数量一致
- 文件名中没有随机后缀
- 输出中没有
## REQUEST或## RESPONSE标题 - 回复块均使用
### Answer - 输出能正确保留 Markdown 渲染效果
评论
支持 Markdown