動態

詳情 返回 返回

Markdown算編程語言嗎?由SuperClaude的自定義工具引發的思考 - 動態 詳情

沒有 if 或 while,只能用來寫文檔的 Markdown 算編程語言嗎?

先別急着回答。讓我們先來想象一下,當你在寫代碼時,身邊突然多了一羣虛擬隊友——她們不僅能幫你補全代碼、隨時完善文檔,還能化身為架構師、安全專家、前端工程師或火眼金睛的 QA,給出專業意見——會是怎樣一種體驗呢?説不定還能變身為虛擬的程序員鼓勵師呢。

這正是 SuperClaude Framework 想為開發者帶來的體驗。該項目把 Claude 從一個 AI 編程助手,升級成了一支真正的虛擬開發團隊。而做到這一點的秘訣是背後一整套精心設計的“工具箱”:框架裏內置了 21 個可直接調用的命令,覆蓋從設計、實現到測試和部署的完整流程;同時還提供了 14 個“agents/personas”,每一個都像團隊裏的專職角色,可以隨時切換;除此之外,還有 6 種不同的工作模式,能夠讓 AI 在不同場景下自如應對。

以命令為例,安裝好 SuperClaude,只要在 Claude 中輸入 /sc:,就會看到它提供的 20 多個新命令:

在 Claude 中輸入 <code>/sc:</code>

來試着執行一下第一個命令 brainstorm 吧。比如告訴 Claude:我們打算開發一款查看天氣的 App。

執行sc brainstorm命令

從輸出結果可以看到,Claude 成功識別出了我們輸入的 sc:brainstorm 命令及其參數 --strategy agile,並立即切換到敏捷開發的頭腦風暴模式(brainstorming mode)。

這一切看上去的確很“黑科技”,但作為一名“老登”程序員,一直以來還靠查 API 文檔 + 搜索引擎編程(寫 Bug),才剛開始體會到連續按下 Tab 鍵,接受 AI 補全代碼的便利,比起評判 Claude 輸出內容的質量,驚訝於它的智能,我更好奇的是這次對話背後發生了什麼?

SuperClaude 是如何擴展 Claude 命令的?

不過,我指的“背後”也不是那麼往後,要刨到祖墳下面,這裏先不涉及大模型本身那些高深複雜的原理,我們只關注一個更直接的問題:SuperClaude 到底是怎麼在 Claude 裏擴展命令的,Claude 又是如何“執行”這些命令的?

既然 SuperClaude 是開源項目,那與其空想,不如直接去翻它的源代碼,看看答案究竟藏在哪裏。

SuperClaude 主要使用 Ptyhon 語言實現

從 GitHub 的項目首頁可以看出,SuperClaude 的主要實現語言是 Python。但問題來了:Claude 本身能直接執行 Python 代碼嗎?顯然不能吧。

稍微分析一下源碼就會發現,SuperClaude 中的 Python 代碼其實只做了兩件事:

  1. 用户執行 pip 或 pipx 後,安裝一個名為 SuperClaude 的命令行工具;
  2. 用户執行 SuperClaude install 後,向 ~/.claude 目錄中注入一些 *.md 文件。

換句話説,當你通過 pip 安裝好 SuperClaude 後,再運行 SuperClaude install,所謂的“安裝”過程其實只是是把 SuperClaude 安裝目錄下的 SuperClaude/文件夾裏的 Markdown 文件,拷貝到~/.claude/目錄中

這一點我們完全可以驗證:只需在執行安裝命令的同時配合 fs_usage(macOS)或 strace(Linux),就能清楚地看到文件拷貝的過程。

在 macOS 上通過 fs_usage 命令來觀察 SuperClaude 安裝了什麼

由此可以推斷出(也可以繼續用 fs_usage/strace 驗證),Claude 在啓動時會自動掃描 ~/.claude 目錄,並將其中的子目錄 ~/.claude/commands/ 識別為命令集。commands 中的子目錄的名稱(這裏是 sc)會作為命令前綴,而其中的 *.md 文件則被識別為具體命令(比如 brainstorm.md)。

瀏覽 brainstorm.md 的內容,

brainstorm.md 的內容

會發現裏面定義了六大塊內容:命令的描述信息、觸發條件、行為邏輯、MCP/工具集成、使用示例,以及行為邊界。

由此就能推測出整個機制的運作方式:當我們在 Claude 中輸入 /sc:brainstorm 時,這個 Markdown 文件的內容就會被讀取並傳遞給 LLM,用來指導它接下來的行為。

Markdown 算編程語言嗎?

回到最初的問題:既然一份 Markdown 文件就能影響 LLM 的行為,那 Markdown 這種標記語言,能不能算作編程語言呢?這個問題其實很像早年間的常見爭論——HTML 算不算編程語言?

HTML 算不算編程語言?

所謂編程語言,顧名思義就是用於編寫程序的語言。那程序又是什麼呢

如果説程序就是一份關於“如何有條理地做一件事”的説明書,那描述“先做什麼,再做什麼;遇到某種情況就怎麼做,否則怎麼樣”的方法未必只有一種。對於程序員來説,某種編程語言自然是書寫“説明書”的最佳選擇,因為一旦用這種語言編寫出來,只要有編譯器或解析器,程序就是可以運行的,往往轉眼間就能看到結果。

那流程圖或 UML 算不算是一種描述呢,能不能“寫説明書“呢?如果畫得精細,同樣能説明做事的條理,只是不能直接執行。那自然語言能描述清楚該如何做事嗎?多多少少可以吧,否則還能因為“根據手機殼的顏色自動調整 App 的主題顏色”打起來?

從“寫説明書”的角度看,HTML 雖然缺少條件分支、循環等控制結構,但它依舊是一種形式化語言,專注於説明頁面上面有哪些元素,如何排布。這樣類比的話,説不定在不遠的未來,Markdown 不僅是精簡的格式標記語言,也可以成為一種“編程語言”。SuperClaude 的源代碼似乎也能説明這一點,Markdown 不再只是寫文檔的工具,而是真正承擔起了指揮 AI 行為的“代碼”角色

一個有趣的細節是,在 SuperClaude 的源代碼中,負責驅動 AI 的 Markdown 文件總共有 8100 多行,僅比 Python 代碼少 3000 多行。這似乎也在提醒我們:在 AI 時代,程序員的“代碼”,可能不再是傳統意義上的代碼了。

🔚

user avatar fengdudeyema 頭像 yanwushu 頭像 chen_5ec331606ce75 頭像 hlinleanring 頭像 tiandexianggua 頭像 l7luo 頭像 kip_67231fa160bbc 頭像 754582231 頭像
點贊 8 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.