‹ 首页

opencode-workflow-skills

@mathruffian-dot · 收录于 昨天 · 上游提交 昨天

安裝開工/收工/初始化三大工作流程技能(完整版)。當使用者說「裝工作流程技能」「安裝開工收工技能」「裝三大技能」「startup shutdown project-init」「讓 OpenCode 會開工收工」時載入。本技能會在 ~/.config/opencode/skills/ 建立 startup、shutdown、project-init 三個全域技能,並設定 opencode.json 權限。

适合你,如果你使用 OpenCode 并希望自动管理开发工作流程

/ 通过 npx 安装 校验哈希
npx oh-my-skill add mathruffian-dot/opencode-lazy-packs/opencode-workflow-skills
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- mathruffian-dot/opencode-lazy-packs/opencode-workflow-skills
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify mathruffian-dot/opencode-lazy-packs/opencode-workflow-skills
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
53GitHub stars
~8.2K上下文体积 · 单文件
索引托管

怎么用

商店整理自技能原文 · 版本 1d61b46 · 表述以原文为准
它做什么

OpenCode 获得三个技能:开工时读取 AGENTS.md 和 handoff.md,报告上次进度和 git 状态;收工时更新文件、git commit+push;初始化项目时创建蓝图和交接档,视工具建 GitHub 私有仓库和 Obsidian 笔记。

什么时候触发

当你说“開工”、“收工”、“初始化專案”等关键词时,对应的技能自动接管。

装好后可以这样说
启动开工流程,读取项目状态。
保存本次工作进度。
在当前文件夹建立项目蓝图。
技能原文 SKILL.md作者撰写 · MIT · 1d61b46

開工/收工/初始化 三大技能(OpenCode 完整版)

更新日期:2026-07-27

裝完這一包,你只要對 OpenCode 說三句話,專案就能在任何電腦、任何 AI Agent 之間無縫接續:

| 口令 | 技能 | 它會做什麼 | |------|------|-----------| | 「初始化專案」 | project-init | 幫這個資料夾建立專案藍圖 AGENTS.md + 交接檔 handoff.md;有 GitHub 就順便建私有 repo,有 Obsidian 就建詳細筆記 | | 「開工」 | startup | 讀藍圖+交接檔,回報「上次做到哪、上次在哪台電腦收工、git 狀態、建議下一步」 | | 「收工」 | shutdown | 更新藍圖進度、改寫交接檔、git commit + push、詳細紀錄寫進 Obsidian |

設計核心一句話:開工是「讀」,收工是「寫」。 兩個流程永不重疊、不衝突。


三個層級:你裝到哪,技能就做到哪

這三個技能會自動偵測你的工具,不用選版本、不用改設定:

| 層級 | 需要先裝什麼 | 你會得到 | |------|------------|---------| | L1 本地 | 什麼都不用(建議專案放在你的雲端硬碟資料夾) | AGENTS.mdhandoff.md,換電腦靠雲端硬碟自動同步 | | L2 +GitHub | 懶人包 07-githubgh auth login 已登入) | 版本控制+雲端備份 | | L3 +Obsidian | 懶人包 04-obsidian(Obsidian MCP 可用) | 專案詳細筆記(第二大腦) |

三層資訊的讀取頻率不同,這是整套設計的靈魂:

  • AGENTS.mdhandoff.md每個 session 都讀(只放交接必需的精簡資訊)
  • GitHub:指定才讀(備份與歷史)
  • Obsidian:有需要才讀(完整脈絡與細節)

