Files
tea-sdlc/AGENTS.md
T
jiantw83andClaude Opus 5 84cd8fc41f docs(prompts): 六個只在意結果的步驟標上〔可委派〕
三份正本各加一節說明這個後綴是什麼意思,只留能力描述那一句與指回判準正本的指路,
判準本身不複寫——抄過去就會有兩份各自演化的規則(AGENTS.md 的 references/ 那一列)。

標的是六個:sdlc-plan 的產生圖解版總覽;sdlc-analyze 的對四份清單列出疑點、算出截止日、
產生分析版的圖解總覽;sdlc-feat 的把議題標題翻成英文、分批提交。

其中三步是部分委派,各自在該步寫明哪一半留給主流程:兩份圖解總覽委派的是產出 HTML,
寫回議題的 issue-update 不委派;分批提交委派的是方案計算,實際跑 commit-split.js 不委派。
理由不在這裡複述,指回判準第四條。

**「認出語言,讀規則正本」不標**,儘管議題的列舉點了它。那一步的核心動作含「認不出語言
就停下來問、不要猜」,正是判準第二條硬排除的事;排掉它之後剛好是議題所寫的六個。
這一條與 repo 擁有者確認過。

AGENTS.md 的 references/ 那一列補上「委派判準」,否則那串括號裡的列舉會漏掉新的一份。

議題 #58

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 09:12:08 +08:00

41 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# tea-sdlc — 以 tea 驅動 SDLC 全流程的跨平台指令組
本 repo 提供六個顯式指令(`/sdlc-plan`、`/sdlc-analyze`、`/sdlc-feat`、`/sdlc-fix`、`/sdlc-sync`、`/sdlc-report`),
把軟體開發流程的各階段固定成可重複的步驟。流程正本只寫一份平台中立 markdown,
由 `scripts/install.js` 產生 Claude Code、Codex、Antigravity、Copilot、Kiro、oh-my-pi、OpenCode 各自的薄轉接檔。
本 repo 以 npm 佈署:`npm i -g <git url>` 裝出 `tea-sdlc` 指令,`tea-sdlc install` 產生各平台轉接檔。
轉接檔裡沒有路徑,只有一句 `tea-sdlc prompt --name <指令名>`,正本在哪由入口自己回推。
> 六個流程正本都到齊了;安裝器佈署的就是 `prompts/` 裡的那六份。進度見
> [議題 #1](https://gitea.jsc.idv.tw/plugins/tea-sdlc/issues/1) 底下的工作包。
## 模組邊界
改動時請先確認要動的東西屬於哪一層,不要讓職責外溢到相鄰目錄。
| 目錄 | 職責 | 邊界 |
| --- | --- | --- |
| `prompts/` | 流程正本(`sdlc-{plan,analyze,feat,fix,sync,report}.md`),唯一的事實來源 | 平台中立 markdown,不含任何平台專屬語法 |
| `scripts/` | 所有副作用(Gitea API、git、檔案系統)的唯一出口 | Node、零外部套件,僅用內建 `fetch` / `child_process` / `fs` |
| `templates/` | 所有產出格式(議題、PR、報表、總覽網頁) | 以 `{{變數}}` 佔位,不含邏輯。唯一例外是 `overview-artifact.html`:它是一份要在瀏覽器裡開的網頁,需要一段把 mermaid 圖畫出來的腳本 |
| `references/` | 規則正本(實作規範、註解格式對照表、可行性檢查清單、委派判準) | 由流程正本指名讀取,不自行散落於 prompts |
| `bin/tea-sdlc.js` | 指令入口:取走子指令,其餘 argv 原樣交出去 | 不含任何平台目錄知識,也不自己動手做事 |
| `scripts/install.js` | 平台偵測與轉接檔產生/移除 | 唯一知道各平台目錄結構的地方 |
| `scripts/install-verify.js` | 安裝後走一遍叫用鏈(轉接檔 → PATH 上的 tea-sdlc → 流程正本) | 只認拿到的轉接檔路徑,不自己推導平台目錄;不碰網路 |
| `skills/` | 各助理原生 plugin 機制讀取的 skills | 目前為空;指令以轉接檔形式佈署 |
## 慣例
- **零外部套件**:`package.json` 不得出現 `dependencies` 或 `devDependencies`。測試用 Node 內建 `node:test` + `node:assert`。
- **契約以議題為正本**:腳本的 flag 介面、JSON 輸出形狀、前置檢查與路徑定位規則,正本在[議題 #1](https://gitea.jsc.idv.tw/plugins/tea-sdlc/issues/1),實作時以該處為準;本檔不複寫,以免兩邊走鐘。
- **測試**:`npm test`(等同 `node --test`)。測試產生的暫存一律寫到 `.tmp/`,該目錄已被 git 忽略,也不會被測試探索掃到。
- **不改目標專案**:本 plugin 只讀目標專案的程式碼,不寫入目標專案的 `CLAUDE.md` 或任何設定檔。
唯一的例外是 git 自己的內部中繼資料——`git worktree add` 一定會在目標 repo 的
`.git/worktrees/` 底下寫東西,那是 git 的機制,無法避免,也不是專案的內容檔。
- **工作樹集中在家目錄**:每顆工作包的工作樹開在 `~/.tea-sdlc/worktrees/{hash}`,
路徑由 `owner/repo/分支名` 純函式推導(`scripts/lib.js` 的 `worktreePath`),
不查表也不寫狀態檔。不開在目標專案裡(會出現在它的 `git status`),
也不開在它的兄弟目錄(那個目錄結構屬於使用者)。
- **不自動觸發**:所有指令僅由使用者明確叫用;skill/command 的 `description` 統一以「僅由 /sdlc-xxx 指令叫用。」起頭。