這個技能做什麼
將「比較某事物的選項」變成一個真正的工具。您會為 X 生成幾個真正獨特、有研究基礎的變體,將每個變體呈現在一個可共享的比較板上的專屬面板中,然後交給人類來比較、挑選優勝者並留下反饋。他們的挑選結果會回傳給您,您再深化這些優勝者。
它適用於任何事物:替代解決方案、UI/元件設計、測試/評估策略,以及生成的媒體(程式碼、圖片、音訊、文字)。該比較板是一個無依賴的獨立 HTML 檔案,因此可以輕鬆放入任何專案中。
$ARGUMENTS 是要比較的內容。如果它很模糊(比較什麼、改變哪個維度、針對哪些主題),請在生成之前先問 1-2 個明確的問題。
核心原則(主幹——不可跳過)
- 真實、獨特的變體——不是微調參數。 每個變體都是一個真實的、有名稱的技術。如果兩個變體僅因一個參數值而不同,那麼它們只是同一種方法的不同取樣——將其合併。測試:如果您能用同一句話描述兩個變體,只是交換了一個數字,那麼它們就不是獨特的。
- 研究本身就是校準步驟。 當領域有文獻或既定實務時,在設計變體之前就要研究實際的命名技術——使用 WebSearch / 文件 /
references/。憑空猜測菜單會導致過頭或不足。(詳見 reference.md §1 的跨領域研究提示。) - 控制變量比較。 凍結所有輸入;只改變測試中的那一維度。同一行中的每張卡片使用相同的種子/情境/提示/副本。在該行的目標中說明凍結的輸入。一行 = 一個變化的維度。
- 客觀徽章。 在任何可衡量的地方,為每個面板附加一個顏色編碼的指標徽章(與目標的距離、通過率、延遲、套件大小、對比度……),以便選擇有證據支持,而非憑感覺。
- 隔離混淆因素——單一工件多視圖。 當同一輸出值得從多個角度觀看時,給卡片一個
content.views切換開關(例如,記譜法 / 鋼琴捲簾 / 音訊 / 原始碼 / 差異比較)。典型情況是「原始 vs 處理後」——將原始工件與處理後的工件並排呈現,這樣人類就能判斷是翻譯/重新著色/正規化/序列化/壓縮管線中的哪個階段導致了糟糕的結果;content.raw是其雙視圖捷徑。切勿偽造切換開關。 僅當視圖之間真正不同時才添加——如果處理前後結果完全相同(一種忠實的轉換),則刪除切換開關。無效的切換比沒有更糟;該比較板會自動折疊位元組一致的視圖,並在視圖數 ≤1 時自動隱藏切換開關。 - 指標與工件的誠實。 將真實工件與其指標徽章並排呈現,讓不一致之處顯現出來。如果記譜法明顯降低了三度音,但「距離」徽章顯示為 0,那麼這個矛盾就是一個發現——它意味著該指標忽略了某些東西。揭示它是重點;不要將工件隱藏在數字背後,也不要為了匹配數字而調整數字。
- 真實內容關卡。 每個面板都顯示真實的輸出——絕不是暫存器、佔位符或位元組大小檢查。驗證實際內容是否正確渲染。對於音訊,內容必須實際上可聽——透過在阻斷樣本源的情況下進行驗證(reference.md §9 離線關卡),而不僅僅是渲染。
- 一個可共享的表面。 輸出一個人類可以開啟的單一比較板(檔案或連結),而不是分散的工件。
- 檢查點紀律。 先建立風險最高 / 最具代表性的一部分(一個主題,一行,包含真實內容 + 音訊/播放(如果相關))。在擴展到所有維度之前,先展示給人類並取得反饋。
- 閉環。 人類在比較板上挑選優勝者並留下反饋;這個匯出結果會回傳給您進行優化。然後深化這些優勝者。
- 按主題的優勝者 + 融合。 當最佳變體因測試主題而異時,呈現每個主題的優勝者,並增加一輪融合/綜合,將優勝特質結合起來,而不是強制一個全域優勝者。多主題的意義在於揭示單一方法很少能在所有地方獲勝——尊重這一點,而不是將其平均化。
工作流程
1. 釐清比較內容。 從 $ARGUMENTS 中確定:比較的是什麼、每行變化的單一維度,以及受控的主題/種子(預設 2 個是好的)。僅在真正不明確時提問。
2. 研究真實的變體。 如果該領域有成熟的技術,請先查閱相關資料(reference.md §1 有研究提示)。為每一行列出 2-6 個有名稱的、真正獨特的方法。拒絕任何僅因參數而不同的兩個方法。
3. 為每個變體生成真實內容。 對於每個 (主題, 行, 變體),產出實際工件並選擇其內容類型:html (UI/文字)、code、image、iframe、audio (含 WebAudio 合成),或 passfail (測試/評估)。請參閱 reference.md §2 的模態表。若要提供同一輸出的多種視圖,請將 content.views 設定為一個命名視圖列表(第一個為預設;相同視圖會折疊,視圖數 ≤1 時切換開關自動隱藏)——或者使用 content.raw 雙視圖捷徑,用於管線可能隱藏真相的情況(原則 5)。在任何可衡量之處附加客觀的 badges,並將其顯示在真實工件旁邊,以便矛盾顯現出來(原則 4、6)。
渲染真實領域工件(記譜法、圖表、圖示): 可靠的方法是先在無頭頁面中渲染為 <svg>,取出 svg.outerHTML,然後透過 html 內容類型嵌入(內聯 SVG——而不是 <img> 的 data-URI,後者會丟失 SVG 命名空間並導致渲染中斷)。字形渲染器(例如 VexFlow/Bravura)需要在渲染頁面和比較板上都將字型內聯為 base64 的 @font-face,並且在渲染和螢幕截圖之前等待 document.fonts.ready。template/render-artifacts.example.mjs 是一個可直接複製並修改的框架,適用於此;reference.md §6 有完整的配方和注意事項。
4. 從模板建立比較板。 將 template/comparison-lab.html 複製到專案中(放在可伺服的位置,或任何可用於 file:// 的地方)。使用 template/README.md 中的 schema,在旁邊寫入一個 data.json。不要手動建立新的 UI——模板已經包含了便利貼板、徽章、切換開關、按鈕和匯出功能。
- 透過 http(s) 伺服:
data.json會自動取得。 - 雙擊開啟(
file://):將資料集貼入 HTML 中的 `<script id=