driving-work-to-donelisted
Install: claude install-skill HsuanYuLee/polaris
# driving-work-to-done — 一件工作、一個入口、一個下一步
三支 skill 各做一站的事:`refinement` 簽下成功的定義,`engineering` 施工,`verify-ac`
判定。**它們都不決定下一步是什麼**——那寫在這裡,只寫在這裡。
一份工作有兩種成功條件,它們住在不同地方:
- **這張單獨有的**(acceptance criteria)→ 進 `refinement` 凍結的 fence。
- **這一類工作共用的**(definition of done)→ 由領域知識帶進來,見〈載入領域知識〉。
把共用的那份寫進每一張單的 fence,等於每次都重簽同樣幾行不承載新資訊的東西。
## 一、有工作進來:要不要立案
判準只有一條:**有沒有「怎麼算成功」需要人簽字。**
| 這件事 | 立案? |
|---|---|
| 查一下、說明一段程式、跑個既有測試 | 否。什麼都沒改,沒有要簽的東西 |
| 會改到程式碼或行為——不論多小 | **是** |
| 不確定 | **是**。立案的成本遠低於做完才發現目標不對 |
**只讀的問題不走這條**,其餘都走。以前這裡有一格是「改 typo、調一個顯然的常數 → 否,
成功的定義不會有爭議」,拆掉了:那一格的判準是「這件事夠小」,而那是每次都由當事人自己
判、每次都會判得更寬的東西。
**把判斷與依據說出來**,一句話就夠,讓人能當場推翻。不立案的到此為止,直接把事做完。
### 手上正在做別的事,但長出了一個不能消失的東西
開發途中會問出、查出、撞出只有當下知道的東西。停下來簽一張正式的單太貴——assertion 此刻也
簽不出來,因為怎麼算成功還沒想清楚。丟著又會消失:一個修正留在一個到不了別人手上的
地方,跟沒有那個修正是一樣的(2026-08-07 真的發生過,同一個 bug 因此咬了兩版)。
所以有第三條路:**開一張種子單,然後回去做你原本在做的事。**
開單那一刻要回答兩件事:**這是哪一種單**,以及**這件事有沒有人已經記過了**。
- **種類自己宣告**,開單那條路不從名字或內容推。舉發實作途中撞到的問題,跟開發一個新
功能,問得出答案的東西不一樣——撞到的人當下就知道自己是誰、剛剛在讀哪個檔,而想加
新功能的人沒有「撞到」這件事,那兩格硬填會填出一個編的。
- **舉發那一種開之前會看到撞到了哪幾張**,並且要對每一張寫下一句判斷。**判斷的內容不
決定開不開得成單**——說「都不是同一件」照樣開得出來。擋人的只有「沒有回答問題」。
```bash
bash .claude/skills/refinement/scripts/open-seed-issue.sh \
--issues issues --namespace <命名空間> --slug <名字> --kind report \
--who <誰、在做什麼工作時撞到的> --where <撞到的檔案> \
--what <做什麼> --when <什麼時候要> --why <想解決什麼> --how <拿什麼測> \
--note '<前因後果>' [--vs <單號>=<判斷>]...
```
新功能那一種是 `--kind feature`,不問 `--who` 與 `--where`,也不查重。跑 `--help` 看
兩種各要哪幾格。
**這幾條規矩住在哪一份,看這件工作落在誰身上。** 落在