dflow-sdd-ddd 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/README.en.md +7 -9
  3. package/README.md +10 -12
  4. package/TEMPLATE-COVERAGE.md +1 -1
  5. package/bin/dflow.js +11 -5
  6. package/docs/evaluating-dflow.en.md +2 -5
  7. package/docs/evaluating-dflow.md +1 -3
  8. package/docs/examples-by-stack.md +516 -0
  9. package/docs/migrating-to-dflow-v1.md +1 -1
  10. package/docs/release-versioning-policy.md +13 -0
  11. package/docs/using-with-claude-code.en.md +38 -8
  12. package/docs/using-with-claude-code.md +33 -7
  13. package/docs/using-with-codex.en.md +31 -5
  14. package/docs/using-with-codex.md +28 -5
  15. package/docs/using-with-github-copilot.en.md +29 -5
  16. package/docs/using-with-github-copilot.md +28 -5
  17. package/lib/init.js +437 -46
  18. package/package.json +1 -1
  19. package/templates/brownfield/scaffolding/AI-AGENT-GUIDE.md +42 -3
  20. package/templates/brownfield/scaffolding/CLAUDE-md-snippet.md +25 -15
  21. package/templates/brownfield/scaffolding/Git-principles-gitflow.md +1 -1
  22. package/templates/brownfield/scaffolding/Git-principles-trunk.md +1 -1
  23. package/templates/brownfield/scaffolding/_conventions.md +1 -1
  24. package/templates/brownfield/scaffolding/_overview.md +40 -29
  25. package/templates/brownfield/templates/CLAUDE.md +25 -17
  26. package/templates/brownfield/templates/context-definition.md +4 -4
  27. package/templates/brownfield/templates/context-map.md +1 -1
  28. package/templates/brownfield/templates/lightweight-spec.md +3 -1
  29. package/templates/brownfield/templates/models.md +1 -1
  30. package/templates/brownfield/templates/phase-spec.md +10 -8
  31. package/templates/brownfield/templates/tech-debt.md +2 -2
  32. package/templates/greenfield/scaffolding/AI-AGENT-GUIDE.md +42 -3
  33. package/templates/greenfield/scaffolding/CLAUDE-md-snippet.md +7 -6
  34. package/templates/greenfield/scaffolding/Git-principles-gitflow.md +2 -2
  35. package/templates/greenfield/scaffolding/Git-principles-trunk.md +2 -2
  36. package/templates/greenfield/scaffolding/_overview.md +29 -11
  37. package/templates/greenfield/templates/CLAUDE.md +5 -5
  38. package/docs/using-with-gemini-cli.en.md +0 -200
  39. package/docs/using-with-gemini-cli.md +0 -184
@@ -62,7 +62,7 @@ Two things matter when Codex starts in this project:
62
62
  1. Codex CLI reads `AGENTS.md` as project instructions. This is Codex's
63
63
  standard repository-instruction mechanism.
64
64
  2. The Dflow shim does not include a Markdown import line. Unlike the
65
- Claude Code and Gemini shims, generated `AGENTS.md` does not contain
65
+ Claude Code shim, generated `AGENTS.md` does not contain
66
66
  `@dflow/specs/shared/AI-AGENT-GUIDE.md`.
67
67
 
68
68
  That means Codex sees the pointer immediately, but the canonical Dflow guide
@@ -76,7 +76,7 @@ The canonical guide is where the real workflow rules live: project context
76
76
  (track, tech stack, prose language), the Dflow workflow table,
77
77
  source-of-truth file paths, and core SDD/DDD rules. The `AGENTS.md` shim
78
78
  stays small so the same canonical guide can serve Codex CLI, Claude Code,
79
- Gemini CLI, GitHub Copilot, and other tools.
79
+ GitHub Copilot, and other tools.
80
80
 
81
81
  If an `AGENTS.md` already existed in the project, `init` does not overwrite
82
82
  it. If the existing file does not already point to