先備條件
  • [ ] OpenCode 已安裝(懶人包 00-env-setup
  • [ ] (想要 L2 才需要)懶人包 07-github 已完成,gh auth status 通過
  • [ ] (想要 L3 才需要)懶人包 04-obsidian 已完成
  • [ ] 只做 L1 的話,以上兩項都可以先跳過,之後再補

請 OpenCode 幫我執行以下步驟
步驟一:建立三個技能資料夾

Windows(PowerShell):

New-Item -ItemType Directory -Force "$HOME\.config\opencode\skills\startup"
New-Item -ItemType Directory -Force "$HOME\.config\opencode\skills\shutdown"
New-Item -ItemType Directory -Force "$HOME\.config\opencode\skills\project-init"

Mac/Linux:

mkdir -p ~/.config/opencode/skills/startup
mkdir -p ~/.config/opencode/skills/shutdown
mkdir -p ~/.config/opencode/skills/project-init
⚠️ 檔名一定要是全大寫的 SKILL.md,資料夾名要跟技能的 name 一模一樣,OpenCode 才掃得到。

步驟二:建立 startup(開工)技能

把下面整段內容原封不動寫入 ~/.config/opencode/skills/startup/SKILL.md不要把最外層的 ``` `` `` 圍籬符號寫進檔案,檔案第一行必須是 ---`):

---
name: startup
description: 開工接續助手(三層級自動偵測)。當使用者說「開工」、「開始工作」、「我來了」、「上次做到哪」、「我們繼續」、「接下來呢」、「接續工作」、「來吧」等任何要接續上次工作的請求時,請一定要使用此技能。本技能會讀取 AGENTS.md 專案藍圖與 handoff.md 交接檔、檢查 git 狀態(含遠端 fetch)、辨識上次是否在另一台電腦收工、建議下一步該做什麼。
---

# 開工接續助手(三層級)

新對話開始時,幫使用者快速進入「上次做到哪」的脈絡,避免從零開始解釋。

## 核心原則

1. **開工是「讀」、收工是「寫」**——本技能只讀、只報告,不改任何檔案
2. **不主動 `git pull`**(避免覆蓋本地未 commit 變動,只提醒「要不要 pull」)
3. **30 分鐘內 fetch 過就跳過**(避免單台多對話冗餘)
4. **Obsidian 有需要才讀**——L3 筆記是詳細背景資料,開工預設不讀、只列出路徑
5. 跟收工(shutdown)技能是**對偶關係**:收工存進去、開工讀出來

## 層級偵測(開工看「這個專案」建到哪層)

- **L1**:專案有 `AGENTS.md`/`handoff.md` → 讀
- **L2**:專案有 `.git` → 做 git 檢查
- **L3**:`AGENTS.md` 同步層級表登記了 Obsidian 路徑,且**目前有可用的 Obsidian MCP 工具**(例如能列出 vault 目錄、讀寫筆記的工具)→ 列出筆記路徑(不主動讀)

> 判斷 L3 時請看「你手上實際有哪些工具」,不要假設特定的工具名稱——不同的 Obsidian MCP 名稱不一樣。
> 注意:偵測依據是「專案有什麼」,不是「電腦有什麼」。低層級電腦打開高層級專案時做得到的照做、做不到的註明(優雅降級)。

## 開工 SOP(依序執行)

### L1:讀藍圖與交接檔(永遠執行)

1. **讀 `AGENTS.md`**:專案目標、路線圖進度、工作約定(摘要,不全文倒出)
2. **讀 `handoff.md`**:上次做到哪、目前狀態、下一步、注意事項
3. **檢查「最後更新」欄**:
   - 取得這台電腦的名稱——Windows(PowerShell)用 `$env:COMPUTERNAME`;Mac/Linux 用 `hostname`
   - 若**更新者的電腦名 ≠ 這台電腦** → 特別標示「⚠️ 上次在另一台電腦(名稱)收工」,並確認雲端硬碟同步已完成(看 `handoff.md` 的檔案時間戳是否與交接檔內寫的時間吻合;若本地檔案明顯過舊,提醒等雲端同步完再開工)
   - 若 `handoff.md` 的更新時間比 `AGENTS.md` 舊很多 → 提醒「上次可能沒有正式收工」

