没有 if 或 while,只能用来写文档的 Markdown 算编程语言吗?
先别急着回答。让我们先来想象一下,当你在写代码时,身边突然多了一群虚拟队友——她们不仅能帮你补全代码、随时完善文档,还能化身为架构师、安全专家、前端工程师或火眼金睛的 QA,给出专业意见——会是怎样一种体验呢?说不定还能变身为虚拟的程序员鼓励师呢。
这正是 SuperClaude Framework 想为开发者带来的体验。该项目把 Claude 从一个 AI 编程助手,升级成了一支真正的虚拟开发团队。而做到这一点的秘诀是背后一整套精心设计的“工具箱”:框架里内置了 21 个可直接调用的命令,覆盖从设计、实现到测试和部署的完整流程;同时还提供了 14 个“agents/personas”,每一个都像团队里的专职角色,可以随时切换;除此之外,还有 6 种不同的工作模式,能够让 AI 在不同场景下自如应对。
以命令为例,安装好 SuperClaude,只要在 Claude 中输入 /sc:,就会看到它提供的 20 多个新命令:
来试着执行一下第一个命令 brainstorm 吧。比如告诉 Claude:我们打算开发一款查看天气的 App。
从输出结果可以看到,Claude 成功识别出了我们输入的 sc:brainstorm 命令及其参数 --strategy agile,并立即切换到敏捷开发的头脑风暴模式(brainstorming mode)。
这一切看上去的确很“黑科技”,但作为一名“老登”程序员,一直以来还靠查 API 文档 + 搜索引擎编程(写 Bug),才刚开始体会到连续按下 Tab 键,接受 AI 补全代码的便利,比起评判 Claude 输出内容的质量,惊讶于它的智能,我更好奇的是这次对话背后发生了什么?
SuperClaude 是如何扩展 Claude 命令的?
不过,我指的“背后”也不是那么往后,要刨到祖坟下面,这里先不涉及大模型本身那些高深复杂的原理,我们只关注一个更直接的问题:SuperClaude 到底是怎么在 Claude 里扩展命令的,Claude 又是如何“执行”这些命令的?
既然 SuperClaude 是开源项目,那与其空想,不如直接去翻它的源代码,看看答案究竟藏在哪里。
从 GitHub 的项目首页可以看出,SuperClaude 的主要实现语言是 Python。但问题来了:Claude 本身能直接执行 Python 代码吗?显然不能吧。
稍微分析一下源码就会发现,SuperClaude 中的 Python 代码其实只做了两件事:
- 用户执行
pip或pipx后,安装一个名为SuperClaude的命令行工具; - 用户执行
SuperClaude install后,向~/.claude目录中注入一些*.md文件。
换句话说,当你通过 pip 安装好 SuperClaude 后,再运行 SuperClaude install,所谓的“安装”过程其实只是是把 SuperClaude 安装目录下的 SuperClaude/ 文件夹里的 Markdown 文件,拷贝到 ~/.claude/ 目录中。
这一点我们完全可以验证:只需在执行安装命令的同时配合 fs_usage(macOS)或 strace(Linux),就能清楚地看到文件拷贝的过程。
由此可以推断出(也可以继续用 fs_usage/strace 验证),Claude 在启动时会自动扫描 ~/.claude 目录,并将其中的子目录 ~/.claude/commands/ 识别为命令集。commands 中的子目录的名称(这里是 sc)会作为命令前缀,而其中的 *.md 文件则被识别为具体命令(比如 brainstorm.md)。
浏览 brainstorm.md 的内容,
会发现里面定义了六大块内容:命令的描述信息、触发条件、行为逻辑、MCP/工具集成、使用示例,以及行为边界。
由此就能推测出整个机制的运作方式:当我们在 Claude 中输入 /sc:brainstorm 时,这个 Markdown 文件的内容就会被读取并传递给 LLM,用来指导它接下来的行为。
Markdown 算编程语言吗?
回到最初的问题:既然一份 Markdown 文件就能影响 LLM 的行为,那 Markdown 这种标记语言,能不能算作编程语言呢?这个问题其实很像早年间的常见争论——HTML 算不算编程语言?
所谓编程语言,顾名思义就是用于编写程序的语言。那程序又是什么呢?
如果说程序就是一份关于“如何有条理地做一件事”的说明书,那描述“先做什么,再做什么;遇到某种情况就怎么做,否则怎么样”的方法未必只有一种。对于程序员来说,某种编程语言自然是书写“说明书”的最佳选择,因为一旦用这种语言编写出来,只要有编译器或解析器,程序就是可以运行的,往往转眼间就能看到结果。
那流程图或 UML 算不算是一种描述呢,能不能“写说明书“呢?如果画得精细,同样能说明做事的条理,只是不能直接执行。那自然语言能描述清楚该如何做事吗?多多少少可以吧,否则还能因为“根据手机壳的颜色自动调整 App 的主题颜色”打起来?
从“写说明书”的角度看,HTML 虽然缺少条件分支、循环等控制结构,但它依旧是一种形式化语言,专注于说明页面上面有哪些元素,如何排布。这样类比的话,说不定在不远的未来,Markdown 不仅是精简的格式标记语言,也可以成为一种“编程语言”。SuperClaude 的源代码似乎也能说明这一点,Markdown 不再只是写文档的工具,而是真正承担起了指挥 AI 行为的“代码”角色。
一个有趣的细节是,在 SuperClaude 的源代码中,负责驱动 AI 的 Markdown 文件总共有 8100 多行,仅比 Python 代码少 3000 多行。这似乎也在提醒我们:在 AI 时代,程序员的“代码”,可能不再是传统意义上的代码了。
🔚