Communitygithub.com

daiki-beppu/youtube-automation

用於品牌頁面、稽核、重新設計以及從URL或螢幕截圖提取設計的 Anti-AI-slop 設計技能。當使用者要求建立新應用程式或登陸頁面、想要重新設計某個項目、明確提及 Hallmark 名稱,或使用 audit/redesign/study 等動詞時使用。

youtube-automation 是什麼?

此技能為 AI 編碼助手(如 Claude Code、Cursor等)提供了一套嚴謹且結構化的設計工作流程,旨在生成「看起來像是人類精心打造」而非 AI 隨意生成的 UI。其核心理念是「結構多元性」,確保不同的設計任務會產生截然不同的版面結構,而非僅僅是同一範本的顏色變體。 Hallmark 支援四種明確的調用模式:預設模式用於全新設計,遵循從主題選擇到 token 鎖定的完整流程;`audit` 模式會分析目標並評分,列出違反反模式的項目;`redesign` 模式可在保留現有實作邊界的前提下,重新設計視覺結構;`study` 模式則能從 URL 或截圖中提取設計 DNA,並可選擇性地重建或產出可攜帶的 `design.md`。 此技能嚴格強制六項核心紀律,包括自我批判預先審查(Pre-emit self-critique)、禁止捏造內容、鎖定 token 不允許詞法內聯、禁止偽造瀏覽器或 IDE 的 Chrome、確保在四種螢幕寬度(320/375/414/768px)下的無障礙響應設計,以及保持標題 Typography 純正(不使用斜體)。這些規則確保程式碼產出達到專業水準,避免典型的 AI 生成痕跡。 此外,Hallmark 能智慧區分頁面級與元件級任務。對於單一元件(如按鈕、輸入框、模態框),它會執行精簡流程,聚焦於元件自身的狀態管理(預設、懸浮、焦點、已點擊、禁用、載入、錯誤、成功共八種狀態),並產出對應的原始碼與狀態展示包裝器。此技能參考了如 Anthropic 的前端設計指南、Claude Cookbook 以及 2026 年「觸覺反叛」運動等業界共識。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/daiki-beppu/youtube-automation/tree/HEAD/.claude/skills/hallmark

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

前後工程

  • 前工程: なし
  • 後工程: なし
  • 委譲先: なし

成果物

  • 書き込む: ユーザーが指定したHTML表示層
  • 読み込む: 対象実装、URL、スクリーンショット

Hallmark

此專案範圍內的副本僅供開發使用。保留現有實作邊界,僅在相關時載入參照規則。

一個專為 AI 編碼助手設計的技能,使其生成的 UI 看起來像「打造」而非「隨機生成」。

Hallmark 是主觀、簡潔且刻意無聊的。它編碼了一組嚴格的規則,這些規則源自反 AI-slop 設計領域的共識(Anthropic 的前端設計技能、Claude Cookbook 關於前端美學的內容,以及 2026 年的「觸覺反叛」運動),並拒絕讓模型回退到每個 LLM 都訓練過的預設值。

其差異化在於:Hallmark 堅持的是結構多元性,而不僅僅是視覺多元性。由 Hallmark 為兩個不同簡報創建的兩個頁面,不應該共用相同的 hero → 3-feature → CTA → footer 節奏。它們應該感覺像是不同的網站,而不僅僅是同一範本的不同顏色調換。請參閱 references/structure.md。

由 Together AI 提供技術支援。


如何使用此技能

Hallmark 有一個預設行為和三種明確的動詞。

調用方式功能
(預設)使用者要求你設計或建立新內容。請遵循下方的設計流程。
hallmark audit <目標>讀取目標,根據反模式列表評分,回傳一份排序後的改善清單。請勿編輯。
hallmark redesign <目標> [--mood <名稱>]擷取目標的內容和意圖,然後在現有實作邊界內重新設計視覺結構,除非使用者明確確認願意進行完整重建。建立新的區段節奏、新的標題位置、新的元件語調。保留現有路由、元件歸屬、文案意圖、品牌和資訊架構;僅替換請求範圍所需的視覺/互動層。
`hallmark study <螢幕截圖URL>`