@@ -152,6 +152,26 @@ If you forget a workflow name, ask Codex to read
152
152
  `dflow/specs/shared/AI-AGENT-GUIDE.md` and list the available Dflow
153
153
  workflows.
154
154
 
155
+ ### Codex Behavior With Optional Command Adapters
156
+
157
+ For Codex, `dflow configure-agents --command-adapters` strengthens text
158
+ triggers only. It does not create Codex command files and it does not add
159
+ `.agents/skills/dflow/SKILL.md`. Codex v1 has no Dflow command-file adapter
160
+ equivalent to Claude `.claude/commands` or Copilot `.github/prompts`.
161
+
162
+ When you select `AGENTS.md - Codex / Copilot coding agent` in
163
+ `--command-adapters` mode and Dflow can create a new `AGENTS.md` shim, the
164
+ shim includes a trigger list generated from the canonical command registry.
165
+ Those triggers are still plain text prompts, for example:
166
+
167
+ ```text
168
+ Run the Dflow /dflow:new-feature workflow.
169
+ ```
170
+
171
+ If the project already has a custom `AGENTS.md`, Dflow still preserves that
172
+ file; merge the Dflow pointer manually from the generated snippet or the
173
+ documentation guidance.
174
+
155
175
  ## Differences vs Other AI Tools
156
176
 
157
177
  The canonical guide (`dflow/specs/shared/AI-AGENT-GUIDE.md`) is identical
@@ -161,12 +181,13 @@ across tools. Only the root-level shim differs:
161
181
  |---|---|---|
162
182
  | Claude Code | `CLAUDE.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
163
183
  | Codex / Copilot coding agent | `AGENTS.md` | Project instructions load the shim; Codex must follow the pointer and read the guide |
164
- | Gemini CLI | `GEMINI.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
165
184
  | GitHub Copilot | `.github/copilot-instructions.md` | Reads repository instructions directly |
166
185
 
167
186
  You can run `dflow configure-agents` later to add another tool's shim
168
- without re-running `init`. Multiple tools can be active in the same project
169
- and stay synchronized via the canonical guide.
187
+ without re-running `init`. If you need tool-native wrappers for Claude or
188
+ Copilot, opt in with `dflow configure-agents --command-adapters`. Codex
189
+ remains text-trigger-only in that mode. Multiple tools can be active in the
190
+ same project and stay synchronized via the canonical guide.
170
191
 
171
192
  Codex also has its own project-instruction layering. It can read global
172
193
  instructions from Codex home and project instructions from `AGENTS.md` files
@@ -196,6 +217,11 @@ chat instructions when raw slash input is intercepted or rejected. Raw
196
217
  `/dflow:*` passthrough behavior should be verified with the maintainer for
197
218
  the supported Codex version.
198
219
 
220
+ **Codex does not generate command files.** Even with `--command-adapters`,
221
+ Codex only strengthens text-trigger guidance in `AGENTS.md` / merge
222
+ snippets. Do not expect Codex-specific files under `.claude/commands`,
223
+ `.github/prompts`, or `.agents/skills/dflow/SKILL.md`.
224
+
199
225
  **Do not confuse Codex `/init` with Dflow `init`.** Codex `/init` creates a
200
226
  generic `AGENTS.md` scaffold for Codex. Dflow setup is `dflow init` (or
201
227
  `npx dflow-sdd-ddd init` on the no-install path), and adding later tool shims
@@ -56,8 +56,8 @@ Codex 在這個專案中啟動時,有兩件事值得注意:
56
56
 
57
57
  1. Codex CLI 將 `AGENTS.md` 作為專案指示讀取。這是 Codex 的
58
58
  標準 repository 指示機制。
59
- 2. Dflow shim 不含 Markdown import 那一行。與 Claude Code 和 Gemini 的
60
- shim 不同,產生的 `AGENTS.md` 不含 `@dflow/specs/shared/AI-AGENT-GUIDE.md`。
59
+ 2. Dflow shim 不含 Markdown import 那一行。與 Claude Code 的 shim 不同,
60
+ 產生的 `AGENTS.md` 不含 `@dflow/specs/shared/AI-AGENT-GUIDE.md`。
61
61
 