**Fallback(舊專案相容)**:若專案沒有 `AGENTS.md`/`handoff.md`:
- 有 Obsidian MCP → 改讀 `<你的 vault>/<專案資料夾名>/專案工作流程.md` 或 `工作筆記.md` 的「上次做到哪」段
- 讀完提議:「這個專案還沒有 AGENTS.md+handoff.md,要不要用『初始化專案』補建?」(提議即可,不主動建)

### L2:git 檢查(專案有 `.git` 才做)

4. **本地狀態**:`git status --short`
   - clean → 「本地工作區乾淨」
   - 有未 commit 變動 → 列出,提醒「上次有未完成的修改,要繼續還是放棄?」
5. **遠端狀態(30 分鐘規則)**:
   1. 先看 `.git/FETCH_HEAD` 的最後修改時間(用你手上的檔案工具讀取時間戳即可,**不要用只有某個平台才有的 shell 語法**)
   2. 檔案不存在,或距離現在**超過 30 分鐘** → 執行:
      ```
      git fetch origin
      ```
   3. 再看落後幾個 commit:
      ```
      git rev-list --count "HEAD..@{u}"
      ```
      > 引號不能省:PowerShell 會把沒加引號的 `@{...}` 當成 hashtable 語法而報錯。
      > 若回報「沒有上游分支」之類的錯誤 → 視為 0,並在報告註明「尚未設定上游分支」。
   4. 落後 > 0 → 提醒「遠端有 N 個新 commit,要 `git pull` 嗎?」**不主動 pull**
6. **交叉比對防呆**:若 `handoff.md` 寫「Git push:✅」但遠端沒有對應的新 commit → 警告「上次收工可能沒推成功,建議先確認再動工」

### L3:Obsidian 筆記(有登記才列,不主動讀)

7. 在報告中列出筆記路徑(例:`<專案資料夾名>/專案工作流程.md`),註明「需要詳細背景時我再去讀」
8. 只有兩種情況才主動讀:`handoff.md` 的「下一步」明確指向筆記內容,或使用者要求

### 報告 + 建議下一步

給使用者**結構化摘要**(不要冗長):

📂 專案:<資料夾名>(第 N 層級) 📘 上次做到哪:<handoff 摘要 1-2 句>(<時間>,<更新者> @ <電腦名>) 🔧 本地 git:<clean|有 N 個未 commit 變動|—(L1 專案)> 🌐 遠端:<最新|落後 N commits,建議 git pull|—> 🧠 Obsidian:<筆記路徑,需要時再讀|—> ➡️ 建議下一步:

  1. <handoff「下一步」第 1 項>
  2. <可選:第 2 項>

要從哪個方向開始?

最後**等使用者選方向**,不要自己擅自繼續。

## 不該做的事

- ❌ 主動 `git pull`(會撞本地未 commit 變動)
- ❌ 修改 `AGENTS.md`/`handoff.md`/Obsidian 筆記(那是收工的事)
- ❌ 沒有交接檔時硬建一個(先問使用者)
- ❌ 開工就把 Obsidian 筆記全文讀進來(違反「有需要才讀」的分層設計)
- ❌ 把藍圖與交接檔內容**全文倒出來**(要摘要、保持精簡)

## 與收工(shutdown)的對偶關係

| 面向 | 收工 | 開工 |
|------|------|------|
| 主要動作 | 摘要今天做什麼 | 摘要上次做什麼 |
| AGENTS.md / handoff.md | **寫入** | **讀出** |
| Git 動作 | add + commit + push | status + fetch(不 pull) |
| Obsidian | 寫詳細紀錄 | 只列路徑、需要才讀 |
| 對外副作用 | 推 GitHub、改檔案 | **無**(只讀、只報告) |

## 注意事項

- 所有訊息使用**繁體中文**
- 專案藍圖檔名固定是**全大寫 `AGENTS.md`**(跨 Agent 開放標準)。Mac/Linux 會區分大小寫,寫成小寫會變成「檔案在、Agent 卻讀不到」

步驟三:建立 shutdown(收工)技能

