Launch Atlas logoLaunch.Atlas
#31Build開發者

Coding Standard · 編碼規範

把 review 時的口水戰提前壓縮成 linter 設定

Coding Standard · 編碼規範 · 卡片插圖
CHOOSE YOUR MODE

先決定你現在是要學,還是要在專案裡做

網站負責解釋與分發工作包;真正的 Repository 掃描、缺口判斷與文件產出交給 Coding Agent。

SDLC 實作課 · 交付物練習

先理解這份文件替你消除什麼不確定

把 review 時的口水戰提前壓縮成 linter 設定

人類記不住 50 條規則。Coding Standard 的價值在於決定「哪些靠工具自動擋、哪些靠 review、哪些只是建議」,不是一份漂亮 PDF。

OWNER & HANDOFF

誰負責、交給誰

主責: Dev Lead 或 staff engineer

協作: 全體 Dev 投票、Architect 確認可演進

下游收件: CI lint job、PR Template、Code Review Checklist

WHEN TO USE

何時值得做

REQUIRED

必要時機: 新專案、新語言、團隊擴編、跨服務統一基線

SKIP

不需要時: 個人專案、一次性 PoC

CAUTION

常見誤用: 200 條規則無工具支撐;只規定縮排卻不規定錯誤處理

看懂6 段骨架知道每段要留下哪一種判斷
看會雙版本範本先用輕量版練習,再讀完整版
做出自己的草稿手動貼到 Claude Code、Codex 或其他 Agent
  1. 01讀大綱
  2. 02比範本
  3. 03填素材
  4. 04貼提示詞
  5. 05對照驗收

Anatomy · 文件解剖

輕量版先回答 6 個核心章節

章節名稱可以因團隊調整,但每一段要求的判斷不能被省略。先讀問題,再看格式。

  1. 01

    Executive Summary

    範本必要章節

    3-5 行,新人 30 秒讀完。內容:本 standard 涵蓋什麼語言+框架、共 N 條規則、最常違反的 top 3

  2. 02

    Language Scope

    範本必要章節

    必含語言版本 + 主要框架。版本太舊(>2 年)要在 confidence 標 L 並列升級風險

  3. 03

    Rules(top 10-15)

    範本必要章節

    每條規則必含 good/bad 對照 + linter rule id(或 TODO 找對應)+ enforcement 層級。Severity 三級:error / warning / info

  4. 05

    Enforcement Matrix

    範本必要章節

    每條規則都要有 enforcement 落點 — lint / pre-commit / review / doc-only 之一,無落點視為純廢話

  5. 10

    Decision Log(key 2-3 條)

    範本必要章節

    每條必含 chosen + 至少 1 個 rejected + 拒絕原因

  6. 12

    Confidence & Sources & TODO

    範本必要章節

    把已確認的內容、判斷依據與仍待補充的資訊清楚分開。

Study · 對照學習

同一份交付物,先練核心,再看完整深度

輕量範本適合第一次練習與 MVP;完整範本保留跨職能交棒需要的細節。兩者都要求未知事項保持可見。

SmartTrip 實例待補

這張卡目前提供已審定的輕量與完整範本;不以 AI 臨時生成的內容冒充實際案例。

LIGHT TEMPLATE

30 分鐘內先完成核心章節。

---
doc_type: "coding-standard"
variant: "light"
status: "draft"
owner: "<your-name>"
last_updated: "YYYY-MM-DD"
upstream:
  required: ["pr-comment-samples", "linter-config"]
  optional: ["existing-style-guide"]
---

# Coding Standard: <language-and-framework>

**Status:** Draft v0.X · **Owner:** <Dev Lead name> · **Last updated:** YYYY-MM-DD

> [!IMPORTANT]
> **AI 填寫規則:** 本範本 6 段(編號 1, 2, 3, 5, 10, 12),全部必填——刻意沿用完整版的章節編號讓兩版可對照。每條規則行內加 `(依據:PR comment §X / lint rule id)`;每條規則帶 `[H]/[M]/[L]` confidence badge;缺資料寫 `_TODO: 需要 XXX_` 不編造;輕量版規則上限 **15 條**(超過代表沒取捨);無法被 linter 偵測且嚴重度 < high 的不入規範。

---

## 1. Executive Summary

<!-- ai-fill: 3-5 行,新人 30 秒讀完。內容:本 standard 涵蓋什麼語言+框架、共 N 條規則、最常違反的 top 3 -->

<3-5 行說明>

> **TL;DR:** <一句話:這份 standard 解決什麼具體的 review 口水戰>

---

## 2. Language Scope

<!-- ai-rule: 必含語言版本 + 主要框架。版本太舊(>2 年)要在 confidence 標 L 並列升級風險 -->