62
62
  這意味著 Codex 能立即看到指標,但 canonical Dflow 指南不會由 shim 自動 inline 嵌入。
63
63
  在規劃或編輯之前,Codex 應跟著指標讀取 `dflow/specs/shared/AI-AGENT-GUIDE.md`。
@@ -67,7 +67,7 @@ read and follow `dflow/specs/shared/AI-AGENT-GUIDE.md`.」
67
67
  canonical 指南是實際 workflow 規則的所在:專案上下文(track、技術棧、
68
68
  文章語言)、Dflow workflow 表、source-of-truth 檔案路徑,以及核心 SDD/DDD 規則。
69
69
  `AGENTS.md` shim 刻意保持精簡,這樣 canonical 指南就能同時服務 Codex CLI、
70
- Claude Code、Gemini CLI、GitHub Copilot 與其他工具。
70
+ Claude Code、GitHub Copilot 與其他工具。
71
71
 
72
72
  如果專案中已有 `AGENTS.md`,`init` 不會覆蓋它。若既有檔案尚未指向
73
73
  `dflow/specs/shared/AI-AGENT-GUIDE.md`,`init` 會在
@@ -139,6 +139,24 @@ finish-feature 漂移(drift)檢查。確切的流程取決於你進入的是
139
139
  如果你忘了 workflow 名稱,請 Codex 讀取 `dflow/specs/shared/AI-AGENT-GUIDE.md`
140
140
  並列出可用的 Dflow workflow 即可。
141
141
 
142
+ ### 選配 Command Adapters 的 Codex 行為
143
+
144
+ `dflow configure-agents --command-adapters` 對 Codex 採文字 trigger 強化,不會建立
145
+ Codex 命令檔,也不會新增 `.agents/skills/dflow/SKILL.md`。Codex v1 沒有與
146
+ Claude `.claude/commands` 或 Copilot `.github/prompts` 對等的 Dflow command-file
147
+ adapter。
148
+
149
+ 當你在 `--command-adapters` 模式下選擇 `AGENTS.md - Codex / Copilot coding agent`
150
+ 且 Dflow 可以建立新的 `AGENTS.md` shim 時,shim 會加入從 canonical command
151
+ registry 產生的 trigger 清單。這些 trigger 仍是文字提示,例如:
152
+
153
+ ```text
154
+ Run the Dflow /dflow:new-feature workflow.
155
+ ```
156
+
157
+ 如果專案已有自訂 `AGENTS.md`,Dflow 仍會保留既有檔案;請依產生的 merge snippet
158
+ 或文件指引手動合併 Dflow 指標。
159
+
142
160
  ## 與其他 AI 工具的差異
143
161
 
144
162
  canonical 指南(`dflow/specs/shared/AI-AGENT-GUIDE.md`)在各工具之間是相同的。
@@ -148,11 +166,12 @@ canonical 指南(`dflow/specs/shared/AI-AGENT-GUIDE.md`)在各工具之間
148
166
  |---|---|---|
149
167
  | Claude Code | `CLAUDE.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
150
168
  | Codex / Copilot coding agent | `AGENTS.md` | 專案指示載入 shim;Codex 須跟著指標讀取指南 |
151
- | Gemini CLI | `GEMINI.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
152
169
  | GitHub Copilot | `.github/copilot-instructions.md` | 直接讀取 repository 指示 |
153
170
 
154
171
  你可以之後執行 `dflow configure-agents` 來新增另一個工具的 shim,而不需要重跑
155
- `init`。同一個專案可以同時啟用多個工具,並透過 canonical 指南保持同步。
172
+ `init`。若需要 Claude / Copilot 的工具原生命令 wrapper,可 opt in
173
+ `dflow configure-agents --command-adapters`。Codex 在此模式下仍是文字 trigger
174
+ only。同一個專案可以同時啟用多個工具,並透過 canonical 指南保持同步。
156
175
 
