# 策展 · X (Twitter) 🔥🔥🔥🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Matt Pocock (@mattpocockuk) · 平台：X (Twitter) · 日期：2026-07-09

> 原始來源：https://x.com/mattpocockuk/status/2075218406266036236

## 中文摘要

Matt Pocock 發布 skill 儲存庫教學展示端到端開發流程。

**核心教學內容**
Matt Pocock 針對其廣受歡迎的 skill 儲存庫推出首份教學，詳細示範如何運用核心 skill 完成開發工作流，包含：
- `/grill-with-docs`：透過訪談釐清想法，並將討論沉澱為文件。
- `/to-spec`：將需求轉化為規格。
- `/to-tickets`：自動生成任務單。
- `/implement`：執行程式碼實作。
- `/code-review`：自動審查程式碼。

**安裝與設定指引**
根據影片示範，使用者可在 Visual Studio Code 終端機完成安裝與設定：
1. 執行安裝指令：`npx skills@latest add matpocock/skills`。
2. 系統會列出 38 個 skill，使用者需選擇安裝範圍（Project 或 Global）及安裝方式（Symlink）。
3. 安裝時請留意「Security Risk Assessments」表格，確認各 skill 的風險等級。
4. 執行 `setup-mat-pocock-skills` 指令完成專案配置，系統會自動在 `CLAUDE.md` 檔案中加入相關連結。

<video src="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1783625254744-24lgpdci.mp4" poster="https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/efba588f34582644.jpg" controls playsinline preload="metadata" style="max-width:100%;height:auto;display:block;margin:1rem 0"></video>
> 一名講者在影片中示範如何安裝與設定他開發的 AI skill 庫。