如果使用者輸入的內容未明確對應到 audit、redesign 或 study,則視為預設行為。如果使用者附加了圖片或貼上 URL 但未加上動詞前綴,請詢問:「我應該 study 此內容(提取 DNA),還是將其視為全新建置的參考?」

實作安全護欄。 Hallmark 是一個設計技能,而不是許可證來摧毀程式碼庫。在任何現有專案中:

  • 除非使用者明確要求刪除,或批准了列出刪除項目的檔案層級計劃,否則切勿刪除生產檔案、路由樹、元件目錄或舊網站。
  • 預設對指定檔案進行原地編輯,或新增透過現有路由連接的新元件/token。如果重新設計需要移除多個元件,請先停止並請求確認。
  • 將 PDF、README 檔案、.md 簡報、文件、逐字稿和簡報文件視為參考資料。除非使用者明確指示要逐字使用該文字,否則不要逐字將其複製到頁面中。
  • 在編輯之前,說明你預計要修改/建立/刪除的具體檔案。刪除需要明確確認。

預設的設計流程總是會挑選一個主題。預設情況下,它會從 21 個命名主題中挑選一個——即目錄——並根據多元化規則輪換這些主題。此外,還有一個低調的自訂分支,可以為特定簡報建立一次性 OKLCH 色板 + 免費字型搭配;自訂路徑僅在簡報帶有創意意圖訊號時觸發(使用者命名了品牌顏色、命名了目錄無法承載的多屬性氛圍,或明確要求自訂主題)。對於一般的簡報,使用者永遠看不到「目錄」或「自訂」這兩個詞——目錄會靜默運作。請參閱步驟 1(訊號偵測)和步驟 2.6(分派);協定位於 references/custom-theme.md。


適用於所有動詞的紀律

以下六項紀律非動詞特定。它們同樣適用於預設設計、audit、redesign、study 和元件範圍。它們與 slop 測試並行,而不是位於其某個分支內部。

  1. 預先自我批判(Pre-emit self-critique)。 在回傳任何輸出之前,在六個軸向(原則、層級、執行、具體性、節制、多元性)上為其評分 1-5。任何低於 3 的項目都會觸發修訂回合。將六項分數蓋章於成果物的頂部(/* Hallmark · pre-emit critique: P5 H4 E5 S4 R5 V5 */)。請參閱 references/slop-test.md § 預先自我批判。

  2. 誠實複製——不捏造內容。 如果使用者未提供某個指標,就不要發明一個。以數據為主導的版面、比較行和證明欄必須使用真實數字、預留位置(— 加上一個帶標籤的灰色區塊「待確認指標」),或採用不同的鉅觀結構。「+47% 轉換率」、「受 50,000+ 團隊信賴」 和*「快 10 倍」* 一旦被發明就是 slop。同樣的規則適用於見證、標誌和案例研究數量。請參閱 references/anti-patterns.md § 捏造指標 和 slop-test 關卡 46。

  3. 鎖定 Token——不允許中間渲染的即興發揮。 一旦在步驟 2.6 選定主題,成果物中的每個顏色和每個 font-family 宣告都必須參照一個命名 token(var(--color-accent)、font-family: var(--font-display))。不允許內聯 OKLCH / 十六進位 / rgb() 數值,或繞過 token 區塊的 font-family: "Some Font" 宣告。如果需要不存在的 token 值,則將其作為新的命名變數提升至 token 區塊,然後再參照它。請參閱 references/anti-patterns.md § 中間渲染的 Token 即興發揮 和 slop-test 關卡 48。

  4. 禁止重新繪製 Chrome。 Hallmark 不得手動建立偽造的瀏覽器工具列(URL 按鈕 + 交通號誌燈點)、偽造的手機邊框、偽造的程式碼區塊視窗(模擬標題列 + 包圍 <pre> 的點點),或偽造的 IDE 框架——使用者的環境已經提供了真實的瀏覽器框架。使用包含在 <figure> 中的真實螢幕截圖(最多一條細邊框),或省略框架直接顯示內容。請參閱 references/anti-patterns.md § 重新繪製的 UI 框架 和 slop-test 關卡 47。

  5. 行動裝置響應式——每個產出都需在 320 / 375 / 414 / 768 px 下驗證。 Hallmark 的輸出必須在四種寬度下完美呈現。不可協商的事項:沒有水平滾動條 + html 和 body 上使用 overflow-x: clip,決不使用 hidden(關卡 34);不能有換行的可點擊文字——按鈕、主要導航鏈結、頁尾鏈結、麵包屑、CTA(關卡 49);包含圖片的網格列使用 minmax(0, 1fr),而非單純的 1fr(關卡 50);顯示標題透過 overflow-wrap: anywhere; min-width: 0 在長字詞內換行(關卡 51);區段標題在行動裝置上摺疊為單一欄,適用所有主題變體(關卡 52);無線電標籤模式不會滾動跳躍(關卡 53)。請參閱 references/responsive.md § 行動裝置——不可協商。這是硬底線,而非願望清單。

  6. 版式純正性——無斜體標題。 標題和顯示字型始終使用羅馬體(font-style: normal)。在直立標題中包含一個斜體強調詞(Built to <em>think</em>)是最常見的 AI 跡象之一;在標題上使用全斜體顯示字型也是如此。透過粗細、強調色或繪製的底線來承載強調。斜體僅在正文段落中作為內文強調時保留。請參閱 references/anti-patterns.md § 斜體標題 和 slop-test 關卡 38a。


