Community程式設計與開發github.com

pr-簡化

將你的變更簡化至最小且完整的修復。適用於在開啟 PR 之前、推送大型修復至現有 PR 之前,或當被要求縮小 PR 或清理多餘程式碼時使用。

pr-簡化 是什麼?

此技能旨在協助開發者在程式碼審查前,主動將自己的變更收斂至最小且完整的修復範圍。它透過一套結構化的規則與步驟,引導 AI 代理重新推導變更的本質、移除不必要的架構、保留關鍵測試案例,並最終產出更精簡且清晰的差異比較。 其核心理念是「差異比較是一個提案」,通過測試僅證明功能正常,不代表架構或每一個新增的測試都是必要的。技能支援所有可以執行 shell 命令與讀寫檔案的開發環境(例如 Claude Code、Coder、Codex 等),因為其操作完全基於 Git 工作流程與檔案修改。 使用時,AI 代理會先分析當前分支與目標合併基礎之間的完整差異,然後依序執行四個步驟:重新推導最小修復、移除多餘架構、保留針對實際缺陷的測試、批量編輯並重新驗證。最終輸出應包含一份清晰的 PR 描述,說明哪些程式碼或職責被移除、哪些行為仍受保護,以及與合併基礎相比的生產/測試差異。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/pr-simplify

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

在你喜歡的 AI 中提問

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

說明文件

簡化變更

由變更作者進行的編輯審查:在你的分支上,於開啟 PR 之前執行一次,並在推送大型修復之前再執行一次。此步驟先於審查,且絕不取代審查。繼承任務的範疇與修復權限;僅有審查要求的請求會獲得「發現事項」而非實際編輯。所選的維護者工作流程掌管發佈、審查與合併。

差異比較是一個提案。 通過測試僅證明它能運作,而非證明其架構或每一個新增的測試都是必要的。

規則: 根目錄 AGENTS.md 中的「設計優先順序」、「單一擁有者,完整切換」、「執行時期與程式碼安全措施」以及「產品與驗證」章節,加上最近的範圍化 AGENTS.md。步驟 2 與 3 會對每個變更的檔案套用所有規則。

1. 重新推導最小且完整的修復

閱讀使用者的結果與最新範疇、針對目標合併基礎的完整差異比較,以及保留的證明。重複使用已收集的會話上下文。然後問:

從基礎開始,使用已存在的擁有者,最小且完整的修復是什麼?我是否仍會引入這個架構?

首先檢查最大的新增模組、狀態、適配器與測試框架。閱讀它們的直接呼叫者與相關歷史:看似多餘的行為可能是在保護某個已上線的設定或先前的迴歸問題。範疇是變更的系統以及它所取代的路徑。

追蹤每個變更區塊到所述結果。一個服務於其他目標的區塊應離開此變更:將其刪除或移至其自己的 PR。

計算非機械性的變更行數。超過約 800 行,或對於複雜邏輯超過約 500 行,則指出可以優先合併的最小連貫階段,並將變更縮減至該階段。

當你可以用一句話分別陳述缺陷、所需的不變量以及最小且完整的修復,且每個剩餘的區塊都服務於該修復時,即完成此步驟。

2. 移除不必要的架構

在差異比較中套用每一項支援的簡化:

  • 單一決策擁有者。 將重複的呼叫端政策移至擁有該決策的操作中。遷移受影響的呼叫者,並移除舊的實作、匯出與修補分支。不同的傳輸可以共享同一個決策,同時保留各自的傳遞合約。
  • 優先使用現有狀態。 挑戰新的結構定義、管理器、快取與組合式表示。當現有擁有者的生命週期、權限、原子性與清理機制符合需求時,重複使用它。僅在遷移確實不必要時才移除它;保留能在更新後維持現有設定與狀態正常運作的遷移。新的狀態應放在一個有意義的欄位中。
  • 刪除冗餘路徑。 移除並行的渲染器、重複的解析器、僅為取得結果而使用的虛擬生命週期操作、呼叫端已可取得的衍生狀態,以及僅轉發或重新命名的包裝器。偏好一個更簡單的表示,而非圍繞舊表示使用降級模式。
  • 最後打磨。 在每個變更區塊中,僅保留周圍檔案的維護者會寫入的內容:
    • 解釋擁有權、生命週期、排序或約束的註解;
    • 與周圍模組匹配並保護真實狀態的檢查與 try/catch 區塊;
    • 真實型別,而非洗白轉型(as any、as unknown as T、先拓寬再斷言);
    • 新增領域意義、消除重複或簡化控制流程的變數與輔助函式;
    • 有命名上線合約與移除計畫作為依據的墊片、別名、重試與降級方案;
    • 與周圍檔案匹配的命名、控制流程、匯入與格式化。

保留請求的修復與支援的行為,而非提案的偶然設計。保留真實的領域差異與正當的公開相容性。當歷史記錄(git log -p -S <符號>)無法明確說明某個路徑的用途時,請保留它並回報。將新的產品決策、破壞性合約、不相關的清理與破壞性分支替換回報為給擁有者的發現事項。

3. 保留針對失敗的測試

對於每個新增或變更的測試群組及其設定輔助函式,指出它所捕捉的獨特可觀察失敗。

保留針對實際缺陷與不同邊界情況的迴歸測試:排序、取消、權限過期、重新啟動、拒絕、真實錯誤以及受影響消費者的差異。保留獨立保護真實邊界的靜態合約防護。移除重複的相同路徑案例、模擬回聲、偶然的欄位複製或措辭斷言、對靜態定義值的斷言、僅證明已移除邏輯不存在的測試、過時實作的測試,以及框架或僅用於測試的生產環境鉤子。將有用的案例合併到現有擁有者的測試套件中。

移除測試絕不能削弱剩餘的斷言、真實邊界的覆蓋率或基準線。

當每個剩餘的測試群組都有一個命名的失敗案例時,即完成此步驟。

4. 證明較小的變更並移交

批次編輯,然後針對已變化合約與受影響消費者重新執行再現與聚焦檢查。重複使用其輸入未改變的證明。保留的重新啟動、升級或傳輸主張需要適用的證明。現有工作流程會選擇更廣泛的檢查。

當完整的差異比較已被檢查、每個規則對每個變更的檔案都有裁決、支援的簡化已套用、被取代的路徑已無法到達、受影響的行為仍有證明時,即完成此步驟。當現有形狀有正當理由時,「無變更」是有效的結果。目標是淨減少程式碼,而非達到刪除配額。

在 PR 主體或現有任務證據中回報:已消失的責任或機制、仍受保護的行為,以及與合併基礎相比的生產/測試差異。將針對先前版本的縮減與整體變更的差異分開標記。指出任何必要的剩餘增長或未解決的決策。

然後開啟或更新 PR。在後續修復之後,在推送它們之前,僅簡化新變更以及它們所觸及的擁有者。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

相關技能