swe-knowledge

Solid

軟體工程這一類工作「怎麼算 done」的通識:改動住在一條 branch 上、有一個 PR、判定過才 進預設分支、push 之前本機跑完跑得動的驗證。由 driving-work-to-done 在判定一件工作會改到 程式碼時載入。很少、扁平、不含任何一家公司或一個專案特有的東西。 driving-work-to-done 判定這件工作會改到程式碼、要進版控時載入。 不用於:不會產生程式碼變更的工作(報告、調查、文件、資料分析)——那些沒有這裡的 完成條件,走 `--pack none`。 不用於:某一家公司或某一個專案特有的規則(codecov 門檻、stage 部署流程、ticket 命名)。 那些在各自的公司 pack 裡,見〈跟公司 pack 的關係〉。

AI & Automation 5 stars 0 forks Updated today MIT

Install

View on GitHub

Quality Score: 83/100

Stars 20%
26
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# swe-knowledge — 軟體工程的 Definition of Done 這裡放的是**所有增量共用**的完成條件。跟每張單獨有的驗收條件(acceptance criteria)分得很 開:AC 寫在那張單凍結的斷言裡,DoD 寫在這裡。**一張單可以通過全部 AC 卻沒有 done**—— 斷言全綠但改動還躺在預設分支上、沒有任何人看得到它,就是那個情況。 所以這幾條不要抄進任何一張單的凍結區。抄進去等於每張單都重簽一次同樣幾行不承載新資訊的 東西,而漏抄的那一張就靜默地少了一條完成條件。 ## 五條 1. **改動住在一條 branch 上,不躺在預設分支。** 開的時機是「判定要立案之後、動手之前」—— 一個還沒開工的成功定義直接躺在預設分支上,等於它已經是既成事實。 2. **有一個 PR。** **PR 開出來就是實作完成**:它是那份改動變成可被別人看見、可被判定的 東西的那一刻。沒有 PR 的改動不管本機多綠都還沒 done。 3. **判定過才進預設分支。** 進去的路徑是那個 PR,不是直接推。 4. **push 之前,本機跑完跑得動的驗證。** type check、lint、單元測試、受影響路徑的冒煙。 把 CI 當第一道防線等於把 reviewer 當驗證工具。 5. **reviewer 提的每一條,處置回到那條意見上。** 不是「有沒有處理」——是**提出者拿不拿 得到那個處置**。他看的是他留言的地方,回在別處他收不到。 第 2 條有一個這個 repo 自己的教訓:2026-08-03,「開 PR」這個能力在腳本歸位時被刪掉,因為 它在三站裡沒有主人;43 分鐘後有人寫了一句跟腳本矛盾的散文把洞蓋住,於是「PR 算不算完成」 有兩個互相矛盾的答案在流通。現在它有主人了,就是這一條。 第 5 條是同一個形狀又發生了一次。2026-08-11:一個 PR 收到三位 reviewer 的意見,全部查證、 修掉、斷言重跑全綠,也回了另一個系統的訊息串——**但那個 PR 上一則回覆都沒有**,是人自己 發現的(「我好像沒有在 PR 上看到你怎麼處理的」)。偵測有主人(誰欠我回覆、誰欠我審查, 都有東西在算),**動作沒有主人**。而「還沒被 approve」這個狀態,跟「我還沒動手」長得 一模一樣。 ## 在程式碼裡,「你寫下的話」長成什麼樣子 `engineering` 那條「送審之前把自己寫下的話跟行為對一遍」在這一類工作裡有具體形狀。這幾樣 都是對行為的主張,都會跟實作分開演化,而編譯器與測試都不會抓: - **doc-comment 的第一句**——通常是最早寫下的,也最可能是舊設計的化石。 - **型別宣告**(參數型別、回傳型別、介面欄位)——宣告成數字就不能送出字串。它是契約, 不是提示;改了寫入路徑要回頭看宣告。 - **名字**——一個叫「處理中」的狀態要真的在事情處理中的時候是真的。 - **形狀**——把等待用的結構套在一個不會等待的呼叫上(例如包住一個同步呼叫),會讓一段 沒有等待的程式碼長得像在等待,而讀的人依樣相信它。 第 4 條那句「本機跑完跑得動的驗證」的另一半就是這個:**跑得動的用跑的,跑不動的用讀的。** 一句說謊的 doc-comment 跑不出紅燈,它只會在下一個人依它行事的時候生效。 所以寫的時候就要讓它值得被讀: - **新增或修改的 function 要有 doc-comment**(TSDoc / JSD...

Details

Author
HsuanYuLee
Repository
HsuanYuLee/polaris
Created
4 months ago
Last Updated
today
Language
Shell
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Solid

check-your-own-work

Before handing your own change over — opening a PR, asking for review, saying "done" — check it against six questions that come from what reviewers actually caught: claims that do not match the diff, the repo's own rules not applied, half-done pattern changes, runtime behaviour asserted from reading source, last round's comments still unaddressed, and assertions that cannot fail. Use when you are about to hand your own work over, or when someone asks you to self-check, double-check, or go over your change before submitting. 交出自己的改動之前——開 PR、找人 review、說「做完了」——先對一次自己寫的東西。 六問來自 review 真的抓到的東西,不是想像出來的清單。 不用於:看別人的 PR(那是 code review,主語是別人的改動)。 不用於:判定某個交付達不達標——這支不判紅、不擋人,它產出一份要被處置的清單。

5 Updated today
HsuanYuLee
Code & Development Solid

recap

收工盤點:總結這段工作實際做了什麼、對使用者有什麼差別、該同步的東西同步了沒 (**翻譯、兩份 README、測試數、文件**),**把這批東西 commit 進去**(逐檔指名,不 push), 最後收斂成一段結論(淨結果/能不能出、下一件、哪裡沒把握)。 觸發時機:使用者說「總結一下」「這次做了什麼」「收工」「盤點」「recap」, 或一段開發告一段落時要求回顧、要求檢查有沒有漏同步。 不要觸發:單一問題的回答、程式碼審查(那是 /code-review)、寫給外部使用者看的 release notes(本 skill 的讀者是自己人,講的是工程事實不是行銷文案)。

1 Updated 2 days ago
sainteye
Data & Documents Listed

readable-output

Use when producing text a person will read - progress reports, summaries, status updates, commit messages, PR descriptions, documents - especially when the source is compressed technical notes or a long work session. Not for machine-read output (JSON/JSONL logs, structured data), code, config files, or code comments.

1 Updated 3 days ago
BBBB1231