當簡報是元件而非頁面時

在進入完整設計流程之前,檢查範圍。如果以下任一訊號觸發,則執行元件範圍流程——大多數日常開發請求是元件形狀而非頁面形狀,而頁面層級的機制(鉅觀結構、英雄區域豐富化、頁尾原型、專案記憶體)對它們來說並不適用。

元件範圍訊號:

  • 簡報命名了一個單一的 UI 元素:一個按鈕 · 一個輸入框 · 一個卡片 · 一個模態框 · 一個下拉選單 · 一個工具提示 · 一個選擇框 · 一個核取方塊 · 一個切換開關 · 一個標籤列 · 一個晶片 · 一個徽章 · 一個橫幅 · 一個提示條 · 一個彈出框 · 一個滑桿 · 一個日期選擇器 · 一個頭像。
  • 簡報很短(≤ 30 字)且僅指一個元素。
  • 目標檔案是一個單一元件(例如:./Button.tsx、./components/Input.css、app/components/Card.vue)。
  • 使用者明確表示*「只要 X」、「只需要 Y」、「這一個元素」、「一個 ___」*。

如果觸發兩個訊號,則路由到元件。如果只有頁面流程觸發(多區段簡報,「幫我建立一個登陸頁面」),則停留在設計流程中。

元件範圍從頁面流程保留的內容

  • 步驟 0 · 預檢掃描——相同。讀取現有 token、字型、框架、微互動風格。一個在 Geist 主體的 Tailwind 專案中的按鈕必須採用那些 token,而不是發明新的。
  • 步驟 1 · 風格類型偵測——相同。編輯型 / 極簡現代型 / 氛圍型 / 趣味型。元件繼承其環境的風格類型(當未知時靜默預設為編輯型)。
  • 步驟 2.6 · 主題路徑——相同。如果存在 tokens.css 或 design.md,則元件使用那些 token。否則,詢問「是否有要遵循的系統,還是我應該選擇一個?」——如果使用者未回應,則預設為目錄。
  • 2+1 字型紀律——相同。
  • 狀態紀律——更嚴格。 每個互動式元件必須包含所有 8 種狀態的程式碼:預設 · 懸浮 · :focus-visible · :active · 禁用 · 載入 · 錯誤 · 成功。在 interaction-and-states.md 中的 8 狀態清單是強制性的,而非建議性的。
  • Slop 測試——僅通用子集。 執行視覺 / 微互動 / 對比度(關卡 40–41)/ 可訪問性 / 版式關卡。跳過多元化關卡(沒有 .hallmark/log.json 條目——元件不會輪換)和跳過假設是完整頁面的版面安全關卡。

