我們是袋鼠雲數棧 UED 團隊,致力於打造優秀的一站式資料中台產品。我們始終保持工匠精神,探索前端道路,為社群積累並傳播經驗價值。 本文作者:切果
superpower 是開源社群非常知名的 harness 框架,我們在本文透過數棧產品 easyIndex 的複雜需求實作來探究 superpower 的價值。
在交叉表改造裡,業務上的直接訴求其實不複雜:原有「表格」展示更適合看明細,但當使用者想同時按多個維度做橫向與縱向對比時,比如看「某類指標在不同區域、不同時間段上的分布關係」,一般表格的閱讀成本會迅速升高。交叉表的價值,就在於把這種「按列看分組、按欄看展開、在交叉點看結果」的分析方式直接放進查詢結果裡。
真正的難點並不是把一個新元件寫出來,而是讓多個鏈路在同一次改造裡穩定協同:
這類需求的風險,通常不在單點實作,而在跨層契約容易斷裂。 如果只用傳統「問答式 AI Coding」推進,常見結果是某一段程式碼看起來能執行,但改造一旦跨過多個模組,AI 就容易丟失上下文、誤擴散修改範圍,最後把問題從「實作功能」變成「收拾整合階段的連鎖迴歸」。
所以這次回顧的重點,不是交叉表本身做了多少業務能力,而是 superpowers 如何把複雜改造組織成一個可控、可驗證、可複用的交付過程。
這次專案裡,superpowers 承擔的不是「多寫程式碼」的角色,而是「組織 AI 參與方式」的角色。它的核心價值,是先把協作過程標準化,再讓 AI 進入編碼階段。
相比直接讓 AI 對著需求生成程式碼,superpowers 更強調幾個前置動作:
這套方法的意義在於,它把 AI 從「程式碼補全器」提升為「受約束的協作執行者」。 對複雜前端需求來說,真正決定交付效率的,往往不是 AI 能不能寫出局部程式碼,而是它能不能在約束下持續輸出可合併結果。
交叉表改造如果直接進入編碼,很容易把工作理解成「新增一種展示元件」。但在真正的業務鏈路裡,它實際上是一個跨配置、跨參數、跨渲染的聯動改造。
這次在進入實作前,先透過 superpowers 把任務統一成幾個明確結論:
這一步的直接收益,是把後續實作從「邊寫邊補需求」變成「圍繞固定邊界推進」。 對於 AI 協作來說,這比任何 prompt 技巧都更重要,因為約束清晰之後,輸出才會穩定。
複雜需求的另一個常見問題,是上下文投餵過多,導致 AI 把不該改的地方一起改掉。 這次沒有把整條業務鏈都攤給 AI,而是只圍繞高相關模組收斂上下文,例如:
FilterscrossConditionBoxquery/helpcrossTable這種最小上下文策略,核心不是省 token,而是控制修改半徑。 當 AI 只圍繞關鍵模組做推理時,它更容易理解當前階段真正的契約,減少跨模組誤改和「順手重構」。
這次改造沒有一次性推進到底,而是按三個階段逐步落地:
每一段都有獨立驗證點,出問題時也不是籠統地說「這裡不對」,而是把錯誤類型、位置、重現路徑和期望差異結構化回灌給 AI。 這樣 AI 的下一輪修復,不再依賴猜測,而是基於明確證據收斂。
這一步直接降低了兩類成本:
為了避免方法論變成空泛總結,這裡只保留三個最能說明 superpowers 價值的技術證據點。
先補一層最小業務語境:這次交叉表並不是單純把欄位換個擺放方式,而是要支援使用者把分析維度拆成「行維度」和「列維度」,再在交叉點上查看聚合結果、彙總和對比關係。也正因為它天然同時牽涉配置、參數和渲染三層,所以非常適合作為 superpowers 方法是否有效的驗證樣本。
dimensions + dimType在維度模型上,這次沒有把行維度和列維度拆成兩套獨立欄位,而是保留統一 dimensions,再透過 dimType 區分行列語義:
dimensionsdimType: 'row' | 'column' 補充語義這裡體現出的 superpowers 價值,不在於它提出了某個欄位名,而在於它推動團隊先把「唯一契約」定下來,再進入實作。 一旦契約明確,模式切換、歷史回填、別名共存這些後續問題都能沿同一條路徑推進,避免出現兩套欄位並行演進、後期再做狀態遷移的額外成本。
resultDisplayMode 分流規則真正決定功能是否可用的,不是介面能不能切換,而是參數鏈路是否閉環。 這次在參數層先鎖定一條核心規則:由 resultDisplayMode 決定是否進入交叉表分流組參。
在這個前提下:
rowDimIds 從 dimType === 'row' || !dimType 的維度裡提取colDimIds 從 dimType === 'column' 的維度裡提取這背後體現的是一種很典型的 superpowers 工作方式: 先確定模式邊界,再讓 AI 生成實作細節。這樣改造過程裡每一段程式碼都在回答同一個問題,即「當前模式該產生什麼參數」,而不是在多個檔案裡各自理解展示語義。
渲染層同樣不是先寫程式碼,而是先拆邊界。交叉表 Canvas 改造在職責上先分成四類:
執行時再分成 corner、header、frozen、body 四層畫布。 這樣處理的價值,不只是效能最佳化,更是把後續定位問題的成本降下來。凍結區、捲動區、視窗計算各有獨立職責,出了問題更容易追到具體層,而不是在一個巨大的渲染檔案裡混合排查。
從 superpowers 視角看,這一步體現的是「先拆模組責任,再推進實作」的紀律。 AI 很擅長補結構化程式碼,但前提是邊界已經被定義清楚;一旦邊界清晰,AI 在這裡的產出就更容易穩定落到可合併區間。
如果只看 AI 參與了多少程式碼,容易把這次改造理解成「AI 幫忙寫了一部分實作」。 但從實際回顧看,superpowers 帶來的收益主要體現在交付過程,而不只是編碼速度。
這類複雜需求裡,更有解釋力的指標不是「AI 寫了多少行」,而是:
這些指標更能直接反映 superpowers 的作用,因為它真正優化的是協作過程中的不確定性,而不是單點生成能力。
git-ai 指標記錄從本次交叉表改造的統計看,AI 參與度本身並不低:
4411.3%90%這些資料說明 AI 輸出並不是實驗性的草稿,而是有相當比例進入了最終結果。 但它們不足以單獨證明「提效」,因為程式碼占比高,不必然代表交付更穩。
真正更有價值的結論是:當 superpowers 先完成任務歸一化、上下文收斂、分段驗證和失敗回灌後,AI 輸出更容易進入可合併區間,團隊把更多精力放在架構判斷、邊界處理和聯調收口,而不是反覆修補上下文斷裂帶來的問題。
在這次改造裡,AI 更適合承擔:
而人工仍然聚焦在:
superpowers 的意義,正是在兩者之間建立明確分工,讓 AI 真的成為提效工具,而不是新的不確定性來源。
這次交叉表改造之後,比較值得沉澱的不是某個具體實作細節,而是一套可以複製到其他複雜前端需求裡的協作模板:
這套模板不只適用於交叉表。 凡是涉及圖表、分析卡、複雜表單、低程式碼配置面板這類跨層聯動需求,本質上都在處理相似問題:需求複雜、模組多、上下文容易斷、整合階段風險高。
當團隊把 superpowers 當成工程化協作框架,而不是單純的 AI 功能集合時,收益通常會體現在三個方面:
這次交叉表改造最值得回顧的地方,不是「AI 參與了多少程式碼」,而是複雜需求如何被組織成一條可控的交付鏈路。
如果只有 AI,而沒有明確的任務邊界、上下文策略、階段驗證和失敗回灌,複雜改造依然容易失控。 而 superpowers 的價值,正是在這些關鍵環節裡建立秩序,讓 AI 輸出從「可以參考」提升到「可以穩定合併」。
所以更準確的結論應該是:
superpowers 負責控制複雜度歡迎關注【袋鼠雲數棧 UED 團隊】~ 袋鼠雲數棧 UED 團隊持續為廣大開發者分享技術成果,相繼參與開源了歡迎 star