Community程式設計與開發github.com

Cyrus-terra/qilin-fit

為國產麒麟 Linux 與奇安信可信瀏覽器進行前端相容開發、排錯和評審。涉及麒麟、銀河麒麟、中標麒麟、奇安信、信創、Qianxin、Kylin、舊 Chromium,或在已聲明此目標環境的專案中新增/修改頁面、CSS、Tailwind、元件庫、JS/TS、建構配置、瀏覽器 API、字型、彈窗、下載與列印時使用;覆蓋原始碼和建構產物檢查、能力降級及真機驗證。

qilin-fit 是什麼?

此技能專為在國產麒麟 Linux 系統及奇安信可信瀏覽器環境下進行前端相容開發而設計。它能協助開發者進行新功能開發、故障修復、依賴升級和程式碼審查,確保相容性從一開始就被視為約束,而非事後修補。技能支援多種國內操作系統和瀏覽器版本,包括麒麟、銀河麒麟、中標麒麟等,並要求明確記錄支援契約,包含實際版本、架構和最低內核。它透過只讀的相容性檢查器掃描原始碼和建構產物,識別 CSS、JavaScript、平台相關的潛在問題,並提供詳細的參考文件指導開發。驗證流程強調真機測試,無法驗證的項目必須明確標記,避免虛假結論。此技能適用於 Claude Code、Cursor 等 AI 編碼代理,幫助自動化相容性審查和降級建議。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Cyrus-terra/qilin-fit/tree/main/skills/qilin-fit

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

麒麟 / 奇安信前端相容開發

使用原則

把相容性作為本次實現的約束,不是做完頁面再補顏色。此 Skill 適用於新開發、故障修復、依賴升級和評審;不要求特定框架。只處理任務涉及的風險,不無條件改寫整個專案。

不能承諾覆蓋所有奇安信版本。 產品號、發布渠道和 Chromium 內核號不同;同一內核在不同 CPU、驅動和企業策略下也可能表現不同。未知資訊必須標記待確認,不能偽造驗證記錄。

1. 先確定支援契約

  1. 讀取已有專案指令、鎖檔案、建構配置、相容測試和支援範圍,保留用戶改動。
  2. 從使用者、瀏覽器「關於」頁及 assets/browser-probe.html 收集:產品全稱、產品完整版本、渠道、Chromium 完整版本、麒麟版本/SP、CPU 架構、DPR/縮放、字型/GPU、關鍵企業策略。UA 只作線索,不能證明實際內核。
  3. 建立或更新專案已有支援矩陣;無現成檔案時,可使用 assets/support-matrix.example.json。填寫業務必需功能、最小實際內核、真機和降級驗收標準。不要在安裝的 Skill 目錄記錄業務設備資料。
  4. 未知基線時先詢問,不擅自等同 Chromium 102。使用者要求先開發時可暫定保守基線,但必須記錄為 provisional / 未驗證,不得寫「已相容全部版本」。
  5. 讀取 瀏覽器矩陣。不同渠道和架構分別驗收;最低基線與更高版本都要覆蓋,不能靠僅測最新 Chrome 代表奇安信。

2. 唯讀審計,確定最小改動

  • 讀實際原始碼和生產建構配置,確認 CSS 工具、UI 庫、瀏覽器/服務端入口、第三方套件以及部署方式。
  • 按改動選讀參考資料,不必每次載入全部檔案:
任務必讀
樣式、Tailwind、佈局、主題、彈窗CSS 與佈局
JS/TS、語法編譯、依賴、Web APIJavaScript 與建構
字型/輸入法、檔案、PDF、權限、網路、CPU/GPU麒麟平台與交付
測試、截圖、發布驗收、資料邊界驗證與驗收
查證特性支援或版本依據來源與證據等級
  • 從 Skill 實際安裝路徑執行檢查器;<skill-dir> 表示當前 SKILL.md 所在目錄,先替換為已確認的實際路徑,不要照抄佔位符:
python3 "<skill-dir>/scripts/compat_audit.py" ./src --min-chromium 102

只有支援契約已確定為 102 時才使用範例中的 102;未確定時省略 --min-chromium,輸出會標記 unknown。路徑按真實專案替換。檢查器唯讀、零第三方依賴、不會修改程式碼;它是詞法候選檢測,不是 AST、CSS 編譯器或相容性認證。

