{
  "markdown": "# DDD Workflow\n\nDocument Driven Development 工作流——讓 AI agent 用結構化的文件驅動開發，而非直接跳進程式碼。\n\n## 核心理念\n\n**No Code Without Docs, No Code Without Tests.**\n\n每個功能都從文件開始：先釐清需求、寫 spec，確認後才動手寫程式碼。Main agent 擔任 Coordinator（規劃、派工、驗收），實作和 review 交給專屬 subagent，保護 main agent 的 context window 不被消耗。\n\n## 安裝 Skills\n\n使用 Agent Skills CLI 安裝全部 DDD skills：\n\n```bash\nnpx skills add applepig/ddd-workflow --skill \"*\" -g -a claude-code -a opencode -a codex -a gemini-cli\n```\n\n先檢查可用 skills：\n\n```bash\nnpx skills add applepig/ddd-workflow --list\n```\n\n如果你已 clone 本 repo，也可以從本機目錄安裝：\n\n```bash\nnpx skills add . --skill \"*\" -g -a claude-code -a opencode -a codex -a gemini-cli\n```\n\n## Agents 與 Runtime Scripts\n\n`npx skills` 只安裝 `skills/`。本 package 另外提供 `bin/` entrypoints，處理 agents、instruction files、config 與 runtime scripts。\n\n建立平台 agents 產物：\n\n```bash\nnpm run agents:build\n```\n\n此命令只重建各平台 agent 檔案；package 內隨版發布的 custom statusline 與 OpenCode plugin runtime bundles 會保留，可接著直接部署。\n\n部署 non-skill 項目到本機 agent 設定目錄：\n\n```bash\nnpm run agents:deploy -- --dry-run\nnpm run agents:deploy\n```\n\n可指定單一平台：\n\n```bash\nnpm run agents:deploy -- claude --dry-run\nnpm run agents:deploy -- opencode\n```\n\n部署會為 session-trigger 建立隔離 HOME，並將一般 OpenCode data home 中可讀的一般 `auth.json`／`account.json` 檔案複製進隔離 data home。第一次 OpenCode 登入仍須由使用者自行完成；若 credential 缺少、不可讀或不是一般檔案，deploy 會清除對應的舊隔離副本、提示來源路徑並繼續，不會代為登入或建立 credential。\n\n## 工作流總覽\n\n```mermaid\nflowchart TD\n    Start([新專案]) --> Init[\"建立 docs/<br/>PRD.md + TECHSTACK.md\"]\n    Init --> Feature([提出功能需求])\n\n    Feature --> Clarity{需求明確？}\n\n    Clarity -- 模糊 --> Plan[\"/ddd.plan<br/>釐清方向\"]\n    Plan --> Spec\n\n    Clarity -- 明確 --> Spec[\"/ddd.spec<br/>撰寫 spec.md\"]\n    Spec --> UserSpec{使用者確認 spec？}\n    UserSpec -- 修改 --> Spec\n    UserSpec -- 確認 --> NeedTasks{需要細化 Milestones？}\n\n    NeedTasks -- 否 --> Work\n    NeedTasks -- 是 --> Tasks\n    Tasks[\"/ddd.tasks<br/>細化 Milestones / 拆分 Sprint\"] --> UserTasks{使用者確認 Milestones？}\n    UserTasks -- 修改 --> Tasks\n    UserTasks -- 確認 --> Work\n\n    Work[\"/ddd.work<br/>TDD 循環實作\"] --> Review\n    Review[\"/ddd.xreview<br/>Cross review（多模型獨立審查）\"] --> Fix{需要修正？}\n    Fix -- 是 --> Work\n    Fix -- 否 --> Next{還有下一個功能？}\n    Next -- 是 --> Feature\n    Next -- 否 --> Done([完成])\n```\n\n## 角色分工\n\n```mermaid\nflowchart LR\n    User([使用者]) <--> Coord\n\n    subgraph Main[\"Main Agent（Coordinator）\"]\n        Coord[規劃 / 派工 / 驗收]\n    end\n\n    Coord --> Dev[\"ddd-developer<br/>TDD 實作\"]\n    Coord --> Rev[\"ddd-reviewer<br/>程式碼審查\"]\n\n    Dev --> Coord\n    Rev --> Coord\n```\n\n| 角色 | 職責 | 不做什麼 |\n|------|------|----------|\n| **Coordinator**（main agent） | 需求分析、撰寫 spec、必要時細化 Milestones、派工、驗收 | 不寫 production code、不 debug、不做 review；`/ddd.fixbug` 的例外條件見該 skill |\n| **ddd-developer** | 以 TDD 循環實作功能程式碼與測試 | 不做架構決策、不跳過測試 |\n| **ddd-reviewer** | 獨立審查程式碼變更，產出 review 報告 | 不修改程式碼 |\n\n## 文件結構\n\n每個需求對應一個文件包，作為 SSOT（Single Source of Truth）：\n\n```\ndocs/\n├── PRD.md                        # 產品需求文件（專案層級，只建一次）\n├── TECHSTACK.md                  # 技術棧 + 參考文件連結（專案層級，只建一次）\n└── <編號>-<名稱>/                # Sprint 文件包（每個功能一個）\n    ├── plan.md                   # (optional) 初步筆記\n    ├── research.md               # (optional) 技術調研\n    ├── spec.md                   # 規格書：User Story、驗收條件、ADR、輕量 Milestones\n    └── works.md                  # 成果與決策紀錄\n```\n\n專案初始化時先建立 `PRD.md`（產品目標、使用者、範圍）和 `TECHSTACK.md`（語言、框架、部署環境），後續每個功能的 spec 都以此為基礎。\n\n## Skills\n\n主流程 skills（按順序使用，指令名稱與文件名皆為 alphabetical order — by design）：\n\n| Slash Command | 用途 | 何時觸發 |\n|---------------|------|----------|\n| `/ddd.plan` | 需求模糊時釐清方向 | 「我有個想法…」 |\n| `/ddd.spec` | 撰寫正式規格書 spec.md，含輕量 Milestones | 需求明確，準備定義規格 |\n| `/ddd.tasks` | 細化 Milestones 或拆分 Sprint | spec 確認後，且需要細化或拆分 Sprint |\n| `/ddd.work` | 以 TDD 循環實作（支援平行派工） | spec 確認後 |\n| `/ddd.xreview` | 多模型 cross review | 實作完成，準備提交前 |\n\n輔助 skills：\n\n| Slash Command | 用途 |\n|---------------|------|\n| `/ddd.fixbug` | Bug 快速修復；適用條件與例外限制見該 skill |\n| `/ddd.agent-browser` | E2E 除錯——用瀏覽器自動化系統性地除錯前端問題 |\n\n## 核心原則\n\n- **SSOT**：每個需求一個文件包，文件就是唯一真相來源\n- **No Code Without Docs**：spec 獲得確認前，嚴禁寫程式碼\n- **No Code Without Tests**：修改 production code 前，必須先有測試\n- **Sync on Finish**：完成任務前，先更新任務來源和 works.md\n- **明確的決策點**：需要使用者決策時，必須暫停等待確認\n\n## 專案結構\n\n```\nddd-workflow/\n├── skills/                       # Agent Skills 定義（slash commands）\n│   └── ddd.<name>/\n│       ├── SKILL.md              # YAML frontmatter + 指令內容\n│       └── references/           # (optional) 參考資料\n├── agents/                       # Claude-compatible canonical agents\n├── bin/                          # public CLI entrypoints\n├── chunks/                       # bin runtime chunks\n├── deploy/                       # bin deploy runtime\n├── scripts/                      # package-level runtime scripts\n├── config/                       # user-editable config templates\n├── policies/                     # CLI policy files\n├── references/\n│   └── AGENTS.md                 # 共用指令檔（coding style、工具偏好等）\n└── package.json\n```\n\n## License\n\nMIT\n",
  "bytes": 4855,
  "sha": "346cd8283e4964d21b7d7cc0d49273c286957bf56fe6e42e4633a110fd280985",
  "repo_slug": "applepig/ddd-workflow",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_applepig_ddd_workflow_f36d8ad7/readme"
}