dflow-sdd-ddd 0.7.0 → 0.8.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 (51) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/docs/evaluating-dflow.en.md +14 -5
  3. package/docs/evaluating-dflow.md +14 -5
  4. package/docs/using-with-claude-code.en.md +17 -9
  5. package/docs/using-with-claude-code.md +15 -8
  6. package/lib/init.js +263 -52
  7. package/package.json +1 -1
  8. package/templates/brownfield/references/dflow-feedback-flow.md +179 -0
  9. package/templates/brownfield/references/drift-verification.md +183 -0
  10. package/templates/brownfield/references/finish-feature-flow.md +259 -0
  11. package/templates/brownfield/references/git-integration.md +312 -0
  12. package/templates/brownfield/references/init-project-flow.md +413 -0
  13. package/templates/brownfield/references/modify-existing-flow.md +444 -0
  14. package/templates/brownfield/references/new-feature-flow.md +367 -0
  15. package/templates/brownfield/references/new-phase-flow.md +259 -0
  16. package/templates/brownfield/references/pr-review-checklist.md +179 -0
  17. package/templates/brownfield/scaffolding/AI-AGENT-GUIDE.md +31 -4
  18. package/templates/brownfield/scaffolding/CLAUDE-md-snippet.md +12 -8
  19. package/templates/brownfield/scaffolding/Git-principles-gitflow.md +1 -1
  20. package/templates/brownfield/scaffolding/Git-principles-trunk.md +1 -1
  21. package/templates/brownfield/scaffolding/_conventions.md +1 -1
  22. package/templates/brownfield/scaffolding/_overview.md +3 -3
  23. package/templates/brownfield/templates/context-map.md +1 -1
  24. package/templates/brownfield/templates/glossary.md +1 -1
  25. package/templates/brownfield/templates/models.md +1 -1
  26. package/templates/brownfield/templates/rules.md +1 -1
  27. package/templates/brownfield/templates/tech-debt.md +1 -1
  28. package/templates/common/skill/SKILL.md +35 -0
  29. package/templates/greenfield/references/ddd-modeling-guide.md +351 -0
  30. package/templates/greenfield/references/dflow-feedback-flow.md +179 -0
  31. package/templates/greenfield/references/drift-verification.md +195 -0
  32. package/templates/greenfield/references/finish-feature-flow.md +280 -0
  33. package/templates/greenfield/references/git-integration.md +285 -0
  34. package/templates/greenfield/references/init-project-flow.md +447 -0
  35. package/templates/greenfield/references/modify-existing-flow.md +362 -0
  36. package/templates/greenfield/references/new-feature-flow.md +397 -0
  37. package/templates/greenfield/references/new-phase-flow.md +273 -0
  38. package/templates/greenfield/references/pr-review-checklist.md +130 -0
  39. package/templates/greenfield/scaffolding/AI-AGENT-GUIDE.md +31 -4
  40. package/templates/greenfield/scaffolding/CLAUDE-md-snippet.md +15 -13
  41. package/templates/greenfield/scaffolding/Git-principles-gitflow.md +1 -1
  42. package/templates/greenfield/scaffolding/Git-principles-trunk.md +1 -1
  43. package/templates/greenfield/scaffolding/_conventions.md +1 -1
  44. package/templates/greenfield/scaffolding/_overview.md +5 -3
  45. package/templates/greenfield/scaffolding/architecture-decisions-README.md +1 -1
  46. package/templates/greenfield/templates/context-map.md +1 -1
  47. package/templates/greenfield/templates/events.md +1 -1
  48. package/templates/greenfield/templates/glossary.md +1 -1
  49. package/templates/greenfield/templates/models.md +1 -1
  50. package/templates/greenfield/templates/rules.md +1 -1
  51. package/templates/greenfield/templates/tech-debt.md +1 -1
