Use when deciding whether to write a piece of code, add a dependency, or introduce an abstraction / module / config — the "should I build this at all?" filter, applied before building. | 要決定「要不要寫這段 code/引這個依賴/加這層抽象或模組」時使用——「到底該不該做」的過濾網,動手之前先走一遍。不適用:把流程做成 agent workflow/建工具(改用 agentic-sop);稽核既有架構有沒有拆好(改用 agentic-workflow-audit)。
Scanned 8/31/2026
Install to Claude Code
npx -y skills add s0912758806p/agentic-sop-to-work --skill six-rung-ladder --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Six Rung Ladder?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/s0912758806p-six-rung-ladder)More formats (shields.io, HTML) on the badges page.
---
name: six-rung-ladder
description: Use when deciding whether to write a piece of code, add a dependency, or introduce an abstraction / module / config — the "should I build this at all?" filter, applied before building. | 要決定「要不要寫這段 code/引這個依賴/加這層抽象或模組」時使用——「到底該不該做」的過濾網,動手之前先走一遍。不適用:把流程做成 agent workflow/建工具(改用 agentic-sop);稽核既有架構有沒有拆好(改用 agentic-workflow-audit)。
---
# 極簡架構過濾網:Six-Rung Ladder
## 角色與目標
面對任何「要不要寫這段代碼/要不要引入這個東西」的決策時,當一道**逐級過濾網**。核心信念:**Lazy, not negligent(慵懶,但絕不疏漏)**。每一行代碼、每一個依賴、每一個抽象,都是未來的維護成本與攻擊面;最便宜、最安全的代碼,是那行你沒有寫的。
這把梯子是 **decide → build → audit** 方法論的**最前段**:先用它擋掉不該做的,剩下該做的才交給 `agentic-sop` 去建、`agentic-workflow-audit` 去查。
## 怎麼用
請求從第 1 級開始往下走,**能在哪一級攔下,就在哪一級解決,絕不下沉**。一旦某級給出可行解就停,不要繼續往下找更重的方案。
### 1. YAGNI — 業務真的需要嗎?
不需要 → **直接拒絕**。先質疑需求本身,而不是急著找實現方案。
### 2. Stdlib — 標準庫能解決嗎?
優先用語言/執行環境的原生標準庫:大規模驗證、零供應鏈風險、零安裝、隨語言一起維護。
> **這一級在本專案是機械化的,不是口號**:engine 純標準庫由 `kit/tests/test_no_third_party.py` 守(回歸時 fail-loud),整個 marketplace 的 stdlib-only 不變量由 `plugin-forge lint --all --strict` 守。
### 3. Native Platform — 平台原生特性夠用嗎?
引入任何函式庫之前,先確認平台是否已提供(瀏覽器 `fetch` / `URL` / `Intl`、CSS 原生特性……往往足以取代一整包依賴)。
### 4. Installed Dependency — 現有依賴能複用嗎?
前三級都不行,先翻一遍已經裝好的依賴。**堅決不為了一個小功能引入新的供應鏈風險**——每個新依賴都是新的版本維護、安全漏洞與授權問題來源。
> 同第 2 級:新依賴會被 `test_no_third_party` / `plugin-forge lint` 擋下——這一級有 gate,不靠自律。
### 5. One Line — 一行乾淨代碼行不行?
與其引入抽象、新模組或新依賴,不如就地寫一行清晰直白的代碼。前提:乾淨、可讀、意圖明確,而非炫技式壓縮。
### 6. The Minimum That Works — 最小可用閉環
全走不通 → 只寫最小可用、能跑能驗的閉環。不過度設計、不預留花俏擴展點;先讓最小版本真正運作起來。
## 死守紅線:Lazy, not negligent
「慵懶」是對複雜度/抽象/依賴**保持吝嗇**;「絕不疏漏」是**有些東西一行都不准省**。下列防禦性代碼**永遠不適用上面的偷懶哲學**:
- **跨信任邊界的防注入**:任何外部資料(用戶輸入、第三方回應、檔案內容、URL 參數……)一律當作不可信,做好校驗與轉義。
- **容災與錯誤處理**:失敗路徑、超時、重試、降級,該寫的都要寫,不能假設一切正常。
- **安全性**:權限校驗、機密處理、最小權限原則,不能因「先跑起來再說」而跳過。
> 這條紅線與本專案既有鐵則「**防禦代碼不准省**」是同一條;對應的確定性 gate(如 `trace_gate` 防臆造)亦屬此列。在該懶的地方懶到極致,在該嚴的地方一步不讓。
## 速查口訣
| 級別 | 名稱 | 一句話 |
|---|---|---|
| 1 | YAGNI | 業務真需要嗎?不需要就拒絕。 |
| 2 | Stdlib | 標準庫能不能搞定?(有 gate) |
| 3 | Native Platform | 平台原生特性夠不夠用? |
| 4 | Installed Dependency | 現有依賴能不能複用?(有 gate) |
| 5 | One Line | 一行乾淨代碼行不行? |
| 6 | Minimum That Works | 都不行就寫最小可用閉環。 |
**紅線**:防注入、容災、安全性 — 防禦代碼不准省略。
## 輸出格式
被觸發時,對該決策逐級回報:**在第幾級攔下、為什麼、具體方案**(或:為何必須下沉到下一級)。若涉及外部輸入/失敗路徑/安全,明確點出哪條紅線項不得偷懶。最後一句結論:**做 / 不做 / 做最小版**。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!