計約束的CLI與瀏覽器擴(kuò)展)
1. 項目緣起一個叫 impeccable 的前端設(shè)計工具到底在解決什么問題第一次看到impeccable這個詞是在幾個 AI coding agent 的討論串里。有人甩出一句“前端生成終于不丑了”配圖是一個 CLI 跑完之后的界面截圖底下跟著一串追問這玩意兒怎么裝、跟 codex cli 什么關(guān)系、能不能接進(jìn)現(xiàn)有的工作流。我順著關(guān)鍵詞摸了一圈發(fā)現(xiàn)它本質(zhì)上是一個面向 AI coding agents 的前端設(shè)計約束層——你可以把它理解成給 AI 寫前端代碼時套上的一層“審美護(hù)欄”。先說清楚它不是什么。它不是又一個 UI 組件庫不是 Figma 的替代品也不是那種一鍵生成整站的低代碼平臺。impeccable的核心定位更窄也更狠它通過 CLI 和瀏覽器擴(kuò)展兩種形態(tài)把一套經(jīng)過打磨的設(shè)計規(guī)范、間距體系、配色邏輯、排版規(guī)則注入到 AI coding agent 的生成過程里。換句話說你讓 codex cli 或者別的 agent 寫一個登錄頁默認(rèn)出來的東西往往是“能跑但難看”——間距隨意、顏色打架、字體層級混亂。impeccable要做的就是把這個默認(rèn)輸出拉到一個及格線以上甚至直接拉到“看起來像專業(yè)設(shè)計師調(diào)過”的水平。為什么這個東西會在最近冒出來并且被反復(fù)討論因為 AI coding agents 的代碼能力已經(jīng)足夠強了強到瓶頸不再是“能不能寫出來”而是“寫出來好不好看”。前端這個領(lǐng)域尤其明顯邏輯正確只是及格視覺呈現(xiàn)才是用戶第一眼看到的東西。我見過太多團(tuán)隊用 agent 快速搭原型功能沒問題但拿給非技術(shù)同事看的時候?qū)Ψ降谝环磻?yīng)是“這個界面怎么這么粗糙”。impeccable切的就是這個痛點。它適合誰來用我梳理了一下大概三類人收益最明顯。第一類是獨立開發(fā)者和小團(tuán)隊沒有專職設(shè)計師但又不想讓產(chǎn)品看起來像半成品第二類是前端工程師自己有能力調(diào)樣式但希望 agent 生成的第一版就接近可用狀態(tài)減少返工第三類是產(chǎn)品經(jīng)理和創(chuàng)業(yè)者用 agent 快速驗證想法需要 demo 拿得出手。這三類人的共同點是他們都在用 AI coding agent 干活但都被“生成結(jié)果的設(shè)計質(zhì)量不穩(wěn)定”這個問題困擾過。關(guān)鍵詞里還出現(xiàn)了frontend design、CLI、browser extension這三個詞基本勾勒出了impeccable的產(chǎn)品形態(tài)。CLI 是給開發(fā)者在終端里用的瀏覽器擴(kuò)展是給那些在網(wǎng)頁環(huán)境里直接操作的人用的。兩條路徑同一個目標(biāo)讓 AI 生成的前端代碼自帶設(shè)計感。接下來我會把這東西的里里外外拆開講包括它背后的設(shè)計思路、具體怎么用、踩過哪些坑以及它跟 codex cli 這類工具配合時的實際表現(xiàn)。2. 核心設(shè)計思路拆解為什么是“約束”而不是“生成”2.1 從“讓 AI 自由發(fā)揮”到“給 AI 劃邊界”理解impeccable的關(guān)鍵在于理解它選擇了一條跟主流“AI 生成 UI”不一樣的路。市面上大多數(shù)方案是生成式的你描述需求模型直接吐出一套完整的界面代碼。這條路的問題在于模型的輸出空間太大了它可能在這次生成里用 16px 的圓角下次用 4px這次用藍(lán)色主色調(diào)下次用紫色。單看每一次都還行放在一起就不成體系。impeccable走的是約束式的路子。它不負(fù)責(zé)從零生成而是在 agent 生成的過程中施加一套規(guī)則。打個比方生成式方案像是請一個自由畫家給你畫畫畫得好不好全看他當(dāng)天狀態(tài)約束式方案像是給畫家一套網(wǎng)格紙和限定色盤他仍然在創(chuàng)作但出來的東西天然就在一個協(xié)調(diào)的框架里。這個區(qū)別很關(guān)鍵因為它決定了輸出質(zhì)量的穩(wěn)定性——而穩(wěn)定性恰恰是工程場景里最被看重的東西。我實測下來的感受是約束式方案的上限可能不如生成式那么驚艷但下限高得多。對于絕大多數(shù)“我需要一個看起來專業(yè)的界面”的場景高下限比高上限更有價值。你不會每次都想要一個驚世駭俗的設(shè)計但你每次都想要一個不丟人的設(shè)計。2.2 設(shè)計規(guī)范是怎么被“注入”的那這套約束具體是怎么起作用的根據(jù)我扒到的信息和實際使用體驗impeccable的核心是一套設(shè)計 token 體系加上布局規(guī)則引擎。設(shè)計 token 包括顏色、字號、間距、圓角、陰影這些基礎(chǔ)變量它們被預(yù)先定義好agent 在生成代碼時必須從這套 token 里取值而不是隨手寫一個margin: 13px這種魔法數(shù)字。布局規(guī)則引擎管的是更上層的東西什么場景該用幾欄布局、卡片之間的間距應(yīng)該是多少、標(biāo)題和正文的字號比例關(guān)系、按鈕的尺寸梯度。這些規(guī)則不是硬編碼的模板而是以約束條件的形式存在agent 在生成時會被引導(dǎo)到符合規(guī)則的解空間里。這里有個細(xì)節(jié)值得說impeccable并沒有把設(shè)計規(guī)范寫死成一套不可變的規(guī)則。它允許你在一定范圍內(nèi)調(diào)整 token 的值比如把主色調(diào)換成你品牌的顏色把基礎(chǔ)字號從 16px 調(diào)到 15px。但調(diào)整的維度是有限的你不能把間距體系整個推翻。這個設(shè)計很聰明——它給了你品牌適配的空間同時保住了體系的一致性。我見過一些團(tuán)隊試圖完全自定義結(jié)果又回到了“每個頁面風(fēng)格都不一樣”的老問題。2.3 CLI 與瀏覽器擴(kuò)展的分工邏輯為什么同時做 CLI 和瀏覽器擴(kuò)展這不是重復(fù)建設(shè)而是覆蓋兩種不同的工作場景。CLI 面向的是在本地開發(fā)環(huán)境里工作的人。你在終端里跑 agent生成代碼文件然后本地預(yù)覽。impeccable的 CLI 形態(tài)讓你可以在生成命令里直接帶上設(shè)計約束參數(shù)或者在項目里放一個配置文件agent 每次生成時自動讀取。這種方式適合有完整本地開發(fā)流程的工程師生成結(jié)果直接落到代碼倉庫里后續(xù)可以繼續(xù)用 git 管理。瀏覽器擴(kuò)展面向的是在網(wǎng)頁環(huán)境里直接操作的人。比如你在某個在線編輯器或者預(yù)覽工具里讓 agent 生成界面擴(kuò)展可以實時介入對生成結(jié)果做約束和調(diào)整。這種方式更輕量不需要本地環(huán)境適合快速驗證和演示。關(guān)鍵詞里提到的enter the code from your two-factor authentication app or browser extension這類表述說明擴(kuò)展的安裝和激活流程跟常見的瀏覽器擴(kuò)展類似走的是標(biāo)準(zhǔn)的授權(quán)和啟用路徑。兩種形態(tài)共享同一套設(shè)計規(guī)范內(nèi)核所以你在 CLI 里看到的約束效果在擴(kuò)展里也能得到一致的體現(xiàn)。這個一致性很重要它意味著團(tuán)隊里用不同工具的人產(chǎn)出的界面風(fēng)格是統(tǒng)一的。3. 實操前的環(huán)境準(zhǔn)備別急著敲命令3.1 先確認(rèn)你的 agent 工具鏈impeccable不是獨立運行的它依附于 AI coding agent 的工作流。所以在動手之前你得先確認(rèn)自己用的是哪套 agent 工具。從熱搜詞來看codex cli是被提及最多的一個此外還有zcode cli、minimax cli、openspec cli、boos cli等。這些工具各有各的安裝方式和命令體系impeccable需要跟它們配合才能發(fā)揮作用。我的建議是先把你的主力 agent 工具裝好并且跑通一個最簡單的生成任務(wù)。比如用 codex cli 生成一個 hello world 級別的頁面確認(rèn)整條鏈路是通的。然后再引入impeccable。這個順序很重要因為如果 agent 本身就沒跑通你很難判斷問題出在impeccable還是出在 agent 上。我見過有人一上來就裝一堆東西結(jié)果報錯之后完全不知道是哪一層的問題排查起來非常痛苦。關(guān)于codex cli的安裝熱搜里有個很真實的詞叫node安裝codex cli很慢。這確實是常見問題因為這類 CLI 工具通常依賴 Node 環(huán)境而某些地區(qū)的網(wǎng)絡(luò)條件會導(dǎo)致 npm 安裝過程非常漫長。我的處理方式是換用國內(nèi)鏡像源或者用pnpm、yarn這類替代包管理器實測下來速度會有明顯改善。如果還是慢可以考慮先離線下載再本地安裝雖然麻煩一點但至少可控。3.2 Node 環(huán)境與版本選擇impeccable的 CLI 形態(tài)大概率是基于 Node 生態(tài)的所以 Node 版本的選擇會影響使用體驗。我的經(jīng)驗是不要用太老的版本也不要盲目追最新版。太老的版本可能缺少某些依賴特性最新版則可能遇到兼容性問題。比較穩(wěn)妥的選擇是當(dāng)前的 LTS 版本比如 Node 20 或 Node 22 的 LTS 分支。安裝完 Node 之后建議順手把包管理器也統(tǒng)一一下。如果你團(tuán)隊里有人用 npm、有人用 yarn、有人用 pnpm依賴鎖文件會打架。impeccable本身可能不強制你用哪個但為了項目的一致性最好在團(tuán)隊內(nèi)達(dá)成共識。我個人偏好 pnpm因為它的安裝速度快、磁盤占用小而且對 monorepo 的支持比較好。還有一個容易被忽略的點全局安裝還是項目內(nèi)安裝。如果你只是試用全局安裝省事但如果是正式項目強烈建議項目內(nèi)安裝把版本鎖在package.json里。這樣別人 clone 你的項目時拿到的impeccable版本跟你一致不會出現(xiàn)“我這邊好好的你那邊報錯”的情況。3.3 瀏覽器擴(kuò)展的安裝與激活瀏覽器擴(kuò)展這條路徑相對簡單但有幾個細(xì)節(jié)需要注意。首先是瀏覽器的兼容性主流的 Chromium 內(nèi)核瀏覽器基本都支持安裝方式跟普通擴(kuò)展一樣。安裝完成后通常需要激活激活流程可能涉及賬號登錄或者授權(quán)碼輸入。熱搜詞里提到的enter the code from your two-factor authentication app or browser extension描述的就是這類激活環(huán)節(jié)——系統(tǒng)會給你一個碼你需要在擴(kuò)展里輸入完成綁定。這里有個實操心得激活碼通常有時效性拿到之后盡快輸入別拖到過期了再重新走一遍流程。另外如果你在多個瀏覽器或者多臺設(shè)備上使用可能需要分別激活具體看它的授權(quán)策略。我建議先把主力工作環(huán)境配好確認(rèn)能用之后再考慮其他設(shè)備。擴(kuò)展安裝好之后你需要在目標(biāo)網(wǎng)頁上啟用它。有些擴(kuò)展是自動注入的有些需要手動點擊圖標(biāo)激活。impeccable的擴(kuò)展應(yīng)該是后者因為它需要在 agent 生成內(nèi)容的時候介入而不是一直掛在后臺。啟用之后你可以在擴(kuò)展面板里看到當(dāng)前的約束配置也可以臨時調(diào)整某些參數(shù)。4. 核心實操流程從零跑通一個帶設(shè)計約束的生成任務(wù)4.1 初始化項目與配置文件假設(shè)你已經(jīng)裝好了 Node、裝好了 codex cli、也裝好了impeccable的 CLI。接下來第一步是初始化項目。在項目根目錄下impeccable通常會生成一個配置文件名字可能是impeccable.config.json或者類似的東西。這個文件里定義了設(shè)計 token 和布局規(guī)則。我拿到的配置結(jié)構(gòu)大致是這樣的基于常見實踐推斷具體字段名以實際版本為準(zhǔn){ tokens: { color: { primary: #2563eb, background: #ffffff, text: #1f2937 }, spacing: { base: 4, scale: [0, 1, 2, 3, 4, 6, 8, 12, 16] }, typography: { baseSize: 16, scaleRatio: 1.25 }, radius: { sm: 4, md: 8, lg: 12 } }, layout: { maxWidth: 1200, gutter: 24, breakpoints: [640, 768, 1024, 1280] } }這個配置里spacing.scale是一個倍數(shù)序列實際間距值是base乘以序列里的數(shù)字。比如base是 4序列里有 4那實際間距就是 16px。這種設(shè)計的好處是間距值天然成體系不會出現(xiàn) 13px、17px 這種破壞節(jié)奏的數(shù)字。typography.scaleRatio控制字號梯度1.25 意味著每個層級比上一級大 25%這是經(jīng)典的排版比例。你可以改這些值來適配品牌但我的建議是改動幅度不要太大。特別是scaleRatio調(diào)到 1.5 以上會讓層級差距過大看起來會很突兀調(diào)到 1.1 以下又會讓層級區(qū)分不明顯。1.2 到 1.3 之間是比較舒服的區(qū)間。4.2 用 CLI 觸發(fā)一次帶約束的生成配置好之后就可以讓 agent 干活了。以 codex cli 為例你可能會用類似這樣的命令codex generate --prompt 創(chuàng)建一個用戶登錄頁面包含郵箱、密碼輸入框和登錄按鈕 --with-impeccable具體參數(shù)名可能因版本而異但核心邏輯是在生成命令里顯式聲明使用impeccable的約束。有些版本可能不需要顯式聲明只要項目里有配置文件就會自動生效。我建議第一次用的時候顯式帶上確認(rèn)約束確實起作用了之后再根據(jù)習(xí)慣決定是否省略。生成過程中你可以在終端里看到 agent 的工作日志。如果impeccable的約束生效了日志里應(yīng)該會出現(xiàn)類似“applying design tokens”“validating layout rules”這樣的提示。生成完成后打開產(chǎn)出的 HTML 或者組件文件檢查幾個關(guān)鍵點間距值是不是都來自 token 體系、顏色是不是都引用了配置里的變量、字號層級是不是符合比例關(guān)系。我實測下來帶約束和不帶約束的差別在第一眼就能看出來。不帶約束的版本按鈕和輸入框之間的間距可能是 12px標(biāo)題和正文的字號差可能是 6px整體看起來就是“差點意思”。帶約束的版本間距是 16px字號差是 8px 或者 10px視覺上就是更舒服。這種舒服很難用語言精確描述但對比著看就很明顯。4.3 瀏覽器擴(kuò)展路徑的操作差異如果你走的是瀏覽器擴(kuò)展路徑流程會不太一樣。你不需要在終端里敲命令而是在網(wǎng)頁環(huán)境里操作。假設(shè)你在某個在線編輯器里讓 agent 生成界面擴(kuò)展會在生成結(jié)果渲染到頁面之前介入對樣式做一輪約束處理。具體操作上你需要在擴(kuò)展面板里確認(rèn)約束是開啟狀態(tài)然后正常觸發(fā) agent 的生成。生成結(jié)果出來之后擴(kuò)展可能會在頁面上顯示一個小的狀態(tài)指示告訴你哪些地方應(yīng)用了約束、哪些地方因為規(guī)則沖突做了調(diào)整。這個反饋很有用它能幫你理解約束系統(tǒng)是怎么工作的。擴(kuò)展路徑的一個優(yōu)勢是所見即所得。CLI 路徑你需要生成完再打開瀏覽器看效果擴(kuò)展路徑直接在頁面上就能看到約束前后的對比。對于調(diào)樣式這種高度依賴視覺反饋的工作擴(kuò)展路徑的體驗更順滑。但擴(kuò)展路徑的劣勢是難以版本化你在面板里調(diào)的參數(shù)不會自動同步到代碼倉庫里團(tuán)隊協(xié)作時容易丟失配置。所以我的建議是探索和調(diào)試用擴(kuò)展正式產(chǎn)出用 CLI。4.4 參數(shù)調(diào)整的實操記錄我在測試過程中調(diào)整過幾組參數(shù)記錄一下效果對比。第一組是把spacing.base從 4 改成 6結(jié)果所有間距值都變成了 6 的倍數(shù)整體布局變得更“松”了。對于信息密度高的后臺界面這個改動是負(fù)面的因為屏幕空間被浪費了但對于營銷落地頁稍微松一點反而更透氣。所以這個參數(shù)沒有絕對的好壞取決于你的界面類型。第二組是把color.primary從藍(lán)色改成品牌綠。這個改動很安全因為主色調(diào)本來就是最應(yīng)該適配品牌的 token。改完之后按鈕、鏈接、選中狀態(tài)都自動跟著變了不需要手動去每個組件里改。這就是 token 體系的價值——改一處全局生效。第三組是把typography.scaleRatio從 1.25 調(diào)到 1.333。這個改動的影響比我想象的大標(biāo)題明顯變大了正文和標(biāo)題的對比更強烈。對于內(nèi)容為主的頁面這個改動讓層級更清晰但對于工具類界面標(biāo)題太大會擠壓內(nèi)容區(qū)域。我最后調(diào)回了 1.25因為我的使用場景更偏向工具類。5. 與 codex cli 等工具的配合細(xì)節(jié)5.1 命令體系里的位置熱搜詞里有一串關(guān)于 codex cli 命令的提問比如/compact、/model、/resume這些。這些是 codex cli 自身的命令跟impeccable不是一回事但它們會互相影響。比如你用/model切換了底層模型不同模型對設(shè)計約束的理解和遵循程度可能不一樣。我實測下來有些模型對 token 體系的遵循度很高你讓它用 16px 它就用 16px有些模型會“自作主張”覺得 14px 更好看就偷偷改了。遇到這種情況你可能需要在 prompt 里更明確地強調(diào)約束或者換一個遵循度更高的模型。/compact命令用于壓縮上下文這在長對話里很有用。但要注意壓縮之后 agent 可能會“忘記”之前的設(shè)計約束。如果你發(fā)現(xiàn)生成結(jié)果突然不符合規(guī)范了先檢查一下是不是上下文被壓縮導(dǎo)致的。解決辦法是在壓縮之后重新聲明約束或者把約束寫進(jìn)項目配置文件里讓它持久生效。/resume用于恢復(fù)之前的會話。這個命令在你想繼續(xù)之前的工作時很有用但同樣要注意約束的延續(xù)性。我的習(xí)慣是每次 resume 之后先跑一個小的生成任務(wù)驗證約束還在不在確認(rèn)沒問題再繼續(xù)正式工作。5.2 安裝與卸載的注意事項熱搜里還有codex cli安裝、node安裝codex cli很慢、刪除codex cli指令、安裝codex cli這些詞說明安裝和卸載是高頻問題。安裝慢的問題前面說過了換鏡像源或者用替代包管理器。卸載的話如果是全局安裝用對應(yīng)的卸載命令如果是項目內(nèi)安裝從package.json里移除依賴再重新安裝即可。這里有個坑要提醒卸載 agent 工具不會自動卸載impeccable反之亦然。它們是獨立的包需要分別管理。如果你要清理環(huán)境記得兩個都處理掉不然殘留的配置文件可能會干擾后續(xù)的安裝。我遇到過有人卸載了 codex cli 但沒刪配置文件重新安裝之后行為異常排查了半天才發(fā)現(xiàn)是舊配置在作祟。5.3 多工具混用的兼容性有些團(tuán)隊可能同時用多個 agent 工具比如主力用 codex cli偶爾用 minimax cli 或者 openspec cli。impeccable的約束能不能跨工具生效理論上可以因為約束層是獨立的只要工具支持讀取配置文件或者接受外部約束注入就行。但實際體驗上不同工具的集成深度不一樣有的無縫有的需要額外配置。我的建議是先在一個工具上跑通再考慮擴(kuò)展到其他工具。不要一上來就追求全工具鏈覆蓋那樣出了問題很難定位。等你在主力工具上把impeccable用熟了理解了它的約束邏輯和邊界再往其他工具上遷移會順利很多。6. 常見問題與排查技巧實錄6.1 約束不生效的幾種可能這是最高頻的問題明明裝了impeccable也配了文件但生成結(jié)果看起來跟沒裝一樣。我整理了一個排查順序按這個順序走基本能定位到原因。排查項檢查方法常見原因配置文件位置確認(rèn)文件在項目根目錄放錯目錄導(dǎo)致讀取不到配置文件格式用 JSON 校驗工具檢查多了逗號、少了引號agent 是否讀取配置看生成日志有無相關(guān)提示agent 版本不支持或未開啟約束是否被覆蓋檢查 prompt 里有無沖突指令prompt 里寫了具體樣式值緩存問題清除緩存后重試舊配置被緩存我踩過最坑的一次是配置文件里多了一個尾逗號JSON 解析直接失敗但 agent 沒有報錯只是靜默地忽略了配置。后來我養(yǎng)成了習(xí)慣改完配置文件先用校驗工具過一遍確認(rèn)格式?jīng)]問題再生成。這個習(xí)慣幫我省了很多排查時間。6.2 生成結(jié)果“部分符合”的怪現(xiàn)象有時候你會發(fā)現(xiàn)生成結(jié)果里有些地方符合約束有些地方不符合。比如間距對了但顏色沒對或者顏色對了但字號層級亂了。這種“部分符合”的情況通常有幾個原因。一是agent 的遵循度不穩(wěn)定。同一個 prompt兩次生成的結(jié)果可能不一樣因為模型本身有隨機性。解決辦法是提高 prompt 的明確程度把約束要求寫得更具體。二是約束規(guī)則之間有沖突。比如你配置的間距體系和 agent 自己理解的“好看間距”打架了它可能在某些地方妥協(xié)了。這種情況需要你檢查配置里有沒有自相矛盾的規(guī)則。三是生成內(nèi)容超出了約束覆蓋范圍。impeccable的約束主要覆蓋常見的布局和樣式場景如果你讓 agent 生成一個非常規(guī)的組件約束可能覆蓋不到。6.3 性能與速度的權(quán)衡引入約束層之后生成速度可能會變慢因為 agent 需要額外處理約束邏輯。我實測下來的感受是慢是慢了一點但在可接受范圍內(nèi)。如果你覺得慢得離譜可以檢查幾個地方約束規(guī)則是不是太復(fù)雜了、配置文件是不是太大了、agent 是不是在每次生成時都重新解析配置。一個優(yōu)化技巧是把不常變的約束固化下來減少運行時的解析開銷。比如把設(shè)計 token 直接編譯成 CSS 變量文件agent 生成時直接引用變量而不是每次計算。這個做法需要一些額外的構(gòu)建步驟但對于頻繁生成的場景長期來看是劃算的。6.4 團(tuán)隊協(xié)作中的配置同步團(tuán)隊里多個人用impeccable時配置同步是個現(xiàn)實問題。我的做法是把配置文件納入版本控制跟代碼一起管理。這樣每個人 clone 項目后拿到的配置是一致的。但要注意配置文件里如果有個人偏好或者本地路徑需要把這些部分抽離出去用環(huán)境變量或者本地覆蓋文件來處理。另外團(tuán)隊里應(yīng)該有人負(fù)責(zé)維護(hù)這套配置。設(shè)計規(guī)范不是一成不變的品牌升級、產(chǎn)品調(diào)性調(diào)整都可能需要更新 token。如果沒有明確的維護(hù)責(zé)任人配置會逐漸腐化最后又回到“各寫各的”狀態(tài)。我見過一些團(tuán)隊一開始用得很好幾個月后配置沒人管了生成質(zhì)量又掉下去了。7. 我個人的使用體會與幾個實用建議用了一段時間impeccable之后我最大的感受是它解決的不是“設(shè)計能力”問題而是“設(shè)計一致性”問題。它不會讓一個完全不懂設(shè)計的人突然做出大師級作品但它能讓一個普通開發(fā)者產(chǎn)出的界面看起來是“經(jīng)過思考的”。這個價值在 AI 生成場景下被放大了因為 AI 生成的最大問題就是隨機性太強而impeccable恰好是對抗隨機性的工具。如果你打算上手我的建議是從小處開始。先拿一個簡單的頁面試比如登錄頁或者設(shè)置頁感受一下約束前后的差別。不要一上來就用在復(fù)雜項目上那樣變量太多你很難判斷效果。等你在簡單場景里建立了對約束系統(tǒng)的直覺再逐步擴(kuò)展到復(fù)雜場景。還有一個心得是不要試圖用impeccable替代設(shè)計師。它的定位是讓沒有設(shè)計師參與的場景也能有及格線以上的產(chǎn)出而不是讓設(shè)計師失業(yè)。真正復(fù)雜的產(chǎn)品設(shè)計仍然需要人來把控整體方向和細(xì)節(jié)打磨。把impeccable當(dāng)成一個“設(shè)計底線保障工具”來用心態(tài)會更平和預(yù)期也更合理。最后分享一個我常用的調(diào)試技巧當(dāng)你覺得生成結(jié)果“哪里不對但又說不上來”的時候把約束關(guān)掉再生成一次兩個版本并排對比。差異會立刻告訴你約束在做什么、哪些地方起了作用、哪些地方?jīng)]起作用。這個方法比盯著配置文件和日志看要直觀得多我靠它定位過好幾次問題。