@@ -0,0 +1,447 @@
1
+ # Init Project Flow — Greenfield Track
2
+
3
+ Internal flow spec for `npx dflow-sdd-ddd init` after the CLI selects the
4
+ Greenfield track. It also serves as the manual reference for environments
5
+ where Node.js/npm is unavailable.
6
+
7
+ This is not a skill slash command. Do not describe or invoke it as one.
8
+
9
+ This is a **one-time project bootstrap** flow. It sets up the `dflow/specs/`
10
+ directory structure, seeds project-level governance files from the packaged
11
+ `scaffolding/` template set, and points the developer at `/dflow:new-feature`
12
+ as the natural next command.
13
+
14
+ The V1 CLI clean cut does not migrate or dual-read a legacy root `specs/`
15
+ directory. If root `specs/` exists, warn that new Dflow files will be created
16
+ under `dflow/specs/`.
17
+
18
+ **Confirmations** in this flow:
19
+ - Step 2 → Step 3: information collected → present file-list preview
20
+ - Step 3 → Step 4: file-list confirmed → write
21
+
22
+ In the CLI, use ordinary yes/no confirmation. In the manual AI fallback,
23
+ ask for explicit confirmation in natural language; do not require
24
+ the workflow next command for init.
25
+
26
+ **Ceremony**: this flow is **meta-level** — it sets up the infrastructure
27
+ that subsequent T1 / T2 / T3 work will live in. It does not itself produce
28
+ a SPEC-ID, feature directory, or branch. It does not count against Ceremony
29
+ Scaling.
30
+
31
+ ---
32
+
33
+ ## Step 1: Current-State Inventory
34
+
35
+ The CLI inspects the project root before prompting.
36
+
37
+ **Read** (using the Read / Glob / LS tools):
38
+ - Is there a `.git` directory? → repo exists
39
+ - Is there an existing non-empty `dflow/specs/` directory? → Dflow already initialized; abort
40
+ - Is there an empty `dflow/specs/` directory? → continue with existing-file protection
41
+ - Is there an existing root `specs/` directory? → legacy / other-tool warning only; do not read, copy, move, or rewrite it
42
+ - Is there an existing `CLAUDE.md` at the repo root? → project already
43
+ has AI-collab rules
44
+ - Is there an existing `src/*.Domain` project (or similar Clean-
45
+ Architecture layout)? → project is at least partially structured
46
+
47
+ Report findings plainly:
48
+
49
+ > "Repo inventory:
50
+ > - `.git`: present
51
+ > - `dflow/specs/`: not yet present → greenfield Dflow setup
52
+ > - `specs/`: present → legacy / other-tool directory; Dflow V1 will not
53
+ > migrate or modify it
54
+ > - `src/`: contains `MyApp.Domain`, `MyApp.Application`,
55
+ > `MyApp.Infrastructure`, `MyApp.WebAPI` → Clean Architecture layout
56
+ > detected
57
+ > - `CLAUDE.md`: present → will not overwrite; I'll offer a snippet
58
+ > to merge into it"
59
+
60
+ Or:
61
+
62
+ > "Repo inventory:
63
+ > - `dflow/specs/`: already contains files
64
+ > - `CLAUDE.md`: not present
65
+ >
66
+ > Dflow already appears initialized here. I will stop rather than risk
67
+ > mixing bootstrap versions."
68
+
69
+ Classify the scenario:
70
+ - **Greenfield**: no `dflow/specs/` at all → create full baseline
71
+ - **Empty Dflow namespace**: `dflow/specs/` exists but contains no files → continue
72
+ - **Already initialized**: non-empty `dflow/specs/` exists → abort cleanly
73
+
74
+ **→ Transition (step-internal)**: Step 1 complete. Announce
75
+ > "Step 1 complete (current-state inventory). Entering Step 2: Project
76
+ > Information."
77
+
78
+ and continue.
79
+
80
+ ---
81
+
82
+ ## Step 2: Project Information (track-specific intake)
83
+
84
+ Ask these questions naturally — not as a checklist dump. Skip any
85
+ question where Step 1 already gave a confident answer.
86
+
87
+ ### Q1. Project type
88
+
89
+ > "Is this project greenfield (fresh start with Dflow + Clean
90
+ > Architecture + DDD) or brownfield (existing code, now adopting
91
+ > Dflow)?"
92
+
93
+ Used to tune `_overview.md` and `_conventions.md` — brownfield projects
94
+ typically need extra emphasis on migration-like framing even when they
95
+ choose the Greenfield track for a new bounded area.
96
+
97
+ ### Q2. Tech stack confirmation
98
+
99
+ > "Confirm the tech stack so I populate the right scaffolding
100
+ > variables: Framework + version (e.g. ASP.NET Core 9 / Spring Boot 3.3 /
101
+ > NestJS 10 / Django 5 / FastAPI 0.115)? Persistence layer (e.g.
102
+ > EF Core / Hibernate/JPA / Prisma / SQLAlchemy / GORM / Eloquent)?
103
+ > Mediator (e.g. MediatR / pipeline behavior — optional)? Test framework
104
+ > (e.g. xUnit / NUnit / JUnit / Jest / pytest / go test / PHPUnit)?"
105
+
106
+ Used to substitute `{Framework version}` / `{ORM version}` /
107
+ `{Mediator}` / `{Test framework}` placeholders in `_overview.md`.
108
+
109
+ ### Q3. Migration background
110
+
111
+ > "Was this project ported / migrated from a prior stack (e.g. legacy
112
+ > presentation framework, monolith), or is it new-build on the chosen
113
+ > framework? If migrated, is there any legacy concern you'd like the
114
+ > overview to flag?"
115
+
116
+ If migrated → `_overview.md` can carry a short migration-context note.
117
+ Otherwise skip. In the Greenfield track, migration is not the first-class
118
+ concern, but noting origin is still useful.
119
+
120
+ ### Q4. Project prose language
121
+
122
+ > "Project prose language for generated spec content? Choose an explicit
123
+ > language tag: `zh-TW`, `en`, `ja-JP`, or another BCP-47 tag."
124
+
125
+ Used to write `dflow/specs/shared/_conventions.md` under `## Prose
126
+ Language`. This value is required. Do not accept `any`, `skip`, `later`,
127
+ blank input, or prose descriptions such as "Traditional Chinese". Dflow
128
+ templates keep canonical English structural language; this setting controls
129
+ free prose inside generated spec sections.
130
+
131
+ ### Q5. Optional starter files (multi-select)
132
+
133
+ > "Besides the mandatory baseline, which optional starter files do
134
+ > you want me to seed? You can check as many as apply:
135
+ >
136
+ > - [ ] `dflow/specs/shared/_overview.md` — system overview template
137
+ > - [ ] Git principles — **pick one** if your project has opinions
138
+ > about Git conventions (decision hint: **if you're not sure,
139
+ > pick trunk-based** — that's the default for GitHub / GitLab.
140
+ > Pick Git Flow only if you have a formal release cycle with
141
+ > dedicated release / hotfix branches):
142
+ > - [ ] `dflow/specs/shared/Git-principles-gitflow.md`
143
+ > - [ ] `dflow/specs/shared/Git-principles-trunk.md`"
144
+
145
+ Wait for answers. If the developer picks both Git-principles flavours,
146
+ confirm once more that they really want both (usually a project picks
147
+ one).
148
+
149
+ ### Q6. AI coding agents (multi-select)
150
+
151
+ > "Which AI coding agents should Dflow configure?
152
+ >
153
+ > - [ ] `AGENTS.md` — Codex / Copilot coding agent
154
+ > - [ ] `CLAUDE.md` — Claude Code
155
+ > - [ ] `.github/copilot-instructions.md` — GitHub Copilot
156
+ >
157
+ > If you select any agent, Dflow will create
158
+ > `dflow/specs/shared/AI-AGENT-GUIDE.md` as the canonical guide. Root-level
159
+ > tool files stay thin and point back to that guide. Existing tool files are
160
+ > never overwritten; Dflow writes merge snippets under `dflow/specs/shared/`
161
+ > instead."
162
+
163
+ **→ Transition (step-internal)**: Step 2 complete. Announce
164
+ > "Step 2 complete (project information captured). Entering Step 3:
165
+ > File-list preview."
166
+
167
+ and continue.
168
+
169
+ ---
170
+
171
+ ## Step 3: File-list Preview
172
+
173
+ Compute the full list of files that will be created / skipped, based on
174
+ Step 1 (current state) + Step 2 (developer choices).
175
+
176
+ ### 3.1 Mandatory baseline (Greenfield track)
177
+
178
+ These files / directories are **always part of the baseline** — they
179
+ are what every Dflow-adopting Greenfield project is expected to have before
180
+ `/dflow:new-feature` runs cleanly:
181
+
182
+ ```
183
+ dflow/specs/
184
+ ├── features/
185
+ │ ├── active/ # directory (empty)
186
+ │ ├── completed/ # directory (empty)
187
+ │ └── backlog/ # directory (empty)
188
+ ├── domain/
189
+ │ ├── glossary.md # ← templates/glossary.md
190
+ │ └── context-map.md # ← templates/context-map.md
191
+ ├── shared/
192
+ │ └── _conventions.md # ← scaffolding/_conventions.md (mandatory)
193
+ └── architecture/
194
+ ├── tech-debt.md # ← templates/tech-debt.md
195
+ └── decisions/ # directory for ADRs
196
+ └── README.md # ← scaffolding/architecture-decisions-README.md
197
+ ```
198
+
199
+ Key Greenfield-track notes:
200
+ - `dflow/specs/architecture/tech-debt.md` (not `dflow/specs/migration/tech-debt.md`)
201
+ — Greenfield track uses `architecture/` as the cross-cutting directory.
202
+ The Brownfield track uses `migration/` instead; this split is an
203
+ F-05 decision from R7 review.
204
+ - `dflow/specs/domain/context-map.md` IS mandatory in the Greenfield track. Greenfield
205
+ projects typically plan bounded contexts up-front; the context-map
206
+ is where those relationships are captured. (Brownfield track treats
207
+ contexts as emergent and does not mandate this file.)
208
+ - `dflow/specs/architecture/decisions/` is a **directory**, with a short
209
+ README explaining the ADR naming convention
210
+ (`ADR-NNNN-{slug}.md` / dated / numbered). This gives future ADRs
211
+ a home without forcing a first ADR on Day 0.
212
+ - **`behavior.md` is NOT generated here.** Per F-05, per-context
213
+ `behavior.md` files are created by `/dflow:new-feature` Step 8.3
214
+ (completion flow) or by the P007a baseline-capture flow at the
215
+ moment the first bounded context is established. Creating empty
216
+ `behavior.md` files here would create stale placeholders.
217
+
218
+ ### 3.2 Optional files (from Step 2 Q5)
219
+
220
+ Use the packaged scaffolding templates listed below; their project-local
221
+ outputs are under `dflow/specs/shared/` (the scaffolding root, not the
222
+ vendored workflow bundle). Compute the destination path:
223
+
224
+ | Scaffolding source | Destination in project |
225
+ |---|---|
226
+ | `scaffolding/_overview.md` | `dflow/specs/shared/_overview.md` |
227
+ | `scaffolding/_conventions.md` | `dflow/specs/shared/_conventions.md` (mandatory baseline) |
228
+ | `scaffolding/Git-principles-gitflow.md` | `dflow/specs/shared/Git-principles-gitflow.md` |
229
+ | `scaffolding/Git-principles-trunk.md` | `dflow/specs/shared/Git-principles-trunk.md` |
230
+ | `scaffolding/AI-AGENT-GUIDE.md` | `dflow/specs/shared/AI-AGENT-GUIDE.md` when at least one AI agent is selected |
231
+ | generated tool shim | `AGENTS.md`, `CLAUDE.md`, or `.github/copilot-instructions.md` when selected and missing |
232
+ | generated merge snippet | `dflow/specs/shared/*-snippet.md` when the selected tool file already exists |
233
+
234
+ ### 3.3 Present the preview
235
+
236
+ Present the complete file list as two tables, separating create vs
237
+ skip, and wait for developer confirmation:
238
+
239
+ > "Based on Step 1 inventory + Step 2 answers, here is what I'll do:
240
+ >
241
+ > **Will create ({N} files):**
242
+ >
243
+ > | Path | Source |
244
+ > |---|---|
245
+ > | `dflow/specs/features/active/.gitkeep` | (directory placeholder) |
246
+ > | `dflow/specs/features/completed/.gitkeep` | (directory placeholder) |
247
+ > | `dflow/specs/features/backlog/.gitkeep` | (directory placeholder) |
248
+ > | `dflow/specs/domain/glossary.md` | `templates/glossary.md` (mandatory baseline) |
249
+ > | `dflow/specs/domain/context-map.md` | `templates/context-map.md` (mandatory baseline) |
250
+ > | `dflow/specs/shared/_conventions.md` | `scaffolding/_conventions.md` (mandatory baseline) |
251
+ > | `dflow/specs/architecture/tech-debt.md` | `templates/tech-debt.md` (mandatory baseline) |
252
+ > | `dflow/specs/architecture/decisions/README.md` | `scaffolding/architecture-decisions-README.md` (mandatory baseline) |
253
+ > | `dflow/specs/shared/_overview.md` | optional (you picked it) |
254
+ > | `dflow/specs/shared/Git-principles-trunk.md` | optional (you picked it) |
255
+ > | `dflow/specs/shared/AI-AGENT-GUIDE.md` | selected AI agent guide |
256
+ > | `CLAUDE.md` | selected tool shim because repo has no CLAUDE.md |
257
+ >
258
+ > **Will skip ({M} files — already present):**
259
+ >
260
+ > | Path | Reason |
261
+ > |---|---|
262
+ > | `dflow/specs/domain/glossary.md` | already exists (47 lines) |
263
+ >
264
+ > **Not creating** (per F-05 decision):
265
+ > - No `dflow/specs/domain/{context}/behavior.md` files. These are created
266
+ > later by `/dflow:new-feature` Step 8.3 or P007a when the first
267
+ > bounded context is established.
268
+ > - No pre-seeded ADR files in `dflow/specs/architecture/decisions/`. Write
269
+ > ADRs as architecture decisions come up; Day-0 is too early.
270
+ >
271
+ > Looks good? Reply 'yes' to proceed with the writes, or tell me what to
272
+ > adjust."
273
+
274
+ **→ Step Gate: Step 3 → Step 4**
275
+
276
+ Wait for explicit confirmation. If the developer asks to change the
277
+ selection, go back to Step 2 Q5 or Q6 and re-run Step 3.
278
+
279
+ ---
280
+
281
+ ## Step 4: Write Files (placeholder fill-in + existing-file protection)
282
+
283
+ Execute the write plan agreed in Step 3. Use the Write tool (or
284
+ mkdir-equivalent for directories).
285
+
286
+ ### 4.1 Existing-file protection (strict)
287
+
288
+ Before every single write, re-check: does the target path already
289
+ exist? If yes, **skip** — do not overwrite. Announce the skip:
290
+
291
+ > "Skipped `dflow/specs/domain/glossary.md` — already exists (unchanged)."
292
+
293
+ Only overwrite if the developer said explicitly "overwrite X" in
294
+ Step 2 (rare; usually a conscious reset during early adoption).
295
+
296
+ ### 4.2 Placeholder substitution
297
+
298
+ When writing from `scaffolding/` sources, substitute the placeholders
299
+ captured in Step 2:
300
+
301
+ | Placeholder | Substitution source |
302
+ |---|---|
303
+ | `{YYYY-MM-DD}` | Today's date (ISO format) |
304
+ | `{System Name}` / `{系統名稱}` | From Step 2 or repo folder name |
305
+ | `{業務領域}` | From Step 2 Q1 / Q2 context |
306
+ | `{Language}` | From Step 2 Q2 |
307
+ | `{Framework}` | From Step 2 Q2 |
308
+ | `{Framework version}` | From Step 2 Q2 |
309
+ | `{ORM / persistence}` | From Step 2 Q2 |
310
+ | `{ORM version}` | From Step 2 Q2 |
311
+ | `{Mediator}` | From Step 2 Q2 |
312
+ | `{Test framework}` | From Step 2 Q2 |
313
+ | `{prose-language}` | From Step 2 Q4 |
314
+
315
+ For placeholders the developer did not provide, keep the `{placeholder}`
316
+ token in the emitted file and add a one-line TODO comment so they
317
+ notice:
318
+
319
+ ```markdown
320
+ <!-- TODO: fill in 業務領域 on next review -->
321
+ ```
322
+
323
+ ### 4.3 Special case — AI agent instruction files
324
+
325
+ If the developer selected any AI coding agent in Q6, create
326
+ `dflow/specs/shared/AI-AGENT-GUIDE.md` as the canonical Dflow project
327
+ guide.
328
+
329
+ For each selected tool-specific file (`AGENTS.md`, `CLAUDE.md`,
330
+ `.github/copilot-instructions.md`):
331
+
332
+ - if the target file does not exist, create a small shim at the target
333
+ path that points to `dflow/specs/shared/AI-AGENT-GUIDE.md`
334
+ - if the target file already exists, do not overwrite it; write a merge
335
+ snippet under `dflow/specs/shared/` and report that the developer
336
+ should merge it manually
337
+
338
+ ### 4.4 Directory-only entries
339
+
340
+ For directories that Git otherwise wouldn't track (empty `active/` /
341
+ `completed/` / `backlog/`), seed a `.gitkeep` file so the directory
342
+ persists across clones.
343
+
344
+ For `dflow/specs/architecture/decisions/`, seed a short `README.md` describing
345
+ the ADR naming convention (`ADR-NNNN-{slug}.md`) rather than a
346
+ `.gitkeep` — this serves as in-directory documentation for future
347
+ writers.
348
+
349
+ **→ Transition (step-internal)**: Step 4 complete. Announce
350
+ > "Step 4 complete (files written). Entering Step 5: Results + next
351
+ > steps."
352
+
353
+ and continue.
354
+
355
+ ---
356
+
357
+ ## Step 5: Results Report + Next-step Recommendation
358
+
359
+ Summarise what actually happened and point at the next command.
360
+
361
+ ### 5.1 Summary report
362
+
363
+ ```
364
+ Init complete. Summary:
365
+
366
+ Created ({N} files):
367
+ ✓ dflow/specs/features/active/.gitkeep
368
+ ✓ dflow/specs/features/completed/.gitkeep
369
+ ✓ dflow/specs/features/backlog/.gitkeep
370
+ ✓ dflow/specs/domain/glossary.md
371
+ ✓ dflow/specs/domain/context-map.md
372
+ ✓ dflow/specs/shared/_conventions.md
373
+ ✓ dflow/specs/architecture/tech-debt.md
374
+ ✓ dflow/specs/architecture/decisions/README.md
375
+ ✓ dflow/specs/shared/_overview.md
376
+ ✓ dflow/specs/shared/Git-principles-trunk.md
377
+ ✓ CLAUDE.md (seeded from scaffolding snippet)
378
+
379
+ Skipped ({M} files already present):
380
+ - (none this run)
381
+
382
+ Deferred (not created here by design):
383
+ - dflow/specs/domain/{context}/behavior.md — created by /dflow:new-feature
384
+ Step 8.3 or P007a baseline capture
385
+ - dflow/specs/architecture/decisions/ADR-*.md — write ADRs as
386
+ architecture decisions come up, not speculatively
387
+ ```
388
+
389
+ ### 5.2 Next-step recommendation
390
+
391
+ Tailor the recommendation to the Step 1 scenario:
392
+
393
+ **Greenfield**:
394
+
395
+ > "Structure is ready. Recommended next step:
396
+ > - Run `/dflow:new-feature` to start your first feature
397
+ > (this will create `dflow/specs/features/active/{SPEC-ID}-{slug}/` and
398
+ > walk you through spec → Aggregate design → implementation plan)
399
+ > - Your first feature will also establish your first bounded context;
400
+ > the completion flow will baseline `dflow/specs/domain/{context}/` at
401
+ > that point."
402
+
403
+ **Brownfield**:
404
+
405
+ > "Structure is ready. Recommended next step:
406
+ > - First, fill in `dflow/specs/shared/_overview.md` — especially the
407
+ > 'Current System State' and 'Known Issues' sections. Also
408
+ > pre-populate `dflow/specs/domain/context-map.md` if you already have a
409
+ > working understanding of your bounded contexts; otherwise let it
410
+ > emerge as features land.
411
+ > - Then run `/dflow:modify-existing` to work from an incoming change
412
+ > request (most common Brownfield entry), or `/dflow:new-feature`
413
+ > for a fresh piece of work.
414
+ > - When you touch a domain concept for the first time, the completion
415
+ > flow will prompt you to baseline it into
416
+ > `dflow/specs/domain/{context}/` — don't try to pre-fill everything
417
+ > up front."
418
+
419
+ **Already fully set up (Step 1 showed nothing to do)**:
420
+
421
+ > "Your project already has a complete Dflow layout — nothing to do.
422
+ > If you were expecting changes, let me know which file you wanted
423
+ > refreshed and I'll skip the safety-net."
424
+
425
+ ### 5.3 Optional: review project-level files
426
+
427
+ Remind the developer to review files that have `{placeholder}` tokens
428
+ still in them:
429
+
430
+ > "A few files still have `{placeholder}` tokens that need your input:
431
+ > - `dflow/specs/shared/_overview.md`: `{業務領域}`, `{團隊}`,
432
+ > `{使用者規模}`
433
+ > - `dflow/specs/domain/context-map.md`: context list and relationships
434
+ > - `CLAUDE.md`: `{業務領域}`
435
+ >
436
+ > These are fine to leave for now; fill them in during your next
437
+ > review pass."
438
+
439
+ ---
440
+
441
+ ## Notes & references
442
+
443
+ - Scaffolding templates: packaged in the Dflow tarball; project-local
444
+ outputs land under `dflow/specs/shared/`
445
+ - `_index.md` feature template: `dflow/specs/shared/dflow-workflows/templates/_index.md`
446
+ (used by `/dflow:new-feature`, NOT by this flow)
447
+ - Git integration rules: `dflow/specs/shared/dflow-workflows/references/git-integration.md`