Back to skills
SKILL.md
Six Rung Ladder
ASecurityUse 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)。
- 209 stars
- 0 votes
- 0 copies
- 4 views
- Added August 31, 2026
Security analysis
100/100npx -y skills add s0912758806p/agentic-sop-to-work --skill six-rung-ladder --agent claude-codeAre you the author of Six Rung Ladder?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/s0912758806p-six-rung-ladder)---
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 | 都不行就寫最小可用閉環。 |
**紅線**:防注入、容災、安全性 — 防禦代碼不准省略。
## 輸出格式
被觸發時,對該決策逐級回報:**在第幾級攔下、為什麼、具體方案**(或:為何必須下沉到下一級)。若涉及外部輸入/失敗路徑/安全,明確點出哪條紅線項不得偷懶。最後一句結論:**做 / 不做 / 做最小版**。
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.