Skip to content
Back to skills

To Tickets

ASecurity

把計畫、規格說明或目前的對話拆成一組曳光彈 tickets,每個都宣告自己的阻塞邊,發佈到設定的追蹤器——在本機是每個 ticket 一個檔案、以文字表示邊,或在真正的追蹤器上用原生阻塞連結。

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentsgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 19, 2026

npx -y skills add shumingyang-opencode/mattpocock-skills-zh-tw --skill to-tickets --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of To Tickets?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for To Tickets
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shumingyang-opencode-to-tickets/badge)](https://www.skillsdirectory.com/skills/shumingyang-opencode-to-tickets)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: to-tickets
description: 把計畫、規格說明或目前的對話拆成一組曳光彈 tickets,每個都宣告自己的阻塞邊,發佈到設定的追蹤器——在本機是每個 ticket 一個檔案、以文字表示邊,或在真正的追蹤器上用原生阻塞連結。
disable-model-invocation: true
---

# 拆解為 Tickets

把計畫、規格說明或對話,拆成一組**tickets**——曳光彈垂直切片,每個都宣告**阻塞**它的 tickets。

Issue 追蹤器與分診標籤詞彙應該已經提供給你——如果沒有,執行 `/setup-matt-pocock-skills`。

## 流程

### 1. 收集上下文

從對話上下文中已有的內容出發。如果使用者以參數傳入一個參考(規格說明路徑、issue 編號或 URL),就把它取來,讀取它的完整內文與評論。

### 2. 探索程式碼庫(選用)

如果你還沒探索過程式碼庫,就去探索,以了解程式碼目前的狀態。Ticket 標題與描述應該使用專案的領域詞彙表詞彙,並尊重你接觸區域的 ADR。

尋找預先重構程式碼的機會,讓實作更容易。「先讓改動變容易,再做容易的改動。」

### 3. 草擬垂直切片

把工作拆成**曳光彈** tickets。

<vertical-slice-rules>

- 每個切片在每一層(schema、API、UI、測試)中切出一條狹窄但**完整**的路徑——是垂直的,而**不是**單一層的水平切片
- 完成的切片可以獨立展示或驗證
- 每個切片的大小要能放進單一的乾淨上下文視窗
- 任何預先重構都應該先做

</vertical-slice-rules>

給每個 ticket 它的**阻塞邊**——必須先完成才能開始的其它 tickets。沒有阻塞者的 ticket 可以立即開始。

**大範圍重構是垂直切片的例外。** **大範圍重構**是單一的機械式變更——重新命名欄位、重新標記共享符號——其**影響半徑**擴散到整個程式碼庫,因此單一次編輯會同時破壞數千個呼叫點,任何垂直切片都無法保持綠燈。別硬塞進曳光彈;把它排成**擴展–收縮**。先擴展:在舊形式旁邊加入新形式,讓什麼都不破壞。然後依影響半徑分批遷移呼叫點(每個套件、每個目錄一批),每批是自己的一張 ticket、被擴展所阻塞,並因為舊形式仍然存在而讓 CI 一批接一批保持綠燈。最後收縮:一旦沒有呼叫者留下,就刪除舊形式,放在一張被每個遷移批次阻塞的 ticket 中。當連批次都無法單獨保持綠燈時,保留這個順序,但讓它們共享一條集成分支,而全部批次都阻塞一張最終的整合與驗證 ticket——只有在那裡才保證綠燈。

### 4. 詢問使用者

把建議的拆解呈現為編號清單。每個 ticket 顯示:

- **標題**:簡短具描述性的名稱
- **阻塞於**:哪些其它 tickets(如果有的話)必須先完成
- **交付內容**:這張 ticket 讓之運作的端對端行為

詢問使用者:

- 粒度感覺對嗎?(太粗/太細)
- 阻塞邊正確嗎——每張 ticket 是否只依賴真正阻擋它的 tickets?
- 應該再合併或拆分任何 tickets 嗎?

反覆調整,直到使用者認可這個拆解。

### 5. 把 tickets 發佈到設定的追蹤器

發佈被認可的 tickets。**怎麼發佈**取決於 `/setup-matt-pocock-skills` 所設定的追蹤器——兩種方式下 tickets 都相同,只有阻塞邊的形狀會改變:

- **本機檔案** → 每個 ticket 在 `.scratch/<feature-slug>/issues/<NN>-<slug>.md` 下寫一個檔案,依依賴順序從 `01` 開始編號(阻塞者優先)。每個檔案的「Blocked by」列出它所依賴的編號/標題。使用下方的逐 ticket 檔案範本——每個檔案一張 ticket,絕不合成單一檔案。
- **真正的 Issue 追蹤器(GitHub、Linear、……)** → 依依賴順序(阻塞者優先)逐 ticket 發佈一個 issue,這樣每張 ticket 的阻塞邊就能引用真實的識別符。在平台有原生阻塞/子 issue 關係的地方使用它;否則把每張 ticket 的「Blocked by」設為阻塞它的 issues。除非另有指示,套用 `ready-for-agent` 分診標籤——這些 tickets 天生就可供代理認領。

處理**前沿**:任何阻塞者都已完成的 ticket。對純線性的鏈條而言,這表示從上到下。

**不要**關閉或修改任何父 issue。

<local-ticket-template>

# <NN> — <Ticket 標題>

**要建置什麼:** 這張 ticket 讓之運作的端對端行為,從使用者的視角出發——不是逐層的實作清單。

**阻塞於:** 阻擋這張票的 tickets 的編號/標題,或「無——可以立即開始」。

**狀態:** ready-for-agent

- [ ] 驗收標準 1
- [ ] 驗收標準 2

</local-ticket-template>

<issue-template>

## 父 issue

追蹤器上父 issue 的參考(如果來源是既有 issue,否則省略這個區段)。

## 要建置什麼

這張 ticket 讓之運作的端對端行為,從使用者的視角出發——不是逐層的實作。

## 驗收標準

- [ ] 標準 1
- [ ] 標準 2

## 阻塞於

- 每個阻塞 ticket 的參考,或「無——可以立即開始」。

</issue-template>

無論哪種形式,都避免具體的檔案路徑或程式碼片段——它們很快就會過時。例外:如果原型產出了一個比散文更能精確編碼決策的片段(狀態機、reducer、schema、型別形狀),就把它內嵌進去,並簡短註明它來自原型。只保留富含決策的部分——不是可運作的示範,只是重要的片段。

Files in this skill

  • SKILL.md5.5 KB
  • agents/openai.yaml146 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…