dflow-sdd-ddd 0.9.0 → 0.10.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 +53 -0
- package/README.en.md +19 -8
- package/README.md +12 -5
- package/TEMPLATE-COVERAGE.md +0 -1
- package/bin/dflow.js +4 -4
- package/docs/evaluating-dflow.en.md +11 -7
- package/docs/evaluating-dflow.md +9 -4
- package/docs/migrating-to-dflow-v1.md +7 -3
- package/docs/using-with-claude-code.en.md +40 -23
- package/docs/using-with-claude-code.md +34 -23
- package/docs/using-with-codex.en.md +125 -42
- package/docs/using-with-codex.md +93 -34
- package/docs/using-with-github-copilot.en.md +135 -34
- package/docs/using-with-github-copilot.md +120 -43
- package/lib/init.js +761 -145
- package/package.json +2 -2
- package/templates/brownfield/references/drift-verification.md +1 -4
- package/templates/brownfield/references/finish-feature-flow.md +3 -2
- package/templates/brownfield/references/git-integration.md +0 -1
- package/templates/brownfield/references/init-project-flow.md +31 -17
- package/templates/brownfield/references/modify-existing-flow.md +6 -38
- package/templates/brownfield/references/new-feature-flow.md +13 -11
- package/templates/brownfield/references/new-phase-flow.md +1 -1
- package/templates/brownfield/scaffolding/AI-AGENT-GUIDE.md +253 -2
- package/templates/brownfield/scaffolding/CLAUDE-md-snippet.md +5 -8
- package/templates/brownfield/scaffolding/_conventions.md +10 -9
- package/templates/brownfield/templates/_index.md +1 -1
- package/templates/brownfield/templates/lightweight-spec.md +1 -1
- package/templates/brownfield/templates/phase-spec.md +1 -1
- package/templates/common/skill/SKILL.md +9 -6
- package/templates/greenfield/references/drift-verification.md +1 -4
- package/templates/greenfield/references/finish-feature-flow.md +3 -2
- package/templates/greenfield/references/git-integration.md +0 -1
- package/templates/greenfield/references/init-project-flow.md +31 -17
- package/templates/greenfield/references/modify-existing-flow.md +5 -7
- package/templates/greenfield/references/new-feature-flow.md +14 -12
- package/templates/greenfield/references/new-phase-flow.md +1 -1
- package/templates/greenfield/scaffolding/AI-AGENT-GUIDE.md +222 -2
- package/templates/greenfield/scaffolding/CLAUDE-md-snippet.md +10 -15
- package/templates/greenfield/scaffolding/Git-principles-trunk.md +1 -1
- package/templates/greenfield/scaffolding/_conventions.md +9 -8
- package/templates/greenfield/templates/_index.md +1 -1
- package/templates/greenfield/templates/lightweight-spec.md +1 -1
- package/templates/greenfield/templates/phase-spec.md +1 -1
- package/templates/brownfield/templates/CLAUDE.md +0 -165
- package/templates/greenfield/templates/CLAUDE.md +0 -172
|
@@ -48,12 +48,17 @@ a thin shim at the project root:
|
|
|
48
48
|
|
|
49
49
|
This project uses Dflow for spec-first AI-assisted development.
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
For spec-impacting work — a new feature, a change to product, user-facing, or
|
|
52
|
+
domain behavior, a new requirement, or a bug-fix workflow — read and follow:
|
|
52
53
|
|
|
53
|
-
- `dflow/specs/shared/AI-AGENT-GUIDE.md`
|
|
54
|
+
- `dflow/specs/shared/AI-AGENT-GUIDE.md` — command registry, routing rules, and project context.
|
|
55
|
+
- `dflow/specs/shared/dflow-workflows/` — vendored workflow bundle with executable step definitions.
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
For routine work (refactors, renames, chores, formatting, dependency bumps, or
|
|
58
|
+
general code questions), proceed normally; you need not read the guide first.
|
|
59
|
+
|
|
60
|
+
Keep tool-specific instruction files small. The guide and workflow bundle are
|
|
61
|
+
the authoritative sources for Dflow workflow rules, slash-command behavior,
|
|
57
62
|
spec locations, and SDD/DDD constraints.
|
|
58
63
|
```
|
|
59
64
|
|
|
@@ -61,13 +66,14 @@ Two things matter when Codex starts in this project:
|
|
|
61
66
|
|
|
62
67
|
1. Codex CLI reads `AGENTS.md` as project instructions. This is Codex's
|
|
63
68
|
standard repository-instruction mechanism.
|
|
64
|
-
2. The Dflow shim
|
|
65
|
-
|
|
66
|
-
|
|
69
|
+
2. The Dflow shim is a thin pointer and does not inline the guide. Generated
|
|
70
|
+
`AGENTS.md` points to `dflow/specs/shared/AI-AGENT-GUIDE.md` with a plain
|
|
71
|
+
Markdown bullet.
|
|
67
72
|
|
|
68
73
|
That means Codex sees the pointer immediately, but the canonical Dflow guide
|
|
69
|
-
is not auto-inlined by the shim.
|
|
70
|
-
follow the pointer and read
|
|
74
|
+
is not auto-inlined by the shim. For spec-impacting work (a feature, a
|
|
75
|
+
behavior change, or a bug fix), Codex should follow the pointer and read
|
|
76
|
+
`dflow/specs/shared/AI-AGENT-GUIDE.md`. If Codex
|
|
71
77
|
starts answering a Dflow request without mentioning that file, steer it
|
|
72
78
|
explicitly: "Before continuing, read and follow
|
|
73
79
|
`dflow/specs/shared/AI-AGENT-GUIDE.md`."
|
|
@@ -79,13 +85,25 @@ stays small so the same canonical guide can serve Codex CLI, Claude Code,
|
|
|
79
85
|
GitHub Copilot, and other tools.
|
|
80
86
|
|
|
81
87
|
If an `AGENTS.md` already existed in the project, `init` does not overwrite
|
|
82
|
-
|
|
83
|
-
`dflow/specs/shared/AI-AGENT-GUIDE.md
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
snippet
|
|
88
|
+
custom content. A Dflow-generated shim is refreshed in place; another file
|
|
89
|
+
that already points to `dflow/specs/shared/AI-AGENT-GUIDE.md` is skipped
|
|
90
|
+
without adding a second pointer. Otherwise Dflow shows the change in the
|
|
91
|
+
confirmation preview and appends a marked
|
|
92
|
+
`<!-- dflow-generated: agent-shim START/END -->` block at the end of the file;
|
|
93
|
+
re-running refreshes that same block in place. Dflow writes the fallback merge
|
|
94
|
+
snippet
|
|
95
|
+
`dflow/specs/shared/AGENTS-md-snippet.md` only when the file contains
|
|
96
|
+
conflicting or malformed Dflow markers.
|
|
97
|
+
|
|
98
|
+
With `dflow configure-agents --command-adapters`, the marker-conflict fallback
|
|
99
|
+
splits into two files depending on which markers are broken: when only the
|
|
100
|
+
trigger markers are malformed but the file still points to the canonical guide,
|
|
101
|
+
Dflow writes the trigger-only
|
|
102
|
+
`dflow/specs/shared/AGENTS-md-command-adapters-snippet.md`; any other marker
|
|
103
|
+
conflict (the agent-shim markers are malformed, or the two marked regions overlap
|
|
104
|
+
or straddle) takes the full-shim `dflow/specs/shared/AGENTS-md-snippet.md`. Both
|
|
105
|
+
appear only on a marker conflict;
|
|
106
|
+
see *Codex Behavior With Optional Command Adapters* below.
|
|
89
107
|
|
|
90
108
|
## Using Dflow Workflow Commands in Codex CLI
|
|
91
109
|
|
|
@@ -157,9 +175,12 @@ workflows.
|
|
|
157
175
|
### Codex Behavior With Optional Command Adapters
|
|
158
176
|
|
|
159
177
|
For Codex, `dflow configure-agents --command-adapters` strengthens text
|
|
160
|
-
triggers only. It does not create Codex command files
|
|
161
|
-
|
|
162
|
-
|
|
178
|
+
triggers only. It does not create Codex command files. Codex v1 has no Dflow
|
|
179
|
+
command-file adapter equivalent to Claude `.claude/commands` or Copilot
|
|
180
|
+
`.github/prompts`.
|
|
181
|
+
|
|
182
|
+
**Auto-trigger skills come from `--skills`, not `--command-adapters`.** See
|
|
183
|
+
"Codex Behavior With Optional Skills" below.
|
|
163
184
|
|
|
164
185
|
When you select `AGENTS.md - Codex / Copilot coding agent` in
|
|
165
186
|
`--command-adapters` mode, Dflow writes a trigger list generated from the
|
|
@@ -177,21 +198,76 @@ in markers, with zero manual merge. Re-running re-projects that same section in
|
|
|
177
198
|
place instead of appending a duplicate.
|
|
178
199
|
|
|
179
200
|
If `AGENTS.md` was edited after Dflow generated it, or is your own custom file,
|
|
180
|
-
Dflow
|
|
181
|
-
|
|
182
|
-
|
|
201
|
+
Dflow still preserves the existing content and appends (or refreshes in place)
|
|
202
|
+
the trigger section as an adjacent marked block in `AGENTS.md` through the same
|
|
203
|
+
mechanism. The confirmation preview shows that block first. Dflow falls back to a
|
|
204
|
+
manual-merge snippet only when existing Dflow markers are too broken to edit in
|
|
205
|
+
place safely, and which snippet it writes depends on which markers are broken:
|
|
206
|
+
|
|
207
|
+
- **Only the trigger markers are malformed, while the agent-shim markers and their
|
|
208
|
+
region are otherwise intact (no overlap or straddle), and the file already points
|
|
209
|
+
to the canonical guide.** The guide pointer is already in place, so the snippet
|
|
210
|
+
carries just the trigger section:
|
|
211
|
+
`dflow/specs/shared/AGENTS-md-command-adapters-snippet.md`.
|
|
212
|
+
- **Any other marker conflict** — for example the agent-shim markers themselves
|
|
213
|
+
are malformed, or the agent-shim and trigger marked regions overlap or straddle
|
|
214
|
+
each other. The snippet then carries the full shim (title, guide pointers, and,
|
|
215
|
+
under `--command-adapters`, the trigger section):
|
|
216
|
+
`dflow/specs/shared/AGENTS-md-snippet.md`.
|
|
217
|
+
|
|
218
|
+
Both snippets appear only on a marker conflict. A clean custom `AGENTS.md` with
|
|
219
|
+
no conflicting markers does not produce a snippet at all — Dflow just appends the
|
|
220
|
+
adjacent marked block in place.
|
|
221
|
+
|
|
222
|
+
### Codex Behavior With Optional Skills (Auto-Trigger)
|
|
223
|
+
|
|
224
|
+
`dflow configure-agents --skills` projects a thin, tool-neutral skill to
|
|
225
|
+
`.agents/skills/dflow/SKILL.md` — Codex's project-level skill path. This gives
|
|
226
|
+
Codex **natural-language auto-trigger on par with Claude Code**: when you
|
|
227
|
+
describe intent like "help me start a new feature", Codex can judge relevance
|
|
228
|
+
from the skill's `description`, suggest the matching `dflow:<id>` workflow, and
|
|
229
|
+
no longer require you to remember a command every time.
|
|
230
|
+
|
|
231
|
+
The skill body and frontmatter (`name` / `description`) are plain text that
|
|
232
|
+
only point to the canonical guide (`dflow/specs/shared/AI-AGENT-GUIDE.md`) and
|
|
233
|
+
the vendored workflow bundle. It is the **same source** Claude projects
|
|
234
|
+
(`templates/common/skill/SKILL.md`) — no per-tool content fork. When
|
|
235
|
+
auto-triggered, the skill's contract is to judge intent, suggest the matching
|
|
236
|
+
`dflow:<id>`, and wait for your confirmation before entering a workflow rather
|
|
237
|
+
than running one directly.
|
|
238
|
+
|
|
239
|
+
Re-running `--skills` rewrites the same marker-stamped skill in place
|
|
240
|
+
(idempotent). If a **non**-Dflow file already exists at that path (no
|
|
241
|
+
`<!-- dflow-generated: skill-adapter -->` marker), Dflow does not overwrite it —
|
|
242
|
+
it warns and leaves your file untouched.
|
|
243
|
+
|
|
244
|
+
> GitHub Copilot is supported too: selecting Copilot under `--skills` projects
|
|
245
|
+
> `.github/skills/dflow/SKILL.md` (the same thin skill). Copilot also cross-reads
|
|
246
|
+
> the `.claude`/`.agents` paths; Dflow-generated copies are byte-identical, but a
|
|
247
|
+
> pre-existing non-Dflow `dflow` skill at one of those paths is left untouched and
|
|
248
|
+
> could differ — remove or rename it to avoid a same-name duplicate.
|
|
183
249
|
|
|
184
250
|
### Version-Control Policy for Generated Artifacts (Codex)
|
|
185
251
|
|
|
186
252
|
Codex does not generate command files, so there is **no derived adapter to
|
|
187
|
-
gitignore
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
253
|
+
gitignore** on the `--command-adapters` side. On the Codex side, what you
|
|
254
|
+
version-control is the `AGENTS.md` shim / marked blocks and `dflow/` (the
|
|
255
|
+
canonical guide and specs). The fallback merge helpers
|
|
256
|
+
(`dflow/specs/shared/AGENTS-md-command-adapters-snippet.md` or
|
|
257
|
+
`dflow/specs/shared/AGENTS-md-snippet.md`) are created only on a marker conflict;
|
|
258
|
+
if one appears, it is part of `dflow/` and is **version-controlled along with
|
|
259
|
+
`dflow/`**. `--command-adapters` only strengthens
|
|
260
|
+
the text triggers in `AGENTS.md` for Codex; it adds no `.claude/`, `.github/`,
|
|
261
|
+
or `.agents/` command files.
|
|
262
|
+
|
|
263
|
+
The one Codex derived artifact comes from `--skills`:
|
|
264
|
+
`.agents/skills/dflow/SKILL.md`. Like Claude's `.claude/skills/dflow/SKILL.md`,
|
|
265
|
+
it is regenerable from the canonical guide and follows the same **recommended
|
|
266
|
+
default** (do not version-control; regenerate after clone with
|
|
267
|
+
`configure-agents --skills`; version-controlling it is also reasonable if your
|
|
268
|
+
team wants auto-trigger immediately after clone — the rule is one consistent
|
|
269
|
+
policy across tools in a project). The adapter / skill version-control policy
|
|
270
|
+
for other tools is covered in
|
|
195
271
|
[README "Files Created by Init"](../README.en.md#files-created-by-init) and the
|
|
196
272
|
per-tool guides.
|
|
197
273
|
|
|
@@ -202,7 +278,7 @@ across tools. Only the root-level shim differs:
|
|
|
202
278
|
|
|
203
279
|
| Tool | Generated shim | Loads canonical guide via |
|
|
204
280
|
|---|---|---|
|
|
205
|
-
| Claude Code | `CLAUDE.md` |
|
|
281
|
+
| Claude Code | `CLAUDE.md` | Project instructions load the shim; follow the pointer to read the guide |
|
|
206
282
|
| Codex / Copilot coding agent | `AGENTS.md` | Project instructions load the shim; Codex must follow the pointer and read the guide |
|
|
207
283
|
| GitHub Copilot | `.github/copilot-instructions.md` | Reads repository instructions directly |
|
|
208
284
|
|
|
@@ -220,7 +296,7 @@ root, and keep the Dflow pointer in the nearest relevant `AGENTS.md`.
|
|
|
220
296
|
|
|
221
297
|
If your team uses both Claude Code and Codex CLI on the same project, no
|
|
222
298
|
extra Dflow coordination is needed. Both tools use the same canonical guide;
|
|
223
|
-
only the shim file
|
|
299
|
+
only the shim file differs.
|
|
224
300
|
|
|
225
301
|
## Common Patterns and Gotchas
|
|
226
302
|
|
|
@@ -230,9 +306,9 @@ locations, or SDD constraints to `AGENTS.md`, those belong in
|
|
|
230
306
|
other tools' shims do not drift away from it.
|
|
231
307
|
|
|
232
308
|
**Codex does not inline the Dflow guide from `AGENTS.md`.** The generated
|
|
233
|
-
Codex shim has a normal Markdown bullet pointing to the canonical guide
|
|
234
|
-
|
|
235
|
-
|
|
309
|
+
Codex shim has a normal Markdown bullet pointing to the canonical guide. Ask
|
|
310
|
+
Codex to read `AI-AGENT-GUIDE.md` if it appears to be working from the shim
|
|
311
|
+
alone.
|
|
236
312
|
|
|
237
313
|
**`/dflow:*` is not a Codex CLI built-in slash command.** Codex slash commands
|
|
238
314
|
control the Codex session itself. When raw slash input is intercepted or
|
|
@@ -241,9 +317,12 @@ rejected, use the no-slash text form `dflow:<id>`, for example
|
|
|
241
317
|
workflow by reading `AI-AGENT-GUIDE.md`.
|
|
242
318
|
|
|
243
319
|
**Codex does not generate command files.** Even with `--command-adapters`,
|
|
244
|
-
Codex only strengthens text-trigger guidance in
|
|
245
|
-
|
|
246
|
-
`.
|
|
320
|
+
Codex only strengthens text-trigger guidance in marked blocks inside
|
|
321
|
+
`AGENTS.md`; fallback merge snippets are created only on marker conflicts. Do
|
|
322
|
+
not expect Codex-specific **command** files under `.claude/commands` or
|
|
323
|
+
`.github/prompts`. (Auto-trigger **skills** are separate: `--skills` projects
|
|
324
|
+
one to `.agents/skills/dflow/SKILL.md`, see "Codex Behavior With Optional
|
|
325
|
+
Skills" above.)
|
|
247
326
|
|
|
248
327
|
**Do not confuse Codex `/init` with Dflow `init`.** Codex `/init` creates a
|
|
249
328
|
generic `AGENTS.md` scaffold for Codex. Dflow setup is `dflow init` (or
|
|
@@ -262,10 +341,14 @@ approvals.** In current Codex CLI terminology this is
|
|
|
262
341
|
Codex can work inside the project and asks before going beyond the sandbox,
|
|
263
342
|
such as writing outside the workspace or accessing network.
|
|
264
343
|
|
|
265
|
-
**Existing `AGENTS.md` files are preserved.**
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
344
|
+
**Existing `AGENTS.md` files are preserved.** Dflow does not overwrite your
|
|
345
|
+
custom project instructions. The base pointer is refreshed in place for a
|
|
346
|
+
Dflow-generated shim; other files that already point to `AI-AGENT-GUIDE.md` are
|
|
347
|
+
skipped. Otherwise Dflow shows and appends a marked Dflow block, then refreshes
|
|
348
|
+
that block in place on later runs. `--command-adapters` can still add or refresh
|
|
349
|
+
the adjacent trigger block. If you delete a block, later `init` /
|
|
350
|
+
`configure-agents` runs append it again. Look under `dflow/specs/shared/` for a
|
|
351
|
+
fallback merge snippet only when there is a marker conflict to resolve manually.
|
|
269
352
|
|
|
270
353
|
**Nested `AGENTS.md` files can change what Codex sees.** Codex layers project
|
|
271
354
|
instructions along the path to the current working directory. If a subfolder
|
package/docs/using-with-codex.md
CHANGED
|
@@ -43,12 +43,17 @@ canonical Dflow 指南的,以及幾個值得了解的 Codex 專屬指令與權
|
|
|
43
43
|
|
|
44
44
|
This project uses Dflow for spec-first AI-assisted development.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
For spec-impacting work — a new feature, a change to product, user-facing, or
|
|
47
|
+
domain behavior, a new requirement, or a bug-fix workflow — read and follow:
|
|
47
48
|
|
|
48
|
-
- `dflow/specs/shared/AI-AGENT-GUIDE.md`
|
|
49
|
+
- `dflow/specs/shared/AI-AGENT-GUIDE.md` — command registry, routing rules, and project context.
|
|
50
|
+
- `dflow/specs/shared/dflow-workflows/` — vendored workflow bundle with executable step definitions.
|
|
49
51
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
For routine work (refactors, renames, chores, formatting, dependency bumps, or
|
|
53
|
+
general code questions), proceed normally; you need not read the guide first.
|
|
54
|
+
|
|
55
|
+
Keep tool-specific instruction files small. The guide and workflow bundle are
|
|
56
|
+
the authoritative sources for Dflow workflow rules, slash-command behavior,
|
|
52
57
|
spec locations, and SDD/DDD constraints.
|
|
53
58
|
```
|
|
54
59
|
|
|
@@ -56,11 +61,11 @@ Codex 在這個專案中啟動時,有兩件事值得注意:
|
|
|
56
61
|
|
|
57
62
|
1. Codex CLI 將 `AGENTS.md` 作為專案指示讀取。這是 Codex 的
|
|
58
63
|
標準 repository 指示機制。
|
|
59
|
-
2. Dflow shim
|
|
60
|
-
|
|
64
|
+
2. Dflow shim 是薄指標,不把指南 inline 進來。產生的 `AGENTS.md` 只以
|
|
65
|
+
普通 Markdown bullet 指向 `dflow/specs/shared/AI-AGENT-GUIDE.md`。
|
|
61
66
|
|
|
62
67
|
這意味著 Codex 能立即看到指標,但 canonical Dflow 指南不會由 shim 自動 inline 嵌入。
|
|
63
|
-
|
|
68
|
+
做 spec-impacting 工作(新功能、行為變更、bug fix)時,Codex 應跟著指標讀取 `dflow/specs/shared/AI-AGENT-GUIDE.md`。
|
|
64
69
|
若 Codex 在回應 Dflow 請求時沒有提到該檔案,請明確引導它:「Before continuing,
|
|
65
70
|
read and follow `dflow/specs/shared/AI-AGENT-GUIDE.md`.」
|
|
66
71
|
|
|
@@ -69,13 +74,19 @@ canonical 指南是實際 workflow 規則的所在:專案上下文(track、
|
|
|
69
74
|
`AGENTS.md` shim 刻意保持精簡,這樣 canonical 指南就能同時服務 Codex CLI、
|
|
70
75
|
Claude Code、GitHub Copilot 與其他工具。
|
|
71
76
|
|
|
72
|
-
如果專案中已有 `AGENTS.md`,`init`
|
|
73
|
-
`dflow/specs/shared/AI-AGENT-GUIDE.md
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
如果專案中已有 `AGENTS.md`,`init` 不會覆蓋自訂內容。已是 Dflow-generated shim
|
|
78
|
+
的檔案會原地刷新;其他已指向 `dflow/specs/shared/AI-AGENT-GUIDE.md` 的檔案會
|
|
79
|
+
略過,不會新增第二個指標。否則 Dflow 會在確認 preview 顯示並於檔案末尾附加帶有
|
|
80
|
+
`<!-- dflow-generated: agent-shim START/END -->` markers 的 Dflow block,重跑會
|
|
81
|
+
原地更新同一段。只有遇到衝突或 malformed Dflow markers 時,才會改寫
|
|
82
|
+
`dflow/specs/shared/AGENTS-md-snippet.md` fallback merge snippet 讓你手動合併。
|
|
76
83
|
|
|
77
|
-
|
|
78
|
-
|
|
84
|
+
若改用 `dflow configure-agents --command-adapters`,marker conflict 的 fallback 小抄會依
|
|
85
|
+
「壞掉的是哪一段 marker」分成兩個檔:只有 trigger markers 壞掉、而檔案仍指向 canonical
|
|
86
|
+
指南時,用 trigger-only 的 `dflow/specs/shared/AGENTS-md-command-adapters-snippet.md`;
|
|
87
|
+
其他任何 marker conflict(agent-shim markers 壞掉,或兩段 marked block 交疊/跨界)則用
|
|
88
|
+
完整 shim 的 `dflow/specs/shared/AGENTS-md-snippet.md`。兩者
|
|
89
|
+
都只在 marker conflict 時出現,詳見下方〈選配 Command Adapters 的 Codex 行為〉。
|
|
79
90
|
|
|
80
91
|
## 在 Codex CLI 中使用 Dflow Workflow 指令
|
|
81
92
|
|
|
@@ -144,9 +155,11 @@ guide 中記為 `/dflow:*`)。
|
|
|
144
155
|
### 選配 Command Adapters 的 Codex 行為
|
|
145
156
|
|
|
146
157
|
`dflow configure-agents --command-adapters` 對 Codex 採文字 trigger 強化,不會建立
|
|
147
|
-
Codex
|
|
148
|
-
|
|
149
|
-
|
|
158
|
+
Codex 命令檔。Codex v1 沒有與 Claude `.claude/commands` 或 Copilot `.github/prompts`
|
|
159
|
+
對等的 Dflow command-file adapter。
|
|
160
|
+
|
|
161
|
+
**自動觸發 skill 走的是 `--skills`(非 `--command-adapters`)。** 見下方
|
|
162
|
+
〈選配 Skill 的 Codex 行為〉。
|
|
150
163
|
|
|
151
164
|
當你在 `--command-adapters` 模式下選擇 `AGENTS.md - Codex / Copilot coding agent`
|
|
152
165
|
時,Dflow 會把從 canonical command registry 產生的 trigger 清單寫進 `AGENTS.md`。
|
|
@@ -160,19 +173,60 @@ dflow:new-feature
|
|
|
160
173
|
--command-adapters` 流程就是如此),Dflow 會把帶 marker 的 trigger 段**直接注入**
|
|
161
174
|
`AGENTS.md`,零手動合併;重複執行會就地重投影同一段、不會重複附加。
|
|
162
175
|
|
|
163
|
-
如果 `AGENTS.md` 在 Dflow 產生後被改過、或本來就是你自訂的檔案,Dflow
|
|
164
|
-
|
|
165
|
-
|
|
176
|
+
如果 `AGENTS.md` 在 Dflow 產生後被改過、或本來就是你自訂的檔案,Dflow 仍會保留既有
|
|
177
|
+
內容,並透過同一套機制把 trigger 段作為相鄰的 marked block 附加(或就地更新)到
|
|
178
|
+
`AGENTS.md`,確認 preview 會先顯示這段。只有當既有的 Dflow markers 壞到無法安全就地
|
|
179
|
+
改寫時,Dflow 才會改成「不動你的檔、另寫一份手動合併小抄」;而且依「壞掉的是哪一段
|
|
180
|
+
marker」分成兩種小抄:
|
|
181
|
+
|
|
182
|
+
- **只有 trigger markers 壞掉,agent-shim 段與其 region 仍完好(沒有交疊/跨界),且檔案
|
|
183
|
+
已指向 canonical 指南**:指南指標已就位,小抄只需補 trigger 段,檔名是
|
|
184
|
+
`dflow/specs/shared/AGENTS-md-command-adapters-snippet.md`。
|
|
185
|
+
- **其他任何 marker conflict**——例如 agent-shim markers 本身壞掉,或 agent-shim 與
|
|
186
|
+
trigger 兩段 marked block 交疊/跨界——小抄需要完整 shim(標題、指南指標,以及在
|
|
187
|
+
`--command-adapters` 下的 trigger 段),檔名是 `dflow/specs/shared/AGENTS-md-snippet.md`。
|
|
188
|
+
|
|
189
|
+
兩種小抄都只在 marker conflict 時出現。乾淨、沒有 marker 衝突的自訂 `AGENTS.md` 不會
|
|
190
|
+
產生任何小抄——Dflow 會直接把相鄰 marked block append 進去。
|
|
191
|
+
|
|
192
|
+
### 選配 Skill 的 Codex 行為(自動觸發)
|
|
193
|
+
|
|
194
|
+
`dflow configure-agents --skills` 會把一份精簡、工具中立的 skill 投影到
|
|
195
|
+
`.agents/skills/dflow/SKILL.md`——Codex 的專案層 skill 路徑。這讓 Codex 取得與
|
|
196
|
+
Claude Code **對等的自然語言自動觸發**:你用「help me start a new feature」這類描述
|
|
197
|
+
時,Codex 可依該 skill 的 `description` 自動判斷是否相關,建議對應的 `dflow:<id>`
|
|
198
|
+
workflow,而不必每次都記得手打命令。
|
|
199
|
+
|
|
200
|
+
skill body 與 frontmatter(`name` / `description`)都是純文字,只指向 canonical 指南
|
|
201
|
+
(`dflow/specs/shared/AI-AGENT-GUIDE.md`)與 vendored workflow bundle,與 Claude 投影
|
|
202
|
+
的是**同一份 source**(`templates/common/skill/SKILL.md`),沒有 per-tool 內容分岔。
|
|
203
|
+
被自動觸發時,skill 的約定是:先判斷意圖、建議對應 `dflow:<id>`、等你確認後才進入
|
|
204
|
+
workflow,而不會自行直接執行。
|
|
205
|
+
|
|
206
|
+
重跑 `--skills` 會就地重寫帶 marker 的同一份 skill(idempotent);若該路徑已存在一份
|
|
207
|
+
**非** Dflow 產生的檔案(沒有 `<!-- dflow-generated: skill-adapter -->` marker),Dflow
|
|
208
|
+
不會覆寫,只會 warn 並保留你的檔。
|
|
209
|
+
|
|
210
|
+
> GitHub Copilot 也支援:`--skills` 模式下選擇 Copilot 會投影
|
|
211
|
+
> `.github/skills/dflow/SKILL.md`(同一份 thin skill)。Copilot 也會跨讀
|
|
212
|
+
> `.claude`/`.agents`;Dflow 產生的各份逐字相同,但若該路徑已有你自己的非 Dflow
|
|
213
|
+
> `dflow` skill,Dflow 會保留不覆寫、內容可能不同(移除或改名以免同名重複)。
|
|
166
214
|
|
|
167
215
|
### 產生物的版控政策(Codex)
|
|
168
216
|
|
|
169
|
-
Codex 不產生 command
|
|
170
|
-
`AGENTS.md` shim 與 `dflow/`(canonical guide +
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
217
|
+
Codex 不產生 command 檔,所以 `--command-adapters` 端**沒有需要 gitignore 的衍生 adapter**。
|
|
218
|
+
Codex 端要版控的是 `AGENTS.md` shim / marked blocks 與 `dflow/`(canonical guide +
|
|
219
|
+
規格);其中兩種 fallback merge helper(`dflow/specs/shared/AGENTS-md-command-adapters-snippet.md`
|
|
220
|
+
或 `dflow/specs/shared/AGENTS-md-snippet.md`)只在 marker conflict 時產生,若出現也屬
|
|
221
|
+
`dflow/` 的一部分,**隨 `dflow/` 一起版控**。
|
|
222
|
+
`--command-adapters` 對 Codex 只強化 `AGENTS.md` 的文字 trigger,不新增任何
|
|
223
|
+
`.claude/`、`.github/`、`.agents/` 命令檔。
|
|
224
|
+
|
|
225
|
+
唯一的 Codex 衍生物來自 `--skills`:`.agents/skills/dflow/SKILL.md`。它與 Claude 的
|
|
226
|
+
`.claude/skills/dflow/SKILL.md` 一樣,是可從 canonical 指南重生成的衍生物,沿用相同的
|
|
227
|
+
**建議預設**(不版控、clone 後重跑 `configure-agents --skills` 重生成;若你的團隊偏好 clone
|
|
228
|
+
即有自動觸發,版控它也是合理選擇,原則是同專案對各工具採一致策略)。其他工具的 adapter /
|
|
229
|
+
skill 版控政策見 [README「Init 產生的檔案」](../README.md#init-產生的檔案) 與各 per-tool 指南。
|
|
176
230
|
|
|
177
231
|
## 與其他 AI 工具的差異
|
|
178
232
|
|
|
@@ -181,7 +235,7 @@ canonical 指南(`dflow/specs/shared/AI-AGENT-GUIDE.md`)在各工具之間
|
|
|
181
235
|
|
|
182
236
|
| 工具 | 產生的 shim | 載入 canonical 指南的方式 |
|
|
183
237
|
|---|---|---|
|
|
184
|
-
| Claude Code | `CLAUDE.md` |
|
|
238
|
+
| Claude Code | `CLAUDE.md` | 專案指示載入 shim;循指標讀取指南 |
|
|
185
239
|
| Codex / Copilot coding agent | `AGENTS.md` | 專案指示載入 shim;Codex 須跟著指標讀取指南 |
|
|
186
240
|
| GitHub Copilot | `.github/copilot-instructions.md` | 直接讀取 repository 指示 |
|
|
187
241
|
|
|
@@ -197,7 +251,7 @@ Codex 也有自己的專案指示分層機制。它可以從 Codex home 讀取
|
|
|
197
251
|
|
|
198
252
|
如果你的團隊在同一個專案中同時使用 Claude Code 和 Codex CLI,
|
|
199
253
|
不需要額外的 Dflow 協調。兩個工具都讀取相同的 canonical 指南;
|
|
200
|
-
只有 shim
|
|
254
|
+
只有 shim 檔案不同。
|
|
201
255
|
|
|
202
256
|
## 常見模式與注意事項
|
|
203
257
|
|
|
@@ -207,7 +261,7 @@ SDD 約束加入 `AGENTS.md`,這些內容應該放到
|
|
|
207
261
|
與它產生漂移(drift)。
|
|
208
262
|
|
|
209
263
|
**Codex 不會從 `AGENTS.md` inline 嵌入 Dflow 指南。** 產生的 Codex shim
|
|
210
|
-
是以普通的 Markdown bullet 指向 canonical
|
|
264
|
+
是以普通的 Markdown bullet 指向 canonical 指南。
|
|
211
265
|
若 Codex 看起來只從 shim 工作,請要求它讀取 `AI-AGENT-GUIDE.md`。
|
|
212
266
|
|
|
213
267
|
**`/dflow:*` 不是 Codex CLI 的內建 slash command。** Codex slash command 控制
|
|
@@ -216,8 +270,10 @@ SDD 約束加入 `AGENTS.md`,這些內容應該放到
|
|
|
216
270
|
canonical `/dflow:<id>` workflow。
|
|
217
271
|
|
|
218
272
|
**Codex 不產生命令檔。** 即使使用 `--command-adapters`,Codex 也只強化
|
|
219
|
-
`AGENTS.md`
|
|
220
|
-
`.
|
|
273
|
+
`AGENTS.md` 中 marked block 的文字 trigger 說明;只有 marker conflict 才會產生
|
|
274
|
+
fallback merge snippet。不要期待 `.claude/commands` 或 `.github/prompts` 形式的
|
|
275
|
+
Codex 專屬**命令**檔。(自動觸發 **skill** 是另一回事,由 `--skills` 投影到
|
|
276
|
+
`.agents/skills/dflow/SKILL.md`,見上方〈選配 Skill 的 Codex 行為〉。)
|
|
221
277
|
|
|
222
278
|
**不要混淆 Codex `/init` 與 Dflow `init`。** Codex `/init` 為 Codex 建立
|
|
223
279
|
通用的 `AGENTS.md` scaffold。Dflow 的設定是 `dflow init`(或免安裝路徑的
|
|
@@ -233,9 +289,12 @@ session 中同時出現;這是預期行為。
|
|
|
233
289
|
在這個模式下,Codex 可在專案內工作,並在超出 sandbox 範圍(例如 workspace
|
|
234
290
|
外寫入或存取網路)前先詢問。
|
|
235
291
|
|
|
236
|
-
**既有的 `AGENTS.md` 會被保留。**
|
|
237
|
-
|
|
238
|
-
|
|
292
|
+
**既有的 `AGENTS.md` 會被保留。** Dflow 不會覆蓋你現有的自訂專案指示;base pointer
|
|
293
|
+
若是 Dflow-generated shim 會原地刷新,其他已指向 `AI-AGENT-GUIDE.md` 的檔案會
|
|
294
|
+
略過,否則會在確認 preview 顯示並附加 marked Dflow block,重跑原地更新。
|
|
295
|
+
`--command-adapters` 仍可加入 / 更新相鄰的 trigger block;刪除 block 後再跑
|
|
296
|
+
`init` / `configure-agents` 會再附加。只有 marker conflict 時,才需要到
|
|
297
|
+
`dflow/specs/shared/` 找 fallback merge snippet 手動處理。
|
|
239
298
|
|
|
240
299
|
**巢狀 `AGENTS.md` 可能改變 Codex 看到的內容。** Codex 沿著到當前工作目錄
|
|
241
300
|
的路徑分層讀取專案指示。若某個子目錄有自己的 `AGENTS.md` 或
|