AI 素養與隱私體驗

AI 素養與隱私體驗

[讀者回函]「從 Markdown 切換到 HTML」,不如說:溝通給人看 → 用 HTML;建立可被 agent 引用的知識 → 用 structured text/markdown

GAINSHIN's avatar
GAINSHIN
May 15, 2026
∙ Paid

一篇好文章為何容易被誤讀

Thariq Shihipa 的心得思路。它真誠、有實例、有截圖、有可重現的 prompt 範本,而且作者是 Anthropic 內部人,立場本身就是一手資料。但它在簡體圈被轉譯的標題「Claude 工程師逃離 Markdown:用一晚把工作流全換成 HTML」就出了個小問題—把一個關於輸出形式的設計選擇,包裝成了關於儲存格式的時代斷代。

這個包裝產生了具體後果:我這週收到的訊息至少有三波是「你之前推的 markdown 工作流是不是已經過時了?」「要不要趕快把 wiki 改成 HTML?」「Anthropic 自己人都這樣說了。」

要回答這些問題不需要否定 Thariq—他文章裡寫的東西大多是對的。真正要做的工作,是把他沒有顯式區分、但他自己其實一直在實踐的那個區分挖出來:substrate 層 vs view 層、儲存格式 vs 呈現格式、工廠 vs 成品。把這層區分挖出來之後,這篇文章不但不挑戰 markdown 為主的 AI/UX 工作流,反而證實了它。


Thariq 在文中親手畫出了那條線

我從他文中挑兩處他自己的承認。

第一處在 FAQ 段,「版本控制怎麼辦?」

他寫:「老實說,這是 HTML 最大的缺點之一。和 Markdown 相比,HTML diff 噪音很大,也很難審查。」這句話是文章裡最被略讀的一句,因為它出現在 FAQ 末尾、語氣是「對對對我知道」式的順帶承認。

但這句話的意思很重:版本控制是知識資產長期累積的核心紀律。如果 HTML 的 diff 噪音大、難審查,那意思是任何「會被多人修改、會跨時間累積、會被回頭追問『為什麼當初這樣決定』」的內容,都不該以 HTML 為主要儲存格式。

第二處在「數據攝取」段,他描述 Claude Code 能讀什麼

原文:「除了文件系統,Claude Code 還可以通過你的 MCP(比如 Slack、Linear 等)、你的網頁瀏覽器(通過 Chrome 裡的 Claude)、你的 git 歷史等方式找到更多上下文。」

注意他列舉的素材清單:程式碼檔案、git history、Slack 訊息、Linear ticket、瀏覽器內容。沒有一項是 HTML 檔。HTML 在他的工作流裡,是 agent 寫出來的產出,不是 agent 讀進去的素材。

素材端是程式碼(純文字)、git diff(純文字)、Slack(純文字)、Linear(結構化純文字)—這些全是「機器易讀、人類易讀、diff 友善」的格式,本質上就是 markdown 譜系的東西。

把這兩處放一起看,Thariq 自己其實已經畫好了那條線:

  • HTML 適合「給人看一次」的東西:報告、PR 描述、mockup、互動原型、spec 文件最終呈現版

  • Markdown / 純文字 適合「會被機器與人類反覆讀寫」的東西:codebase、git history、wiki page、persona、scenario、decision log、acceptance criteria

他沒明說的是:這兩件事不是替代關係,是工序關係。view 層的好看 HTML,是 substrate 層的紮實 markdown 生出來的。

先把後面全文要扣住的那張圖說在前面:完整工作循環只有四段—markdown substrate ↔ HTML view ↔ 設計師決策 ↔ 寫回 markdown substrate。下面各節都是在替這張圖補細節;Thariq 文章補強的大多是 HTML view 那一段,並沒有否定 substrate。


信息密度的真正意涵:HTML 是輸出的天花板,不是輸入的優勢

(對照第二節那張四段環:這一小節專門補循環「左側」—長期資產的 substrate 該長什麼樣子,才不會在吃進 agent 協作後發散成 HTML 特有的命名漂移。)

Thariq 對「信息密度」的論證是文章最強的一段。他列舉 HTML 能表達的東西:表格資料、CSS 設計、SVG 插畫、可執行 script、互動元件、空間排版、嵌入圖片。他說「Claude 能讀取的信息集合裡,幾乎沒有什麼是不能用 HTML 相當高效地表示出來的」。

這個觀察是對的,但結論需要校準。HTML 是輸出表達的天花板,因為它能容納所有人類消費的格式。但這恰恰意味著它不是輸入儲存的優勢—任何能容納一切的容器,本身的結構約束就最弱。