把下面整段內容原封不動寫入 ~/.config/opencode/skills/shutdown/SKILL.md

---
name: shutdown
description: 收工同步助手(三層級自動偵測)。當使用者說「收工」、「結束了」、「下班」、「準備換電腦」、「同步」、「先到這裡」、「換電腦繼續做」等任何要結束工作並保存進度的請求時,請一定要使用此技能。本技能會更新 AGENTS.md 進度與 handoff.md 交接檔、git commit + push、把詳細紀錄寫進 Obsidian,確保下次(或在另一台電腦、或換一個 Agent)打開能無縫接續。
---

# 收工同步助手(三層級)

對話結束前,把這次的工作保存到專案建到的每一層:

| 層級 | 收工動作 | 給誰看 |
|------|---------|--------|
| L1 本地 | 更新 `AGENTS.md` 進度+改寫 `handoff.md` | 下一個 session 的任何 Agent、任何電腦 |
| L2 GitHub | commit + push | 版本歷史+雲端備份 |
| L3 Obsidian | 詳細紀錄寫進 `專案工作流程.md` | 未來需要完整脈絡的自己 |

## 核心原則

1. **開工是「讀」、收工是「寫」**——`handoff.md` 是收工的必寫項,這是跨電腦/跨 Agent 交接的生命線
2. **不在 vacuum 中執行**——先從對話脈絡盤點今天做了什麼
3. **只動需要動的**——沒實質進度(只是問問題、沒改檔案)就不跑同步
4. **有疑問先問人**——commit 前先給訊息草稿等點頭;不確定要不要 add 的檔案先問
5. **精簡與詳細分家**——`handoff.md` 只放交接必需資訊,完整脈絡(決策原因、踩坑細節)寫 Obsidian,兩邊不重複

## 層級偵測(收工看「這個專案」建到哪層)

- **L1**:專案有 `AGENTS.md`/`handoff.md` → 更新(沒有就提議先跑「初始化專案」)
- **L2**:專案有 `.git` → commit + push
- **L3**:`AGENTS.md` 登記了 Obsidian 路徑,且**目前有可用的 Obsidian MCP 工具**(能讀寫 vault 筆記的工具)→ 寫詳細紀錄

> 判斷 L3 請看你手上實際有哪些工具,不要假設特定工具名稱。
> 低層級電腦打開高層級專案:做得到的照做,做不到的在 `handoff.md` 註明(例:「本次在無 Obsidian 的電腦收工,L3 筆記未更新」),回到高層級電腦時補。

## 收工 SOP(依序執行)

### L1:更新藍圖與交接檔(永遠執行)

1. **盤點本次成果**:從對話歷史摘要——完成了哪些檔案、做了什麼決定、踩了什麼坑
2. **更新 `AGENTS.md`**:
   - 路線圖 checklist:勾掉完成項、新增發現的待辦
   - 「資料夾結構」有新增檔案就補
3. **改寫 `handoff.md`**(整份重寫,不是往下堆):
   - ⏯️ 目前做到哪:本次最後完成的動作
   - 🚦 目前狀態:可運行?哪些做一半?
   - ➡️ 下一步:具體、可執行的 1-3 項
   - ⚠️ 注意事項:新踩的坑、暫時 workaround
   - 🕐 最後更新:時間+更新者(Agent 名 @ 電腦名)+ Git push 狀態(先寫「待推」,L2 完成後回填)
     - 電腦名取得方式:Windows(PowerShell)用 `$env:COMPUTERNAME`;Mac/Linux 用 `hostname`

### L2:git 同步(專案有 `.git` 才做)

4. `git status --short` 看變動 → 擬**繁體中文** commit 訊息(標題:動詞+對象;正文 3-5 條 bullet 描述變動+為什麼)→ **給使用者過目,點頭再 commit**
5. commit → `git push`
6. **回填 `handoff.md` 的 Git push 欄**:成功 → `✅ 已推`;失敗 → `❌ 未推(原因)`,並在回報中特別提醒(沒推成功,另一台電腦就拿不到 GitHub 備份)
7. 不要 add:`.env`、API key、憑證檔、untracked 的不明新檔(先問)

