dflow-sdd-ddd 0.2.0 → 0.4.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.
- package/CHANGELOG.md +971 -0
- package/README.en.md +345 -0
- package/README.md +213 -159
- package/docs/evaluating-dflow.en.md +238 -0
- package/docs/evaluating-dflow.md +94 -151
- package/docs/examples-by-stack.md +516 -0
- package/docs/migrating-to-dflow-v1.md +28 -10
- package/docs/release-versioning-policy.md +13 -0
- package/docs/using-with-claude-code.en.md +210 -0
- package/docs/using-with-claude-code.md +108 -124
- package/docs/using-with-codex.en.md +248 -0
- package/docs/using-with-codex.md +137 -157
- package/docs/using-with-gemini-cli.en.md +200 -0
- package/docs/using-with-gemini-cli.md +184 -0
- package/docs/using-with-github-copilot.en.md +136 -0
- package/docs/using-with-github-copilot.md +177 -0
- package/docs/why-ddd-for-ai.en.md +37 -0
- package/docs/why-ddd-for-ai.md +19 -17
- package/lib/init.js +187 -24
- package/package.json +1 -1
- package/templates/brownfield/scaffolding/AI-AGENT-GUIDE.md +2 -1
- package/templates/brownfield/scaffolding/CLAUDE-md-snippet.md +32 -22
- package/templates/brownfield/scaffolding/Git-principles-gitflow.md +1 -1
- package/templates/brownfield/scaffolding/Git-principles-trunk.md +1 -1
- package/templates/brownfield/scaffolding/_conventions.md +1 -1
- package/templates/brownfield/scaffolding/_overview.md +40 -29
- package/templates/brownfield/templates/CLAUDE.md +26 -18
- package/templates/brownfield/templates/context-definition.md +4 -4
- package/templates/brownfield/templates/context-map.md +1 -1
- package/templates/brownfield/templates/lightweight-spec.md +3 -1
- package/templates/brownfield/templates/models.md +1 -1
- package/templates/brownfield/templates/phase-spec.md +33 -28
- package/templates/brownfield/templates/tech-debt.md +2 -2
- package/templates/greenfield/scaffolding/AI-AGENT-GUIDE.md +2 -1
- package/templates/greenfield/scaffolding/CLAUDE-md-snippet.md +14 -13
- package/templates/greenfield/scaffolding/Git-principles-gitflow.md +2 -2
- package/templates/greenfield/scaffolding/Git-principles-trunk.md +2 -2
- package/templates/greenfield/scaffolding/_conventions.md +1 -1
- package/templates/greenfield/scaffolding/_overview.md +29 -11
- package/templates/greenfield/templates/CLAUDE.md +6 -6
- package/templates/greenfield/templates/phase-spec.md +24 -21
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Evaluating Dflow
|
|
2
|
+
|
|
3
|
+
> [繁體中文](evaluating-dflow.md) | **English**
|
|
4
|
+
|
|
5
|
+
A short guide for first-time evaluators deciding whether Dflow fits a project.
|
|
6
|
+
About 10 minutes to read, optional 30 minutes to try in a sample project.
|
|
7
|
+
|
|
8
|
+
## Who This Guide Is For
|
|
9
|
+
|
|
10
|
+
You are deciding whether to introduce Dflow into a codebase. You may be a
|
|
11
|
+
tech lead evaluating workflow changes for an AI-assisted team, a solo
|
|
12
|
+
developer comparing AI coding workflows, or a team member asked to assess
|
|
13
|
+
Dflow before broader adoption.
|
|
14
|
+
|
|
15
|
+
This guide answers the most common evaluation questions in one place. It does
|
|
16
|
+
not replace [`README.md`](../README.en.md) (overview) or [`tutorial/`](../tutorial/)
|
|
17
|
+
(deep walk-throughs); it is a focused decision aid.
|
|
18
|
+
|
|
19
|
+
## What Is Dflow
|
|
20
|
+
|
|
21
|
+
Dflow is a workflow kit for AI-assisted development. It gives an AI coding
|
|
22
|
+
agent a concrete process for turning change requests into structured specs,
|
|
23
|
+
domain language, and reviewable code, instead of jumping from prompt straight
|
|
24
|
+
to code.
|
|
25
|
+
|
|
26
|
+
Dflow is Markdown-based workflow material plus a scaffolding CLI. It does not
|
|
27
|
+
require a runtime, server, or framework. Once `init` runs, Dflow lives entirely
|
|
28
|
+
in your project's `dflow/specs/` directory and AI instruction files.
|
|
29
|
+
|
|
30
|
+
## What `init` Creates and Does Not Do
|
|
31
|
+
|
|
32
|
+
`dflow init` (or `npx dflow-sdd-ddd init` on the no-install path) creates:
|
|
33
|
+
|
|
34
|
+
- A `dflow/specs/` workspace (overview, conventions, domain glossary, context
|
|
35
|
+
map, architecture/tech-debt, features active/completed). See
|
|
36
|
+
[`README.md` "Files Created by Init"](../README.en.md#files-created-by-init)
|
|
37
|
+
for the full tree.
|
|
38
|
+
- A canonical project guide at `dflow/specs/shared/AI-AGENT-GUIDE.md`.
|
|
39
|
+
- Mergeable AI agent instruction files for the tools you select (e.g.,
|
|
40
|
+
`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`,
|
|
41
|
+
`.github/copilot-instructions.md`). Each is a thin pointer to the
|
|
42
|
+
canonical guide.
|
|
43
|
+
|
|
44
|
+
`init` does **not**:
|
|
45
|
+
|
|
46
|
+
- Inspect, refactor, or migrate your application code.
|
|
47
|
+
- Overwrite existing AI agent instruction files; if one exists, Dflow writes
|
|
48
|
+
a merge snippet under `dflow/specs/shared/` instead.
|
|
49
|
+
- Modify your build system, package manager, or dependencies.
|
|
50
|
+
- Send any data anywhere; it is a local scaffolding command.
|
|
51
|
+
|
|
52
|
+
## How Dflow Works With Different AI Tools
|
|
53
|
+
|
|
54
|
+
Dflow targets multiple AI coding agents. After running `init`, you select one
|
|
55
|
+
or more tools and Dflow writes the corresponding shim:
|
|
56
|
+
|
|
57
|
+
| Tool | Generated file |
|
|
58
|
+
|---|---|
|
|
59
|
+
| Codex / Copilot coding agent | `AGENTS.md` |
|
|
60
|
+
| Claude Code | `CLAUDE.md` |
|
|
61
|
+
| Gemini CLI | `GEMINI.md` |
|
|
62
|
+
| GitHub Copilot | `.github/copilot-instructions.md` |
|
|
63
|
+
|
|
64
|
+
Each shim points back to the canonical
|
|
65
|
+
`dflow/specs/shared/AI-AGENT-GUIDE.md`. Practical implications:
|
|
66
|
+
|
|
67
|
+
- Multiple tools can be active in the same project without diverging
|
|
68
|
+
workflow rules.
|
|
69
|
+
- Switching or adding tools later does not require re-running `init`; use
|
|
70
|
+
run `dflow configure-agents` to add another shim.
|
|
71
|
+
- The project guide stays the single source of truth for Dflow workflow
|
|
72
|
+
behavior.
|
|
73
|
+
|
|
74
|
+
If your tool does not support custom slash commands, use the same command
|
|
75
|
+
names (e.g., `/dflow:new-feature`) as plain instructions in chat. Dflow is
|
|
76
|
+
Markdown-based workflow material; it works with any AI agent that can read
|
|
77
|
+
project instructions and repository context.
|
|
78
|
+
|
|
79
|
+
For a tool-specific walk-through of what `init` writes and how the slash
|
|
80
|
+
commands appear in conversation, see the per-tool guides:
|
|
81
|
+
|
|
82
|
+
- [Using Dflow with Claude Code](using-with-claude-code.en.md)
|
|
83
|
+
- [Using Dflow with Codex CLI](using-with-codex.en.md)
|
|
84
|
+
- [Using Dflow with Gemini CLI](using-with-gemini-cli.en.md)
|
|
85
|
+
- [Using Dflow with GitHub Copilot](using-with-github-copilot.en.md)
|
|
86
|
+
|
|
87
|
+
## Greenfield or Brownfield: Choosing a Track
|
|
88
|
+
|
|
89
|
+
Pick **Greenfield** if:
|
|
90
|
+
|
|
91
|
+
- You are starting a new system or a new bounded module.
|
|
92
|
+
- You have room to shape architecture before legacy constraints accumulate.
|
|
93
|
+
- You want explicit domain models from feature 1.
|
|
94
|
+
|
|
95
|
+
Pick **Brownfield** if:
|
|
96
|
+
|
|
97
|
+
- You are extending or modifying an existing codebase.
|
|
98
|
+
- Business rules are scattered across handlers, stored procedures, UI code,
|
|
99
|
+
or scripts.
|
|
100
|
+
- You want to introduce specs and domain extraction incrementally without
|
|
101
|
+
refactoring everything first.
|
|
102
|
+
|
|
103
|
+
Mixed cases:
|
|
104
|
+
|
|
105
|
+
- New module inside an existing app: usually Greenfield, scoped to the new
|
|
106
|
+
bounded context.
|
|
107
|
+
- Existing app with clean architecture and active development: either track
|
|
108
|
+
works; Brownfield is safer if rules are not yet documented.
|
|
109
|
+
|
|
110
|
+
## A 30-Minute Evaluation Playbook
|
|
111
|
+
|
|
112
|
+
This walk-through lets you see what Dflow does without committing it to a
|
|
113
|
+
real codebase.
|
|
114
|
+
|
|
115
|
+
1. **Create a sample project** (Greenfield):
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
mkdir dflow-sample && cd dflow-sample
|
|
119
|
+
git init
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
2. **Install and run init**:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm install -g dflow-sdd-ddd
|
|
126
|
+
dflow init
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
If you prefer not to install globally, use `npx dflow-sdd-ddd init`
|
|
130
|
+
instead. When prompted, choose Greenfield. Pick one AI tool to generate
|
|
131
|
+
the shim for.
|
|
132
|
+
|
|
133
|
+
3. **Inspect what was created**:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
ls -la
|
|
137
|
+
find dflow -type f
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Open `dflow/specs/shared/_overview.md`,
|
|
141
|
+
`dflow/specs/shared/_conventions.md`, and
|
|
142
|
+
`dflow/specs/shared/AI-AGENT-GUIDE.md` to see the shape.
|
|
143
|
+
|
|
144
|
+
4. **Read one tutorial walk-through** to see what a real feature flow looks
|
|
145
|
+
like end to end:
|
|
146
|
+
- Greenfield: [`tutorial/01-greenfield/`](../tutorial/01-greenfield/walkthrough-00-setup.md)
|
|
147
|
+
- Brownfield: [`tutorial/02-brownfield/`](../tutorial/02-brownfield/walkthrough-00-setup.md)
|
|
148
|
+
|
|
149
|
+
5. **Optional: try one workflow command**. Open the sample project in your
|
|
150
|
+
AI tool and ask it to run `/dflow:new-feature` (or paste the equivalent
|
|
151
|
+
instruction in chat). Inspect what it writes to `dflow/specs/`.
|
|
152
|
+
|
|
153
|
+
6. **Decide and clean up**. If Dflow does not fit, delete the sample
|
|
154
|
+
directory. There is no global state to clean; nothing was installed
|
|
155
|
+
beyond the one-shot `npx` cache.
|
|
156
|
+
|
|
157
|
+
If you want a deeper read instead of running anything, the tutorial
|
|
158
|
+
walk-throughs cover the same flow with worked outputs you can compare
|
|
159
|
+
against.
|
|
160
|
+
|
|
161
|
+
## What If You Stop Using Dflow
|
|
162
|
+
|
|
163
|
+
Dflow is designed for low cost to try and low cost to leave:
|
|
164
|
+
|
|
165
|
+
- Nothing depends on the `dflow-sdd-ddd` CLI being installed after `init`.
|
|
166
|
+
- The generated files are plain Markdown; remove Dflow from a project with
|
|
167
|
+
`rm -rf dflow/` plus deleting the AI agent shim files you no longer want.
|
|
168
|
+
- Existing project instruction files (e.g., a pre-existing `CLAUDE.md`) are
|
|
169
|
+
not modified by Dflow, so reverting is straightforward.
|
|
170
|
+
|
|
171
|
+
This means an evaluation pass leaves no permanent footprint if you decide
|
|
172
|
+
not to adopt.
|
|
173
|
+
|
|
174
|
+
## Cost Per Feature: A Rough Estimate
|
|
175
|
+
|
|
176
|
+
Dflow scales ceremony to change risk through three tiers (see
|
|
177
|
+
[`README.md` "Workflow Model"](../README.en.md#workflow-model) for full
|
|
178
|
+
detail):
|
|
179
|
+
|
|
180
|
+
- **T1 Heavy** — new features, new phases, new Aggregates or Bounded
|
|
181
|
+
Contexts, architecture changes, new business rules. A full phase-spec
|
|
182
|
+
with domain modeling, behavior examples, an implementation plan, and
|
|
183
|
+
verification + finish checks. The cost is real but proportional to
|
|
184
|
+
the risk being managed.
|
|
185
|
+
- **T2 Light** — bug fixes (logic errors), UI verification adjustments,
|
|
186
|
+
small changes with a business-rule delta. A lightweight spec, focused
|
|
187
|
+
verification, and confirmation that the fix lands in the correct
|
|
188
|
+
architectural layer.
|
|
189
|
+
- **T3 Trivial** — button colors, copy typos, pure formatting — **no
|
|
190
|
+
business-rule, Domain, or data-structure changes**. One line in
|
|
191
|
+
`_index.md`; no separate spec file.
|
|
192
|
+
|
|
193
|
+
Tier choice is not always manual: `/dflow:new-feature` and
|
|
194
|
+
`/dflow:new-phase` default to T1; `/dflow:modify-existing` and
|
|
195
|
+
`/dflow:bug-fix` let the AI judge T1/T2/T3 based on what is actually
|
|
196
|
+
changing. Pure typo / formatting commits (e.g., `prettier`,
|
|
197
|
+
`dotnet format`) can skip Dflow entirely and just `git commit` — Dflow
|
|
198
|
+
is for changes with business semantics or structural impact.
|
|
199
|
+
|
|
200
|
+
## Project Language Compatibility
|
|
201
|
+
|
|
202
|
+
Dflow templates use **canonical English** structure (headings, field labels)
|
|
203
|
+
so AI agents can locate sections reliably across projects. The free-form
|
|
204
|
+
content you write inside templates can be in any team language — English,
|
|
205
|
+
Traditional Chinese, Simplified Chinese, or others. The init flow asks for
|
|
206
|
+
the project's prose language and stores it in
|
|
207
|
+
`dflow/specs/shared/_conventions.md`.
|
|
208
|
+
|
|
209
|
+
Practical effect:
|
|
210
|
+
|
|
211
|
+
- AI tools see stable English structure across projects.
|
|
212
|
+
- Humans read and write specs in the team's chosen language.
|
|
213
|
+
- No need to translate templates or maintain parallel localized copies.
|
|
214
|
+
|
|
215
|
+
## Where to Go Next
|
|
216
|
+
|
|
217
|
+
If you decided Dflow fits:
|
|
218
|
+
|
|
219
|
+
- Run `init` in your real project (consider a branch first).
|
|
220
|
+
- Read [`tutorial/`](../tutorial/) for end-to-end walk-throughs and worked
|
|
221
|
+
outputs.
|
|
222
|
+
- See [`CONTRIBUTING.md`](../CONTRIBUTING.md) before opening issues or
|
|
223
|
+
pull requests.
|
|
224
|
+
|
|
225
|
+
If you are still deciding:
|
|
226
|
+
|
|
227
|
+
- Read [`docs/why-ddd-for-ai.en.md`](why-ddd-for-ai.en.md) for the design
|
|
228
|
+
rationale behind spec-first plus DDD.
|
|
229
|
+
- Compare a tutorial scenario step-by-step with its `outputs/` tree to see
|
|
230
|
+
what production-shape Dflow specs look like.
|
|
231
|
+
|
|
232
|
+
If Dflow does not fit your project today:
|
|
233
|
+
|
|
234
|
+
- The structured-spec idea is portable; you can adopt parts of it without
|
|
235
|
+
the CLI.
|
|
236
|
+
- Open a docs feedback issue (see
|
|
237
|
+
[`CONTRIBUTING.md`](../CONTRIBUTING.md)) if a specific gap blocked you.
|
|
238
|
+
That feedback helps future evaluators.
|
package/docs/evaluating-dflow.md
CHANGED
|
@@ -1,226 +1,169 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 評估 Dflow
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
About 10 minutes to read, optional 30 minutes to try in a sample project.
|
|
3
|
+
> **繁體中文** | [English](evaluating-dflow.en.md)
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
首次評估 Dflow 是否適合專案的簡明指引。
|
|
6
|
+
閱讀約需 10 分鐘;可選擇再花 30 分鐘在範例專案中實際試用。
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
tech lead evaluating workflow changes for an AI-assisted team, a solo
|
|
10
|
-
developer comparing AI coding workflows, or a team member asked to assess
|
|
11
|
-
Dflow before broader adoption.
|
|
8
|
+
## 本指引的適用對象
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
not replace [`README.md`](../README.md) (overview) or [`tutorial/`](../tutorial/)
|
|
15
|
-
(deep walk-throughs); it is a focused decision aid.
|
|
10
|
+
你正在評估是否要在一個 codebase 中引入 Dflow。你可能是正在評估 AI 輔助團隊 workflow 變更的技術主管、比較各種 AI 開發 workflow 的獨立開發者,或是在更廣泛採用前受指派評估 Dflow 的團隊成員。
|
|
16
11
|
|
|
17
|
-
|
|
12
|
+
本指引把最常見的評估問題彙整在一處。它不取代
|
|
13
|
+
[`README.md`](../README.md)(概覽)或 [`tutorial/`](../tutorial/)
|
|
14
|
+
(深度 walk-through);它是一份聚焦的決策輔助文件。
|
|
18
15
|
|
|
19
|
-
Dflow
|
|
20
|
-
agent a concrete process for turning change requests into structured specs,
|
|
21
|
-
domain language, and reviewable code, instead of jumping from prompt straight
|
|
22
|
-
to code.
|
|
16
|
+
## Dflow 是什麼
|
|
23
17
|
|
|
24
|
-
Dflow
|
|
25
|
-
require a runtime, server, or framework. Once `init` runs, Dflow lives entirely
|
|
26
|
-
in your project's `dflow/specs/` directory and AI instruction files.
|
|
18
|
+
Dflow 是一套 AI 輔助開發的 workflow 工具集。它為 AI 程式設計助理提供具體流程,把變更需求轉成結構化規格、領域語言、與可審查的程式碼,而不是從 prompt 直接跳到程式碼。
|
|
27
19
|
|
|
28
|
-
|
|
20
|
+
Dflow 是 Markdown-based 的 workflow 材料加上一個 scaffolding CLI。它不需要任何 runtime、server 或 framework。`init` 跑完之後,Dflow 完全存在於你的專案的 `dflow/specs/` 目錄與 AI 指示檔中。
|
|
29
21
|
|
|
30
|
-
`
|
|
22
|
+
## `init` 產生什麼、不做什麼
|
|
31
23
|
|
|
32
|
-
|
|
33
|
-
map, architecture/tech-debt, features active/completed). See
|
|
34
|
-
[`README.md` "Files Created by Init"](../README.md#files-created-by-init)
|
|
35
|
-
for the full tree.
|
|
36
|
-
- A canonical project guide at `dflow/specs/shared/AI-AGENT-GUIDE.md`.
|
|
37
|
-
- Mergeable AI agent instruction files for the tools you select (e.g.,
|
|
38
|
-
`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`,
|
|
39
|
-
`.github/copilot-instructions.md`). Each is a thin pointer to the
|
|
40
|
-
canonical guide.
|
|
24
|
+
`dflow init`(或免安裝路徑的 `npx dflow-sdd-ddd init`)會建立:
|
|
41
25
|
|
|
42
|
-
`
|
|
26
|
+
- `dflow/specs/` workspace(概覽、慣例、領域詞彙表、context map、架構 / 技術債、功能 active/completed)。完整目錄樹見
|
|
27
|
+
[`README.md` "Init 產生的檔案"](../README.md#init-產生的檔案)。
|
|
28
|
+
- 位於 `dflow/specs/shared/AI-AGENT-GUIDE.md` 的 canonical 專案指南。
|
|
29
|
+
- 你所選工具的可合併 AI 指示檔(例如 `CLAUDE.md`、`AGENTS.md`、`GEMINI.md`、`.github/copilot-instructions.md`)。每個都是指向 canonical 指南的薄 shim。
|
|
43
30
|
|
|
44
|
-
|
|
45
|
-
- Overwrite existing AI agent instruction files; if one exists, Dflow writes
|
|
46
|
-
a merge snippet under `dflow/specs/shared/` instead.
|
|
47
|
-
- Modify your build system, package manager, or dependencies.
|
|
48
|
-
- Send any data anywhere; it is a local scaffolding command.
|
|
31
|
+
`init` **不會**:
|
|
49
32
|
|
|
50
|
-
|
|
33
|
+
- 檢查、重構、或遷移你的應用程式碼。
|
|
34
|
+
- 覆寫既有的 AI 指示檔;若檔案已存在,Dflow 改在 `dflow/specs/shared/` 下寫入 merge snippet。
|
|
35
|
+
- 修改你的建構系統、套件管理工具、或相依套件。
|
|
36
|
+
- 傳送任何資料到外部;它是本機的 scaffolding 指令。
|
|
51
37
|
|
|
52
|
-
Dflow
|
|
53
|
-
or more tools and Dflow writes the corresponding shim:
|
|
38
|
+
## Dflow 如何與不同 AI 工具協作
|
|
54
39
|
|
|
55
|
-
|
|
40
|
+
Dflow 支援多種 AI 程式設計助理。跑完 `init` 後,你選取一個或多個工具,Dflow 就會寫入對應的 shim:
|
|
41
|
+
|
|
42
|
+
| 工具 | 產生的檔案 |
|
|
56
43
|
|---|---|
|
|
57
44
|
| Codex / Copilot coding agent | `AGENTS.md` |
|
|
58
45
|
| Claude Code | `CLAUDE.md` |
|
|
59
46
|
| Gemini CLI | `GEMINI.md` |
|
|
60
47
|
| GitHub Copilot | `.github/copilot-instructions.md` |
|
|
61
48
|
|
|
62
|
-
|
|
63
|
-
`dflow/specs/shared/AI-AGENT-GUIDE.md`. Practical implications:
|
|
49
|
+
每個 shim 都指向 canonical 的 `dflow/specs/shared/AI-AGENT-GUIDE.md`。實際意義:
|
|
64
50
|
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
`dflow configure-agents` to add another shim.
|
|
69
|
-
- The project guide stays the single source of truth for Dflow workflow
|
|
70
|
-
behavior.
|
|
51
|
+
- 同一個專案可以同時啟用多個工具,而不會有 workflow 規則分歧。
|
|
52
|
+
- 之後切換或新增工具不需要重跑 `init`;執行 `dflow configure-agents` 即可新增 shim。
|
|
53
|
+
- 專案指南始終保持為 Dflow workflow 行為的單一 source of truth。
|
|
71
54
|
|
|
72
|
-
|
|
73
|
-
names (e.g., `/dflow:new-feature`) as plain instructions in chat. Dflow is
|
|
74
|
-
Markdown-based workflow material; it works with any AI agent that can read
|
|
75
|
-
project instructions and repository context.
|
|
55
|
+
若你的工具不支援自訂 slash command,把同名指令(例如 `/dflow:new-feature`)當成普通對話訊息輸入即可。Dflow 是 Markdown-based 的 workflow 材料,能與任何可讀專案指示與 repo 上下文的 AI 助理一起運作。
|
|
76
56
|
|
|
77
|
-
|
|
78
|
-
commands appear in conversation, see the per-tool guides:
|
|
57
|
+
關於特定工具的 `init` 寫入內容與 slash command 在對話中的呈現方式,見各工具指南:
|
|
79
58
|
|
|
80
|
-
- [
|
|
81
|
-
- [
|
|
82
|
-
-
|
|
83
|
-
|
|
59
|
+
- [在 Claude Code 中使用 Dflow](using-with-claude-code.md)
|
|
60
|
+
- [在 Codex CLI 中使用 Dflow](using-with-codex.md)
|
|
61
|
+
- [在 Gemini CLI 中使用 Dflow](using-with-gemini-cli.md)
|
|
62
|
+
- [在 GitHub Copilot 中使用 Dflow](using-with-github-copilot.md)
|
|
84
63
|
|
|
85
|
-
## Greenfield
|
|
64
|
+
## Greenfield 或 Brownfield:選擇 Track
|
|
86
65
|
|
|
87
|
-
|
|
66
|
+
選 **Greenfield** 若:
|
|
88
67
|
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
68
|
+
- 你正在啟動一個新系統或新的 bounded module。
|
|
69
|
+
- 你有空間在 legacy 限制累積前先塑形架構。
|
|
70
|
+
- 你想從 feature 1 就建立明確的領域模型。
|
|
92
71
|
|
|
93
|
-
|
|
72
|
+
選 **Brownfield** 若:
|
|
94
73
|
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
- You want to introduce specs and domain extraction incrementally without
|
|
99
|
-
refactoring everything first.
|
|
74
|
+
- 你正在擴充或修改一個既有的 codebase。
|
|
75
|
+
- 業務規則散落在 handler、stored procedure、UI 程式碼或腳本中。
|
|
76
|
+
- 你想漸進引入規格與領域抽出,而不必先做全面重構。
|
|
100
77
|
|
|
101
|
-
|
|
78
|
+
混合情境:
|
|
102
79
|
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
- Existing app with clean architecture and active development: either track
|
|
106
|
-
works; Brownfield is safer if rules are not yet documented.
|
|
80
|
+
- 在既有 app 內加入新 module:通常選 Greenfield,scope 限定在新的 bounded context。
|
|
81
|
+
- 既有 app 具有乾淨架構且持續開發中:兩種 track 都可行;業務規則尚未文件化時 Brownfield 較安全。
|
|
107
82
|
|
|
108
|
-
##
|
|
83
|
+
## 30 分鐘評估 Playbook
|
|
109
84
|
|
|
110
|
-
|
|
111
|
-
real codebase.
|
|
85
|
+
這份 walk-through 讓你在不動到真實 codebase 的情況下看清楚 Dflow 的實際效果。
|
|
112
86
|
|
|
113
|
-
1.
|
|
87
|
+
1. **建立範例專案**(Greenfield):
|
|
114
88
|
|
|
115
89
|
```bash
|
|
116
90
|
mkdir dflow-sample && cd dflow-sample
|
|
117
91
|
git init
|
|
118
92
|
```
|
|
119
93
|
|
|
120
|
-
2.
|
|
94
|
+
2. **安裝並執行 init**:
|
|
121
95
|
|
|
122
96
|
```bash
|
|
123
|
-
|
|
97
|
+
npm install -g dflow-sdd-ddd
|
|
98
|
+
dflow init
|
|
124
99
|
```
|
|
125
100
|
|
|
126
|
-
|
|
127
|
-
for.
|
|
101
|
+
若不想全域安裝,改用 `npx dflow-sdd-ddd init`。提示時選擇 Greenfield,並選取一個 AI 工具產生 shim。
|
|
128
102
|
|
|
129
|
-
3.
|
|
103
|
+
3. **檢視產生的內容**:
|
|
130
104
|
|
|
131
105
|
```bash
|
|
132
106
|
ls -la
|
|
133
107
|
find dflow -type f
|
|
134
108
|
```
|
|
135
109
|
|
|
136
|
-
|
|
137
|
-
`dflow/specs/shared/_conventions.md`, and
|
|
138
|
-
`dflow/specs/shared/AI-AGENT-GUIDE.md` to see the shape.
|
|
110
|
+
開啟 `dflow/specs/shared/_overview.md`、`dflow/specs/shared/_conventions.md`、以及 `dflow/specs/shared/AI-AGENT-GUIDE.md` 看看整體架構。
|
|
139
111
|
|
|
140
|
-
4.
|
|
141
|
-
|
|
142
|
-
-
|
|
143
|
-
- Brownfield: [`tutorial/02-brownfield/`](../tutorial/02-brownfield/00-setup.md)
|
|
112
|
+
4. **閱讀一份 tutorial walk-through** 以了解完整的 feature flow:
|
|
113
|
+
- Greenfield:[`tutorial/01-greenfield/`](../tutorial/01-greenfield/walkthrough-00-setup.md)
|
|
114
|
+
- Brownfield:[`tutorial/02-brownfield/`](../tutorial/02-brownfield/walkthrough-00-setup.md)
|
|
144
115
|
|
|
145
|
-
5.
|
|
146
|
-
AI tool and ask it to run `/dflow:new-feature` (or paste the equivalent
|
|
147
|
-
instruction in chat). Inspect what it writes to `dflow/specs/`.
|
|
116
|
+
5. **選用:試跑一個 workflow 指令**。在你的 AI 工具中開啟範例專案,叫它執行 `/dflow:new-feature`(或在對話中貼上同等指令)。檢查它寫入 `dflow/specs/` 的內容。
|
|
148
117
|
|
|
149
|
-
6.
|
|
150
|
-
directory. There is no global state to clean; nothing was installed
|
|
151
|
-
beyond the one-shot `npx` cache.
|
|
118
|
+
6. **決定並清理**。若 Dflow 不適合,直接刪除範例目錄。沒有全域狀態需要清除;除了一次性的 `npx` 快取,什麼也沒有安裝。
|
|
152
119
|
|
|
153
|
-
|
|
154
|
-
walk-throughs cover the same flow with worked outputs you can compare
|
|
155
|
-
against.
|
|
120
|
+
若你偏好不執行任何指令、只做深度閱讀,tutorial walk-through 也涵蓋同樣的 flow,並附有可供對比的預期產出。
|
|
156
121
|
|
|
157
|
-
##
|
|
122
|
+
## 若你停用 Dflow
|
|
158
123
|
|
|
159
|
-
Dflow
|
|
124
|
+
Dflow 的設計讓試用成本低、退出成本也低:
|
|
160
125
|
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
|
|
164
|
-
- Existing project instruction files (e.g., a pre-existing `CLAUDE.md`) are
|
|
165
|
-
not modified by Dflow, so reverting is straightforward.
|
|
126
|
+
- `init` 完成後,你的專案不依賴已安裝的 `dflow-sdd-ddd` CLI。
|
|
127
|
+
- 產生的檔案都是純 Markdown;用 `rm -rf dflow/` 加上刪除你不再需要的 AI 指示 shim 檔案,即可從專案中移除 Dflow。
|
|
128
|
+
- 既有的專案指示檔(例如原本就存在的 `CLAUDE.md`)不會被 Dflow 修改,因此復原很直接。
|
|
166
129
|
|
|
167
|
-
|
|
168
|
-
not to adopt.
|
|
130
|
+
這表示評估一輪後,若你決定不採用,不會留下任何永久痕跡。
|
|
169
131
|
|
|
170
|
-
##
|
|
132
|
+
## 每個 Feature 的成本:概略估算
|
|
171
133
|
|
|
172
|
-
Dflow
|
|
173
|
-
[`README.md` "Workflow
|
|
174
|
-
detail):
|
|
134
|
+
Dflow 依改動深淺將流程份量調整為三個 tier(完整說明見
|
|
135
|
+
[`README.md` "Workflow 模型"](../README.md#workflow-模型)):
|
|
175
136
|
|
|
176
|
-
- **T1
|
|
177
|
-
|
|
178
|
-
- **
|
|
179
|
-
examples, and finish checks. Expect modest upfront overhead in exchange
|
|
180
|
-
for a reusable spec, fewer review cycles, and lower drift risk.
|
|
181
|
-
- **T3 Full** — cross-cutting changes, new bounded contexts, risky
|
|
182
|
-
architecture work. Adds full domain modeling and broader verification.
|
|
183
|
-
The cost is real but proportional to the risk being managed.
|
|
137
|
+
- **T1 Heavy** — 新 feature、新 phase、新 Aggregate 或 Bounded Context、架構變更、新業務規則。需要完整的 phase-spec,包含領域建模、行為例子、實作計畫、以及驗證與收尾檢查。成本確實存在,但與所管理的風險成正比。
|
|
138
|
+
- **T2 Light** — bug fix(邏輯錯誤)、UI 驗證調整、有業務規則 delta 的小幅修改。需要 lightweight spec、聚焦驗證、以及確認修復落在正確的架構層。
|
|
139
|
+
- **T3 Trivial** — 按鈕顏色、文案 typo、純 formatting — **不動業務規則、不動 Domain 概念、不動資料結構**。只需在 `_index.md` 寫一行,不另開 spec 檔。
|
|
184
140
|
|
|
185
|
-
Tier
|
|
186
|
-
ceremony for a one-line fix.
|
|
141
|
+
Tier 不是每次都由 user 手動決定:`/dflow:new-feature` 與 `/dflow:new-phase` 預設一律 T1;`/dflow:modify-existing` 與 `/dflow:bug-fix` 則由 AI 依實際改動內容判斷 T1 / T2 / T3。純 typo / formatting commit(例如 `prettier`、`dotnet format`)可以完全跳過 Dflow 直接 `git commit` — Dflow 是給有業務語意或結構影響的變更使用的。
|
|
187
142
|
|
|
188
|
-
##
|
|
143
|
+
## 專案語言相容性
|
|
189
144
|
|
|
190
|
-
Dflow
|
|
191
|
-
so AI agents can locate sections reliably across projects. The free-form
|
|
192
|
-
content you write inside templates can be in any team language — English,
|
|
193
|
-
Traditional Chinese, Simplified Chinese, or others. The init flow asks for
|
|
194
|
-
the project's prose language and stores it in
|
|
195
|
-
`dflow/specs/shared/_conventions.md`.
|
|
145
|
+
Dflow 模板使用**英文 canonical 結構**(標題、欄位標籤),讓 AI 助理能可靠地在不同專案間定位各段落。你在模板內容中自由撰寫的文字可以使用任何團隊語言 — 英文、繁體中文、簡體中文或其他。init 流程會詢問專案的文章語言,並存入 `dflow/specs/shared/_conventions.md`。
|
|
196
146
|
|
|
197
|
-
|
|
147
|
+
實際效果:
|
|
198
148
|
|
|
199
|
-
- AI
|
|
200
|
-
-
|
|
201
|
-
-
|
|
149
|
+
- AI 工具在不同專案間看到一致的英文結構。
|
|
150
|
+
- 人員以團隊選定的語言讀寫規格。
|
|
151
|
+
- 不需要翻譯模板或維護平行的在地化副本。
|
|
202
152
|
|
|
203
|
-
##
|
|
153
|
+
## 下一步
|
|
204
154
|
|
|
205
|
-
|
|
155
|
+
若你決定 Dflow 適合:
|
|
206
156
|
|
|
207
|
-
-
|
|
208
|
-
-
|
|
209
|
-
|
|
210
|
-
- See [`CONTRIBUTING.md`](../CONTRIBUTING.md) before opening issues or
|
|
211
|
-
pull requests.
|
|
157
|
+
- 在你的真實專案執行 `init`(建議先用 branch)。
|
|
158
|
+
- 閱讀 [`tutorial/`](../tutorial/) 取得端到端 walk-through 與預期產出。
|
|
159
|
+
- 開 issue 或 pull request 前,先看 [`CONTRIBUTING.md`](../CONTRIBUTING.md)。
|
|
212
160
|
|
|
213
|
-
|
|
161
|
+
若你還在評估中:
|
|
214
162
|
|
|
215
|
-
-
|
|
216
|
-
|
|
217
|
-
- Compare a tutorial scenario step-by-step with its `outputs/` tree to see
|
|
218
|
-
what production-shape Dflow specs look like.
|
|
163
|
+
- 閱讀 [為什麼 AI 時代 DDD 更重要](why-ddd-for-ai.md),了解 spec-first 加上 DDD 背後的設計理由。
|
|
164
|
+
- 把 tutorial 劇情逐步與它的 `outputs/` 目錄對比,看看 Dflow 規格在接近正式的狀態下是什麼樣子。
|
|
219
165
|
|
|
220
|
-
|
|
166
|
+
若 Dflow 目前不適合你的專案:
|
|
221
167
|
|
|
222
|
-
-
|
|
223
|
-
|
|
224
|
-
- Open a docs feedback issue (see
|
|
225
|
-
[`CONTRIBUTING.md`](../CONTRIBUTING.md)) if a specific gap blocked you.
|
|
226
|
-
That feedback helps future evaluators.
|
|
168
|
+
- structured-spec 的概念是可移植的;你可以採用其中一部分而不需要 CLI。
|
|
169
|
+
- 若某個具體缺口阻礙了你,開一個 docs feedback issue(見 [`CONTRIBUTING.md`](../CONTRIBUTING.md))。這類回饋對未來的評估者很有幫助。
|