157
176
  Codex 也有自己的專案指示分層機制。它可以從 Codex home 讀取全域指示、
158
177
  從專案根目錄到當前工作目錄之間的 `AGENTS.md` 檔案讀取專案指示。
@@ -179,6 +198,10 @@ SDD 約束加入 `AGENTS.md`,這些內容應該放到
179
198
  輸入 Dflow workflow 名稱。`/dflow:*` 的直通行為需依所用的 Codex 版本向
180
199
  maintainer 確認。
181
200
 
201
+ **Codex 不產生命令檔。** 即使使用 `--command-adapters`,Codex 也只強化
202
+ `AGENTS.md` / merge snippet 中的文字 trigger 說明。不要期待 `.claude/commands`、
203
+ `.github/prompts` 或 `.agents/skills/dflow/SKILL.md` 形式的 Codex 專屬命令檔。
204
+
182
205
  **不要混淆 Codex `/init` 與 Dflow `init`。** Codex `/init` 為 Codex 建立
183
206
  通用的 `AGENTS.md` scaffold。Dflow 的設定是 `dflow init`(或免安裝路徑的
184
207
  `npx dflow-sdd-ddd init`),之後新增工具 shim 則是 `dflow configure-agents`。
@@ -42,7 +42,9 @@ Key points:
42
42
 
43
43
  ## Using Dflow Workflow Commands with GitHub Copilot
44
44
 
45
- Copilot is an IDE-first assistant (chat panel + inline completions), not a CLI tool. Treat Dflow workflow names as plain chat instructions rather than CLI slash commands:
45
+ By default, Copilot is an IDE-first assistant (chat panel + inline
46
+ completions), not a CLI tool. Treat Dflow workflow names as plain chat
47
+ instructions rather than CLI slash commands:
46
48
 
47
49
  - In the Copilot Chat: "Run the Dflow /dflow:new-feature workflow" — Copilot should read the canonical guide and proceed.
48
50
  - In code comments or editor chat, describe the workflow as plain text: `Run the Dflow /dflow:new-feature workflow.`
@@ -60,6 +62,28 @@ Available workflow entry points:
60
62
  | `/dflow:pr-review` | A change is ready for SDD/DDD review. |
61
63
  | `/dflow:report-dflow-feedback` | You found a Dflow issue or improvement and want a sanitized upstream feedback draft. |
62
64
 
65
+ ### Optional Prompt Adapters
66
+
67
+ If you want tool-native entries in a Copilot / VS Code environment that
68
+ supports prompt files, run this in an initialized project:
69
+
70
+ ```bash
71
+ dflow configure-agents --command-adapters
72
+ ```
73
+
74
+ After you select GitHub Copilot, Dflow projects thin prompt wrappers from the
75
+ command registry inside the canonical guide:
76
+
77
+ - `.github/prompts/dflow-<id>.prompt.md`
78
+
79
+ These prompts use adapter-native names, for example `/dflow-new-feature` or
80
+ the matching IDE Quick Pick prompt name. Their body only points to the
81
+ canonical `/dflow:new-feature` workflow and
82
+ `dflow/specs/shared/AI-AGENT-GUIDE.md`; it does not copy workflow steps.
83
+ Dflow v1 does not promise that Copilot chat supports the exact colon form
84
+ `/dflow:new-feature`. The canonical name remains in the guide and prompt
85
+ body.
86
+
63
87
  ### Sample Conversation Flow
64
88
 
65
89
  A typical Copilot Chat workflow looks like this:
@@ -107,13 +131,12 @@ The canonical guide (`dflow/specs/shared/AI-AGENT-GUIDE.md`) is the same across
107
131
  |---|---|---|
108
132
  | GitHub Copilot | `.github/copilot-instructions.md` | Reads repository instructions directly |
109
133
  | Claude Code | `CLAUDE.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
110
- | Gemini CLI | `GEMINI.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
111
134
  | Codex / Copilot coding agent | `AGENTS.md` | Reads file content directly when starting |
112
135
 