3. 實現規則

CSS

  • 穩定路徑優先使用常規 hex/rgb/hsl、傳統 transform、可回退的佈局;現代特性僅在目標支援或可證明漸進增強時使用。
  • 針對 102:重點檢查 :has()、容器查詢、新視口單位、獨立變換、現代顏色、原生巢狀、Popover 與 Tailwind 生成程式碼。支援閾值與替代見 CSS 參考。
  • Tailwind v4 官方最低 Chrome 111;102 不在支援範圍。不能聲稱調色板修補、Autoprefixer 或設定 JS target 就解決全部 v4 相容性。提出受支援方案或經過驗證的產物轉換;遷移/降級依賴須先確認,不擅自執行。
  • var() 的 fallback 不等於任意現代顏色回退;CSS.supports() 不等於實際像素正確。分別檢查解析、計算值和視覺結果。
  • 改彈窗定位時保留動畫與拖拽的 transform 合成;檢查遮罩、焦點、滾動、鍵盤、Portal 和層疊上下文,不只檢查居中截圖。

JS / 依賴

  • 區分語法轉譯、內建物件 polyfill 和需要權限/原生平台支援的 Web API。TypeScript target、lib、建構 target 不能互相替代。
  • 對瀏覽器交付鏈配置真實最低內核,檢查依賴、動態 chunk、worker、第三方腳本及 CSS 產物;Node 服務端 API 不能當作瀏覽器 API 使用。
  • 新 API 在入口處能力檢測,採用業務可接受的降級;語法解析失敗發生在檢測之前,不能用 if 包住新語法代替轉譯。
  • 不 blanket 禁用可選鏈等已支援能力,也不預設補全全部 polyfill。不得為了相容關閉 CSP、證書驗證、沙箱或其他安全措施。

平台 / 資料

  • 覆蓋字型缺失、中文輸入法組合事件、架構差異、GPU、下載/列印、檔案名稱、代理/證書、離線部署和企業權限策略。
  • 涉及外部/AI 資料時,在邊界按實際 schema 校驗並展示明確失敗/缺失狀態;不要把未知評分靜默補成有效分數,也不強制引入指定校驗庫。與瀏覽器無關的業務改動不擴大範圍。

4. 驗證順序

  1. 原始碼風險掃描、現有單測和 lint;確認未掃描目錄、誤報和人工豁免的理由。
  2. 生產建構;掃描實際發布的 CSS/JS(使用 --include-build,確認路徑不是原始碼映射或 Node 服務端套件)。記錄轉換/降級的實際輸出,不憑配置推斷有效。
  3. 在目標瀏覽器開啟離線探針,手動核對視覺區域,再訪問真實專案關鍵流程。探針不等於專案測試,不採集帳號或業務輸入。
  4. 對照最低基線、存量版本和當前版本的實際麒麟終端,執行參考文件中的功能/截圖/鍵盤/輸入法/縮放/列印驗收。普通 Chrome、Playwright 的近期 Chromium 或偽造 UA 不能替代目標真機。
  5. 無真機、無依賴安裝權限或建構失敗時,明確寫出阻塞和未驗證項,不生成虛假截圖/成功結論。
# 僅範例:換成專案真實的瀏覽器產物目錄
python3 "<skill-dir>/scripts/compat_audit.py" ./dist --include-build --min-chromium 102 --format json
# 可選擇對所有候選風險設 CI 閘門;先處理誤報和有證據的漸進增強
python3 "<skill-dir>/scripts/compat_audit.py" ./src --min-chromium 102 --fail-on warning

5. 交付格式

簡短輸出:

  • 支援契約:實際版本/架構、最低內核;unknown/provisional 必須註明。
  • 修改與依據:問題、位置、降級/轉換方式;引用程式碼時用 path:line。
  • 驗證結果:原始碼、產物、普通瀏覽器、麒麟真機分別寫 pass/fail/not-run,不混為一個「通過」。
  • 殘餘風險:無法驗證的版本、策略/硬體限制及需用戶確認的取捨。

Skill 描述用於自動匹配;如必須每次觸發,應由使用專案的 Agent 指令明確要求在相關開發前載入本 Skill。Skill 自身不能替代宿主發現機制,也不能繞過權限或強制模型呼叫。

相關技能