### L3:Obsidian 詳細紀錄(可用才做)

8. 更新 `<你的 vault>/<專案資料夾名>/專案工作流程.md`:
   - 「⏯️ 上次做到哪」段:同步 handoff 摘要
   - 「🗓️ 最近更動紀錄」表格:加一行(日期+摘要+同步狀態)
   - 「🕳️ 踩坑筆記」:有新坑就依分類補(含原因與解法,這裡寫詳細版)
   - 決策紀錄:本次做了什麼取捨、為什麼(handoff 不放這些,放這裡)
9. 表格超過 30 行 → 提醒使用者歸檔到 `歷史日誌.md`

### 回報(層級 checklist)

✅ L1 本地:AGENTS.md 進度已更新、handoff.md 已改寫(更新者:<Agent> @ <電腦名>) ✅ L2 GitHub:<repo> 已 commit + push(<commit 標題>) ✅ L3 Obsidian:專案工作流程.md 已補紀錄 ⚠️ 手動處理:<例:本次新增了 ~/.xxx_api_key,另一台電腦要手動建>

沒做到的項目用 ⚠️ 或 ❌ 並說明原因。
若本次改過 `~/.config/opencode/` 底下的全域設定或技能,要特別提醒使用者:**這些檔案不在專案 repo 裡,不會被這次的 push 帶走**,換電腦要自己再裝一次或另外複製。

## 不該做的事

- ❌ 對「沒實質進度」的對話也跑同步
- ❌ 沒更新 `handoff.md` 就收工(那是下次開工的唯一線索)
- ❌ commit message 寫「更新」、「修改」這種沒資訊的字
- ❌ 自動 add untracked 的新檔或敏感檔(要使用者確認)
- ❌ 把該寫進 Obsidian 的長篇細節塞進 `handoff.md`(交接檔要保持一頁內讀完)

## 與開工(startup)的對偶關係

| 面向 | 收工 | 開工 |
|------|------|------|
| AGENTS.md / handoff.md | **寫入** | **讀出** |
| Git 動作 | add + commit + push | status + fetch(不 pull) |
| Obsidian | 寫詳細紀錄 | 只列路徑、需要才讀 |
| 對外副作用 | 推 GitHub、改檔案 | 無 |

## 注意事項

- 所有訊息使用**繁體中文**
- 專案藍圖檔名固定是**全大寫 `AGENTS.md`**(Mac/Linux 會區分大小寫)
- Windows+雲端硬碟資料夾內的 repo,第一次操作若遇 git 寫入錯誤:`git config windows.appendAtomically false`

步驟四:建立 project-init(初始化專案)技能

把下面整段內容原封不動寫入 ~/.config/opencode/skills/project-init/SKILL.md

---
name: project-init
description: 專案初始化技能(三層級自動偵測)。當使用者說「初始化專案」、「專案初始化」、「幫這個專案做初始化」、「開新專案」、「建立專案藍圖」、「幫我 init 專案」等要為當前資料夾建立專案基礎建設的請求時,請一定要使用此技能。本技能會依這台電腦的工具鏈自動建到最高可用層級:L1 本地(AGENTS.md + handoff.md)→ L2 GitHub(私有 repo)→ L3 Obsidian(專案詳細筆記)。
---

# 專案初始化技能(三層級自動偵測)

## 設計理念

一套技能、三個層級。**這台電腦裝了什麼工具,就自動建到哪個層級**——不用問使用者「你要第幾層級」。