113
136
  - Shim path: Copilot uses `.github/copilot-instructions.md` (not `AGENTS.md` or `CLAUDE.md`).
114
- - Markdown import: Copilot shim has NO `@dflow/specs/shared/AI-AGENT-GUIDE.md` import. This contrasts with Claude/Gemini CLI shims which inline via `@` imports.
137
+ - Markdown import: Copilot shim has NO `@dflow/specs/shared/AI-AGENT-GUIDE.md` import. This contrasts with the Claude Code shim, which inlines via an `@` import.
115
138
  - Tool model: Copilot is IDE-based (chat panel + inline completions); Codex/Claude Code are CLI-based agents. Copilot interacts through the editor UI rather than a command-line session.
116
- - Workflow invocation: With CLI agents you may type `/dflow:*` to the agent process; with Copilot prefer plain-chat phrasing in the Copilot Chat or editor comments.
139
+ - Workflow invocation: With CLI agents you may type `/dflow:*` to the agent process; with Copilot prefer plain-chat phrasing in the Copilot Chat or editor comments by default. If you opt in to `--command-adapters`, use adapter-native prompt names such as `/dflow-new-feature`.
117
140
  - Permission model: Copilot relies on the IDE's permission and extension sandbox. It may prompt for or be governed by editor-level approvals; CLI tools often have explicit sandbox flags and separate permission gates.
118
141
 
119
142
  ## Common Patterns and Gotchas
@@ -123,6 +146,7 @@ The canonical guide (`dflow/specs/shared/AI-AGENT-GUIDE.md`) is the same across
123
146
  - Copilot's inline completions may suggest code without following Dflow workflows; explicitly request the workflow when you need spec-driven output.
124
147
  - Copilot chat context may not automatically include repository instruction files from `.github/` in all IDE versions; behavior varies by Copilot / IDE version (see footer note).
125
148
  - Use plain prose to name workflows when slash-prefixed forms are rejected by the IDE.
149
+ - Prompt adapters are thin wrappers generated from the canonical command registry; do not hand-write or copy Dflow workflow steps under `.github/prompts/`.
126
150
 
127
151
  ## Where to Go Next
128
152
 
@@ -133,4 +157,4 @@ The canonical guide (`dflow/specs/shared/AI-AGENT-GUIDE.md`) is the same across
133
157
 
134
158
  ---
135
159
 
136
- Note on IDE behavior: Slash-command passthrough and automatic inclusion of `.github/` instruction files vary by Copilot / IDE version. Confirm with a maintainer before relying on exact semantics.
160
+ Note on IDE behavior: Slash-command passthrough and automatic inclusion of `.github/` instruction files vary by Copilot / IDE version. Confirm with a maintainer before relying on exact semantics.
@@ -49,8 +49,8 @@ Before planning or editing code, read and follow:
49
49
 
50
50
  ## 在 GitHub Copilot 中使用 Dflow Workflow 指令
51
51
 
52
- Copilot 是 IDE 優先的助理(chat panel + inline completions),不是 CLI 工具。
53
- 請把 Dflow workflow 名稱當成普通的對話指示,而非 CLI slash command:
52
+ 預設情況下,Copilot 是 IDE 優先的助理(chat panel + inline completions),不是
53
+ CLI 工具。請把 Dflow workflow 名稱當成普通的對話指示,而非 CLI slash command:
54
54
 
55
55
  - 在 Copilot Chat 中:「Run the Dflow /dflow:new-feature workflow」—— Copilot
56
56
  應讀取 canonical 指南並繼續執行。
@@ -70,6 +70,26 @@ Copilot 是 IDE 優先的助理(chat panel + inline completions),不是 CL
70
70
  | `/dflow:pr-review` | 變更已準備好進行 SDD/DDD review。 |
71
71
  | `/dflow:report-dflow-feedback` | 你發現了 Dflow 的問題或改進點,想要一份清理過的上游回饋草稿。 |
72
72
 