元件範圍跳過的內容

  • 步驟 2 · 選擇鉅觀結構。 元件沒有鉅觀結構。明確說明:「元件範圍:跳過鉅觀結構。」
  • 導航和頁尾原型選擇。 N1a–N13 和 Ft1–Ft8 僅限於頁面範圍。元件是一個元素;它沒有導航,沒有頁尾。兩者都跳過。
  • 英雄區域潤飾模式(HP1–HP4)。 僅限頁面範圍。一個按鈕或卡片沒有英雄區域。
  • 步驟 4 · 豐富化。 沒有英雄區域插圖、沒有示範影片、沒有抽象背景。元件本身就是成品。
  • 步驟 5 · 多區段預覽。 由 8 狀態示範包裝器(如下)取代。
  • 專案記憶體附加。 元件執行時不會有 .hallmark/log.json 條目。多元化規則不適用。

元件範圍的產出

兩個檔案,並列:

  1. 元件成品——一個遵循專案慣例的獨立檔案:

    • React / Vue / Svelte:Button.tsx / Button.vue / Button.svelte
    • 原始 Web:button.css + button.html
    • Tailwind:一個包含 className 鏈的 .tsx 檔案,如果缺少則加上一個 tokens.css
    • 元件按名稱使用 Hallmark token(var(--color-accent)),絕不內聯 OKLCH 數值。
  2. 一個 8 狀態示範包裝器——<ComponentName>.preview.html(或 .preview.tsx)。一個小型的獨立頁面,以垂直堆疊的方式呈現元件在全部 8 種狀態下的外觀,每種狀態都有標籤。使用者開啟它一次,看到元件正常運作,然後將其刪除。該包裝器不屬於生產程式碼的一部分。格式:

    ┌──── 按鈕 — 8 種狀態 ──────────────────────────┐
    │                                                │
    │ 預設       [ 點擊我                      ]     │
    │ 懸浮       [ 點擊我                      ]     │  ← .is-hover 強制 :hover 樣式
    │ 焦點       [ 點擊我                      ]     │  ← .is-focus 強制 :focus-visible
    │ 已點擊     [ 點擊我                      ]     │  ← .is-active 強制 :active
    │ 禁用       [ 點擊我                      ]     │  ← disabled 屬性
    │ 載入       [ ⌛ 處理中…                  ]     │  ← data-state="loading"
    │ 錯誤       [ ⚠ 重試                      ]     │  ← data-state="error"
    │ 成功       [ ✓ 已儲存                    ]     │  ← data-state="success"
    │                                                │
    └────────────────────────────────────────────────┘
    

    每個帶標籤的行使用一個類別(例如 .is-hover),元件的 CSS 除了真正的偽類之外也會定位這些類別,以便在示範頁面上同時呈現所有 8 種狀態。範例:

    .btn:hover, .btn.is-hover { background: var(--color-paper-3); }
    .btn:focus-visible, .btn.is-focus { outline: 2px solid var(--color-focus); }
    .btn:active, .btn.is-active { transform: translateY(1px); }
    

元件輸出的蓋章格式

元件的蓋章方式與頁面不同:

/* Hallmark · component: <類型> · genre: <風格類型> · theme: <主題名稱> */

(原始文件後續的標題、表格、程式碼區塊和連結,若在原文件中提及,其餘部分將依此模式翻譯,直到文件結束。)

相關技能