**技術架構與應用**
影片中展示了結合 `Claude Code` 與 `Opus 4.8` 的開發情境，並揭露了詳細的 Context Usage 統計：
- 系統提示詞佔 2.2k token，系統工具佔 5.3k token，skill 佔 660 token，整體 Context Window 使用率極低，保留了 98.7%（約 987.5k）的空間供任務使用。
- 透過將大型任務（如 GitHub 專案中的 PRD 拆解）細分為多個單一 Context Window 的執行單元，能有效管理複雜的開發流程。
- 更多詳細資訊可參考 [AI Hero 專屬頁面](https://www.aihero.dev/s/mhcZOr)。

## 媒體內容

**一名講者在影片中示範如何安裝與設定他開發的 AI skill 庫。**

**影片中的 Prompt 與操作**

Prompt（00:58）：

```
npx skills@latest add matpocock/skills
```

Prompt（08:49）：

```
set it up with Jira
```

Prompt（08:54）：

```
local markdown
```

Prompt（09:13）：

```
Defaults is fine
```

Prompt（10:10）：

```
Single context
```

Prompt（11:54）：

```
How do I get started?
```

Prompt（14:03）：

```
我想移除此 CLI 中大部分的內部工具，使其僅供公開使用。我想將此儲存庫簡化一些。
```

原文：I would like to remove most of the internal tooling on this CLI to make it just public-facing. I want to just take this repo down a notch.

Prompt（17:05）：

```
/implement this
```

Prompt（20:25）：

```
/to-tickets
```

Prompt（20:50）：

```
Do it in one slice instead
```

Prompt（23:27）：

```
@tickets.md
```

Prompt（23:31）：

```
/implement @tickets.md
```

操作步驟：

1. （00:55）於終端機輸入安裝指令
2. （02:04）選擇安裝套件
3. （03:20）使用空白鍵選取技能
4. （04:05）選擇安裝範圍
5. （05:15）選擇安裝方式
6. （05:40）確認安裝
7. （07:18）執行設定指令
8. （10:24）檢視設定後的檔案內容
9. （11:41）呼叫 ask-mat 技能
10. （13:59）呼叫 grill-with-docs 技能
11. （20:25）呼叫 to-tickets 技能
12. （23:28）呼叫 implement 技能

**逐字稿**

- `00:00` 哈囉各位朋友。我突然想到，我其實從來沒有為我的 skill 儲存庫製作過正式的教學。（Hello friends. It occurs to me that I've never actually put together a proper tutorial for my）
- `00:05` 在錄製這段影片時，這個儲存庫已經累積了 16 萬 2 千個星星。我們有 750 萬次下載，但我卻從未為它製作過教學。（skills repo. At the time of recording, this repo is up to 162,000 stars. We have 7.5 million）
- `00:11` 我經常收到這類問題，像是：（downloads and I've never made a tutorial for it. I get questions all the time like,）
- `00:15` 我應該以什麼順序使用這些 skill？我該如何安裝它們？我該如何設定（what is the sequence I should use these skills in? How should I install them? How should I set）
- `00:19` 它們？所以這支影片將會帶領大家走一遍使用這些 skill 時的主要流程。（them up? So this video is going to be a walkthrough of the main flow you use when you're）
- `00:23` 我們不會探討進階內容。我們也不會去看（using these skills. We're not going to look at the advanced stuff. We're not going to look at）
- `00:27` 那些新功能。我們只會專注於主要流程，也就是你入門所需要的內容。（the new stuff really. We're just going to focus on the main flow, the stuff you need to get started.）
- `00:32` 為了帶領大家進行操作，我將使用我的一個工作儲存庫，也就是 AI Hero CLI。（To walk you through this, I'm going to be using one of my work repos, which is the AI Hero CLI.）
- `00:37` 這是一個命令列介面，驅動了我在課程中使用的許多練習。（This is the command line interface that drives a lot of my exercises that I use on my courses.）
- `00:42` 我從未真正設定過我的 skill 來配合這個儲存庫使用，所以現在是一個絕佳的機會。如果你想（I've never actually set up my skills to work with this repo, so now is a great chance. If you want）
- `00:46` 在一個全新的專案上設定我的 skill，你只需要這樣做，差別在於要在一個空的目錄中執行。（to set up my skills on a brand new project, you just do this, except you do it in an empty directory.）
- `00:50` 所以無論你是使用既有的程式庫還是全新的程式庫，操作方式都是一樣的。（So it works the same whether you're using a brownfield code base or a greenfield code base.）
- `00:54` 我現在要開啟命令列介面，並輸入 npx skills at（I'm going to open up the command line interface here, and I'm going to type npx skills at）
- `00:59` latest at matpocock forward slash skills。這假設了幾件事。它假設你（latest at matpocock forward slash skills. This assumes a couple of things. It assumes that）
- `01:05` 已經安裝了 Node.js。這個 npx 來自 Node.js，它會執行來自 Vercel 的 skills.sh 命令（you've got Node.js installed. This npx comes from Node.js, and it runs the skills.sh command）
- `01:13` 列安裝程式。這基本上會安裝一個名為（line installer from Vercel. What this basically does is it installs a GitHub repo of skills called）
- `01:19` matpocock skills 的 GitHub 儲存庫，並且可以帶你完成幾個設定問題。它首先說需要（matpocock skills, and it can walk through a few setup questions here. It first says it needs）
- `01:24` 安裝下列套件。沒問題，這對我來說沒問題。然後它執行了幾件事，（to install the following packages. Yes, that seems fine to me. And then it did a couple）
- `01:28` 我們現在得到了一長串我們可以安裝的 skill 清單。它在這裡找到了（of things, and we now have a long list of all the skills that we could install. It found）
- `01:32` 38 個 skill，數量很多，你可以看到如果我上下捲動，它們被分為（38 skills here, which is a lot, and you can see if I scroll up and down that they're in）
- `01:37` 兩組。我們有 matpocock skills，然後還有其他 skill。所以 matpocock（two groups. We've got the matpocock skills, and then we've got other skills. So the matpocock）
- `01:42` skills 是我認可的 skill，我認為它們品質夠好，可以（skills are the ones that I have blessed as the skills that I think are good enough to be）
- `01:47` 公開使用。其他的則是我目前正在實驗的，未來可能會刪除。（public-facing. The other ones are ones that I'm experimenting with right now and may delete）
- `01:52` 我建議你這樣做：移動到最上方，你可以（in the future. What I recommend you do is you go to the top here, and you can kind of）
- `01:56` 上下移動。我必須說，這部分有點故障。如果你在這裡按下空白鍵，（go up and down. It's kind of broken, I have to say. And if you press space here, and you）
- `02:01` 你應該會看到如果你往上捲動，好的，它們現在都被選取了。你按下空白鍵，然後（should see that if you scroll up, okay, they're now all selected. You press space, and then）
- `02:06` 按下 Enter 鍵，現在你就選取了所有官方的 skill。我對（you press return, and now you've selected all of the official skills. I'm not terribly）
- `02:12` Vercel 的 CLI 並不是很滿意，所以我未來可能會更換它，或者甚至直接發布我自己的。（happy with Vercel's CLI here, so I may change it in future or maybe even just ship my own.）
- `02:16` 但目前為止，這已經是最好的選擇了。有一點不錯的是，它會設定（But for now, that's as good as it gets. One thing that is good is that it will set up）
- `02:21` 你的 skill 以配合任何 Agent 使用。我使用 Claude Code，但你可以往下（your skills to work with any agent. So I use Claude Code, but you can go down here）
- `02:26` 選擇你想要的那些。我正在使用空白鍵來選取。我想預設情況下，（and sort of just select the ones that you want. I'm using space to select. I think by）
- `02:31` 如果我稍微縮小一點，它支援上面所有這些通用的 skill。例如 Cursor、（default, if I zoom out a touch, then it supports all of these universal ones up here. So cursor,）
- `02:37` codex、client 等等。但任何使用像是 Claude Code 這類 skill 的工具，（codex, client, etc. But anything that uses like Claude skills, such as Claude Code, then）
- `02:42` 你都需要自己設定。所以我現在要按下 Enter 鍵，它現在應該已經設定好（you need to set up yourself. So I'm going to press return here, and it should now be configured）
- `02:47` 為 Claude Code 安裝我的 skill 了。安裝範圍定義了你的 skill（to set up my skills for Claude Code. The installation scope defines where your skills）
- `02:51` 安裝在哪裡，是只安裝在當前目錄，還是（are installed, whether they're installed just in the current directory or whether they're）
- `02:55` 全域安裝。這取決於你們團隊的慣例。如果你在團隊中工作，（global. This will depend on what your team's conventions are. If you're working in a team,）
- `02:59` 我會建議專案層級的 skill 是正確的做法。這樣一來，每個人在每個專案上都使用（I would say that project skills are the right way to go. That way, everyone is using the）
- `03:02` 相同的 skill 組合，這意味著你們可以一起為這些 skill 做出貢獻，（same skill set on every project, and it means that you can contribute to the skills together）
- `03:07` 並共同做出決策。但如果你像我一樣是獨自開發者，處理自己的東西，全域安裝也是可以的。（and make those decisions together. But global is fine if you're just a solo developer working）
- `03:12` 所以我現在要按下 Enter 鍵，將它安裝在我的家目錄中，（on your own stuff like I am. So I'm going to press return here, install it in my home directory,）
- `03:16` 並且我會選擇 symlink 作為推薦方式。這裡的選擇是關於是否要將它複製到（and I'm going to choose symlink as the recommended way. The choice here is whether you copy it to）
- `03:22` .agents 資料夾以及 .claude 資料夾，這並不是一個好的做法。（the .agents folder as well as the .claude folder, and it's kind of not a nice way to do it.）
- `03:28` Symlink 是比較好且簡單的做法。所以我甚至不會在這裡猶豫。直接選擇（Symlink is just the nice, easy way to do it. So I wouldn't even make a decision here. Just choose）
- `03:32` symlink。它現在會給你一個你正在安裝的所有項目的摘要。看起來（symlink. So it now gives you a summary of all the things that you're installing here. There seems）
- `03:36` socket 似乎有一個關於 spec 的警示。我稍後會再看看。但沒錯，我們可以繼續（to be an alert on socket about to spec. I'll take a look at that later. But yes, we can proceed）
- `03:41` 進行安裝，現在它已經安裝了所有的 skill。這意味著我可以執行（with installation, and it's now installed all of the skills. This means then that I can run）
- `03:45` Claude Code，或者無論你使用什麼 Agent，我現在要建立一個新的，所以我只是要（clawed inside here, or whatever your agent is, and I'm going to create a new, so I'm just going）
- `03:51` 說 hello 來離開這個 Agent 檢視。現在，根據你使用的 harness，這（to say hello to get out of this agents view here. Now, depending on the harness you're using, this）
- `03:55` 會以不同的方式顯示。但在 Claude Code 上，我可以按下斜線，現在我可以看到（will show up in different ways. But on Claude Code, I can press forward slash, and I now see that I）
- `04:00` 我有幾個可用的 skill。我有 grill me、grilling、wayfinder、grill with docs 等等。東西非常多。（have a few skills available to me. I've grill me, grilling, wayfinder, grill with docs, etc. Loads of）
- `04:06` 現在，我的 skill 與市面上許多其他 skill 庫的區別在於，（stuff. Now, the difference between my skills and lots of other skills repos that are out there）
- `04:10` 我的 skill 大多是使用者呼叫的。這意味著如果我在這裡執行 context，我的 skill 中並沒有多少（is my skills are mostly user invoked. That means that if I run context here, not many of my skills）
- `04:18` 實際會滲入到描述中，而且我擁有的描述非常簡短且（actually leech their way into the description, and the descriptions I have are quite short and）
- `04:24` 精確。所以這意味著即使我們下載了我所有的 skill，這些 skill 也只佔用了（precise. So that means that even though we've downloaded all of my skills, the skills only take）
- `04:29` 這裡 660 個 token。所以在 context 負載方面非常、非常輕量。好了，我們有了這些 skill。現在我們（up 660 tokens here. So very, very light in terms of context load. So okay, we got the skills. Now what）
- `04:36` 要做的是執行 setup matpocock skills，這會做幾件事。我的 skill（we have to do is we have to run setup matpocock skills, and this will do a few things. My skills）
- `04:42` 依賴於儲存庫內的一些設定，而這會為你處理幾件事。第一件事（rely on some configuration inside the repository, and this does a few things for you. The first thing）
- `04:50` 是它意味著你需要使用一個問題追蹤器。我們將要儲存規格。我們將要儲存（is it means you need to use an issue tracker. We're going to be saving specs. We're going to be saving）
- `04:56` 工單，而且我們需要將它們儲存在某個地方。你在這裡有無限多的選擇。你可以使用（tickets, and we need to save them somewhere. You've got kind of an infinity of choices here. You can use）
- `05:01` GitHub，你可以使用本地的 markdown，或者你真的可以使用任何東西。這個 skill 的運作方式（GitHub, you can use local markdown, or you can literally use anything. The way that the skill works）
- `05:08` 是它會查看你的本地設定，所以你可以為 Jira 進行設定，你可以為（is that it looks at your local configuration, and so you can set it up for Jira, you can set it up for）
- `05:13` linear 進行設定，而你這樣做的方式就是直接告訴 Agent 你想要為哪個進行設定，它就會去（linear, and the way you do that is you just tell the agent what you want to set it up for, and it will go）
- `05:17` 為你設定好。我只想強調這一點。人們一直問我，我該如何讓我的 skill（and set it up for it. I just want to emphasize that. People ask me all the time, how do I make my skills）
- `05:21` 與 Jira、beads、linear 搭配運作？它已經可以了。你只需要執行 setup（work with Jira, work with beads, work with linear? It already does. All you need to do is just run setup）
- `05:27` Matt Pocock 並說「用 Jira 設定它」。但我不想用 Jira 設定它。我（Matt Pocock and just say, set it up with Jira. Except I don't want to set it up with Jira. I'm）
- `05:32` 只想用本地的 markdown 設定它，拜託。所以我沒問題。下一個要回答的問題（just going to set it up with local markdown, please. So that's fine by me. The next question to answer）
- `05:37` 是關於分類標籤。所以有一組 skill 依賴的標籤，用來傳達（here is about triage labels. So there are a set of labels that the skill relies on to communicate）
- `05:42` 關於它所產生的工單的資訊。這裡其實不太重要，所以我只是（information about the tickets that it produces. It's not really that important here, so I'm just）
- `05:47` 打算接受預設值。如果你想了解更多，可以查看 triage skill 的文件。（going to accept the defaults. You can look at the docs on the triage skill if you want to learn more.）
- `05:52` 所以預設值就可以了。下一個是關於領域文件。所以我的 skill（So defaults is fine. The next one is about the domain documentation. So my skill）
- `05:57` 喜歡有一些文件、一個 context.md 檔案，以及儲存庫內的一個 ADR。它基本上（like to have a little bit of docs, a context.md file, and an ADR inside the repo. And it's）
- `06:05` 是在詢問這將會是一個單一 context 還是多重 context。我認為單一 context（basically asking if it's going to be a single context or a multi-context. I think single context）
- `06:11` 是這裡比較好的選擇。多重 context 是當你有一個大型單體儲存庫，並且需要在其中包含許多不同的（is the way to go here. Multi-context is if you have a big mono repo and you need lots of different）
- `06:17` 邊界 context 時才需要。但對於 99% 的人來說，單一 context 就足夠了。好了，（bounded contexts within it. But for 99% of people, single context is going to be fine. All right,）
- `06:23` 它已經在這裡寫入了一些東西。它寫入的第一件事是在（so it's gone ahead and written a few things here. The first thing it's written is inside）
- `06:27` CLAUDE.md 裡面，它增加了一些小連結。所以這些是新的東西。它只是連結到（CLAUDE.md, it's added a few little links here. So this is the new stuff. It's just linking to the）
- `06:33` 問題追蹤器文件、連結到分類標籤，以及連結到領域文件。而這些每一個（issue tracker docs, linking to the triage labels, and linking to the domain docs. And each of these）
- `06:38` 都在 docs, agents, domain issue tracker。所以我們可以在這裡看到它將會儲存所有的（are at docs, agents, domain issue tracker. So we can see here that it's going to save all of the）
- `06:46` 將問題與規格存入暫存檔。至此，這個儲存庫的設定就完成了。（issues and specs inside a scratch file. So with that, our setup for this repo is complete. And so）
- `06:52` 所以你可能會想：要怎麼開始？在開始前，我想先展示（you might be thinking, how do I get started? Well, before we get started, I'm going to show）
- `06:56` 另一個很酷的功能。若你要跟著操作，現在可以暫停影片並使用（you one more really cool thing. You can, if you're following along, just stop the video now and use）
- `07:01` 一個 skill：Ask Matt。這個 Ask Matt skill 本質上就像把我做成 skill；它知道（one skill. You can use the Ask Matt skill. This Ask Matt skill is essentially me as a skill. It knows）
- `07:08` 這個 skills 儲存庫所需的一切，以及你應該先做什麼。因此可以問：（everything that is needed about the skills repo and what you should do first. So we can say,）
- `07:13` 「Ask Matt，我該如何開始？我想在這裡改程式碼，主要流程該怎麼走？」（ask Matt, how do I get started? I want to make some code changes here. What is the main flow I should）
- `07:18` 我現在可以送出看看它怎麼說。順帶一提，我正用 Whisper Flow 轉錄。（use? I can now submit that and see what it says. By the way, I'm using whisper flow as my transcription.）
- `07:23` 開始吧。它說要完成工作的主要流程是：既然你有程式碼庫，請從（So here we go. It's saying the main flow idea to ship. Since you have a code base, start at the top）
- `07:28` 主要流程的頂端開始，在一個不中斷的 context window 中一路往下做。它其實是在（of the main flow and walk down in one unbroken context window. So it's very kind of really telling）
- `07:36` 告訴你怎麼使用 session。我很相信，對所使用的 context window 與 token 保持自覺（you how to use your sessions as well. I really believe that being conscious about the context）
- `07:42` 是善用 AI 的關鍵。它說應該從 grill with docs 開始；它會訪談你以釐清想法，而且因為在 repo 裡，（window that you're using, the tokens that you're using is essential to using AI well. It says you should）
- `07:48` 它具備狀態，會把學到的內容記在 context.md 和 ADR 中。這就是把（start with grill with docs. It interviews you to sharpen the idea. And because you're in a repo,）
- `07:52` 「我想改變 X」轉為清楚、可辯護的計畫的地方。老實說，「可辯護」真是 LLM 用語。（it's stateful. It records what it learns in context.md and ADRs. This is where you turn,）
- `07:57` 你能只靠對談解決每個未決問題嗎？如果問題需要可執行的答案，（I want to change X into a crisp, defensible plan. Defensible is such an LLM phrase, honestly.）
- `08:03` 可以使用 prototype；我之前也做過影片介紹它，並透過 handoff 手動銜接。（Can you settle every open question just by talking? If a question needs a runnable answer,）
- `08:06` 如果不需要，就跳過。完成 grill with docs 的訪談後，可以直接（then you can use prototype, which I've done a video about on it, bridged in and out of by handoff.）
- `08:12` 進入 implement skill；如果需要跨多個 session，則可以進入（If not, skip this. Once you've done the interview in grill with docs, you can either go straight）
- `08:16` to spec 和 to tickets。讓我再說清楚些：預設流程是（to the implement skill or if it needs multiple sessions to go through, then you can go to to）
- `08:22` 這樣。先從 grill with docs 開始，它會依你想產出的想法訪談你。（spec and to tickets. Let me make this a little bit clearer for you. The default flow looks like）
- `08:26` 例如，如果我離開 Ask Matt，當然可以繼續追問。（this. You start with grill with docs and this interviews you based on the idea that you want）
- `08:31` 例如，如果我清除並詢問 Matt，當然，我可以繼續追問後續問題。（to produce. For instance, if I clear out of ask Matt, of course, I could go and ask follow-ups）
- `08:36` 這裡，直接把它當作教學來用。但我示範給你看。我會說 grill with docs，然後我會（here, use it as a tutorial itself. But let me just show you. I'm going to say grill with docs and I'm）
- `08:40` 從一個想法開始。我會說我想要移除這個 CLI 上大部分的內部（going to kick it off with an idea. I'm going to say I would like to remove most of the internal）
- `08:45` 工具，讓它只保留對外公開的功能。這裡有很多冗餘的程式碼。我想要（tooling on this CLI to make it just only public facing. There's a lot of cruft here. I want to）
- `08:51` 把這個程式庫精簡一下。需求真的可以這麼模糊。你不需要在這裡做太多（just take this repo down a notch. It really can be as vague as this. You don't need to do too much）
- `08:56` 準備。Grill with docs 會透過問你一連串的後續問題來幫你完成繁重的工作。（here. Grill with docs is going to do the heavy lifting by asking you a bunch of follow-up questions.）
- `09:00` 它會去探索這裡的一堆程式碼。順帶一提，我正在使用 Claude Code。我正在使用（It's going and exploring a bunch of code here. And by the way, I'm using Claude Code. I'm using）
- `09:04` opus 4.8 並設定為中等努力程度。但你真的不需要跟我用一樣的設定。這些 skill（opus 4.8 on medium effort. But you really don't have to use the same setup as me. These skills）
- `09:10` 正被許多不同的人、許多不同的 harness、不同的模型、（are being used by a bunch of different people, a bunch of different harnesses, different models,）
- `09:14` 不同的努力程度所使用。我們可以看到它已經問了第一個問題。所以它（different effort levels. And we can see it's already asked the first question here. So it's）
- `09:18` 已經清楚掌握了整個程式庫的結構。它正在查看擁有 11 個子指令的內部命名空間。（gotten a clear map of the entire repo. It's looking at the internal namespace with 11 subcommands.）
- `09:23` 這就是 grilling 會話的樣子。你會經歷所有的問題，直到你覺得，或者（So this is what a grilling session looks like. You go through all of the questions until you feel or）
- `09:29` 你和 Agent 覺得你們已經達成共識。我現在要來做這件事，然後（you and the agent feel that you've reached a shared understanding. I'm going to do that now and then）
- `09:33` 等我完成後再回來找你。好了。結果沒花太久時間。我們最後總共（I'll check in with you once I'm done. Okay. It didn't end up taking too long. We ended up with）
- `09:39` 大概有六個問題。對於一次 grilling 會話來說不算多。通常我的最後大約（what, six questions. That's not very much for a grilling session. Usually mine end up being about）
- `09:44` 會有 20 個問題左右，取決於專案的大小。但我們已經得到了一個不錯的計畫。我們打算（sort of 20 questions, depending on the size of it. But we've ended up with a decent plan. We're going）
- `09:49` 刪除 10 個指令檔案，刪除三個測試，重新串接共享模組。而我這裡所做的只是（to delete 10 command files, delete three tests, rewire shared modules. And all I did here was I just）
- `09:55` 回答問題，直到它說，好的，我們已經走訪了整個樹狀結構。（answered questions until it said, okay, we've walked the whole tree.）
- `09:58` 說，好的，我們已經走訪了整個樹狀結構，我們已經達成共識，讓我來列出（said, OK, we've walked the whole tree, we've reached a shared understanding, let me lay）
- `10:02` 計畫。（out the plan.）
- `10:03` 注意這裡我並沒有使用 plan 模式，我實際上是在 Claude Code 的 auto 模式下，（Notice here I wasn't using plan mode for this, I was actually in auto mode in Claude Code,）
- `10:07` 這算是預設模式。（which is kind of like the default mode.）
- `10:09` 現在你面臨一個分岔路口。（And you now have a fork in the road.）
- `10:11` 如果你認為這項工作規模大到需要多次 Agent（If you think that this work is going to be big enough that it will need multiple agent）
- `10:16` 會話，那麼你可以跳過這裡的第二和第三步，直接進入 implement。（sessions, then you can skip numbers two and three here and go straight into implement.）
- `10:22` 你會採用的方式就是直接輸入 forward slash implement this。（The way you would do that is you would just say forward slash implement this.）
- `10:26` 在這種情況下，我認為這正是我們應該做的。（And in this case, I do think that is what we should do.）
- `10:29` 我仍然有大約，我把我的視窗視為在大約 140K token 左右（I've still got about, I think of my context window as kind of like ending or getting significantly）
- `10:35` 即將結束或變得明顯（dumber around the 140K mark.）
- `10:38` 變笨。我認為那是大型語言模型的「智慧區」。（I think of that as kind of like the smart zone of the LLM.）
- `10:41` 如果你超過 140K，你會遇到某種，你知道的，注意力衰減，它最終會（If you go above 140K, you end up sort of with, you know, attention degradation, it ends up）
- `10:46` 變得更笨，出現奇怪的幻覺。（getting stupider, does weird hallucinations.）
- `10:49` 所以我認為，好的，我們有 100K 的預算來移除 10 個指令。（So I think of having like, OK, we've got 100K of budget here to remove 10 commands.）
- `10:54` 這看起來超級簡單，絕對是，你知道的，我們絕對可以做到。（That seems super easy, definitely something, you know, we can definitely do that.）
- `10:58` 所以這通常是我會做的事。（So this is what I would usually do.）
- `10:59` 我會直接說 implement，然後我就會離開，讓它執行，它就會完成（I would just say implement and then I would leave it, let it run and it would finish the）
- `11:03` 工作。（work.）
- `11:03` 然而，為了向你展示所有內容，我將假裝這項工作需要（However, in the interest of showing you everything, I'm going to pretend that this work is going）
- `11:07` 超過一個會話，我可能已經用完了當前視窗的視窗，（to take more than one session that I've maybe run out of context window in the current）
- `11:11` 或者用完了當前視窗的智慧區。（or run out of smart zone in the current window.）
- `11:13` 我需要將此分散到多個視窗中。（And I'm going to need to spread this out over multiple context windows.）
- `11:17` 所以我這裡要改為呼叫 to spec。（So I'm going to call to spec here instead.）
- `11:20` 所以我不寫 implement this，而是改說 to spec，這樣就可以了。（So instead of writing implement this, I'm going to say to spec here and that's it.）
- `11:25` 這會做的是，它會獲取我進行的所有討論，所有（What this is going to do is it's going to take all of the discussion that I've had, all）
- `11:28` 這 46.1K 的 token，並將其壓縮成一份文件，（of this 46.1K tokens, and it's going to compress it into a document that we can use）
- `11:34` 供我們稍後使用。（later.）
- `11:35` 這就是我們的問題追蹤系統派上用場的地方。（This is where our issue tracker comes in.）
- `11:37` 所以這個問題追蹤系統，我們只會使用本地的 markdown 檔案。（So this issue tracker, we're just going to use local markdown files.）
- `11:40` 所以它只會把規格輸出到本地目錄中。（And so it's just going to spit out the spec into a local directory.）
- `11:43` 這份規格將是我們在這個多工單衝刺中要前往的目的地。（This spec is going to be the destination that we're heading to over this multi-ticket sprint.）
- `11:48` 換句話說，這就是我們最終會得到的結果。（In other words, this is what we're going to end up with.）
- `11:51` 這是對最終成果樣貌的完整描述。（This is the description of everything of how it's going to look at the end.）
- `11:54` 而這些 ticket 則是我們達成目標的執行步驟描述。（And then the tickets is the description of how we're going to get there.）
- `11:57` 好的，我們可以看到它已經寫好並發布到問題追蹤系統了。（OK, we can see it's been written and published to the issue tracker.）
- `12:01` 如果我把它打開，我們可以看到內容就在這裡。（If I open this up, we can see it is in here.）
- `12:04` 內容非常詳盡。（So it's very nice and detailed.）
- `12:05` 它包含了問題陳述、解決方案、一系列的使用者故事、實作決策，（It's got a problem statement, a solution, a bunch of user stories, implementation decisions,）
- `12:10` 測試決策，這裡有很多資訊。（testing decisions, a lot of stuff here.）
- `12:13` 這會非常有幫助，因為我們最後可以拿來比對，（And this is going to be really useful because we'll be able to compare this at the end to make）
- `12:17` 確保我們的實作符合規格書。（sure that our implementation matched the spec.）
- `12:20` 現在我們有了規格書，我要進入同一個對話階段，不會更換（So now that we've got the spec, I'm going to go into the same session, not going to change）
- `12:23` 對話階段。（sessions here.）
- `12:24` 現在我要說「兩個 ticket」。（And now I'm going to say two tickets.）
- `12:26` 這基本上會嘗試將規格書轉化為實作計畫。（And this is where it will basically try to turn the spec into an implementation plan.）
- `12:32` 這些 ticket 中的每一個，大小都應該剛好是一個 context window 或（Each one of these tickets is supposed to just be the size of a single context window or）
- `12:37` 一個 smart zone。（a single smart zone.）
- `12:38` 如果我們看這裡，可以看到它給了我們三個 ticket。（And if we look here, we can see that it's kind of given us three tickets here.）
- `12:43` 所以是三個切片，我覺得這三個切片有點太多了。（So three slices, I think that these three slices are a little bit much.）
- `12:48` 我認為其實可以在一個切片內完成。（I actually think it can be done in one slice.）
- `12:49` 改用一個切片來做。（Do it in one slice instead.）
- `12:53` 它現在已經把這個存入檔案了。（So it's now put this in a file.）
- `12:55` 它把 ticket 存進了 tickets.md。（So it's put the ticket in tickets.md.）
- `12:58` 現在，這是一個很糟糕的例子，因為它有點像是複製了我們產品（Now, this is quite a bad example because it's kind of copying the stuff that's in our product）
- `13:02` 需求文件裡的內容。（requirements documents.）
- `13:03` 讓我給你看一個實際的例子。（So let me show you an actual real example.）
- `13:05` 這是我幾天前實作的一個規格書，目的是從（Here is a spec that I implemented a couple of days ago to remove a bunch of stuff from）
- `13:10` repos 中移除一堆東西，最近正在進行一場真正的移除大行動。（a repose on a real removal spree recently.）
- `13:13` 你可以看到這是規格書，下方有 11 個子問題。（And you can see that this is the spec and underneath it has 11 sub issues.）
- `13:19` 也就是下方有 11 個 ticket，而這些 ticket 中的每一個……（So 11 tickets underneath it and each of these tickets.）
- `13:22` 這是一份非常詳盡的規格書。（So this is a very detailed spec.）
- `13:24` 這些 ticket 中的每一個都是一個單一的 context window 對話階段。（Each of these tickets is a single context window session.）
- `13:28` 如果我們點進這裡，可以看到它其實很簡短。（So if we click into here, we can see it's just pretty short.）
- `13:32` 大部分的驗收標準都已經在主規格書裡了。（Most of the acceptance criteria is already in the main spec.）
- `13:35` 所以這個實際上就是：你在這個階段要建立什麼？（And so this one is just literally what do you build in this session?）
- `13:40` 所以這是第一階段，接著是第二階段，然後是第三階段。（So that's number session one, then session two, then session three.）
- `13:44` 你可以看到它是如何將龐大的工作量拆解成可管理的片段，（You can see that how this breaks down a huge chunk of work into manageable pieces that the）
- `13:50` 讓 Agent 可以接著去執行。（agent can then go and do.）
- `13:51` 在這裡，我們剩下一個可管理的片段。（Over here, we are left with a single manageable piece.）
- `13:54` 所以我要做的是清除這裡的 context。（So what I'm going to do is I'm going to clear the context here.）
- `13:58` 現在我們擁有一切所需，可以執行一連串的 Agent 來處理這個（Now we have everything we need so that we can just run a bunch of agents to tackle this）
- `14:03` 問題，所以我可以清除 context，然後我只要說「@tickets」，（problem so I can clear the context and then I'm just going to say at tickets here and）
- `14:09` 在那之前我會說「/implement this」。（before that I'll say forward slash implement this.）
- `14:13` 現在因為我們有了決定目標的規格書，以及決定執行方式的 tickets，（So now because we have the spec that decides where we're going and the tickets that decide）
- `14:17` Agent 就擁有了它所需的一切，我們準備好進行實作了。（how we get there, the agent has everything it needs and we're ready to implement.）
- `14:21` 當你手動執行時，概念就是你接著一個接一個地（Now when you're doing this by hand, the idea is that you then implement each ticket one）
- `14:26` 實作每個 ticket。（by one.）
- `14:27` 所以你不會說「執行每一個 ticket」。（So you don't say do every single ticket.）
- `14:29` 你會說：「好的，我們去實作」，然後看看我們是否達到了 smart zone。（You say, OK, we go and implement, then we see if we've hit the smart zone.）
- `14:33` 如果沒有，也許我們可以再塞進一個 ticket。（If we haven't, maybe we can squeeze in one more ticket here.）
- `14:36` 但通常我會建議你在每個 ticket 之間進行清除。（But usually I would say you clear in between every single ticket.）
- `14:41` 然後一旦你完成了所有的實作，你就擁有了完整實作好的成果。（Then once you've done all of the implementation, you've got your full thing all implemented,）
- `14:45` 接著你可以去進行程式碼審查，並根據規格進行最後的檢查。（then you can go and code review and do the final check against the spec.）
- `14:50` 我們可以在這裡看到，這實際上是一項非常小的工作。（We can see here it really was a very small piece of work, actually.）
- `14:53` 它只有 42.7K，現在正準備作為實作的一部分，執行程式碼審查。（It's only 42.7K, and it's now about to, as part of the implement, run the code review.）
- `15:00` 作為實作腳本的一部分，它會去執行所有的型別檢查、執行建置，（As part of the implement script, it goes and runs all the type check, runs the build,）
- `15:04` 它甚至做了更多的驗證，檢查 AI hero 的內部說明，僅顯示編輯提交，（it's doing even more verification, checking AI hero internal help, shows only edit commit,）
- `15:10` 並且它已經載入了程式碼審查的 skill。（and it's gone and loaded the code review skill.）
- `15:12` 這次審查基於兩個面向。（This reviews based on two axes.）
- `15:15` 首先，它會將完成的工作與原始規格進行比較。（First, it compares the work done against the original spec.）
- `15:18` 當你完成了一大塊工作，而 Agent 可能遺忘了票證中的事項，（This is really useful when you've done a huge chunk of work and the agent might have forgotten）
- `15:24` 或是票證內容未明確定義時，這真的非常有用。（things in tickets or the tickets might have been unspecified.）
- `15:26` 進行最後的檢查意味著你可以確實完成所有細節。（Doing a final pass means you actually nail everything.）
- `15:30` 接著，它也會根據你程式庫中現有的標準文件進行檢查。（And then it also checks against the standards documentation that you've got in your own）
- `15:34` 在這個程式庫中，我們並沒有在任何地方記錄編碼標準。（repo.）
- `15:34` 但如果它沒有偵測到任何標準，它就會使用一些來自 Martin Fowler 的經典標準。（In this repo, we don't really have any coding standards documented anywhere.）
- `15:37` 所以它會查看程式碼異味（code smells），試圖找出是否有任何不好的地方。（But if it doesn't detect any, then it uses some classic ones kind of from Martin Fowler.）
- `15:42` 在 subagent 中執行這些操作非常重要，因為如果你在主 Agent 中執行，（So it looks at code smells, tries to figure out if there's any bad stuff.）
- `15:46` 在子 Agent 中進行這件事非常重要，因為若在主 Agent 中做，（Doing these in sub-agents is really important because if you do it in the main agent, it）
- `15:51` 代表主 Agent 已經寫過程式碼，而 Agent 往往不擅長（means that the main agent already has written the code and agents are often really bad at）
- `15:56` 編輯或改進自己剛寫出的程式碼。（editing code or improving code they've just written because they've wrote it.）
- `16:01` 所以它們可能只會覺得：「好，這很棒。」（So they just think, OK, that's fantastic.）
- `16:03` 這沒問題。（That's fine.）
- `16:04` 相反地，如果派出一些 Agent，它們會有乾淨的 context window，（Whereas if you spawn some agents, then they're going to have a clear context window and they're）
- `16:08` 並能更好地完成程式碼審查。（going to do a much better job reviewing the code.）
- `16:10` 好，我們可以看到兩者都回傳了結果。（OK, we can see that both came back.）
- `16:13` 因此，我們已根據規格交叉檢查每一項驗收標準，並逐一依照（So crossed, checked every acceptance criterion against the spec and checked everything against）
- `16:18` 標準完成檢查。（the standards.）
- `16:19` 很好。（And cool.）
- `16:20` 我們可以繼續了。（We're good to go.）
- `16:20` 而且現在已提交到目前分支。（And it's now committed against the current branch.）
- `16:22` 太好了。（Beautiful.）
- `16:23` 這樣我們的流程就完成了。（So that is our flow complete.）
- `16:24` 在開始前，我們先完成對齊。（We aligned before we got started.）
- `16:27` 接著建立規格與 tickets，確保它能跨多個工作階段運作。（We created some spec and tickets in order to make sure it worked over multiple sessions.）
- `16:31` 然後進行實作。（We then implemented it.）
- `16:33` 而 implement skill 本身也使用了 code review。（And the implement skill itself used the code review.）
- `16:36` 這就是我所有工作採用的主要流程。（This is the main flow that all of my work runs through.）
- `16:38` 而不在主要流程中的內容，則是我持續實驗、（And the stuff that isn't in the main flow is stuff that I'm experimenting with, stuff）
- `16:42` 持續改進的內容。（that I'm improving.）
- `16:43` 我一直嘗試讓這個循環更快、更好，也更容易執行。（I'm always trying to get this loop faster, better, easier to run.）
- `16:48` 如果你對這些 skill 有興趣，（And for that, if you're interested in that, then you should check out my newsletter for）
- `16:51` 可以訂閱我的電子報。（these skills.）
- `16:52` 這個 YouTube 頻道也很適合訂閱，能更了解（This YouTube channel is a great place to be for subscribing to understanding more about）
- `16:56` 這些 skill。（the skills.）
- `16:56` 但真正的精華都在電子報裡。（But really, the good stuff is on the newsletter.）
- `16:59` 如果你想在我發布新 skill、加入需要（If you want on-the-day updates when I ship new skills, when I add updates that you need）
- `17:04` 持續追蹤的更新時第一時間收到消息，這裡就是你該關注的地方。（to keep updated with, then this is the place to be.）
- `17:06` 但非常感謝你的觀看。（But thank you so much for watching.）
- `17:07` 希望這個教學能讓你了解如何設定這些 skill，以及（Hopefully this tutorial gives you an idea on how to get set up with the skills and what）
- `17:12` 主要流程應該怎麼運作。（the main flow is supposed to be.）
- `17:13` 感謝收看。（Thanks for watching.）
- `17:14` 祝你 skill 順利。（Happy skilling.）
- `17:15` 很快再見。（And I will see you very soon.）

## 標籤

Skills, 教學資源, IDE, Anthropic, Claude, VS Code
