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 寫在那張單凍結的 assertion 裡,DoD 寫在這裡。**一張單可以通過全部 AC 卻沒有 done**—— assertion 全綠但改動還躺在預設分支上、沒有任何人看得到它,就是那個情況。 所以這幾條不要抄進任何一張單的凍結區。抄進去等於每張單都重簽一次同樣幾行不承載新資訊的 東西,而漏抄的那一張就靜默地少了一條完成條件。 ## 五條 1. **改動住在一條 branch 上,不躺在預設分支。** 開的時機是「判定要立案之後、動手之前」—— 一個還沒開工的成功定義直接躺在預設分支上,等於它已經是既成事實。 **那條 branch 是自己建的。** 改動只推到自己建的 branch。別人建的、或有別人的 PR 在用的 branch,任何情況都不推——推不推得動、用不用 force 都一樣。要在別人還沒併的 branch 之上 做事,從它切一條自己的,PR 的 base 指向它。 **所以別人的 branch 推不動的時候,那不是要解決的問題。** 它從一開始就不是推的對象, 沒有「換個方法推上去」這一題。2026-09-10 的實例:一顆 PR 的 base 是同事還沒併的 branch,遠端規則讓兩條都推不動,討論裡出現了「那條也一樣推不動」——那條本來就不是我們 會去推的東西。 2. **有一個 PR。** **PR 開出來就是實作完成**:它是那份改動變成可被別人看見、可被判定的 東西的那一刻。沒有 PR 的改動不管本機多綠都還沒 done。 3. **判定過才進預設分支。** 進去的路徑是那個 PR,不是直接推。 4. **push 之前,本機跑完跑得動的驗證。** type check、lint、單元測試、受影響路徑的冒煙。 把 CI 當第一道防線等於把 reviewer 當驗證工具。 5. **reviewer 提的每一條,處置回到那條意見上。** 不是「有沒有處理」——是**提出者拿不拿 得到那個處置**。他看的是他留言的地方,回在別處他收不到。 **處置有四種:照做、回覆說明為什麼不照做、拒絕、另外開單。照做不是預設。**「處置」這個 字是中性的,而它常被讀成「照做」。一條意見可以是對的、而仍然不該在這一輪做;也可以是 這個 repo 根本不做那件事。讀成「照做」的話,這一條會把每一則意見都變成一次施工。 **每一串都算,nit 也算。** 「妥善處理」的量法是:每一串的最後一則是作者,而且那一則說出了 四種處置裡的哪一種。標成 nit 的意見只是提出者在說「這條不擋你」,不是在說「這條不用回」。 第 2 條有一個這個 repo 自己的教訓:2026-08-03,「開 PR」這個能力在腳本歸位時被刪掉,因為 它在三站裡沒有主人;43 分鐘後有人寫了一句跟腳本矛盾的散文把洞蓋住,於是「PR 算不算完成」 有兩個互相矛盾的答案在流通。現在它有主人了,就是這一條。 第 5 條是同一個形狀又發生了一次。2026-08-11:一個 PR 收到三位 reviewer 的意見,全部查證、 修掉、assertion 重跑全綠,也回了另一個系統的訊息串——**但那個 PR 上一則回覆都沒有**,是人自己 發現的(「我好像...

Details

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

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Listed

check-your-own-work

Before handing your own change over — opening a PR, asking for review, saying "done" — check it against eight 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, assertions that cannot fail, a mechanism you removed whose jobs nobody carried over, and something you added that nothing runs or that this repo has no precedent for. 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
AI & Automation Solid

framework-release

判定通過之後把東西送出去的那一段:把分支併進 main、壓版號、視目的地同步到 template repo、把本機接回釋出後的狀態。它不判斷該不該出貨——那是 verify-ac 寫在交付紀錄裡的事。 某張單已經judged PASS、交付紀錄寫好了,要真的出貨的時候。例如「出貨吧」 「釋出」「壓版本」「同步到 template」,或剛從 verify-ac 交出來。 也用於:只想先看它打算做什麼(預設就是預覽,不加 --execute 不會動任何東西)。 不用於:還沒有交付紀錄(先走 verify-ac)、判定還沒過(那是 verify-ac 的事)。

5 Updated today
HsuanYuLee
AI & Automation Listed

driving-work-to-done

把一件工作從「有人說了一句話」帶到「judged 過的交付」:先判斷要不要立案,再決定現在 該在 refinement / engineering / verify-ac 哪一站、什麼時候換站,載入說明「這類工作怎麼算 done」的知識,然後一路推進到收斂或撞上四種已宣告的停點之一。任何會改變程式碼或行為的 請求都從這裡進,使用者不需要知道這個名字。唯讀的查詢與說明不走這裡。 有人帶著一件要做的事出現時的第一站,不論他有沒有說出任何指令名稱。例如 「幫我做 X」「這個壞了要修」「想重構 Y」「繼續」「接著推」。 也用於:不知道現在在哪、不知道下一步是什麼、手上有多張單不知道先做哪一張。 不用於:唯讀的查詢與說明(「這支腳本在幹嘛」「查一下 X」)——那些沒有「怎麼算成功」 要簽,直接回答。

5 Updated today
HsuanYuLee