check-your-own-worklisted
Install: claude install-skill HsuanYuLee/polaris
# check-your-own-work — 交出去之前,先對一次自己寫的東西
**這不是一道關卡。** 它不回 PASS/FAIL,也不阻止任何後續動作。它產出一份 finding 清單,
而那份清單的價值完全來自**它在同一輪裡被處置掉**——一份沒有人動的報告,跟沒有報告一樣。
八問不是想出來的。前六問是從 829 則真人 review 意見逆推出來的六類反覆缺陷,而其中四類
**完全不需要任何領域知識就避得掉**:它們是「我沒有把自己剛寫的東西跟自己剛寫的宣稱對一次」,
不是「我不知道這個框架怎麼寫」。
**第七問的出處不同,要分開說。** 它來自 2026-08-27 一組十二則意見——那一批走了六輪 review,
而八則 SWE 通則裡有五則��同一個根因:拿掉一個機制,只補上它看得見的那一半。它不在 829 則
那個統計裡,所以不要把它讀成「第七類反覆缺陷」——它是一類,但樣本只有一批。
**第八問的樣本更薄,只有一批十二則。** 那一批歸出四個根因,其中三個前面七問都抓不到:
一個新加的測試檔沒有任何 CI 會跑、301 行另一種語言的測試設施在一個零先例的 repo 裡、
以及三支既有測試對唯一的行為改變全綠(第三個由第六問放寬管轄接手)。**兩問共用同一次
搜尋**,所以它們是一問不是兩問。同樣不要把它讀成一個統計結論。
## 先把材料撈出來
```bash
bash .claude/skills/check-your-own-work/scripts/collect-self-check-inputs.sh
bash .claude/skills/check-your-own-work/scripts/collect-self-check-inputs.sh --repo <path> --base <ref> --pr <number>
```
三個參數都可以不給:repo 預設是當下的目錄,base 自己去問 `origin/HEAD`(問不到就依序試
`main`/`master`/`develop`),PR 自己去問 `gh`。**它唯讀,不對外寫入任何東西。**
它逐問印出那一問需要的輸入,**拿不到的那幾問指名說出為什麼拿不到**,最後印
`ANSWERABLE: n/8`。這一行是整支腳本存在的理由:一份只答了兩問的自檢,讀起來跟答滿八問的
一模一樣,所以它要說出自己少了哪幾問。
**答不出不是通過。** 沒有 `gh`、沒有 PR、沒有上一輪意見、這個 repo 一份規範都沒有、diff
是空的——這五種都是常態,不是錯誤,但它們各自代表「這一問沒有答案」,不代表「這一問沒事」。
## 八問
### 一、我寫下的每一句宣稱,在 diff 裡都找得到對應的改動嗎
宣稱不只是 PR 描述。commit message、changeset、註解、docstring、型別宣告、變數名——**每一句
描述性的話都是產出的一部分,不是旁白**。它對讀的人承諾了某件事,而承諾與行為是分開演化的:
先寫下承諾,做的過程中改了做法,然後沒有回頭改那句話。
沒有東西會紅。編譯器不看,測試不看,只有下一個依它行事的人會踩到。
標本:四個 PR 各自宣稱有一組 harness 檔案,那些檔案不在 diff 裡;同時各帶一個宣告某個套件
要發版的 changeset,而那個套件一行都沒動。
### 二、我碰到的這些檔案類型,這個 repo 自己的規範說了什麼
**從 repo 現場讀,不從記憶讀。*