還有一道常被忽略的「技術性偏心」:主流 LLM 的訓練語料仍以 markdown、純文字與類程式碼格式為大宗,而非瀏覽器 DOM。因此當你要 agent 生成、比對、批評、重寫同一份規格時,那份東西若以 markdown substrate 維護,語義對齊與長程連貫通常比要模型在 HTML 標籤層級上推理來得穩。

HTML 為渲染與版面而生;structured text/markdown 同時對人類編輯與模型讀寫都比較「對齊介面」。這不是要宣稱模型讀不懂 HTML—而是:在公開訓練語料的常見配比下,substrate 選 markdown/frontmatter 常有額外的語義穩定性。

舉個具體例子。假設我要儲存「使用者通知偏好」這個概念,它要被:

  • 設計師寫入(描述設計意圖、權衡考量)

  • Auditor agent 讀取(檢查是否違反 dark pattern)

  • 工程師讀取(轉換成程式碼實作)

  • 三個月後的新進設計師讀取(理解為什麼這樣決定)

  • 一年後的 PM 讀取(思考要不要改)

  • Git 追蹤(誰在什麼時候改了什麼、原因是什麼)

如果用 markdown + YAML frontmatter:

---
type: decision
id: d-2026-04-default-digest
applies_to: [sarah-busy-parent]
trade_off: 損失即時性,換取留存率
overrides: ios-default-immediate
---

# 預設模式:digest 而非 immediate

Sarah 類型使用者一旦被 immediate 模式打擾過頭,會直接關閉所有通知...

這份檔案 6 個月後被 5 個人輪流讀寫,每次 commit 的 diff 都會清楚顯示「誰改了什麼欄位」「誰補了哪段論述」。Auditor agent 可以結構化地查詢 frontmatter—重點不只在「機器能不能 parse」,而在 key 集合被規格鎖住、變更可被 review:同樣的查詢在半年後仍能指向同一組語意。

如果同樣的內容用 HTML:

<article class="decision" data-id="d-2026-04-default-digest">
  <header>
    <h1>預設模式:digest 而非 immediate</h1>
    <div class="meta">
      <span class="applies-to">Sarah-busy-parent</span>
      <span class="trade-off">損失即時性,換取留存率</span>
    </div>
  </header>
  <section class="body">
    <p>Sarah 類型使用者一旦被 immediate 模式打擾過頭...</p>
  </section>
</article>

第一次寫的時候差別不大,甚至從「單機、單 agent 可不可以解析結構」來看:**data-*、class、meta div 與 YAML frontmatter 一樣都是結構化文字**,Auditor 讀這層並不必然比讀 YAML 困難。真正的風險出在多人協作時 HTML 的典型寫作法:多半沒有 schema 強制、欄位約束只靠慣例,人類手上的命名會發散,querySelector/模板假設會隨任一人的重構悄聲斷裂。

YAML frontmatter 至少有一條可用的收口路徑:固定 key、PR review、yaml schema、lint—HTML 要等價地做同樣的紀律,成本通常更高。

5 個人輪流改 6 個月之後,你看到的往往是:

  • 有人會用 <span> 包,有人用 <div>,有人乾脆放屬性

  • class 命名會漂移(applies-to / appliesTo / applies_to)

  • 有人會用 <section> 巢狀包另一個 <section> 加層次

  • 一個人忘了關 </article>,整個檔渲染就壞了

  • Git diff 出來:每行都動,因為縮排、屬性順序、tag 嵌套深度全部洗牌

  • Auditor agent(或下游腳本)對「欄位路徑」的依賴變脆—不是因為看不懂 attribute,而是路徑所指向的人類約定不再穩定

這不是 HTML 不好,是 HTML 容器太寬鬆。在缺乏 schema/lint/review 紀律時,它的「信息密度」會變成「命名與結構可被任意改寫的空間」,協作規模一上來就混入噪音。Markdown + frontmatter 結構先天較窄—能寫的版型少,但欄位比較容易彼此一致。

Thariq 在文章裡也提了個微妙的細節:他自己「frontend design plugin 可以幫助 Claude 製作好的 HTML 文件」。為什麼需要 plugin?因為沒有 plugin 的話,Claude 生出的 HTML 風格漂移嚴重。這個 plugin 就是在補 HTML 缺乏內建約束的洞—而 markdown 不太需要這種東西。


「我不太讀超過 100 行的 Markdown 了」這句話的重點

