SKILLS / 程式開發 / wiki-agents-md
程式開發
wiki-agents-md 分析專案的真實建置命令、測試方式、目錄結構與程式慣例,產生供程式代理使用的 AGENTS.md;遇到既有檔案時必須跳過,避免覆寫。
查看來源 ↗ 作者/來源 Microsoft ★ 3,003 GitHub Stars
測試版本 1.0.0 更新日期:2026-09-09T22:37:54Z
支援平台 OpenAI · Claude 本次實測平台
安裝方式 npx skills add microsoft/skills
公平比較方式
三個問題,分別測載入前與載入後。 每次回答都在全新環境中產生。兩邊使用相同模型與設定,唯一差別是右側載入了這個 Skill。
Codex gpt-5.6-sol Claude claude-opus-5
模型版本 gpt-5.6-sol帳號方案 ChatGPT Plus思考強度 medium執行工具 codex-cli-native-skill
真實測試 使用本機已登入的 ChatGPT Plus 實際執行,完成於 2026年8月27日。所有檢查通過後才公開,回答未經人工改寫。
三階段測試 3 個問題全部完成版本核對 3/3 通過環境清理 9/9 通過測試隔離 每回合全新環境
測試問題 某 TypeScript 專案沒有 AGENTS.md。package.json scripts 為 dev=vite、build=tsc -b && vite build、test=vitest run、lint=eslint src;目錄只有 src/、tests/、public/。請產生根目錄 AGENTS.md,不要加入沒有證據的 Git 流程。
載入前 · 0 個 Skill 載入後 · 版本已核對 再次確認 · 0 個 Skill 已確認模型套用 Skill 三個環境皆已清理
未載入 Skill 555 tokens · 18170 ms
# AGENTS.md
## 專案概覽
這是使用 TypeScript、Vite、Vitest 與 ESLint 的專案。
## 目錄結構
- `src/`:應用程式原始碼
- `tests/`:測試程式碼
- `public/`:靜態資源
新增或修改檔案時,請遵循相鄰程式碼的既有結構、命名與格式;不要在缺乏依據時引入新的架構或慣例。
## 常用指令
- `npm run dev`:啟動 Vite 開發伺服器
- `npm run build`:執行 TypeScript 專案建置,再產生 Vite 正式版本
- `npm test`:以 Vitest 執行一次完整測試
- `npm run lint`:對 `src/` 執行 ESLint
## 修改原則
- 保持變更範圍聚焦於任務需求。
- 優先沿用現有元件、工具函式、型別與測試模式。
- 避免使用 `any` 規避型別問題;新增或修改公開介面時應提供明確型別。
- 不要手動修改建置產物或相依套件目錄。
- 靜態檔案放在 `public/`;應用程式邏輯放在 `src/`;測試放在 `tests/`。
## 驗證要求
完成修改後,依變更範圍執行:
1. `npm run lint`
2. `npm test`
3. `npm run build`
若無法執行其中任何指令,請清楚說明未執行的項目與原因。
已載入 Skill + 1488 tokens · 119029 ms
# Repository Agent Instructions
## Build & Run
- `npm run dev` — Start the Vite development server.
- `npm run build` — Type-check with `tsc -b`, then create the Vite production build.
- `npm run lint` — Run ESLint on `src/`.
## Testing
- `npm test` — Run the Vitest test suite once.
## Project Structure
- `src/` — TypeScript application source.
- `tests/` — Vitest tests.
- `public/` — Static assets served by Vite.
## Validation
After making changes, run the relevant checks:
```sh
npm run lint
npm test
npm run build
```
測試問題 一個 npm workspaces 專案包含 apps/web/package.json、apps/api/pyproject.toml、packages/ui/package.json,三處都沒有 AGENTS.md。請先說明應在哪些資料夾建立檔案,再提供每個檔案必須收錄與不得臆測的資訊清單。
載入前 · 0 個 Skill 載入後 · 版本已核對 再次確認 · 0 個 Skill 已確認模型套用 Skill 三個環境皆已清理
未載入 Skill 1581 tokens · 47818 ms
## 應建立的位置
- `apps/web/AGENTS.md`:適用於 Web 應用程式目錄及其子目錄。
- `apps/api/AGENTS.md`:適用於 Python API 目錄及其子目錄。
- `packages/ui/AGENTS.md`:適用於共用 UI 套件目錄及其子目錄。
不能僅因這是 npm workspaces 專案,就假定根目錄也缺少 `AGENTS.md`。只有在確認根目錄沒有該檔案,且確實需要記載全專案規則時,才建立根目錄的 `AGENTS.md`。
## `apps/web/AGENTS.md`
必須收錄:
- Web 應用程式的用途與責任範圍。
- `apps/web/package.json` 中實際存在的安裝、開發、建置、測試、lint、格式化及型別檢查指令。
- 實際使用的套件管理器與 workspace 指令格式。
- 從依賴及設定檔可確認的框架、語言和目錄慣例。
- 可確認的測試位置、命名規則及驗證要求。
- 與 `packages/ui` 或其他 workspace 套件的實際依賴關係。
- 修改後應執行的最小驗證集合。
不得臆測:
- Web 框架、版本、路由模式或渲染方式。
- 不存在於 scripts 或文件中的指令。
- 開發伺服器連接埠、公開 URL、部署平台或 CI 流程。
- 環境變數名稱、預設值或祕密資訊。
- 測試框架、瀏覽器支援範圍及程式碼風格。
- Web 一定直接呼叫 `apps/api`。
## `apps/api/AGENTS.md`
必須收錄:
- API 服務的用途、責任範圍及公開介面邊界。
- `apps/api/pyproject.toml` 中實際宣告的 Python 版本、依賴、選用依賴及工具設定。
- 專案文件或設定中實際存在的啟動、測試、lint、格式化及型別檢查指令。
- 實際採用的 Python 套件與虛擬環境管理方式。
- 可確認的原始碼、測試、migration 或 schema 位置。
- 修改 API、資料模型或相依套件時已明文規定的驗證要求。
- 若存在,與其他 workspace 元件之間的已記錄契約。
不得臆測:
- API 框架、ASGI/WSGI 伺服器或啟動模組。
- Python 套件管理器;`pyproject.toml` 本身不能證明使用 Poetry、uv、PDM 或 pip。
- 主機、連接埠、資料庫、佇列、雲端服務或容器配置。
- 認證方式、端點、資料模型或 migration 工具。
- 未宣告的 pytest、Ruff、Black、mypy 等工具及其指令。
- API 與 Web 之間未經文件證實的整合方式。
## `packages/ui/AGENTS.md`
必須收錄:
- UI 套件的用途、消費者及允許的責任範圍。
- `packages/ui/package.json` 中實際存在的建置、測試、lint、格式化、型別檢查及開發指令。
- 實際宣告的入口點、exports、產物目錄及發布相關設定。
- 從原始碼和設定可確認的元件、樣式、測試及 story 檔案慣例。
- `dependencies`、`devDependencies` 與 `peerDependencies` 所反映的依賴限制。
- 公開 API 或匯出項目變更時已明文要求的相容性與驗證措施。
- 已確認使用此套件的 workspace。
不得臆測:
- React、Vue、Svelte、Storybook 或任何 CSS/設計系統技術。
- 套件一定會發布至 npm,或其發布權限與版本策略。
- 未在 `exports`、原始碼或文件中出現的公開元件。
- 瀏覽器支援、無障礙等級、主題系統或視覺規範。
- 不存在的 snapshot、視覺回歸或 Storybook 測試流程。
- `apps/web` 一定使用此套件;必須由 workspace 依賴或實際 import 證實。
已載入 Skill + 1994 tokens · 65911 ms
## 應建立的位置
- `apps/web/AGENTS.md`
- `apps/api/AGENTS.md`
- `packages/ui/AGENTS.md`
- 根目錄 `AGENTS.md`:根目錄一律需要,但題目未說明它是否已存在;只有確認缺少時才建立,絕不可覆寫。
各巢狀檔案只描述該工作區的特定規則,不重複根目錄的全域內容。
## 根目錄 `AGENTS.md`
必須收錄:
- 整個 monorepo 的用途與各 workspace 的角色。
- 根目錄 `package.json` 中實際宣告的 workspace 設定。
- 根目錄 scripts、Makefile 或 CI 中可驗證的安裝、建置、測試、lint、格式化命令;Build & Run 應放在最前面。
- `apps/web`、`apps/api`、`packages/ui` 的實際依賴或呼叫關係。
- 有設定檔或原始碼佐證的全域程式風格、開發環境要求及 repository-wide boundaries。
- CI/CD 或 Git workflow 規則,但僅限 workflow、commitlint、PR template、CONTRIBUTING 等已有證據者。
不得臆測:
- npm、Node.js 或 Python 的版本。
- 使用 npm、pnpm 或 Yarn 中的哪一個;須由 lockfile、`packageManager` 或文件確認。
- workspace 之間的依賴方向。
- CI 平台、部署流程、分支命名或 Conventional Commits。
- 未出現在 scripts、CI 或文件中的命令、參數、埠號與環境變數。
## `apps/web/AGENTS.md`
必須收錄:
- web workspace 的實際用途及其在整體系統中的角色。
- `apps/web/package.json` 內存在的 install、dev、build、test、lint 等 scripts。
- 經目錄與原始碼確認的入口檔、主要資料夾及新增功能的位置。
- 從現有程式碼辨識出的命名、import、元件組織與錯誤處理慣例,最好附一段真實範例。
- 前端特有且有專案證據的 boundaries,例如變更公開元件介面或設計系統前需先確認。
不得臆測:
- React、Next.js、Vue、Vite、TypeScript、Tailwind 等框架或工具。
- dev server 埠號、瀏覽器支援範圍及部署平台。
- 測試框架、測試目錄、單檔測試命令或 coverage 命令。
- API URL、認證方式、環境變數名稱或 UI 設計規範。
- `package.json` 沒有宣告、CI 也未使用的 npm scripts。
## `apps/api/AGENTS.md`
必須收錄:
- API workspace 的實際用途。
- `pyproject.toml` 中可驗證的套件管理、專案 scripts、測試、lint、格式化及型別檢查設定。
- 實際入口點、套件結構、路由、模型、服務與測試所在位置。
- 從 3–5 個現有 Python 檔案確認的命名、型別註記、import、同步/非同步及錯誤處理慣例。
- 有證據支持的後端 boundaries,例如資料庫 schema、migration 或公開 API 契約變更需先確認。
不得臆測:
- FastAPI、Django、Flask、Poetry、uv、pytest、Ruff、Black 或 mypy 的使用。
- Python 版本、啟動命令、host、port 與 worker 數量。
- 資料庫種類、ORM、migration 工具、認證方式或外部服務。
- 測試、coverage 或單一測試命令;若沒有相關設定或測試,應省略 Testing 區段。
- 尚未實際存在的 `src/`、`tests/`、`routes/` 等路徑。
## `packages/ui/AGENTS.md`
必須收錄:
- UI package 的用途、公開輸出及被哪些 workspace 使用;後兩者必須有 manifest 或程式碼佐證。
- `packages/ui/package.json` 中存在的 build、test、lint、storybook 或其他 scripts。
- 實際 source entry、exports、元件、樣式、測試及 story 的位置。
- 從既有元件確認的檔名、props、export、樣式與測試慣例,並使用真實程式碼範例。
- 有依據的 package-specific boundaries,例如公開 export、元件 API 或 design token 的 breaking change。
不得臆測:
- React、Vue、Storybook、CSS Modules、Tailwind 或任何設計系統工具。
- 套件是否發布至 npm、套件可見性、版本策略或 release 流程。
- 元件命名規則、無障礙標準、瀏覽器支援及視覺測試工具。
- `apps/web` 必然使用此套件;必須由 workspace dependency 或 import 證實。
- manifest、現有路徑或工具設定無法支持的命令與慣例。
所有檔案都應省略無證據或不適用的區段,且不得包含密鑰、token、憑證、占位文字或泛用樣板內容。
測試問題 使用者要求重新產生整個 Repo 的 AGENTS.md,但根目錄與 apps/web 已有 AGENTS.md,只有 apps/api 缺少。請說明你會採取的動作,並提供預期回報文字。
載入前 · 0 個 Skill 載入後 · 版本已核對 再次確認 · 0 個 Skill 已確認模型套用 Skill 三個環境皆已清理
未載入 Skill 262 tokens · 12975 ms
採取的動作:保留根目錄與 `apps/web` 現有的 `AGENTS.md`,不覆寫或重複產生;僅根據 Repo 結構與適用的上層指引,為缺少文件的 `apps/api` 建立 `AGENTS.md`。
預期回報文字:
> 已完成 AGENTS.md 補齊:新增 `apps/api/AGENTS.md`。根目錄與 `apps/web` 的既有 `AGENTS.md` 均已保留,未進行修改。
已載入 Skill + 690 tokens · 31531 ms
採取的動作:
- 保留根目錄與 `apps/web/AGENTS.md`,不覆寫或重新產生。
- 掃描 `apps/api/` 的設定、指令、測試及程式碼慣例,僅建立缺少的 `apps/api/AGENTS.md`。
- 若 `apps/api/CLAUDE.md` 也不存在,則一併建立;若已存在則跳過。
預期回報文字:
```text
AGENTS.md already exists at ./AGENTS.md — skipping
AGENTS.md already exists at apps/web/AGENTS.md — skipping
Generated apps/api/AGENTS.md
```
另依 `apps/api/CLAUDE.md` 的實際狀態回報:
```text
Generated apps/api/CLAUDE.md
```
或:
```text
CLAUDE.md already exists at apps/api/CLAUDE.md — skipping
```
測試紀錄 這次測試記錄了什麼? 固定不變 兩邊使用相同的模型版本、帳號方案、系統指令、思考強度與測試問題。
分開測試 每次回答都使用全新環境。載入前不含任何 Skill,載入後只含本頁指定的 Skill。
完整才公開 三題的所有步驟與環境清理都成功後,才顯示結果。若無法確認模型是否套用 Skill,也會清楚標示。