← ClaudeAtlas

driving-work-to-donelisted

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