| Item | Value | Confidence |
|---|---|---|
| Language | <e.g. TypeScript 5.4> | **[H]** |
| Frameworks | <e.g. React 18, Next.js 14> | **[H]** |
| Linter | <e.g. ESLint 9 + typescript-eslint> | **[H]** |
| Formatter | <e.g. Prettier 3> | **[H]** |

---

## 3. Rules(top 10-15)

<!-- ai-rule: 每條規則必含 good/bad 對照 + linter rule id(或 TODO 找對應)+ enforcement 層級。Severity 三級:error / warning / info -->

### CS-001 · Severity **error** · Enforcement **lint** · **[H]**

- **Rule:** <一句話描述>
- **Rationale:** <為何重要 + 從哪個 PR comment 歸納>
- **Linter rule id:** `@typescript-eslint/no-explicit-any`
- **Source:** PR comment §XX (出現 8 次)

**Good:**
```ts
function fetch<T>(url: string): Promise<T> { ... }
```

**Bad:**
```ts
function fetch(url: any): any { ... }
```

### CS-002 · Severity **warning** · Enforcement **pre-commit** · **[M]**

...

---

## 5. Enforcement Matrix

<!-- ai-rule: 每條規則都要有 enforcement 落點 — lint / pre-commit / review / doc-only 之一,無落點視為純廢話 -->

| Layer | Tool | Fail policy | Notes |
|---|---|---|---|
| **CI lint** | <ESLint job name> | fail on error | block merge |
| **Pre-commit** | husky / lefthook | fail on error | local-only |
| **Review** | code-review-checklist | reviewer 判斷 | nit 可拒絕 |
| **Doc-only** | this file | reviewer 引用 | 無自動擋 |

---

## 10. Decision Log(key 2-3 條)

<!-- ai-rule: 每條必含 chosen + 至少 1 個 rejected + 拒絕原因 -->

| Date | Decision | Options | Chosen | Rejected why | Confidence |
|---|---|---|---|---|---|
| YYYY-MM-DD | Formatter 選擇 | Prettier / Biome | Prettier | Biome 工具鏈太新、IDE 整合不足 | **[H]** |

---

## 12. Confidence & Sources & TODO

- **整份 standard 最低 confidence 規則:** <列出所有 [L] 與 [M] 規則>
- **Fabricated assumptions(推測但 input 未明說):**
  - <假設 1>
- **Highest-value next input:** <下一份最該補的 PR comment 主題 / production incident 史>

### TODO(缺資料)

- _TODO: 需要 CS-007 對應 linter rule id_

---

> [!CAUTION]
> **輸出前 AI 自檢:**
> - [ ] 6 段 H2 章節齊全(編號 1, 2, 3, 5, 10, 12,刻意不連號)
> - [ ] 規則數量 ≤ 15(超過代表沒取捨)
> - [ ] 每條規則帶 inline `[H/M/L]` badge + good/bad 對照 + linter rule id
> - [ ] 每條規則有 enforcement 層級(不是純文件建議)
> - [ ] Decision Log ≥ 1 條,每條有 rejected reason
> - [ ] 無 YAML / JSON schema 輸出(standard 是給人讀的 markdown)

Practice · 換你試做

先用自己的話交代素材,不需要先學會工程術語

確定的就寫,不確定的留白。下一步要做的是請 Agent 找缺口,不是讓它替你猜一套合理答案。

可以先留白;複製提示詞後再到 Coding Agent 裡補充。

AI Practice · 手動三步

先問、再寫、最後審,不把整條流程鎖死

每一步都是獨立工作包。你可以停下補資料、修改限制或重做某一步,不需要服從固定的 Agent 接力流程。

STEP 01

只找阻擋文件成立的未知

先補會改變範圍、判斷或驗收結果的資訊,不急著寫文件。

我要製作「Coding Standard · 編碼規範」。先不要產出文件。

請根據我的素材,找出會影響這份文件正確性或可執行性的未知事項,一次最多問 5 題。

每題請包含:
1. 問題
2. 為什麼現在必須知道
3. 它會影響哪個章節或決定

已經回答的事不要重問;可以延後的事標成「待決策」;不要替我猜答案。

本文件的核心章節:Executive Summary、Language Scope、Rules(top 10-15)、Enforcement Matrix、Decision Log(key 2-3 條)、Confidence & Sources & TODO

複製後,請在標示位置貼上自己的素材。

Review · 自己驗收

文件存在,不代表下一個角色真的能使用

逐條檢查 Agent 的輸出。人類負責需求、限制與驗收,也必須能說明重要結論從哪裡來。

CHECKED0 / 6
NEXT HANDOFF

帶著這份文件,繼續到「PR Template · PR 模板」

下一張卡會接住新的決策問題;不用一次把整條 SDLC 全做完。

前往下一張卡