| 層級 | 平台 | 建立的東西 | 讀取時機 |
|------|------|-----------|---------|
| L1 本地 | 專案資料夾(建議放在你的雲端硬碟資料夾) | `AGENTS.md`(專案藍圖)+`handoff.md`(交接檔) | **每個 session 都讀** |
| L2 GitHub | 私有 repo | git 版本控制+雲端備份 | 指定才讀 |
| L3 Obsidian | 第二大腦 vault | `專案工作流程.md`(詳細筆記) | 有需要才讀 |

> 為什麼藍圖叫 `AGENTS.md` 而不是 `CLAUDE.md`?因為 AGENTS.md 是跨 Agent 開放標準——OpenCode、Claude Code、Codex、Gemini CLI 都讀得懂。專案層的檔案刻意用開放格式,任何 Agent 接手都能無縫工作。
> **檔名必須全大寫 `AGENTS.md`**:Windows 不分大小寫所以寫錯也能動,但 Mac/Linux 分大小寫,小寫的 `agents.md` 會變成「檔案明明在、Agent 卻讀不到」。

## 層級偵測(初始化看「這台電腦」有什麼)

依序檢查,決定本次能建到第幾層級:

1. **L1**:無條件可建
2. **L2**:跑 `gh auth status`,成功(已登入 GitHub CLI)→ 可建
3. **L3**:目前有可用的 Obsidian MCP 工具(能列目錄、建立筆記的工具)→ 可建
   - 請依「你手上實際有哪些工具」判斷,不要假設特定的工具名稱

檢查完先告訴使用者:「這台電腦可初始化至第 N 層級」,再開始執行。

## 初始化 SOP(依序執行)

### L1:本地藍圖(永遠執行)

1. **掃描資料夾現況**:列出既有檔案,若已有 `AGENTS.md` 或 `handoff.md` → 停下來問使用者是否要覆蓋
2. **詢問使用者**:專案名稱、一句話目標、關鍵時程(沒有就留白,不要硬編)
3. **建立 `AGENTS.md`**:用下方範本為底,填入實際內容;「資料夾結構」區塊由掃描結果自動生成
4. **建立 `handoff.md`**:用下方範本為底,「目前做到哪」填「專案初始化完成」,更新者填 Agent 名+電腦名
   - 電腦名:Windows(PowerShell)用 `$env:COMPUTERNAME`;Mac/Linux 用 `hostname`
5. 若路徑含「雲端硬碟」「My Drive」「Google Drive」→ 提醒使用者確認雲端硬碟桌面版的同步圖示已打勾(檔案要真的躺在雲端,換電腦才拿得到)

#### 範本:`AGENTS.md`

<專案名稱>(專案藍圖)

本檔為跨 Agent 通用的專案藍圖(AGENTS.md 開放標準)。任何 Agent 的每個 session 都應先讀本檔+handoff.md
專案簡介

<!-- 一段話:這個專案是什麼、目標是什麼 -->

關鍵時程

<!-- 格式:- 事件名稱:日期(說明);沒有就留白 -->

目標與路線圖

<!-- 用 checklist 追蹤,收工技能會更新這裡 -->

  • [ ] 階段一:
  • [ ] 階段二:
資料夾結構

<!-- 初始化時自動掃描生成,之後新增檔案要更新 -->

同步層級(本專案初始化至第 N 層級)

| 層級 | 平台 | 位置 | 讀取時機 | |------|------|------|---------| | L1 | 本地(雲端硬碟資料夾) | AGENTS.mdhandoff.md | 每個 session | | L2 | GitHub | <未啟用|<你的 GitHub 帳號>/repo-name> | 指定時 | | L3 | Obsidian | <未啟用|專案資料夾名/專案工作流程.md> | 有需要時 |

工作約定
  • 任何 Agent、任何電腦:開工先讀 handoff.md,收工必更新 handoff.md
  • 修改共用檔案前先讀最新內容,避免覆蓋其他 Agent 的變更
  • 所有回應與文件使用繁體中文
  • 修改前先確認計畫,優先保留原有資料結構