(對照四段環:Thariq 這段自述,多半落在「view/單次閱讀」那一側的流程體驗—不是論證整個組織都該拆掉 substrate。)

Thariq 文章的個人動機這段我覺得寫得最誠實:

「我也越來越少親自編輯這些文件,而是把它們當作規格文檔、參考文件、頭腦風暴輸出等等。當我確實要修改時,通常也是提示 Claude 去改;這就削弱了 Markdown 最大的優勢之一。」

「實際使用中,我發現自己往往不會真的閱讀超過 100 行的 Markdown 文件;更不用說讓我組織里的其他人去讀了。」

這兩句話講的不是 markdown 的失敗,講的是 Thariq 的工作流變了。他正在做的事情是:用 AI 大量生成計畫文件、規格、探索、報告,然後自己當讀者(或他的同事當讀者),++很少改、改也丟給 Claude 改++。

這個工作流下,markdown 確實在喪失優勢—因為 markdown 的優勢是「人類也容易寫、機器也容易讀、diff 友善、版本控制乾淨」。如果你不寫了、不版本控制了、只生成跟閱讀,那 markdown 就只剩下「人類也容易讀」這一條優勢,而這條優勢正好被 HTML 用「視覺清晰、可互動、可嵌入圖表」打敗。

但反過來想:如果你的工作流是「會反覆寫、會多人協作、會跨時間追蹤」呢? 設計師的 wiki 屬於哪一類?

我的觀察是混合的。(對照四段環:以下兩串清單在切—哪些內容本質上要留在左側、累積成資產;哪些適合先做 HTML view,再決定什麼值得寫回去。)

Wiki 內容裡有些東西本質上是「會被多人反覆讀寫」的長期資產:

  • persona 會隨研究更新

  • decision log 會持續累積

  • design system tokens 會迭代

  • scenario 會被多個 feature 引用

  • acceptance criteria 會被 Red Team 反覆審視

這些東西如果存 HTML,6 個月後 diff 會是惡夢。

Wiki 也有些東西本質上是「一次性生成、給人看一次」:

  • 給領導層的功能進度報告

  • 給工程的 spec handoff 文件

  • 給跨部門的 demo presentation

  • sprint retrospective summary

  • feature 上線後的影響分析

這裡的「一次性」指的是報告的呈現載體(常以單檔 HTML 生成、閱畢封存),不是說 retro 的思考可以丟進抽屜。行動項目、承諾、風險與決策必須回寫 substrate(例如 decision log、tickets、下一次 sprint 的對照條款),不然 wiki 會變成只有 view、沒有累積的殼。

這些東西生成出來給人看完就歸檔,HTML 確實比 markdown 好—因為有顏色、有圖、有互動、有移動端適配。(但別忘了注腳:該留存的不是 HTML 檔本身,是可被追問的紀錄。)

所以正確的問題不是「我們該用 markdown 還是 HTML」,是「這份內容會被反覆讀寫,還是一次性消費?」答案決定格式。


工序而非斷代:一個具體流程

先把反方推到最強,再來談為什麼我仍會堅持 substrate:在純機器閉環的 agent 管道裡,agent 產 HTML 的速度與品質已經夠好用;版本的痛苦也有人主張可以用 snapshot + semantic diff/結構化比對工具接住,不一定要人類徒手讀 unified diff。這在「沒人要為決策署名、沒人要向組織解釋取捨」的前提下,確實越來越可行—2026 年的現實是,很多一次性產出真的可以交給閉環處理。

設計與產品相關工作流的缺口在另一個詞:accountability。PM、設計師、法遵、利害關係人要回答的是「為什麼這版比上一版更值得信賴/為什麼風險被接受」,不是「這兩個 HTML snapshot 結構上等價」。人類要的往往是可稽核敘事(論據鏈、權衡、誰在最後簽了什麼)與可追溯 diff—這類責任仍然黏在可被集體編輯、可被 PR review 的文字 substrate 上好承載。換句話說:機器閉環可以做得很好;但凡工作產物要進組織記憶、要接受跨職能質詢,就還有一道不能省略的人在環。Thariq 自己在 FAQ 承認 HTML diff/審閱的痛,那根刺正好扎在這條線上。

把 substrate / view 分層落地,AI/UX 實作流程會變成這樣(若以 HTML 版呈現這篇文章,下面這張圖很值得直接做成可點的流程元件—用文字獨白三道工序反而有種自我反題式的幽默):

第一道工序 · Substrate 累積(markdown)

