Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/HsuanYuLee/polarisnpx agentmods add skills/hsuanyulee/polaris/driving-work-to-doneWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hsuanyulee/polaris/driving-work-to-done)<a href="https://agentmods.dev/skills/hsuanyulee/polaris/driving-work-to-done"><img src="https://agentmods.dev/badge/skills/hsuanyulee/polaris/driving-work-to-done/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hsuanyulee/polaris/driving-work-to-done"><img src="https://agentmods.dev/badge/skills/hsuanyulee/polaris/driving-work-to-done.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00275 | $0.10249 |
| Opus 5 | $0.00138 | $0.05124 |
| Sonnet 5 | $0.00055 | $0.02050 |
| Haiku 4.5 | $0.00028 | $0.01025 |
Grade A, and why
driving-work-to-done scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 500 lines — stays where its author put it; the contents beside it link to each section on GitHub.
driving-work-to-done — 一件工作、一個入口、一個下一步
三支 skill 各做一站的事:refinement 簽下成功的定義,engineering 施工,verify-ac
判定。它們都不決定下一步是什麼——那寫在這裡,只寫在這裡。
一份工作有兩種成功條件,它們住在不同地方:
- 這張單獨有的(acceptance criteria)→ 進
refinement凍結的 fence。 - 這一類工作共用的(definition of done)→ 由領域知識帶進來,見〈載入領域知識〉。
把共用的那份寫進每一張單的 fence,等於每次都重簽同樣幾行不承載新資訊的東西。
一、有工作進來:要不要立案
判準只有一條:有沒有「怎麼算成功」需要人簽字。
| 這件事 | 立案? |
|---|---|
| 查一下、說明一段程式、跑個既有測試 | 否。什麼都沒改,沒有要簽的東西 |
| 會改到程式碼或行為——不論多小 | 是 |
| 不確定 | 是。立案的成本遠低於做完才發現目標不對 |
只讀的問題不走這條,其餘都走。以前這裡有一格是「改 typo、調一個顯然的常數 → 否, 成功的定義不會有爭議」,拆掉了:那一格的判準是「這件事夠小」,而那是每次都由當事人自己 判、每次都會判得更寬的東西。
把判斷與依據說出來,一句話就夠,讓人能當場推翻。不立案的到此為止,直接把事做完。
手上正在做別的事,但長出了一個不能消失的東西
開發途中會問出、查出、撞出只有當下知道的東西。停下來簽一張正式的單太貴——assertion 此刻也 簽不出來,因為怎麼算成功還沒想清楚。丟著又會消失:一個修正留在一個到不了別人手上的 地方,跟沒有那個修正是一樣的(2026-08-07 真的發生過,同一個 bug 因此咬了兩版)。
所以有第三條路:開一張種子單,然後回去做你原本在做的事。
開單那一刻要回答兩件事:這是哪一種單,以及這件事有沒有人已經記過了。
- 種類自己宣告,開單那條路不從名字或內容推。舉發實作途中撞到的問題,跟開發一個新 功能,問得出答案的東西不一樣——撞到的人當下就知道自己是誰、剛剛在讀哪個檔,而想加 新功能的人沒有「撞到」這件事,那兩格硬填會填出一個編的。
- 舉發那一種開之前會看到撞到了哪幾張,並且要對每一張寫下一句判斷。判斷的內容不 決定開不開得成單——說「都不是同一件」照樣開得出來。擋人的只有「沒有回答問題」。
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 看
兩種各要哪幾格。
這幾條規矩住在哪一份,看這件工作落在誰身上。 落在這套流程自己身上(skill、它們的
腳本、常駐規則)的話,那一份是 framework-self-dev——它說出為什麼是這兩種、查重的鍵
為什麼是檔案而不是標題。落在別的東西上的話,那個東西自己的知識說了算。
它不簽 assertion、不決定領域、不開 worktree、不碰你現在這張單。產出的單會出現在下面〈四〉
那個「接下來做哪一張」的答案裡,標成 seed:——所以它拿得給另一個 session 開工,而那個
session 從 refinement 開始。
已經在進行中的單不要重問。 同一件事往下做就是了——對已經簽過的東西再問一次是儀式, 不是把關。換成另一件會改變行為的事,才重新判斷。
二、現在在哪、下一步是什麼
不要問人,讀狀態:
bash .claude/skills/driving-work-to-done/scripts/spine-loop-state.sh where --state {issue}/.spine/loop-state.json
它會說出站別、有沒有停、還剩幾輪。任何時候不確定現在在哪就跑它——問人才是不知道 自己在哪的那個症狀。
What ships with it
16 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- scripts/lib/place_issues_by_state.py 65 KB runs code
- scripts/next-ticket-number.sh 3.8 KB runs code
- scripts/place-issues-by-state.sh 1.0 KB runs code
- scripts/record-knowledge-pack.sh 5.6 KB runs code
- scripts/selftests/next_across_issues_coverage_selftest.py 9.4 KB runs code
- scripts/selftests/next-across-issues-coverage-selftest.sh 1000 B runs code
- scripts/selftests/place_issues_nested_walk_selftest.py 5.3 KB runs code
- scripts/selftests/place_issues_ownership_selftest.py 14 KB runs code
- scripts/selftests/place-issues-nested-walk-selftest.sh 1.2 KB runs code
- scripts/selftests/place-issues-ownership-selftest.sh 834 B runs code
- scripts/selftests/record-knowledge-pack-selftest.sh 4.0 KB runs code
- scripts/selftests/resolver_exit_codes_selftest.py 4.0 KB runs code
- scripts/selftests/resolver-exit-codes-selftest.sh 1.0 KB runs code
- scripts/selftests/spine-loop-state-selftest.sh 40 KB runs code
- scripts/selftests/spine-terminal-states-selftest.sh 11 KB runs code
- scripts/spine-loop-state.sh 85 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed · +13 lines d3800b3db328
- 6d ago Changed · +72 lines 79214abc2518
- 11d ago First seen · 415 lines · 275 tokens per session scan A 9e87bc2b5200
driving-work-to-done is a skill published in the GitHub repository HsuanYuLee/polaris (5 stars, last pushed yesterday), licensed MIT. It adds 275 tokens to every session and 10,249 once invoked, about $0.0014 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
implement-improvements
Validate improvements from .turbo/improvements.md, recommend a working set tailored to what's in the backlog, and run one lane: direct fixes, investigation, or planned work. One lane per session. Use when the user asks to "implement improvements", "work on improvements", "address improvements", "process improvement…
note-improvement
Capture an out-of-scope improvement opportunity so it doesn't get lost. Use when the user asks to "note improvement", "save improvement", "track this for later", "remember this improvement", "note this idea", "log improvement", "backlog this", or "park this idea". Also invoke proactively when noticing something…
create-issue
Create a GitHub issue with a drafted title and body. Use when the user asks to "create an issue", "file an issue", "open an issue", "submit an issue", "report a bug", "file a bug report", "file a feature request", or "file a design proposal".
pick-next-issue
Fetch and rank open GitHub issues by community engagement, present the top 3 candidates, and plan implementation for the selected issue. Use when the user asks to "pick next issue", "next issue", "which issue should I work on", "top issues", "most popular issues", "prioritize issues", or "what should I work on next".
split-and-ship
Execute an approved split plan, shipping each change group separately as its own branch and PR or as sequential commits on the current branch. Use when the user asks to "split and ship", "ship the split plan", "create separate PRs", or "split changes into branches".
timeline-creator
Create HTML timelines and project roadmaps with Gantt charts, milestones, phase groupings, and progress indicators. Use when users request timelines, roadmaps, Gantt charts, project schedules, or milestone visualizations.