NoteMD Pro:为AI智能体打造的Markdown处理技能框架
1. 项目概述:一个为AI智能体打造的Markdown处理技能库
如果你和我一样,日常重度依赖Obsidian、Logseq这类双链笔记软件来构建个人知识库,同时又对AI编程助手(比如Cursor、Claude Code)爱不释手,那你肯定遇到过和我一样的痛点:让AI助手去处理Markdown文件,尤其是涉及复杂的图表、公式和知识链接时,结果常常是“灾难性”的。AI要么生成一堆语法错误的Mermaid代码,要么创建的双向链接(Wiki-Link)牛头不对马嘴,更别提让它去分析一个包含上千个文件的笔记库并自动建立知识图谱了。这感觉就像让一个力大无穷但笨手笨脚的巨人去整理你的书房,结果往往是书被撕烂,书架被撞倒。
NoteMD Pro的出现,就是为了解决这个核心矛盾。它不是一个传统意义上的Obsidian插件,你不能在插件市场里找到它。本质上,它是一个**“智能体技能框架”**。你可以把它理解为一套专门为大型语言模型(LLM)编写的、高度标准化的“操作手册”或“工具包”。这套手册告诉AI智能体(比如Cursor Agent、Claude Code的AI)应该如何专业地、安全地、高效地处理Markdown文件和知识图谱。它把那些我们人类觉得理所当然,但AI却经常搞砸的复杂操作——比如修复一个破损的流程图语法、从一段文本中精准提取核心概念、或者为整个笔记库自动建立关联——拆解成一个个可复用的、经过“硬化”处理的标准化技能。
这个项目适合任何想要提升AI在处理文本、构建知识系统方面能力的开发者、研究者或深度笔记用户。无论你是想自动化你的笔记工作流,还是希望你的AI编程伙伴能更懂你的知识库结构,NoteMD Pro提供的这套技能库都能让你从“人工纠错”的苦力中解放出来,让AI真正成为一个得力的、可靠的数字知识管家。
2. 核心设计理念与架构解析
2.1 为什么是“技能框架”而非“插件”?
这是理解NoteMD Pro价值的关键。传统的Obsidian插件是环境绑定的,它深度依赖Obsidian的私有API(如app.vault,app.metadataCache)。这意味着它的能力被锁死在了Obsidian这个应用里。你无法在VS Code、Cursor的独立编辑窗口,或者任何其他Markdown编辑环境中使用它。
NoteMD Pro反其道而行之,它采用了环境无关的设计。它的所有技能都基于最通用的文件系统操作(Node.js的fs模块或Python的os/pathlib)和纯文本处理。它不关心你用什么软件打开Markdown文件,它只关心文件本身的内容和路径。这种设计带来了无与伦比的可移植性。你今天可以用Cursor调用这些技能处理一个文件夹,明天就可以用Claude Code处理另一个,甚至可以在一个自动化脚本中批量调用。这打破了工具壁垒,让AI处理Markdown的能力成为一种基础设施。
2.2 标准化I/O与失效保护:两大基石
项目的设计哲学非常清晰,主要体现在两个核心原则上,这也是其稳定性的保障。
标准化I/O(输入/输出):所有技能的输入和输出都遵循严格的约定。输入通常是文件路径、目录路径或一段文本字符串;输出则是处理后的文件、生成的新文件或结构化的JSON数据。例如,concept-extractor(概念提取器)的输入是一个Markdown文件的路径,输出则是一个包含核心概念、实体及其上下文的列表。这种标准化使得技能可以像乐高积木一样被任意组合和串联。batch-processor(批处理器)之所以能工作,正是因为它可以调用任何一个符合此I/O标准的技能,并应用于成百上千个文件。
失效保护启发式引擎:这是NoteMD Pro最体现“匠心”的地方。作者深刻地认识到,当前LLM在处理高度结构化、依赖精确语法(如Mermaid、LaTeX)的内容时,是“不可靠”的。让LLM直接修复一段破损的Mermaid代码,它可能会引入新的、更隐蔽的错误。
因此,像mermaid-healer(Mermaid修复师)这样的技能,其工作流是启发式优先,LLM兜底。它内置了37条经过大量测试验证的正则表达式规则。当遇到一个破损的图表时,它首先会尝试用这些规则去匹配和修复常见错误,比如未闭合的括号、错误的关键词拼写、缩进问题等。只有在这套“组合拳”都无效的情况下,才会将问题“升级”给LLM,并附上清晰的上下文:“我已尝试了A、B、C方法,问题可能在于D,请你专注于解决D问题”。这极大地提高了修复的成功率和准确性,同时减少了对昂贵LLM API的调用。
2.3 与Skills.sh生态的集成:技能即插件
NoteMD Pro选择了与skills.sh这个开放技能市场深度集成,这是一个非常聪明的决定。skills.sh可以看作是一个面向AI智能体的“npm”或“pip”。它定义了一个技能的标准格式(一个包含特定Frontmatter元数据的SKILL.md文件),并提供了统一的CLI工具来搜索、安装和管理技能。
通过将每个技能(如mermaid-healer,concept-extractor)都包装成符合skills.sh标准的模块,NoteMD Pro获得了可发现性和易用性。用户不需要克隆整个GitHub仓库,他们可以通过npx skills find notemdpro全局搜索到这些技能,然后用npx skills add命令像安装软件包一样,将特定技能注入到他们的AI智能体环境中。这极大地降低了使用门槛,使得技能的分享和复用变得极其简单。
3. 六大核心技能深度拆解与实操
3.1 web-researcher:你的AI研究助理
这个技能解决的是AI生成内容“无源之水”的问题。当你让AI写一篇关于“量子计算最新进展”的笔记时,如果它仅凭训练数据中的陈旧知识生成,内容可能已经过时。
工作原理:web-researcher技能会调用集成的网络搜索API(如Tavily、DuckDuckGo),以用户提供的主题或初始段落为查询词,进行实时网络检索。它不仅仅是返回链接,而是会智能地抓取、摘要和整合多个来源的关键信息,形成一份结构化的研究摘要,并附上引用来源。
实操命令示例(在Cursor中):
/web-researcher “帮我研究一下2024年大型语言模型在代码生成方面的最新基准测试结果,特别是关于HumanEval和MBPP数据集。”输出:它会生成一个包含关键发现、数据对比和引用链接的Markdown片段,你可以直接将其作为笔记的“研究背景”部分。
注意事项:
- API配置:首次使用前,你需要在技能配置中填入有效的搜索API密钥(如Tavily API Key)。通常这通过环境变量或一个本地配置文件完成。
- 信息甄别:虽然技能会筛选来源,但作为使用者,仍需对整合后的信息保持批判性思维,特别是涉及快速发展的技术领域时。
3.2 content-generator:从骨架到血肉
这是最常用的技能之一,但它不仅仅是“生成文字”。在NoteMD Pro的框架下,它被设计为与后续技能协同工作的起点。
工作原理:它接收一个标题和一些初始上下文(可以来自web-researcher的输出,或是你手写的几点想法),然后按照预设的、高质量的Markdown模板生成内容。这个模板可能包括摘要、目录、详尽的章节、代码示例区块、结论等。关键在于,它生成的不仅是文本,还包括了正确的Markdown语法结构,为后续的mermaid-healer和link-analyzer做好准备。
实操心得: 不要只给它一个干巴巴的标题。像对待一个人类作者一样,给它清晰的指令和背景。对比以下两种方式:
- 差:
生成一篇关于Docker网络的笔记。 - 好:
以“深入理解Docker网络模型”为题,为我生成一篇技术笔记。受众是已有容器基础的中级开发者。需要涵盖bridge, host, none, overlay四种网络模式的原理、使用场景、命令行实操示例以及它们之间的对比表格。请用Mermaid图绘制Docker Bridge网络的通信流程图。后一种指令能引导AI生成结构更清晰、内容更聚焦、且直接包含后续技能可处理元素(如Mermaid代码块)的初稿。
3.3 mermaid-healer & formula-healer:语法纠错双雄
这是NoteMD Pro的“技术王牌”。AI生成的Mermaid图表和LaTeX公式,十有八九会有细微的语法错误,导致无法渲染。
mermaid-healer的37条启发式规则举例:
- 节点引号检查:将
A[Label修复为A["Label"]。 - 箭头方向统一:将
-->和->>等混用统一为-->。 - 子图闭合检查:确保每个
subgraph都有对应的end。 - 样式语法修正:将
style A fill:#f9f修正为style A fill:#f9f。 - 链接语法规范:将
click A call callback()修正为click A call callback()。
工作流程:
- 解析:识别Markdown文件中的所有 ````mermaid` 代码块。
- 启发式修复:遍历37条规则,对每个代码块依次应用。每应用一条规则,都会用Mermaid的解析器(或一个轻量级校验器)尝试验证。如果验证通过,修复停止。
- LLM兜底:如果所有规则应用后图表仍然无效,则将破损的代码块、已尝试的修复步骤和错误信息一起封装成一个新的Prompt,发送给LLM,请求其进行最终修复。
- 回写:将修复后的代码块写回原文件。
实操命令: 在包含破损图表的笔记所在目录,对AI智能体说:
请运行mermaid-healer技能,检查并修复本目录下所有Markdown文件中的Mermaid图表。重要提示:务必先使用项目自带的dummy-vault/test-file.md进行测试。这个文件包含了故意构造的各种错误图表,用于验证你的AI智能体是否正确加载并执行了修复技能。
3.4 concept-extractor:从文本中挖掘知识节点
这个技能是将普通文档转化为知识图谱的第一步。它像是一个敏锐的读者,能快速抓取文本中的核心概念。
算法逻辑(简化版):
- 预处理:清除Markdown格式,获取纯文本。进行分句和分词。
- 实体识别:结合规则(如大写字母开头的名词短语)和预训练的小型NER(命名实体识别)模型,识别出可能的概念实体,如“Transformer架构”、“梯度消失”、“Python 3.11”。
- 关系与上下文捕捉:分析句子结构,捕捉实体之间的关系(如“解决”、“基于”、“优于”),并提取实体出现的上下文句子。
- 重要性排序:根据实体的出现频率、位置(标题、首段)、以及与领域关键词的关联度,对提取出的概念进行排序。
- 输出:生成一个结构化的概念列表,每个概念包含名称、类型、上下文片段和重要性分数。
输出示例(JSON格式):
[ { "concept": "注意力机制", "type": "技术概念", "context_sentences": ["注意力机制允许模型在处理序列数据时,动态地关注输入的不同部分。", "Transformer架构的核心即是自注意力机制。"], "confidence": 0.95 }, { "concept": "PyTorch", "type": "技术工具", "context_sentences": ["实验代码使用PyTorch 2.0框架实现。"], "confidence": 0.88 } ]3.5 link-analyzer:自动编织知识网络
这是构建双向链接笔记(Zettelkasten)的自动化引擎。它利用concept-extractor的产出,自动创建[[Wiki-Link]]。
工作流程:
- 全库扫描:遍历指定目录下的所有Markdown文件,为每个文件运行
concept-extractor,建立“文件 -> 概念集合”的索引。 - 概念匹配:当处理文件A时,获取其概念列表。然后遍历整个索引,寻找其他文件中是否包含相同或高度相似的概念。
- 链接决策:并非所有匹配都创建链接。技能会计算概念关联的强度(基于共现频率、上下文相似度),并可能设置一个阈值。只有强关联的概念才会被创建为双向链接。
- 链接插入:在文件A的末尾或一个专门的“## 内部链接”区域,插入类似
- [[文件B]]的链接。同时,它也会在文件B中反向插入指向文件A的链接(如果配置允许)。 - 避免重复:智能检测并避免创建已存在的链接。
实操场景: 假设你有一个“机器学习”笔记和一个“深度学习”笔记。concept-extractor从前者提取了“神经网络”、“反向传播”,从后者提取了“神经网络”、“卷积”。link-analyzer会发现“神经网络”是共同的高频核心概念,于是自动在两篇笔记间建立双向链接[[机器学习]]和[[深度学习]],帮助你发现知识间的潜在联系。
注意事项:
- 初始噪音:全库自动链接的初期可能会产生一些不准确或弱相关的链接,需要少量人工复审和清理。
- 配置调整:你可能需要根据自己笔记库的特点,调整概念相似度阈值和链接插入的位置偏好。
3.6 batch-processor:大规模处理的守护者
这是处理大型笔记库(如拥有5000+笔记的Zettelkasten)的必备技能。它负责将任何单一文件技能安全、高效地扩展到整个文件夹。
核心挑战与解决方案:
| 挑战 | NoteMD Pro的解决方案 |
|---|---|
| 内存溢出(OOM) | 在处理每个文件前,预扫描并移除或替换大型Base64内嵌图片(如图床链接),显著降低内存占用。 |
| API速率限制(HTTP 429) | 内置指数退避重试机制。当遇到429错误时,自动等待并逐步增加等待时间后重试,避免账号被禁。 |
| 处理中断 | 实现检查点机制。记录已成功处理的文件列表,如果任务意外中断,重启后可以从断点继续,而非从头开始。 |
| 进度可视化 | 在控制台提供清晰的进度条、成功/失败计数,以及失败文件的日志,方便排查问题。 |
典型使用命令:
# 通过skills CLI,对./my_vault目录下的所有.md文件运行概念提取 npx skills run batch-processor --skill concept-extractor --target ./my_vault --pattern "*.md"4. 安装与配置全指南
4.1 通过Skills CLI安装(推荐方式)
这是最通用、最简洁的安装方法,它直接将技能安装到你的“技能运行时环境”中,与具体的编辑器解耦。
步骤详解:
- 确保Node.js环境:你的系统需要安装Node.js (>=16版本)。在终端输入
node --version检查。 - 全局安装skills-cli工具(通常非必须,因为npx会临时下载并执行):
但更推荐直接使用npm install -g @skills.sh/clinpx,它是npm自带的命令,能确保始终使用最新版。 - 搜索技能:在安装前,可以先看看NoteMD Pro提供了哪些技能。
这会列出所有可用的技能,如npx skills find Jacobinwwey/notemdpromermaid-healer,concept-extractor,web-researcher等。 - 安装特定技能:你可以按需安装,不必全部安装。
# 安装Mermaid修复技能 npx skills add Jacobinwwey/notemdpro@mermaid-healer # 安装概念提取技能 npx skills add Jacobinwwey/notemdpro@concept-extractor@符号后面指定的是技能名。安装过程会自动下载技能包并配置到默认的技能目录(通常是~/.skills)。 - 验证安装:安装后,你可以列出已安装的技能来确认。
npx skills list
4.2 在Cursor中集成
Cursor通过读取项目根目录下的.cursorrules文件来获得额外的AI行为指导。NoteMD Pro提供了这个文件。
操作步骤:
- 获取.cursorrules文件:你需要将NoteMD Pro仓库中的
.cursorrules文件复制到你的笔记库(Vault)的根目录下。你可以通过克隆整个仓库,或者只下载这个单一文件来实现。 - 在Cursor中打开项目:用Cursor打开你的笔记库文件夹。
- 触发技能:现在,当你在Cursor的聊天框中输入与技能相关的指令时,Cursor Agent就能理解并调用对应的技能。例如,输入:
或者更简单:请使用concept-extractor技能分析当前打开的这篇笔记。
Cursor会根据提取这篇笔记的核心概念。.cursorrules中的映射,将你的自然语言指令转换为对concept-extractor技能的调用。
.cursorrules文件内容揭秘: 这个文件本质上是一个“指令-技能”的映射配置。它可能包含类似下面的内容,告诉Cursor当用户说“提取概念”时,去执行哪个脚本:
{ "rules": [ { "command": ["提取概念", "分析概念", "concept extract"], "action": { "type": "skill", "skill": "concept-extractor", "args": ["${currentFilePath}"] } } ] }4.3 在Claude Code或OpenCode中集成
这两个工具通常通过直接获取远程指令文件来配置。
对于Claude Code:
- 在终端中,导航到你的笔记库目录。
- 运行类似以下的命令(具体命令可能随工具更新而变化,请以项目README为准):
这条命令会让Claude Code去读取NoteMD Pro为它专门准备的安装说明文件,该文件会指导Claude Code如何设置环境、加载技能。claude "请获取并遵循来自 https://raw.githubusercontent.com/Jacobinwwey/notemdpro/main/.codex/INSTALL.md 的安装指令"
对于OpenCode: 过程类似,命令格式可能略有不同:
opencode "fetch and follow instructions from https://raw.githubusercontent.com/Jacobinwwey/notemdpro/main/.opencode/INSTALL.md"重要提示:.codex/INSTALL.md和.opencode/INSTALL.md是NoteMD Pro项目为不同AI智能体定制的“适配器”文件。它们内部可能包含了设置API密钥、配置技能路径等具体步骤。务必查看你所用智能体对应的文件内容。
4.4 通用配置与API密钥管理
大多数技能(尤其是web-researcher)需要外部API密钥。
最佳实践:使用环境变量
- 创建一个名为
.env.local的文件在你的笔记库根目录(切记将该文件加入.gitignore,避免泄露密钥)。 - 在文件中填入你的密钥:
TAVILY_API_KEY=your_tavily_key_here ANTHROPIC_API_KEY=your_claude_key_here # 如果需要Claude模型兜底修复 OPENAI_API_KEY=your_openai_key_here # 如果需要GPT模型 - 在运行技能的环境(如终端)中加载这些变量。你可以使用
source .env.local(Linux/Mac)或安装dotenv-cli包后使用dotenv命令。# 使用dotenv-cli npm install -g dotenv-cli dotenv -- npx skills run web-researcher --topic "你的主题"
5. 实战演练:从零构建一篇自动化技术笔记
让我们通过一个完整的场景,串联使用多个NoteMD Pro技能,体验自动化知识管理的威力。
目标:创建一篇题为“Serverless架构的冷启动问题与优化策略”的技术笔记。
步骤1:启动研究在已安装web-researcher技能的Cursor中,输入:
请使用web-researcher技能,为我搜集关于Serverless冷启动问题的最新资料,特别是AWS Lambda、Google Cloud Functions和Azure Functions在2023-2024年的优化案例和基准测试数据。等待技能执行完毕,它会将一份带有引用的研究摘要插入到你的新笔记中。
步骤2:生成内容骨架基于研究摘要,继续对AI说:
以“Serverless架构的冷启动问题深度剖析与优化实战”为标题,基于刚才的研究摘要,生成一篇完整的Markdown技术文章。要求包含:问题定义、原因分析(语言运行时、镜像大小等)、三大云厂商的对比、常见的优化模式(预置并发、精简包体积等)、实战代码示例(以Python为例)以及总结展望。请使用Mermaid绘制冷启动过程的时序图。AI会调用content-generator技能(或类似逻辑),生成一篇结构完整的初稿。但此时,其中的Mermaid图表很可能存在语法错误。
步骤3:修复图表与公式保存初稿为serverless-cold-start.md。在文件所在目录打开终端,运行:
npx skills run mermaid-healer --target ./serverless-cold-start.md npx skills run formula-healer --target ./serverless-cold-start.md # 如果有LaTeX公式或者直接在Cursor中对这个文件说:“修复本文中的所有图表和公式”。技能会自动扫描并修正所有语法问题。
步骤4:提取核心概念接着,运行概念提取:
npx skills run concept-extractor --target ./serverless-cold-start.md --output concepts.json这会产生一个concepts.json文件,里面列出了“冷启动”、“AWS Lambda”、“预置并发”、“容器复用”等核心概念。
步骤5:关联已有知识库假设你已有一个庞大的云技术笔记库。现在运行链接分析,但这次是针对整个库,而不仅仅是新文件:
npx skills run link-analyzer --target ./my_cloud_notes_vault --new-file ./serverless-cold-start.md这个命令会做两件事:
- 将新文件
serverless-cold-start.md中的概念与知识库中所有其他文件进行匹配,建立双向链接。 - 同时,它也会扫描整个知识库,看是否有其他文件需要链接到这篇新笔记的概念上。
步骤6:批量处理历史笔记过了一周,你学习了新的Mermaid语法,想用新标准优化知识库里所有旧图表。你可以安全地使用批处理器:
npx skills run batch-processor --skill mermaid-healer --target ./my_cloud_notes_vault --pattern "*.md" --exclude "node_modules/**" --report ./heal-report.log--exclude参数排除了非笔记目录。--report参数将生成一个处理日志,记录成功和失败的文件,方便你复查。
6. 常见问题与故障排查
在实际使用中,你可能会遇到以下典型问题。这里提供我的排查思路和解决方案。
Q1: 运行npx skills add时出现权限错误或网络超时。
- 排查:这通常是npm包管理或网络问题。
- 解决:
- 检查Node.js版本是否过旧:
node --version,建议使用LTS版本。 - 尝试使用淘宝镜像源加速:
npx --registry=https://registry.npmmirror.com skills add ... - 如果使用公司网络,可能需要配置代理。
- 确保有足够的磁盘写入权限。
- 检查Node.js版本是否过旧:
Q2: Cursor没有响应我的技能指令,比如我说“提取概念”,它只是普通聊天回复。
- 排查:
.cursorrules文件未生效。 - 解决:
- 确认文件位置:
.cursorrules文件必须在当前Cursor打开的项目根目录下。用Cursor的文件树视图检查。 - 检查文件格式:确保
.cursorrules是有效的JSON或YAML格式,没有语法错误。可以尝试用在线JSON校验器检查。 - 重启Cursor:有时Cursor需要重启才能加载新的规则文件。
- 查看Cursor日志:某些版本的Cursor有开发者控制台,可以查看AI接收到的指令和规则匹配情况。
- 确认文件位置:
Q3:mermaid-healer运行了,但图表修复失败,或者被改坏了。
- 排查:这是最可能遇到的情况。可能是遇到了启发式规则未覆盖的复杂错误,或者LLM兜底修复时产生了歧义。
- 解决:
- 先沙盒测试:再次强调,务必先在
dummy-vault/test-file.md上测试,确认技能基本工作正常。 - 查看详细日志:运行技能时添加
--verbose或--debug参数,查看它具体应用了哪条规则,以及LLM收到了什么指令。npx skills run mermaid-healer --target problem.md --verbose - 手动干预:对于非常重要的复杂图表,不要完全依赖自动化。将修复前后的代码进行diff对比,理解AI的修改逻辑。你可以选择接受修复,或基于AI的建议手动调整。
- 贡献规则:如果你发现了一类反复出现且现有规则无法修复的错误,可以考虑向NoteMD Pro项目提交Issue或Pull Request,贡献你的修复正则表达式。
- 先沙盒测试:再次强调,务必先在
Q4:batch-processor处理大量文件时中途崩溃或内存不足。
- 排查:即使有Base64图片清理,单个文件过大或文件总数太多仍可能导致问题。
- 解决:
- 分而治之:不要一次性处理整个库。使用
--pattern参数分批处理,例如先处理2023-*.md,再处理2024-*.md。 - 调整Node.js内存限制:在运行命令前设置Node.js的最大内存。
这将堆内存限制提高到4GB。NODE_OPTIONS=--max-old-space-size=4096 npx skills run batch-processor ... - 检查报告文件:崩溃后,查看
--report指定的日志文件,找到最后处理成功的文件,然后使用--resume-from参数(如果技能支持)从该文件继续。
- 分而治之:不要一次性处理整个库。使用
Q5:web-researcher返回“API密钥无效”或没有搜索结果。
- 排查:API密钥未正确设置或对应的搜索服务额度用尽/不可用。
- 解决:
- 确认环境变量:使用
echo $TAVILY_API_KEY检查环境变量是否已在当前终端会话中设置正确。 - 尝试备用API:如果技能支持配置多个搜索源(如从Tavily回退到DuckDuckGo),在配置文件中切换。
- 手动测试API:直接使用curl或Postman测试你的Tavily API密钥是否有效,确保账户有余额。
- 确认环境变量:使用
Q6: 自动生成的[[Wiki-Link]]不准确,链向了不相关的笔记。
- 排查:
concept-extractor提取的概念太宽泛或歧义,link-analyzer的相似度阈值设置过低。 - 解决:
- 优化概念提取:查看
concepts.json输出,看是否提取了许多无关紧要的术语。有时需要调整提取技能的参数,例如忽略某些停用词或设置最低置信度阈值。 - 调整链接阈值:如果技能提供配置项,提高创建链接所需的概念相似度分数阈值。
- 人工审核后处理:将全自动链接改为“建议模式”。让
link-analyzer生成一个“建议链接”的列表文件(如link_suggestions.csv),你人工审核确认后再执行批量插入操作。这是目前最可靠的方式,实现了人机协作。
- 优化概念提取:查看
经过近半年的实践,我将NoteMD Pro深度融入了我的技术写作和知识管理流程。它最大的价值不在于完全替代人工,而在于将我从大量重复、琐碎且容易出错的语法校对和基础关联工作中解放出来。我现在可以更专注于思考内容本身的结构和深度,而把格式、链接这些“体力活”交给经过标准技能训练的AI伙伴。它就像给我的AI助手进行了一次专业的“上岗培训”,让它的输出从一开始的“业余水平”直接提升到“可用甚至良好”的程度。如果你也厌倦了在AI生成的漂亮内容和糟糕的Markdown语法之间来回切换,强烈建议你从一两个核心技能(比如mermaid-healer)开始尝试,它会立刻提升你的体验。