安全與隱私(不可違反)
  • 不把 API key、密碼、憑證寫進 repo,也不要貼進 AGENTS.mdhandoff.md;一律放 .env 並列入 .gitignore
  • 學生資料只用座號,不出現姓名、學號、班級以外的個資、照片或聯絡方式
  • 要公開分享前,先確認檔案裡沒有上述兩類內容
#### 範本:`handoff.md`

交接檔(handoff.md)

任何 Agent、任何電腦接手前必讀;收工時必更新。本檔只放交接必需的精簡資訊,詳細脈絡放 Obsidian(若有 L3)。
⏯️ 目前做到哪

<!-- 最後完成的動作,1-3 句 --> 專案初始化完成。

🚦 目前狀態

<!-- 可運行嗎?哪些做一半? -->

➡️ 下一步

1.

⚠️ 注意事項

<!-- 坑、暫時 workaround、不要動的東西 -->

🕐 最後更新
  • 時間:<YYYY-MM-DD HH:mm>
  • 更新者:<Agent 名> @ <電腦名>
  • Git push:<✅ 已推|❌ 未推(原因)|—(本專案未啟用 git)>
### L2:GitHub(`gh` 已登入才做,否則跳過並註明)

> 這一層的 git/GitHub 設定**不在本技能重寫**:完整做法請依懶人包 **07-github** 那一包。
> 本技能只負責「呼叫它、然後回填藍圖」。

6. 確認 `gh auth status` 通過(沒過就跳過 L2,並告訴使用者「先跑懶人包 07-github」)
7. 先建立 `.gitignore`(避免把敏感檔推上去,這是唯一在本技能處理的 git 相關動作):
   ```
   desktop.ini
   *.tmp
   ~$*
   .env
   *.key
   credentials.*
   ```
8. 依懶人包 **07-github** 的做法,把這個資料夾變成 GitHub 上的**私有** repo 並推上去
   (repo 的英文名字要先問使用者)
9. **回填 `AGENTS.md`** 同步層級表的 GitHub 欄(repo 網址)

### L3:Obsidian(MCP 可用才做,否則跳過並註明)

10. 在 vault 根目錄建立與專案資料夾**同名**的資料夾
11. 建立 `<專案資料夾名>/專案工作流程.md`,內容包含:專案背景與詳細脈絡、決策紀錄(為什麼這樣做)、素材與相關筆記連結、🕳️ 踩坑筆記、🗓️ 最近更動紀錄表格(第一行寫今天的初始化)
12. **回填 `AGENTS.md`** 同步層級表的 Obsidian 欄(vault 內路徑)

### 回報

給使用者一個層級 checklist:

🏗️ 本專案初始化至第 N 層級 ✅ L1 本地:AGENTS.md + handoff.md ✅ L2 GitHub:<你的 GitHub 帳號>/<repo>(私有) ⚠️ L3 Obsidian:未建(這台電腦沒有 Obsidian MCP,之後可在有 Obsidian 的電腦說「補建第三層級」)

## 不該做的事

- ❌ 未經確認就覆蓋既有的 `AGENTS.md`/`handoff.md`
- ❌ 把藍圖檔名寫成小寫 `agents.md`(Mac/Linux 會讀不到)
- ❌ 電腦沒 `gh`/Obsidian 時報錯中斷(正確行為:跳過該層級、在回報中註明原因)
- ❌ 把 `.env`、API key 之類敏感檔 commit 進 git
- ❌ 建 public repo(預設一律 private,使用者明說才轉公開)

## 注意事項

- 所有訊息與檔案內容使用**繁體中文**
- Windows+雲端硬碟資料夾內跑 git 若遇寫入錯誤:`git config windows.appendAtomically false`
- 之後的日常循環交給搭檔技能:開工(startup)讀、收工(shutdown)寫

步驟五:設定 opencode.json 權限

打開(或建立)~/.config/opencode/opencode.json,確認裡面有這一段:

{
  "permission": {
    "skill": {
      "startup": "allow",
      "shutdown": "allow",
      "project-init": "allow",
      "*": "ask"
    }
  }
}