設計師在 IDE 裡用 markdown 寫 persona、scenario、page list、decision、AC。每份檔案有 frontmatter 標明 type、id、relations、status。Git 追蹤所有變更。Agent 從這層讀取上下文做生成、審計、跨檔交叉引用。

這層的紀律是:schema 嚴格、命名收斂、diff 乾淨、可長期累積。它存活的時間是++產品的整個生命週期++。

第二道工序 · View 生成(HTML / SVG / 互動原型)

當設計師要做 mockup、要做 PR 描述、要做給領導的報告、要做客戶 demo—這時候命令 agent 從 substrate 讀取相關片段,生成 HTML。這份 HTML 可能包含:

  • 從 persona markdown 摘出來的使用者畫像視覺卡片

  • 從 decision log 抓出來的時序動畫

  • 從 page list 渲染出來的 sitemap 圖

  • 從 AC 列表渲染出來的驗收測試打勾介面

  • 從 token JSON 生成出來的配色方案展示

這份 HTML 是一次性產出。看完、用完、決策完就歸檔—下次需要相似的東西就重新生成,而不是維護它。

這層的紀律是:好看、清楚、互動友善、易分享。它存活的時間是++單次決策的視窗++。

第三道工序 · 回饋寫回 substrate(markdown)

HTML 看完做了決策—「我們選方案 B」「Auditor 發現 5 個問題、修 3 個、接受 2 個」「跨部門對齊了 deadline」—這些結論要寫回 markdown substrate 層。原本的 HTML 報告本身可以歸檔,但決策的本體要回到 wiki,因為它會被未來的人查、被未來的 agent 引用、被未來的工程實作參照。

這個三道工序的流程裡,markdown 跟 HTML 都有位置,但位置不可互換。把 substrate 換成 HTML 等於拆掉資產累積機制;把 view 強制鎖在 markdown 等於放棄好的呈現。Thariq 文中所有具體 use case—spec 文件、PR 描述、研究報告、設計探索、報告 dashboard、編輯介面—全部是 view 層的事。他沒講的是這些 view 從哪裡來、決策怎麼回去。


從工程的角度再驗證一次

(仍是那張環:這一節把「左側」拉寬到其他工程資產,論證不是設計師特例。)

跳出設計領域看更廣的工程實踐。所有經得起時間考驗的工程資產儲存格式都有一個共通特徵—它們是純文字、有強 schema、diff 友善:

  • 程式碼是純文字

  • 配置檔是 YAML / TOML / JSON

  • 基礎設施是 Terraform HCL

  • 資料庫 schema 是 SQL migration

  • API 規格是 OpenAPI YAML

  • CI/CD pipeline 是 YAML

  • 文件是 Markdown

  • 學術論文是 LaTeX(純文字)

HTML 在這個列表裡有什麼位置?它是渲染輸出—是 markdown 文件渲染後的網頁、是 OpenAPI 跑出來的 swagger UI、是 Terraform plan 的視覺化、是 codebase 用 mkdocs 跑出來的文件站。它沒有以「儲存格式」身份出現在任何資產積累流程裡。

這不是巧合。長期資產需要結構約束,而結構約束的成本是「能寫的東西比較少」—這個成本在系統規模變大、時間拉長後會反過來變成優勢。HTML 的優勢「能寫的東西很多」在規模變大時會反過來變成 chaos。

Thariq 文章開頭講「Markdown 時代把 AI 當會寫長文檔的實習生」「HTML 時代把 AI 當能幫你搭產品級工作介面的搭檔」這個比喻很漂亮,但比喻有它的限制。實習生跟搭檔不是對立的—你需要實習生整理資料、需要搭檔做漂亮報告,這是兩個工作位置,不是兩個時代。


{合作廣告}

🧑‍🎓 UX 訂閱制學習計劃:把 human-in-the-loop 變成你的日常。這也是我會特別推薦 #UX訂閱制學習計劃 的原因:它不是一次性的 bootcamp,而是把借位、補位、入位拆開來,串成 3 月到 12 月的一條學習軸線。

透過每月 Podcast 和專欄,先向不同領域的 UX / 產品 / AI / 服務設計講師「借位」

透過直播與 Circle 社群討論,在你的真實案子與問題上進行「補位」

點選報名


對 AI/UX 實作的具體建議

如果你正在建立或重構 AI/UX 工作流,下面是我會給的五條建議:

User's avatar

Continue reading this post for free, courtesy of GAINSHIN.

Or purchase a paid subscription.
© 2026 PrivacyUX consulting Ltd. · Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture