Sampo:風格方向
用一句話描述產品,就能產出六個截然不同的風格方向,每個方向都是一張適合單一畫面顯示的卡片;其中一個會被選中並以膽識等級儲存為 DESIGN.md。在 Claude Code 或 Smith(sampo smith)工作階段中使用 /sampo:directions <一句話> 啟動,或在使用者要求在 UI 存在之前選擇外觀或風格時自行啟動。適用於網頁和應用程式畫面;終端機 UI 或 Claude Code 模組則應改用實戰手冊中的 terminal-ui.md。
此技能擴展了 UI 實戰手冊 ../playbooks/references/ui/design-direction.md 的內容,從單一方向擴展為六個方向供選擇:該檔案包含了品味詞彙、方向庫、膽識旋鈕、「應避免的預設值」以及 DESIGN.md 範本。在起草前,請先閱讀該檔案,然後再讀取 references/cards.md(卡片格式、組合規則、通用預設值、預覽頁面配方以及一個實際範例)。
方向來自三個來源:實戰手冊的十二行資料庫;二十種外觀(sampo lib list --area looks,然後用 sampo lib show look-NAME 查看:包含測量過的色盤、字體、版面配置、動態和對比測試);以及著色器外觀(sampo lib show shader-NAME,作為單一表面上的可選紋理,不能作為方向本身。
使用者的品味決定外觀的排序:sampo looks 指令會根據使用者保留、還原、說「不是那樣」或在校準(/sampo:looks calibrate)中選擇的結果,對二十種外觀進行排名。從排名最前面的外觀中選取要提供的選項,除非使用者指定名稱,否則絕不使用低於 0 分的外觀。如果沒有任何 0 分或以上的選項符合,則使用負分最低的選項,並說明排名偏好的是哪張卡片;若無任何訊號,則所有外觀均為 0 分。系統不會自動偵測使用者保留或還原了哪個外觀:當使用者保留或還原一個外觀時,請自行執行 sampo looks keep 或 sampo looks revert(步驟 5 會說明時機)。
流程
- 簡要說明與現有方向。 儲存 DESIGN.md 是一種編輯操作,因此請在一個集中的任務中進行;如果沒有任務,請執行
sampo task new "<產品> 的風格方向" --type FEATURE --tier S --ac "DESIGN.md 中應包含方向名稱、亞軍和膽識等級 :: grep -qE 'audacity (safe|bold|wild)' DESIGN.md" --focus。如果儲存庫已有方向(一個包含## Direction區段的DESIGN.md、品牌指南或已上線的設計系統),則該方向優先(實戰手冊的第 1 步):直接命名並停止,除非使用者要求新的外觀。在這種情況下,請以該方向為基礎進行草稿(不要再提供該方向),然後取代該檔案;Git 會保留舊版,而新的 Direction 區段會說明它取代了哪個方向。一個僅包含代號的檔案,或一個僅包含sampo design extract寫入的 Tokens 區段的DESIGN.md,僅代表色盤而非方向:請正常草稿,每張卡片應說明是否保留該色盤。 - 閱讀句子。 從句子中取得產品、目標受眾以及任何品味詞彙(實戰手冊的表格;若為空詞彙則不設定旋鈕)。從句子中回答訪談問題 1(對象是誰,以及他們一分鐘前在做什麼)和問題 3(它絕對不能被誤認為什麼);如果無法從句子中取得,則從儲存庫(README、現有文案)中獲取,並標記為假定。不要問問題 2:六張卡片就是它的答案,每張代表一個具體的實體事物。如果句子完全沒有提及產品名稱(例如「把它弄漂亮點」),則問一個問題:這是什麼、為誰而做;在完全自主模式下,從 README 中讀取這些資訊。
- 草擬六張卡片,格式遵循
references/cards.md,然後根據以下規則審查整組卡片:- 至少四張來自資料庫或外觀庫,至多兩張為「自訂」;
- 多樣性:一個深色底色和一個中間色或淡色底色、三種字體類別、一張稀疏和一張密集的卡片、一張靜態和一張動態卡片,並且每種膽識設定(安全、大膽、狂野)至少出現一次;
- 任兩張卡片在五個旋鈕中至少有三個不同,且絕不共用一個具體的實體事物或標誌性手法;
- 每張卡片內文字與背景的對比度必須達到 4.5:1 或更高(外觀的色盤已測量過;否則使用
sampo lib show look-lido --section "Test first"中的腳本),其強調色與狀態色相相差至少 30°; - 不得使用 cards.md 中的通用預設值,不得違反「應避免的預設值」,且不得使用其「不適用於:」欄位中標明此類產品的外觀。 針對未通過檢查的卡片進行重擬,每個位置最多重擬兩次,然後用另一個資料庫列或外觀填補該位置;針對每個放棄的卡片保留一行說明原因。
- 展示卡片。 在同一則訊息中展示全部六張卡片,接著是比較表格(每一行代表:底色、字體、密度、動態、圓角半徑、膽識),以便顯示多樣性、放棄的卡片,以及你的推薦與亞軍,並附上各自的原因。根據實戰手冊中針對該表面類型的預設膽識水準進行推薦(設定、管理後台和表單使用「安全」;產品的首頁使用「大膽」;遊戲、作品集和活動使用「狂野」),除非使用者的詞彙改變了它。僅在使用者要求(「展示給我看」、「把它們模擬出來」)或使用者在兩個選項之間猶豫不決時才建立預覽頁面:按照 cards.md 中的配方,在儲存庫外部建立,然後對它們執行
sampo design lint。 當使用者猶豫不決或所有卡片感覺相似時,先發散再收斂:進行一個三變體回合(sampo design diverge 3 <該畫面> --out DIR:針對相距甚遠的外觀撰寫簡要說明,每種在各自的軌道中建置,勝出者用sampo design diverge pick LOOK保留);一個讓使用者回答的品味對決或四外觀錦標賽(/sampo:looks tournament);相反日(sampo looks opposite LOOK,即與當前外觀最不相像的外觀);一個 Lookbook 頁面(sampo looks book --out FILE);或一種版面的五種歷史語彙(references/idioms.md)。 - 選定。
- 標準自主模式:提出一個包含兩個問題的 AskUserQuestion。「選擇哪個方向?」:四個選項,你的推薦優先,接著是接下來三個;其自由文字答案可接受 1 到 6 的任何數字,或兩個方向的混合(一個負責字體,另一個負責顏色;不能三個)。「多麼大膽?」:優先顯示所選卡片的膽識等級,接著是其他兩種設定。被選中的外觀需記錄到紀錄中:
sampo looks keep look-NAME。使用者拒絕的已展示外觀(「不是那樣」):執行sampo looks not look-NAME --why '<他們說的話>'(文字中不可包含引號;否則省略 --why),然後重擬該位置。使用者後來取代或還原的已儲存外觀:執行sampo looks revert look-NAME。被拒絕的 AskUserQuestion 不記錄任何內容。 - 完全自主模式(
sampo autonomy顯示為 full):不提出問題。採用你的推薦及其膽識等級並記錄:執行sampo decide "風格方向:<名稱>,膽識 <設定>" --task <ID> --why "<為何符合該句子>" --rejected "<其他五個,每個附上原因>"。在最終報告中指名選中的方向與亞軍,以便使用者可以用一句話切換。不要在sampo looks中記錄任何內容:該指令只記錄使用者的選擇。
- 標準自主模式:提出一個包含兩個問題的 AskUserQuestion。「選擇哪個方向?」:四個選項,你的推薦優先,接著是接下來三個;其自由文字答案可接受 1 到 6 的任何數字,或兩個方向的混合(一個負責字體,另一個負責顏色;不能三個)。「多麼大膽?」:優先顯示所選卡片的膽識等級,接著是其他兩種設定。被選中的外觀需記錄到紀錄中:
- 儲存 DESIGN.md 於儲存庫根目錄(或現有設計系統套件的旁邊),按照實戰手冊的 DESIGN.md 範本填入所有標題及其順序:觀點、訪談、方向、旋鈕、標誌性手法、禁用、允許的例外。現有的 Tokens 區段保持不變(一旦代號檔案跟隨選定結果,請重新執行
sampo design extract <UI 根目錄>);如果沒有 Tokens 區段,則等待代號檔案由sampo design extract寫入。- 觀點和訪談來自步驟 2;「感覺像」是所選卡片的具體實體事物,如果由使用者選定則標記為使用者,在完全自主模式下則標記為假定。
- 方向:
<資料庫列、look-NAME 或 "自訂:NAME">,膽識 <safe | bold | wild>。,接著是亞軍及其落選原因,然後是品味詞彙的分配。混合方向需同時命名兩個及其各自負責的屬性:Gallery (字體) + Negative file (顏色),膽識 bold。 - 旋鈕:將卡片擴展為範本的詳細資訊;每個顏色及其角色,以及每個文字和背景配對的測量對比度。
- 標誌性手法:數量取決於膽識等級(安全 1 個、大膽 2 個、狂野 3 個),以卡片的為優先。需要聲音的外觀從
references/sonic.md獲取(預設為關閉,絕不能作為唯一的信號)。 - 禁用:反參考、整組卡片最接近的通用預設值,以及每個適用的「應避免的預設值」條目。
檢查它,並將檢查結果記錄為該步驟的證據(
sampo task evidence <ID> --step N --run "<cmd>"):執行grep -cE '^## (Point of view|Interview|Direction|Knobs|Signature moves|Banned|Allowed exceptions)$' DESIGN.md應輸出 7,且grep -E 'audacity (safe|bold|wild)' DESIGN.md應能找到 Direction 行。
- 交接。 建置作業遵循實戰手冊的第 7 步:先建置,然後執行其檢查(包含封面測試)。預覽頁面不要留在儲存庫中。透過 Smith 迴圈關閉任務,或者如果這個外觀是更大任務中的一個步驟,則繼續進行。
第二次執行時,會找到第一次執行程式所儲存的 DESIGN.md 並在第 1 步停止,除非使用者要求新的外觀。