意思是:這三個技能可以直接用,其他技能一律先問你。

⚠️ 如果 opencode.json 已經有內容(例如前面懶人包加的 MCP 設定),不要整份覆蓋,只要把 "permission" 這個區塊合併進去就好。JSON 每個區塊之間要有逗號、最後一項不能有逗號。

步驟六:重啟 OpenCode

OpenCode 只有在啟動時才會掃描技能目錄。 剛剛新增的三個資料夾,要完全關掉 OpenCode 再重新打開,才會被認得。

(在終端機按 Ctrl + C 結束,或直接關掉視窗,再重新輸入 opencode 啟動。)


驗證步驟

重啟之後依序做這三件事:

1. 確認技能被掃到

跟 OpenCode 說:

「列出你現在可用的技能,有沒有 startup、shutdown、project-init?」

三個都要出現。沒出現 → 看下面「常見問題」第一題。

2. 測試「開工」

cd 到任何一個專案資料夾,然後說:

「開工」

正常的話會看到類似這樣的結構化摘要(沒有 AGENTS.md 的資料夾,它會問你要不要初始化,這也算成功):

📂 專案:<資料夾名>(第 1 層級)
📘 上次做到哪:(尚未建立 handoff.md)
➡️ 建議下一步:要不要先跑「初始化專案」?

3. 測試「初始化專案」+「收工」

找一個新的空資料夾,說「初始化專案」,看它有沒有建出 AGENTS.md(確認是全大寫)和 handoff.md。 接著隨便改一個檔案,說「收工」,看它有沒有回報 L1/L2/L3 checklist。


完成回報格式

請 OpenCode 用這個格式回報:

## 三大技能安裝完成

- startup:~/.config/opencode/skills/startup/SKILL.md ✅
- shutdown:~/.config/opencode/skills/shutdown/SKILL.md ✅
- project-init:~/.config/opencode/skills/project-init/SKILL.md ✅
- opencode.json 權限:permission.skill 三項 allow 已設定 ✅
- 重啟 OpenCode:已完成 ✅
- 驗證 1/技能清單:三個技能都掃到 ✅
- 驗證 2/說「開工」:有正常回報摘要 ✅
- 驗證 3/說「初始化專案」:AGENTS.md(大寫)+ handoff.md 已建立 ✅

沒過的項目用 ⚠️ 或 ❌ 並說明原因。


常見問題

| 問題 | 解法 | |------|------| | 技能沒出現在可用清單 | ①檔名要全大寫 SKILL.md ②資料夾名要跟 frontmatter 的 name 一致 ③最上面的 --- 前後不能有空行或多餘文字 ④沒重啟 OpenCode | | 說「開工」沒反應 | 完全關掉 OpenCode 再開一次;還是不行就檢查 opencode.jsonpermission.skill 有沒有寫對 | | 寫進去的 SKILL.md 開頭多了 ``` ` `` | 外層的圍籬符號是懶人包的排版用的,不要寫進檔案。檔案第一行必須是 --- | | Mac/Linux 上 Agent 說找不到專案藍圖 | 檢查檔名是不是被寫成小寫 agents.md。**一定要大寫 AGENTS.md**——Windows 不分大小寫所以看不出問題,Mac/Linux 會直接讀不到 | | 「初始化專案」跳過了 L2 | gh auth status 沒過。先做懶人包 **07-github** | | 「初始化專案」跳過了 L3 | 這台電腦沒有 Obsidian MCP。先做懶人包 **04-obsidian**,或之後在另一台電腦說「補建第三層級」 | | 雲端硬碟資料夾裡跑 git 出現寫入錯誤 | git config windows.appendAtomically false`(Windows+雲端硬碟的已知坑) | | 兩台電腦可以同時開工同一個專案嗎? | 不建議——雲端硬碟會產生「衝突副本」。開工技能會顯示上次收工的電腦與時間,幫你避開 |

按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。