73
+ ### 選配 Prompt Adapters
74
+
75
+ 如果想在支援 prompt files 的 Copilot / VS Code 環境中使用工具原生入口,可在
76
+ 已初始化的專案中執行:
77
+
78
+ ```bash
79
+ dflow configure-agents --command-adapters
80
+ ```
81
+
82
+ 選擇 GitHub Copilot 後,Dflow 會從 canonical guide 內的 command registry
83
+ 投影產生薄 prompt wrapper:
84
+
85
+ - `.github/prompts/dflow-<id>.prompt.md`
86
+
87
+ 這些 prompt 使用 adapter-native 命名,例如 `/dflow-new-feature` 或 IDE 的
88
+ Quick Pick prompt 名稱。Prompt 內容只指向 canonical `/dflow:new-feature`
89
+ workflow 與 `dflow/specs/shared/AI-AGENT-GUIDE.md`,不複製 workflow 步驟。
90
+ Dflow v1 不承諾 Copilot chat 一定支援 exact `/dflow:new-feature` colon 形式;
91
+ canonical 名稱仍保留在 guide 與 prompt body 中。
92
+
73
93
  ### 對話範例
74
94
 
75
95
  典型的 Copilot Chat workflow 如下:
@@ -123,18 +143,19 @@ canonical 指南(`dflow/specs/shared/AI-AGENT-GUIDE.md`)在各工具之間
123
143
  |---|---|---|
124
144
  | GitHub Copilot | `.github/copilot-instructions.md` | 直接讀取 repository 指示 |
125
145
  | Claude Code | `CLAUDE.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
126
- | Gemini CLI | `GEMINI.md` | `@dflow/specs/shared/AI-AGENT-GUIDE.md` Markdown import |
127
146
  | Codex / Copilot coding agent | `AGENTS.md` | 啟動時直接讀取檔案內容 |
128
147
 
129
148
  - Shim 路徑:Copilot 使用 `.github/copilot-instructions.md`(不是 `AGENTS.md`
130
149
  或 `CLAUDE.md`)。
131
150
  - Markdown import:Copilot shim 不含 `@dflow/specs/shared/AI-AGENT-GUIDE.md`
132
- import。這點與 Claude Code / Gemini CLI 的 shim 透過 `@` import inline 嵌入不同。
151
+ import。這點與 Claude Code 的 shim 透過 `@` import inline 嵌入不同。
133
152
  - 工具模型:Copilot 是 IDE-based(chat panel + inline completions);
134
153
  Codex / Claude Code 是 CLI-based agent。Copilot 透過編輯器 UI 互動,而非
135
154
  command-line session。
136
155
  - Workflow 呼叫:使用 CLI agent 時可對 agent process 輸入 `/dflow:*`;使用
137
- Copilot 時,建議在 Copilot Chat 或 editor comment 中使用普通文字描述。
156
+ Copilot 時,預設建議在 Copilot Chat 或 editor comment 中使用普通文字描述。
157
+ 若已 opt in `--command-adapters`,則使用 adapter-native prompt 名稱,例如
158
+ `/dflow-new-feature`。
138
159
  - Permission 模型:Copilot 依賴 IDE 的 permission 與 extension sandbox。它可能
139
160
  受 editor-level approvals 管理;CLI 工具通常有明確的 sandbox flags 與獨立的
140
161
  permission gates。
@@ -150,6 +171,8 @@ canonical 指南(`dflow/specs/shared/AI-AGENT-GUIDE.md`)在各工具之間
150
171
  - Copilot Chat context 不一定會在所有 IDE 版本中自動包含 `.github/` 目錄下的
151
172
  repository 指示檔;行為因 Copilot / IDE 版本而異(見頁尾說明)。
152
173
  - 當 slash-prefixed forms 被 IDE 拒絕時,改用普通文字描述 workflow 名稱。
174
+ - Prompt adapter 是從 canonical command registry 產生的薄 wrapper;不要在
175
+ `.github/prompts/` 中手寫或複製 Dflow workflow 步驟。
153
176
 
154
177
  ## 下一步
155
178