dflow-sdd-ddd 0.13.0 → 0.15.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 +824 -1
- package/CONTRIBUTING.md +16 -10
- package/README.en.md +156 -200
- package/README.md +89 -144
- package/TEMPLATE-COVERAGE.md +15 -8
- package/TEMPLATE-LANGUAGE-GLOSSARY.md +15 -1
- package/bin/dflow.js +36 -4
- package/docs/commands.en.md +110 -0
- package/docs/commands.md +101 -0
- package/docs/doctor-uncertainty.en.md +212 -0
- package/docs/doctor-uncertainty.md +212 -0
- package/docs/evaluating-dflow.en.md +29 -11
- package/docs/evaluating-dflow.md +8 -6
- package/docs/npm-publish-checklist.md +3 -1
- package/docs/release-versioning-policy.md +8 -2
- package/docs/upgrading.en.md +196 -0
- package/docs/upgrading.md +197 -0
- package/docs/using-with-claude-code.en.md +25 -10
- package/docs/using-with-claude-code.md +20 -7
- package/docs/using-with-codex.en.md +18 -6
- package/docs/using-with-codex.md +16 -5
- package/docs/using-with-github-copilot.en.md +25 -10
- package/docs/using-with-github-copilot.md +21 -8
- package/lib/doc-shapes.json +997 -0
- package/lib/doctor-checks.js +2654 -0
- package/lib/init.js +3583 -107
- package/lib/render-diagrams.js +1474 -0
- package/lib/render.js +865 -49
- package/package.json +2 -2
- package/templates/brownfield/references/drift-verification.md +4 -0
- package/templates/brownfield/references/finish-feature-flow.md +635 -88
- package/templates/brownfield/references/finish-feature-follow-up.md +60 -0
- package/templates/brownfield/references/finish-feature-minimal-host.md +406 -0
- package/templates/brownfield/references/finish-feature-post-hoc-hotfix.md +95 -0
- package/templates/brownfield/references/git-integration.md +160 -15
- package/templates/brownfield/references/init-project-flow.md +26 -4
- package/templates/brownfield/references/modify-existing-flow.md +412 -87
- package/templates/brownfield/references/modify-existing-follow-up.md +121 -0
- package/templates/brownfield/references/modify-existing-post-hoc-hotfix.md +82 -0
- package/templates/brownfield/references/new-feature-flow.md +61 -6
- package/templates/brownfield/references/new-phase-flow.md +57 -7
- package/templates/brownfield/references/pr-review-checklist.md +303 -10
- package/templates/brownfield/scaffolding/AI-AGENT-GUIDE.md +158 -34
- package/templates/brownfield/scaffolding/CLAUDE-md-snippet.md +1 -1
- package/templates/brownfield/scaffolding/Git-principles-gitflow.md +75 -6
- package/templates/brownfield/scaffolding/Git-principles-trunk.md +82 -8
- package/templates/brownfield/scaffolding/_conventions.md +50 -28
- package/templates/brownfield/scaffolding/_overview.md +1 -0
- package/templates/brownfield/templates/_index.md +151 -7
- package/templates/brownfield/templates/analysis.md +79 -0
- package/templates/brownfield/templates/behavior.md +1 -0
- package/templates/brownfield/templates/context-definition.md +1 -0
- package/templates/brownfield/templates/context-map.md +2 -1
- package/templates/brownfield/templates/glossary.md +1 -0
- package/templates/brownfield/templates/lightweight-spec.md +154 -11
- package/templates/brownfield/templates/models.md +1 -0
- package/templates/brownfield/templates/phase-spec.md +9 -1
- package/templates/brownfield/templates/rules.md +1 -0
- package/templates/brownfield/templates/tech-debt.md +1 -0
- package/templates/common/references/ddd-modeling-guide.md +33 -16
- package/templates/{greenfield → common}/references/dflow-feedback-flow.md +2 -1
- package/templates/common/references/flow-rationale-registry.md +130 -0
- package/templates/common/skill/SKILL.md +13 -11
- package/templates/greenfield/references/drift-verification.md +4 -0
- package/templates/greenfield/references/finish-feature-flow.md +625 -89
- package/templates/greenfield/references/finish-feature-follow-up.md +60 -0
- package/templates/greenfield/references/finish-feature-minimal-host.md +363 -0
- package/templates/greenfield/references/finish-feature-post-hoc-hotfix.md +95 -0
- package/templates/greenfield/references/git-integration.md +148 -15
- package/templates/greenfield/references/init-project-flow.md +28 -8
- package/templates/greenfield/references/modify-existing-flow.md +378 -85
- package/templates/greenfield/references/modify-existing-follow-up.md +103 -0
- package/templates/greenfield/references/modify-existing-post-hoc-hotfix.md +82 -0
- package/templates/greenfield/references/new-feature-flow.md +67 -4
- package/templates/greenfield/references/new-phase-flow.md +56 -7
- package/templates/greenfield/references/pr-review-checklist.md +287 -8
- package/templates/greenfield/scaffolding/AI-AGENT-GUIDE.md +153 -32
- package/templates/greenfield/scaffolding/CLAUDE-md-snippet.md +5 -2
- package/templates/greenfield/scaffolding/Git-principles-gitflow.md +74 -6
- package/templates/greenfield/scaffolding/Git-principles-trunk.md +88 -12
- package/templates/greenfield/scaffolding/_conventions.md +50 -28
- package/templates/greenfield/scaffolding/_overview.md +6 -2
- package/templates/greenfield/templates/_index.md +137 -7
- package/templates/greenfield/templates/aggregate-design.md +1 -0
- package/templates/greenfield/templates/analysis.md +79 -0
- package/templates/greenfield/templates/behavior.md +1 -0
- package/templates/greenfield/templates/context-definition.md +1 -0
- package/templates/greenfield/templates/context-map.md +2 -1
- package/templates/greenfield/templates/events.md +4 -1
- package/templates/greenfield/templates/glossary.md +1 -0
- package/templates/greenfield/templates/lightweight-spec.md +154 -11
- package/templates/greenfield/templates/models.md +1 -0
- package/templates/greenfield/templates/phase-spec.md +9 -1
- package/templates/greenfield/templates/rules.md +1 -0
- package/templates/greenfield/templates/tech-debt.md +1 -0
- package/templates/brownfield/references/dflow-feedback-flow.md +0 -251
|
@@ -0,0 +1,997 @@
|
|
|
1
|
+
{
|
|
2
|
+
"about": "PROPOSAL-092. What each shape number of each template looks like, what changed from the number before it, and the paths the flows create each document at. The CURRENT number is not stored here: it is the number on the template's own `<!-- dflow-shape: ... -->` line. Paths are relative to dflow/specs/, and `*` matches within one path segment.",
|
|
3
|
+
"templates": {
|
|
4
|
+
"greenfield/_index.md": {
|
|
5
|
+
"source": "templates/_index.md",
|
|
6
|
+
"paths": ["features/active/*/_index.md"],
|
|
7
|
+
"variable": [],
|
|
8
|
+
"conditionalFields": [],
|
|
9
|
+
"shapes": [
|
|
10
|
+
{
|
|
11
|
+
"number": 1,
|
|
12
|
+
"digest": "3e7937d8e5a67f7a087fafb70699cc5ef5e73fea09cb63bc024f74113ea3cf92",
|
|
13
|
+
"changes": [],
|
|
14
|
+
"skeleton": [
|
|
15
|
+
["field","spec-id"],
|
|
16
|
+
["field","slug"],
|
|
17
|
+
["field","status"],
|
|
18
|
+
["field","created"],
|
|
19
|
+
["field","branch"],
|
|
20
|
+
["field","follow-up-of","optional"],
|
|
21
|
+
["h2","Goals & Scope"],
|
|
22
|
+
["h2","Phase Specs"],
|
|
23
|
+
["column","Phase Specs","",1,1,"Phase"],
|
|
24
|
+
["column","Phase Specs","",1,2,"Date"],
|
|
25
|
+
["column","Phase Specs","",1,3,"Slug"],
|
|
26
|
+
["column","Phase Specs","",1,4,"Status"],
|
|
27
|
+
["column","Phase Specs","",1,5,"File Link"],
|
|
28
|
+
["h2","Current BR Snapshot"],
|
|
29
|
+
["column","Current BR Snapshot","",1,1,"BR-ID"],
|
|
30
|
+
["column","Current BR Snapshot","",1,2,"Current Rule"],
|
|
31
|
+
["column","Current BR Snapshot","",1,3,"First Seen (phase)"],
|
|
32
|
+
["column","Current BR Snapshot","",1,4,"Last Updated (phase)"],
|
|
33
|
+
["column","Current BR Snapshot","",1,5,"Status"],
|
|
34
|
+
["h2","Lightweight Changes"],
|
|
35
|
+
["column","Lightweight Changes","",1,1,"Date"],
|
|
36
|
+
["column","Lightweight Changes","",1,2,"Tier"],
|
|
37
|
+
["column","Lightweight Changes","",1,3,"Description"],
|
|
38
|
+
["column","Lightweight Changes","",1,4,"Commit"],
|
|
39
|
+
["h2","Checkpoint Log"],
|
|
40
|
+
["column","Checkpoint Log","",1,1,"Timestamp"],
|
|
41
|
+
["column","Checkpoint Log","",1,2,"Checkpoint"],
|
|
42
|
+
["column","Checkpoint Log","",1,3,"Result"],
|
|
43
|
+
["h2","Resume Pointer"],
|
|
44
|
+
["comment","","","43746d19844776ca"],
|
|
45
|
+
["note","Goals & Scope","","6bf4aa3e408ea8bc"],
|
|
46
|
+
["note","Phase Specs","","5dff0b02b2fefdac"],
|
|
47
|
+
["comment","Phase Specs","","60305a8c385cd40f"],
|
|
48
|
+
["note","Current BR Snapshot","","6a432bf9bd86ac85"],
|
|
49
|
+
["comment","Current BR Snapshot","","44a797a7db5f5224"],
|
|
50
|
+
["note","Lightweight Changes","","673f6f4bda4182b3"],
|
|
51
|
+
["comment","Lightweight Changes","","013165e8c56f2b73"],
|
|
52
|
+
["note","Checkpoint Log","","7ba7cd7e457fce40"],
|
|
53
|
+
["note","Resume Pointer","","6282e389a109b5f3"],
|
|
54
|
+
["comment","Resume Pointer","","5b3dcd00f70f0239"]
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
},
|
|
59
|
+
"greenfield/_overview.md": {
|
|
60
|
+
"source": "scaffolding/_overview.md",
|
|
61
|
+
"paths": ["shared/_overview.md"],
|
|
62
|
+
"variable": [],
|
|
63
|
+
"conditionalFields": [],
|
|
64
|
+
"shapes": [
|
|
65
|
+
{
|
|
66
|
+
"number": 1,
|
|
67
|
+
"digest": "978c0694155d490fd73a10e32f832edaf9510396be98dfc64616f464280e598a",
|
|
68
|
+
"changes": [],
|
|
69
|
+
"skeleton": [
|
|
70
|
+
["h2","System Summary"],
|
|
71
|
+
["h3","System Summary","Business Domain"],
|
|
72
|
+
["h2","Technical Architecture"],
|
|
73
|
+
["h3","Technical Architecture","Stack"],
|
|
74
|
+
["column","Technical Architecture","Stack",1,1,"Item"],
|
|
75
|
+
["column","Technical Architecture","Stack",1,2,"Choice"],
|
|
76
|
+
["h3","Technical Architecture","Clean Architecture Layers"],
|
|
77
|
+
["column","Technical Architecture","Clean Architecture Layers",1,1,"Layer"],
|
|
78
|
+
["column","Technical Architecture","Clean Architecture Layers",1,2,"Responsibilities"],
|
|
79
|
+
["column","Technical Architecture","Clean Architecture Layers",1,3,"Must NOT"],
|
|
80
|
+
["h3","Technical Architecture","Project Layout"],
|
|
81
|
+
["h2","Bounded Contexts (Current Map)"],
|
|
82
|
+
["h2","Principles This Project Adopts"],
|
|
83
|
+
["h2","Architecture Decision Records (ADRs)"],
|
|
84
|
+
["h2","Related Documents"],
|
|
85
|
+
["note","","","bbdbdc4be053ed99"],
|
|
86
|
+
["comment","","","5d868a781afaa3ac"],
|
|
87
|
+
["note","Technical Architecture","Project Layout","1d8aafda4ad18fe6"]
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"greenfield/aggregate-design.md": {
|
|
93
|
+
"source": "templates/aggregate-design.md",
|
|
94
|
+
"paths": ["features/active/*/aggregate-design.md"],
|
|
95
|
+
"variable": [],
|
|
96
|
+
"conditionalFields": [],
|
|
97
|
+
"shapes": [
|
|
98
|
+
{
|
|
99
|
+
"number": 1,
|
|
100
|
+
"digest": "732a739e8b28ae909a1e8c6df24775acaf8534dd0a37b66aa1b815ca592a47d2",
|
|
101
|
+
"changes": [],
|
|
102
|
+
"skeleton": [
|
|
103
|
+
["field","aggregate"],
|
|
104
|
+
["field","bounded-context"],
|
|
105
|
+
["field","created"],
|
|
106
|
+
["h2","Purpose"],
|
|
107
|
+
["h2","Invariants"],
|
|
108
|
+
["column","Invariants","",1,1,"ID"],
|
|
109
|
+
["column","Invariants","",1,2,"Invariant"],
|
|
110
|
+
["column","Invariants","",1,3,"Behavior on Violation"],
|
|
111
|
+
["h2","Structure"],
|
|
112
|
+
["h2","Aggregate Root"],
|
|
113
|
+
["column","Aggregate Root","",1,1,"Property"],
|
|
114
|
+
["column","Aggregate Root","",1,2,"Type"],
|
|
115
|
+
["column","Aggregate Root","",1,3,"Description"],
|
|
116
|
+
["h2","State Transition Methods"],
|
|
117
|
+
["column","State Transition Methods","",1,1,"Method"],
|
|
118
|
+
["column","State Transition Methods","",1,2,"Preconditions"],
|
|
119
|
+
["column","State Transition Methods","",1,3,"Postconditions"],
|
|
120
|
+
["column","State Transition Methods","",1,4,"Domain Event"],
|
|
121
|
+
["h2","Domain Events"],
|
|
122
|
+
["column","Domain Events","",1,1,"Event"],
|
|
123
|
+
["column","Domain Events","",1,2,"Trigger"],
|
|
124
|
+
["column","Domain Events","",1,3,"Consumer"],
|
|
125
|
+
["h2","Referenced Aggregates (ID only)"],
|
|
126
|
+
["column","Referenced Aggregates (ID only)","",1,1,"Aggregate"],
|
|
127
|
+
["column","Referenced Aggregates (ID only)","",1,2,"Reference Type"],
|
|
128
|
+
["column","Referenced Aggregates (ID only)","",1,3,"Purpose"],
|
|
129
|
+
["h2","Design Decisions"],
|
|
130
|
+
["comment","","","1a3002dd72a93e2e"],
|
|
131
|
+
["note","Purpose","","792f8b823598d204"],
|
|
132
|
+
["note","Invariants","","00918681a1ba4f14"],
|
|
133
|
+
["note","Design Decisions","","15a965bf36263328"]
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
"greenfield/analysis.md": {
|
|
139
|
+
"source": "templates/analysis.md",
|
|
140
|
+
"paths": ["domain/analysis.md","domain/*/analysis.md"],
|
|
141
|
+
"variable": [],
|
|
142
|
+
"conditionalFields": [],
|
|
143
|
+
"shapes": [
|
|
144
|
+
{
|
|
145
|
+
"number": 1,
|
|
146
|
+
"digest": "7179f1686d90a17b4f6fe2d51f44653d2aff945749d0256c81392418c269a07b",
|
|
147
|
+
"changes": [],
|
|
148
|
+
"skeleton": [
|
|
149
|
+
["h2","Cross-Context Flows"],
|
|
150
|
+
["h2","Lifecycles"],
|
|
151
|
+
["h2","Read Models and Derived Figures"],
|
|
152
|
+
["h2","Mechanisms"],
|
|
153
|
+
["h2","Function / Role Index"],
|
|
154
|
+
["column","Function / Role Index","",1,1,"Function"],
|
|
155
|
+
["column","Function / Role Index","",1,2,"ID"],
|
|
156
|
+
["column","Function / Role Index","",1,3,"Entry point"],
|
|
157
|
+
["column","Function / Role Index","",1,4,"Bounded Context"],
|
|
158
|
+
["column","Function / Role Index","",1,5,"Roles"],
|
|
159
|
+
["column","Function / Role Index","",1,6,"Data scope"],
|
|
160
|
+
["column","Function / Role Index","",1,7,"Evidence"],
|
|
161
|
+
["h2","Open Questions and Hotspots"],
|
|
162
|
+
["column","Open Questions and Hotspots","",1,1,"Item"],
|
|
163
|
+
["column","Open Questions and Hotspots","",1,2,"ID"],
|
|
164
|
+
["column","Open Questions and Hotspots","",1,3,"Affects"],
|
|
165
|
+
["column","Open Questions and Hotspots","",1,4,"Why it matters"],
|
|
166
|
+
["column","Open Questions and Hotspots","",1,5,"Status"],
|
|
167
|
+
["column","Open Questions and Hotspots","",1,6,"Evidence"],
|
|
168
|
+
["note","","","23509306ad136809"],
|
|
169
|
+
["comment","","","93c6b2685375e8e5"],
|
|
170
|
+
["comment","Cross-Context Flows","","505af0d4053e83e0"],
|
|
171
|
+
["comment","Lifecycles","","3fbee580d5045bbb"],
|
|
172
|
+
["comment","Read Models and Derived Figures","","e1a41eda56feb9f7"],
|
|
173
|
+
["comment","Mechanisms","","71613b6c1373dba1"],
|
|
174
|
+
["comment","Function / Role Index","","300acb329e3dcf17"],
|
|
175
|
+
["comment","Open Questions and Hotspots","","e2b881baeb772be7"]
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"greenfield/behavior.md": {
|
|
181
|
+
"source": "templates/behavior.md",
|
|
182
|
+
"paths": ["domain/*/behavior.md"],
|
|
183
|
+
"variable": [],
|
|
184
|
+
"conditionalFields": [],
|
|
185
|
+
"shapes": [
|
|
186
|
+
{
|
|
187
|
+
"number": 1,
|
|
188
|
+
"digest": "811a571084d049a33463f5abcded307669f4d9f30b3619ee11d120645b45ea77",
|
|
189
|
+
"changes": [],
|
|
190
|
+
"skeleton": [
|
|
191
|
+
["note","","","53833764a88eab3b"],
|
|
192
|
+
["comment","","","e798bd7586dcb886"]
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
"greenfield/context-definition.md": {
|
|
198
|
+
"source": "templates/context-definition.md",
|
|
199
|
+
"paths": ["domain/*/context.md"],
|
|
200
|
+
"variable": [],
|
|
201
|
+
"conditionalFields": [],
|
|
202
|
+
"shapes": [
|
|
203
|
+
{
|
|
204
|
+
"number": 1,
|
|
205
|
+
"digest": "e41fb5f0ecb02efe2b727e68e2a653c18857a7ea07b2aa8a79524911cb450056",
|
|
206
|
+
"changes": [],
|
|
207
|
+
"skeleton": [
|
|
208
|
+
["field","context"],
|
|
209
|
+
["field","chinese-name"],
|
|
210
|
+
["field","owner"],
|
|
211
|
+
["field","created"],
|
|
212
|
+
["h2","Responsibilities"],
|
|
213
|
+
["h2","Boundaries"],
|
|
214
|
+
["h3","Boundaries","In Scope"],
|
|
215
|
+
["h3","Boundaries","Out of Scope"],
|
|
216
|
+
["h2","Core Domain Models"],
|
|
217
|
+
["h3","Core Domain Models","Aggregates"],
|
|
218
|
+
["h3","Core Domain Models","Entities"],
|
|
219
|
+
["h3","Core Domain Models","Value Objects"],
|
|
220
|
+
["h3","Core Domain Models","Domain Services"],
|
|
221
|
+
["h3","Core Domain Models","Repository Interfaces"],
|
|
222
|
+
["h2","Interactions with Other Contexts"],
|
|
223
|
+
["column","Interactions with Other Contexts","",1,1,"Other Context"],
|
|
224
|
+
["column","Interactions with Other Contexts","",1,2,"Interaction Type"],
|
|
225
|
+
["column","Interactions with Other Contexts","",1,3,"Description"],
|
|
226
|
+
["h2","Key Business Rules"],
|
|
227
|
+
["h2","Code Mapping"],
|
|
228
|
+
["h3","Code Mapping","Current Implementation"],
|
|
229
|
+
["h3","Code Mapping","Architecture Notes"],
|
|
230
|
+
["comment","","","1a3002dd72a93e2e"],
|
|
231
|
+
["note","Responsibilities","","d23e179c49d4eb57"],
|
|
232
|
+
["note","Core Domain Models","","7f72819295893a87"],
|
|
233
|
+
["note","Key Business Rules","","26159293b3a17462"]
|
|
234
|
+
]
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
"greenfield/context-map.md": {
|
|
239
|
+
"source": "templates/context-map.md",
|
|
240
|
+
"paths": ["domain/context-map.md"],
|
|
241
|
+
"variable": [],
|
|
242
|
+
"conditionalFields": [],
|
|
243
|
+
"shapes": [
|
|
244
|
+
{
|
|
245
|
+
"number": 1,
|
|
246
|
+
"digest": "356796beca17ae808f92af995dbc2a7310bf5b42c396631748956498526a43cd",
|
|
247
|
+
"changes": [],
|
|
248
|
+
"skeleton": [
|
|
249
|
+
["h2","Contexts"],
|
|
250
|
+
["column","Contexts","",1,1,"Bounded Context"],
|
|
251
|
+
["column","Contexts","",1,2,"Responsibility"],
|
|
252
|
+
["column","Contexts","",1,3,"Subdomain Type"],
|
|
253
|
+
["column","Contexts","",1,4,"Owner / Team"],
|
|
254
|
+
["column","Contexts","",1,5,"Primary Module"],
|
|
255
|
+
["column","Contexts","",1,6,"Notes"],
|
|
256
|
+
["h2","Relationships"],
|
|
257
|
+
["column","Relationships","",1,1,"Upstream"],
|
|
258
|
+
["column","Relationships","",1,2,"Downstream"],
|
|
259
|
+
["column","Relationships","",1,3,"Relationship Type"],
|
|
260
|
+
["column","Relationships","",1,4,"Published Language"],
|
|
261
|
+
["column","Relationships","",1,5,"ACL"],
|
|
262
|
+
["column","Relationships","",1,6,"Events"],
|
|
263
|
+
["h2","Integration Notes"],
|
|
264
|
+
["h2","Open Questions"],
|
|
265
|
+
["note","","","fa3096f788a26b67"],
|
|
266
|
+
["comment","","","14592fdd6506429b"],
|
|
267
|
+
["note","Contexts","","ef3bfeebd01a25e2"]
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
"greenfield/events.md": {
|
|
273
|
+
"source": "templates/events.md",
|
|
274
|
+
"paths": ["domain/*/events.md"],
|
|
275
|
+
"variable": [],
|
|
276
|
+
"conditionalFields": [],
|
|
277
|
+
"shapes": [
|
|
278
|
+
{
|
|
279
|
+
"number": 1,
|
|
280
|
+
"digest": "171838630709eb46d29d36e4f598aacb2157e0736834fc698006b2318446ec86",
|
|
281
|
+
"changes": [],
|
|
282
|
+
"skeleton": [
|
|
283
|
+
["h2","Event Catalog"],
|
|
284
|
+
["column","Event Catalog","",1,1,"Event name"],
|
|
285
|
+
["column","Event Catalog","",1,2,"Producer"],
|
|
286
|
+
["column","Event Catalog","",1,3,"Trigger"],
|
|
287
|
+
["column","Event Catalog","",1,4,"Payload"],
|
|
288
|
+
["column","Event Catalog","",1,5,"Consumers"],
|
|
289
|
+
["column","Event Catalog","",1,6,"Delivery expectation"],
|
|
290
|
+
["h2","Event Flow Notes"],
|
|
291
|
+
["h2","Open Questions"],
|
|
292
|
+
["note","","","4013eb12258254a0"],
|
|
293
|
+
["comment","","","14592fdd6506429b"]
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
]
|
|
297
|
+
},
|
|
298
|
+
"greenfield/glossary.md": {
|
|
299
|
+
"source": "templates/glossary.md",
|
|
300
|
+
"paths": ["domain/glossary.md"],
|
|
301
|
+
"variable": [],
|
|
302
|
+
"conditionalFields": [],
|
|
303
|
+
"shapes": [
|
|
304
|
+
{
|
|
305
|
+
"number": 1,
|
|
306
|
+
"digest": "5a40a00ec68efead0bbf31657fb3e55277ea5298b059ce1a880eff292d7dafad",
|
|
307
|
+
"changes": [],
|
|
308
|
+
"skeleton": [
|
|
309
|
+
["h2","Terms"],
|
|
310
|
+
["column","Terms","",1,1,"Term"],
|
|
311
|
+
["column","Terms","",1,2,"Definition"],
|
|
312
|
+
["column","Terms","",1,3,"Bounded Context"],
|
|
313
|
+
["column","Terms","",1,4,"Code Mapping"],
|
|
314
|
+
["column","Terms","",1,5,"Notes"],
|
|
315
|
+
["h2","Open Questions"],
|
|
316
|
+
["note","","","6d9c3fab52614fda"],
|
|
317
|
+
["comment","","","14592fdd6506429b"]
|
|
318
|
+
]
|
|
319
|
+
}
|
|
320
|
+
]
|
|
321
|
+
},
|
|
322
|
+
"greenfield/lightweight-spec.md": {
|
|
323
|
+
"source": "templates/lightweight-spec.md",
|
|
324
|
+
"paths": ["features/active/*/lightweight-*.md","features/active/*/BUG-*.md"],
|
|
325
|
+
"variable": [["Root Cause"],["Behavior Delta","MODIFIED - behavior modified in this fix"]],
|
|
326
|
+
"conditionalFields": ["id"],
|
|
327
|
+
"shapes": [
|
|
328
|
+
{
|
|
329
|
+
"number": 1,
|
|
330
|
+
"digest": "807b92f0911e3038a05cda7a1b84c8a3e90e5925098e5c1b9e54921dd5e4d97f",
|
|
331
|
+
"changes": [],
|
|
332
|
+
"skeleton": [
|
|
333
|
+
["field","id"],
|
|
334
|
+
["field","title"],
|
|
335
|
+
["field","status"],
|
|
336
|
+
["field","bounded-context"],
|
|
337
|
+
["field","created"],
|
|
338
|
+
["field","branch"],
|
|
339
|
+
["field","hotfix-branch","optional"],
|
|
340
|
+
["field","hotfix-identity","optional"],
|
|
341
|
+
["h2","Problem"],
|
|
342
|
+
["h2","Behavior Delta"],
|
|
343
|
+
["h2","Fix Approach"],
|
|
344
|
+
["h2","Implementation Paths"],
|
|
345
|
+
["h2","Implementation Tasks"],
|
|
346
|
+
["h2","Tech Debt Discovered (if any)"],
|
|
347
|
+
["comment","","","66ee7bcc021bdf60"],
|
|
348
|
+
["note","Behavior Delta","","9274a756d68ba622"],
|
|
349
|
+
["note","Implementation Paths","","fbcdf6221b244a7f"],
|
|
350
|
+
["comment","Implementation Paths","","6945fc7a16909c8a"],
|
|
351
|
+
["note","Implementation Tasks","","d2e611e883d181c9"]
|
|
352
|
+
]
|
|
353
|
+
}
|
|
354
|
+
]
|
|
355
|
+
},
|
|
356
|
+
"greenfield/models.md": {
|
|
357
|
+
"source": "templates/models.md",
|
|
358
|
+
"paths": ["domain/*/models.md"],
|
|
359
|
+
"variable": [],
|
|
360
|
+
"conditionalFields": [],
|
|
361
|
+
"shapes": [
|
|
362
|
+
{
|
|
363
|
+
"number": 1,
|
|
364
|
+
"digest": "d7619f9d204e61ea69a0098bd206a0d286220058063c74373e556ddfc4f9e855",
|
|
365
|
+
"changes": [],
|
|
366
|
+
"skeleton": [
|
|
367
|
+
["h2","Context"],
|
|
368
|
+
["h2","Aggregates"],
|
|
369
|
+
["column","Aggregates","",1,1,"Aggregate"],
|
|
370
|
+
["column","Aggregates","",1,2,"Root Entity"],
|
|
371
|
+
["column","Aggregates","",1,3,"Invariants"],
|
|
372
|
+
["column","Aggregates","",1,4,"Code Mapping"],
|
|
373
|
+
["column","Aggregates","",1,5,"Notes"],
|
|
374
|
+
["h2","Entities"],
|
|
375
|
+
["column","Entities","",1,1,"Entity"],
|
|
376
|
+
["column","Entities","",1,2,"Responsibility"],
|
|
377
|
+
["column","Entities","",1,3,"Key Identity"],
|
|
378
|
+
["column","Entities","",1,4,"Aggregate"],
|
|
379
|
+
["column","Entities","",1,5,"Code Mapping"],
|
|
380
|
+
["h2","Value Objects"],
|
|
381
|
+
["column","Value Objects","",1,1,"Value Object"],
|
|
382
|
+
["column","Value Objects","",1,2,"Responsibility"],
|
|
383
|
+
["column","Value Objects","",1,3,"Equality Components"],
|
|
384
|
+
["column","Value Objects","",1,4,"Code Mapping"],
|
|
385
|
+
["column","Value Objects","",1,5,"Notes"],
|
|
386
|
+
["h2","Domain Services"],
|
|
387
|
+
["column","Domain Services","",1,1,"Service"],
|
|
388
|
+
["column","Domain Services","",1,2,"Responsibility"],
|
|
389
|
+
["column","Domain Services","",1,3,"Inputs / Outputs"],
|
|
390
|
+
["column","Domain Services","",1,4,"Code Mapping"],
|
|
391
|
+
["column","Domain Services","",1,5,"Notes"],
|
|
392
|
+
["h2","Specifications"],
|
|
393
|
+
["column","Specifications","",1,1,"Specification"],
|
|
394
|
+
["column","Specifications","",1,2,"Rule / Invariant"],
|
|
395
|
+
["column","Specifications","",1,3,"Used By"],
|
|
396
|
+
["column","Specifications","",1,4,"Code Mapping"],
|
|
397
|
+
["column","Specifications","",1,5,"Notes"],
|
|
398
|
+
["h2","Repository Interfaces"],
|
|
399
|
+
["column","Repository Interfaces","",1,1,"Repository"],
|
|
400
|
+
["column","Repository Interfaces","",1,2,"Aggregate"],
|
|
401
|
+
["column","Repository Interfaces","",1,3,"Query Responsibility"],
|
|
402
|
+
["column","Repository Interfaces","",1,4,"Code Mapping"],
|
|
403
|
+
["column","Repository Interfaces","",1,5,"Notes"],
|
|
404
|
+
["note","","","39e433bff042d5cf"],
|
|
405
|
+
["comment","","","14592fdd6506429b"]
|
|
406
|
+
]
|
|
407
|
+
}
|
|
408
|
+
]
|
|
409
|
+
},
|
|
410
|
+
"greenfield/phase-spec.md": {
|
|
411
|
+
"source": "templates/phase-spec.md",
|
|
412
|
+
"paths": ["features/active/*/phase-spec-*.md"],
|
|
413
|
+
"variable": [],
|
|
414
|
+
"conditionalFields": [],
|
|
415
|
+
"shapes": [
|
|
416
|
+
{
|
|
417
|
+
"number": 1,
|
|
418
|
+
"digest": "0c7c919884a4e1927518af800f0d4285f8d98a2bde076e3d210129e09e93c585",
|
|
419
|
+
"changes": [],
|
|
420
|
+
"skeleton": [
|
|
421
|
+
["field","spec-id"],
|
|
422
|
+
["field","title"],
|
|
423
|
+
["field","status"],
|
|
424
|
+
["field","bounded-context"],
|
|
425
|
+
["field","created"],
|
|
426
|
+
["field","author"],
|
|
427
|
+
["field","branch"],
|
|
428
|
+
["h2","Problem Description"],
|
|
429
|
+
["h2","Domain Concepts"],
|
|
430
|
+
["column","Domain Concepts","",1,1,"Concept"],
|
|
431
|
+
["column","Domain Concepts","",1,2,"Type"],
|
|
432
|
+
["column","Domain Concepts","",1,3,"Description"],
|
|
433
|
+
["h2","Behavior Scenarios"],
|
|
434
|
+
["h3","Behavior Scenarios","Main Success Scenario"],
|
|
435
|
+
["h3","Behavior Scenarios","Alternative Scenarios"],
|
|
436
|
+
["h2","Business Rules"],
|
|
437
|
+
["column","Business Rules","",1,1,"BR-ID"],
|
|
438
|
+
["column","Business Rules","",1,2,"Rule"],
|
|
439
|
+
["column","Business Rules","",1,3,"Implementation Location"],
|
|
440
|
+
["h2","Delta from prior phases"],
|
|
441
|
+
["h3","Delta from prior phases","ADDED - BR / behavior added in this phase"],
|
|
442
|
+
["h3","Delta from prior phases","MODIFIED - BR / behavior modified in this phase"],
|
|
443
|
+
["h3","Delta from prior phases","REMOVED - BR removed in this phase"],
|
|
444
|
+
["h3","Delta from prior phases","RENAMED - BR renamed in this phase"],
|
|
445
|
+
["h3","Delta from prior phases","UNCHANGED - explicitly unaffected (optional)"],
|
|
446
|
+
["h2","Edge Cases"],
|
|
447
|
+
["column","Edge Cases","",1,1,"ID"],
|
|
448
|
+
["column","Edge Cases","",1,2,"Case"],
|
|
449
|
+
["column","Edge Cases","",1,3,"Expected Handling"],
|
|
450
|
+
["h2","Domain Events"],
|
|
451
|
+
["column","Domain Events","",1,1,"Event"],
|
|
452
|
+
["column","Domain Events","",1,2,"Trigger"],
|
|
453
|
+
["column","Domain Events","",1,3,"Handler"],
|
|
454
|
+
["column","Domain Events","",1,4,"Sync / Async"],
|
|
455
|
+
["h2","Implementation Plan (Layer by Layer)"],
|
|
456
|
+
["h3","Implementation Plan (Layer by Layer)","Domain Layer"],
|
|
457
|
+
["h3","Implementation Plan (Layer by Layer)","Application Layer"],
|
|
458
|
+
["h3","Implementation Plan (Layer by Layer)","Infrastructure Layer"],
|
|
459
|
+
["h3","Implementation Plan (Layer by Layer)","Presentation Layer"],
|
|
460
|
+
["h2","Data Structure Changes"],
|
|
461
|
+
["column","Data Structure Changes","",1,1,"Table"],
|
|
462
|
+
["column","Data Structure Changes","",1,2,"Column"],
|
|
463
|
+
["column","Data Structure Changes","",1,3,"Change Type"],
|
|
464
|
+
["column","Data Structure Changes","",1,4,"Description"],
|
|
465
|
+
["h2","Test Strategy"],
|
|
466
|
+
["h3","Test Strategy","Domain Unit Tests"],
|
|
467
|
+
["h3","Test Strategy","Application Tests"],
|
|
468
|
+
["h3","Test Strategy","Integration Tests"],
|
|
469
|
+
["h2","Open Questions"],
|
|
470
|
+
["h2","Implementation Tasks"],
|
|
471
|
+
["comment","","","ce77a9387cd875ac"],
|
|
472
|
+
["note","Problem Description","","4a70d14f1c4778be"],
|
|
473
|
+
["comment","Problem Description","","045168ac3cf58468"],
|
|
474
|
+
["comment","Domain Concepts","","e9a468593b9a1ed0"],
|
|
475
|
+
["comment","Behavior Scenarios","","cf1bfc6341687ac2"],
|
|
476
|
+
["note","Business Rules","","b5618acd1f4e1464"],
|
|
477
|
+
["comment","Business Rules","","cf1bfc6341687ac2"],
|
|
478
|
+
["note","Delta from prior phases","","b260ad0fb144c471"],
|
|
479
|
+
["comment","Delta from prior phases","","a60457fb84afbbe1"],
|
|
480
|
+
["comment","Edge Cases","","cf1bfc6341687ac2"],
|
|
481
|
+
["comment","Domain Events","","41b11ba1f9c870f1"],
|
|
482
|
+
["comment","Implementation Plan (Layer by Layer)","","0907e63466dc3f49"],
|
|
483
|
+
["note","Implementation Plan (Layer by Layer)","Domain Layer","d1898ee572eb1e51"],
|
|
484
|
+
["note","Implementation Plan (Layer by Layer)","Application Layer","eba7b2fa68791c7a"],
|
|
485
|
+
["note","Implementation Plan (Layer by Layer)","Infrastructure Layer","61db9db58b828e3d"],
|
|
486
|
+
["note","Implementation Plan (Layer by Layer)","Presentation Layer","9fdbb63ddb1ac286"],
|
|
487
|
+
["comment","Data Structure Changes","","0907e63466dc3f49"],
|
|
488
|
+
["comment","Test Strategy","","0907e63466dc3f49"],
|
|
489
|
+
["comment","Test Strategy","Integration Tests","003c54b700db072f"],
|
|
490
|
+
["comment","Open Questions","","a9d1632b0ae9577a"],
|
|
491
|
+
["note","Implementation Tasks","","473dcea091924e18"],
|
|
492
|
+
["comment","Implementation Tasks","","c8a9178ac857d785"]
|
|
493
|
+
]
|
|
494
|
+
}
|
|
495
|
+
]
|
|
496
|
+
},
|
|
497
|
+
"greenfield/rules.md": {
|
|
498
|
+
"source": "templates/rules.md",
|
|
499
|
+
"paths": ["domain/*/rules.md"],
|
|
500
|
+
"variable": [],
|
|
501
|
+
"conditionalFields": [],
|
|
502
|
+
"shapes": [
|
|
503
|
+
{
|
|
504
|
+
"number": 1,
|
|
505
|
+
"digest": "a45ca156e2b37347f8077c45347d64e55d22bdfa43cfe938fe3aba8f6ac375fd",
|
|
506
|
+
"changes": [],
|
|
507
|
+
"skeleton": [
|
|
508
|
+
["h2","Rule Index"],
|
|
509
|
+
["column","Rule Index","",1,1,"BR-ID"],
|
|
510
|
+
["column","Rule Index","",1,2,"Rule summary"],
|
|
511
|
+
["column","Rule Index","",1,3,"Behavior anchor"],
|
|
512
|
+
["column","Rule Index","",1,4,"Aggregate"],
|
|
513
|
+
["column","Rule Index","",1,5,"Status"],
|
|
514
|
+
["column","Rule Index","",1,6,"Last updated"],
|
|
515
|
+
["h2","Status Legend"],
|
|
516
|
+
["column","Status Legend","",1,1,"Status"],
|
|
517
|
+
["column","Status Legend","",1,2,"Meaning"],
|
|
518
|
+
["h2","Open Questions"],
|
|
519
|
+
["note","","","64e8ff1bdfecbdfe"],
|
|
520
|
+
["comment","","","3a4253074adb61f4"]
|
|
521
|
+
]
|
|
522
|
+
}
|
|
523
|
+
]
|
|
524
|
+
},
|
|
525
|
+
"greenfield/tech-debt.md": {
|
|
526
|
+
"source": "templates/tech-debt.md",
|
|
527
|
+
"paths": ["architecture/tech-debt.md"],
|
|
528
|
+
"variable": [],
|
|
529
|
+
"conditionalFields": [],
|
|
530
|
+
"shapes": [
|
|
531
|
+
{
|
|
532
|
+
"number": 1,
|
|
533
|
+
"digest": "6520e913341f37d7c3a2ef0229c9937ae6f0f9b0f18413f7b880523b8f53d710",
|
|
534
|
+
"changes": [],
|
|
535
|
+
"skeleton": [
|
|
536
|
+
["h2","Debt Items"],
|
|
537
|
+
["column","Debt Items","",1,1,"Item"],
|
|
538
|
+
["column","Debt Items","",1,2,"Layer"],
|
|
539
|
+
["column","Debt Items","",1,3,"Decision / debt"],
|
|
540
|
+
["column","Debt Items","",1,4,"Impact"],
|
|
541
|
+
["column","Debt Items","",1,5,"Follow-up"],
|
|
542
|
+
["column","Debt Items","",1,6,"Status"],
|
|
543
|
+
["h2","Follow-up Notes"],
|
|
544
|
+
["note","","","f787c6ab866433e8"],
|
|
545
|
+
["comment","","","14592fdd6506429b"]
|
|
546
|
+
]
|
|
547
|
+
}
|
|
548
|
+
]
|
|
549
|
+
},
|
|
550
|
+
"brownfield/_index.md": {
|
|
551
|
+
"source": "templates/_index.md",
|
|
552
|
+
"paths": ["features/active/*/_index.md"],
|
|
553
|
+
"variable": [],
|
|
554
|
+
"conditionalFields": [],
|
|
555
|
+
"shapes": [
|
|
556
|
+
{
|
|
557
|
+
"number": 1,
|
|
558
|
+
"digest": "5ba96682e40a4f8fdeb10d869825033137c313c66af62ed3cd9c8138ef275005",
|
|
559
|
+
"changes": [],
|
|
560
|
+
"skeleton": [
|
|
561
|
+
["field","spec-id"],
|
|
562
|
+
["field","slug"],
|
|
563
|
+
["field","status"],
|
|
564
|
+
["field","created"],
|
|
565
|
+
["field","branch"],
|
|
566
|
+
["field","follow-up-of","optional"],
|
|
567
|
+
["h2","Goals & Scope"],
|
|
568
|
+
["h2","Phase Specs"],
|
|
569
|
+
["column","Phase Specs","",1,1,"Phase"],
|
|
570
|
+
["column","Phase Specs","",1,2,"Date"],
|
|
571
|
+
["column","Phase Specs","",1,3,"Slug"],
|
|
572
|
+
["column","Phase Specs","",1,4,"Status"],
|
|
573
|
+
["column","Phase Specs","",1,5,"File Link"],
|
|
574
|
+
["h2","Current BR Snapshot"],
|
|
575
|
+
["column","Current BR Snapshot","",1,1,"BR-ID"],
|
|
576
|
+
["column","Current BR Snapshot","",1,2,"Current Rule"],
|
|
577
|
+
["column","Current BR Snapshot","",1,3,"First Seen (phase)"],
|
|
578
|
+
["column","Current BR Snapshot","",1,4,"Last Updated (phase)"],
|
|
579
|
+
["column","Current BR Snapshot","",1,5,"Status"],
|
|
580
|
+
["h2","Lightweight Changes"],
|
|
581
|
+
["column","Lightweight Changes","",1,1,"Date"],
|
|
582
|
+
["column","Lightweight Changes","",1,2,"Tier"],
|
|
583
|
+
["column","Lightweight Changes","",1,3,"Description"],
|
|
584
|
+
["column","Lightweight Changes","",1,4,"Commit"],
|
|
585
|
+
["h2","Checkpoint Log"],
|
|
586
|
+
["column","Checkpoint Log","",1,1,"Timestamp"],
|
|
587
|
+
["column","Checkpoint Log","",1,2,"Checkpoint"],
|
|
588
|
+
["column","Checkpoint Log","",1,3,"Result"],
|
|
589
|
+
["h2","Resume Pointer"],
|
|
590
|
+
["comment","","","ebf6a0dffec4e89d"],
|
|
591
|
+
["note","Goals & Scope","","47f7d220a44ffc70"],
|
|
592
|
+
["note","Phase Specs","","5dff0b02b2fefdac"],
|
|
593
|
+
["comment","Phase Specs","","60305a8c385cd40f"],
|
|
594
|
+
["note","Current BR Snapshot","","bb237977c8b6a9c8"],
|
|
595
|
+
["comment","Current BR Snapshot","","44a797a7db5f5224"],
|
|
596
|
+
["note","Lightweight Changes","","5194f717a8955b59"],
|
|
597
|
+
["comment","Lightweight Changes","","013165e8c56f2b73"],
|
|
598
|
+
["note","Checkpoint Log","","359aef25b21362ca"],
|
|
599
|
+
["note","Resume Pointer","","6282e389a109b5f3"],
|
|
600
|
+
["comment","Resume Pointer","","5b3dcd00f70f0239"]
|
|
601
|
+
]
|
|
602
|
+
}
|
|
603
|
+
]
|
|
604
|
+
},
|
|
605
|
+
"brownfield/_overview.md": {
|
|
606
|
+
"source": "scaffolding/_overview.md",
|
|
607
|
+
"paths": ["shared/_overview.md"],
|
|
608
|
+
"variable": [],
|
|
609
|
+
"conditionalFields": [],
|
|
610
|
+
"shapes": [
|
|
611
|
+
{
|
|
612
|
+
"number": 1,
|
|
613
|
+
"digest": "d727ea85097dee03d7ca5f72dad65f056d0fdd9722bceca5458b761f10f7ee11",
|
|
614
|
+
"changes": [],
|
|
615
|
+
"skeleton": [
|
|
616
|
+
["h2","System Summary"],
|
|
617
|
+
["h3","System Summary","Business Domain"],
|
|
618
|
+
["h2","Technical Architecture (Current)"],
|
|
619
|
+
["column","Technical Architecture (Current)","",1,1,"Item"],
|
|
620
|
+
["column","Technical Architecture (Current)","",1,2,"Current"],
|
|
621
|
+
["h3","Technical Architecture (Current)","Code Layout (High Level)"],
|
|
622
|
+
["h2","Existing Issues / Known Pain Points"],
|
|
623
|
+
["h2","Target Architecture Strategy"],
|
|
624
|
+
["h3","Target Architecture Strategy","Target Architecture"],
|
|
625
|
+
["h2","Related Documents"],
|
|
626
|
+
["note","","","3dd68aa110718b0f"],
|
|
627
|
+
["comment","","","5d868a781afaa3ac"],
|
|
628
|
+
["note","Technical Architecture (Current)","Code Layout (High Level)","8e76f2da31c0b788"]
|
|
629
|
+
]
|
|
630
|
+
}
|
|
631
|
+
]
|
|
632
|
+
},
|
|
633
|
+
"brownfield/analysis.md": {
|
|
634
|
+
"source": "templates/analysis.md",
|
|
635
|
+
"paths": ["domain/analysis.md","domain/*/analysis.md"],
|
|
636
|
+
"variable": [],
|
|
637
|
+
"conditionalFields": [],
|
|
638
|
+
"shapes": [
|
|
639
|
+
{
|
|
640
|
+
"number": 1,
|
|
641
|
+
"digest": "7179f1686d90a17b4f6fe2d51f44653d2aff945749d0256c81392418c269a07b",
|
|
642
|
+
"changes": [],
|
|
643
|
+
"skeleton": [
|
|
644
|
+
["h2","Cross-Context Flows"],
|
|
645
|
+
["h2","Lifecycles"],
|
|
646
|
+
["h2","Read Models and Derived Figures"],
|
|
647
|
+
["h2","Mechanisms"],
|
|
648
|
+
["h2","Function / Role Index"],
|
|
649
|
+
["column","Function / Role Index","",1,1,"Function"],
|
|
650
|
+
["column","Function / Role Index","",1,2,"ID"],
|
|
651
|
+
["column","Function / Role Index","",1,3,"Entry point"],
|
|
652
|
+
["column","Function / Role Index","",1,4,"Bounded Context"],
|
|
653
|
+
["column","Function / Role Index","",1,5,"Roles"],
|
|
654
|
+
["column","Function / Role Index","",1,6,"Data scope"],
|
|
655
|
+
["column","Function / Role Index","",1,7,"Evidence"],
|
|
656
|
+
["h2","Open Questions and Hotspots"],
|
|
657
|
+
["column","Open Questions and Hotspots","",1,1,"Item"],
|
|
658
|
+
["column","Open Questions and Hotspots","",1,2,"ID"],
|
|
659
|
+
["column","Open Questions and Hotspots","",1,3,"Affects"],
|
|
660
|
+
["column","Open Questions and Hotspots","",1,4,"Why it matters"],
|
|
661
|
+
["column","Open Questions and Hotspots","",1,5,"Status"],
|
|
662
|
+
["column","Open Questions and Hotspots","",1,6,"Evidence"],
|
|
663
|
+
["note","","","23509306ad136809"],
|
|
664
|
+
["comment","","","93c6b2685375e8e5"],
|
|
665
|
+
["comment","Cross-Context Flows","","505af0d4053e83e0"],
|
|
666
|
+
["comment","Lifecycles","","3fbee580d5045bbb"],
|
|
667
|
+
["comment","Read Models and Derived Figures","","e1a41eda56feb9f7"],
|
|
668
|
+
["comment","Mechanisms","","71613b6c1373dba1"],
|
|
669
|
+
["comment","Function / Role Index","","300acb329e3dcf17"],
|
|
670
|
+
["comment","Open Questions and Hotspots","","e2b881baeb772be7"]
|
|
671
|
+
]
|
|
672
|
+
}
|
|
673
|
+
]
|
|
674
|
+
},
|
|
675
|
+
"brownfield/behavior.md": {
|
|
676
|
+
"source": "templates/behavior.md",
|
|
677
|
+
"paths": ["domain/*/behavior.md"],
|
|
678
|
+
"variable": [],
|
|
679
|
+
"conditionalFields": [],
|
|
680
|
+
"shapes": [
|
|
681
|
+
{
|
|
682
|
+
"number": 1,
|
|
683
|
+
"digest": "cf082448d64446835111001368ade8cd96d967525c228bb6908444c5a3a03aa1",
|
|
684
|
+
"changes": [],
|
|
685
|
+
"skeleton": [
|
|
686
|
+
["note","","","1456ca29334299e1"],
|
|
687
|
+
["comment","","","e798bd7586dcb886"]
|
|
688
|
+
]
|
|
689
|
+
}
|
|
690
|
+
]
|
|
691
|
+
},
|
|
692
|
+
"brownfield/context-definition.md": {
|
|
693
|
+
"source": "templates/context-definition.md",
|
|
694
|
+
"paths": ["domain/*/context.md"],
|
|
695
|
+
"variable": [],
|
|
696
|
+
"conditionalFields": [],
|
|
697
|
+
"shapes": [
|
|
698
|
+
{
|
|
699
|
+
"number": 1,
|
|
700
|
+
"digest": "57867790b143aa904b55cee9e3ea63f6c65e500cbe3b28cb63474cb37d32747f",
|
|
701
|
+
"changes": [],
|
|
702
|
+
"skeleton": [
|
|
703
|
+
["field","context"],
|
|
704
|
+
["field","chinese-name"],
|
|
705
|
+
["field","owner"],
|
|
706
|
+
["field","created"],
|
|
707
|
+
["h2","Responsibilities"],
|
|
708
|
+
["h2","Boundaries"],
|
|
709
|
+
["h3","Boundaries","In Scope"],
|
|
710
|
+
["h3","Boundaries","Out of Scope"],
|
|
711
|
+
["h2","Core Domain Models"],
|
|
712
|
+
["h3","Core Domain Models","Entities"],
|
|
713
|
+
["h3","Core Domain Models","Value Objects"],
|
|
714
|
+
["h3","Core Domain Models","Domain Services"],
|
|
715
|
+
["h2","Interactions with Other Contexts"],
|
|
716
|
+
["column","Interactions with Other Contexts","",1,1,"Other Context"],
|
|
717
|
+
["column","Interactions with Other Contexts","",1,2,"Interaction Type"],
|
|
718
|
+
["column","Interactions with Other Contexts","",1,3,"Description"],
|
|
719
|
+
["h2","Key Business Rules"],
|
|
720
|
+
["h2","Code Mapping"],
|
|
721
|
+
["h3","Code Mapping","Current Delivery/Entrypoint Mapping"],
|
|
722
|
+
["h3","Code Mapping","Target Architecture"],
|
|
723
|
+
["comment","","","1a3002dd72a93e2e"],
|
|
724
|
+
["note","Responsibilities","","d23e179c49d4eb57"],
|
|
725
|
+
["note","Core Domain Models","","7f72819295893a87"],
|
|
726
|
+
["note","Key Business Rules","","26159293b3a17462"]
|
|
727
|
+
]
|
|
728
|
+
}
|
|
729
|
+
]
|
|
730
|
+
},
|
|
731
|
+
"brownfield/context-map.md": {
|
|
732
|
+
"source": "templates/context-map.md",
|
|
733
|
+
"paths": ["domain/context-map.md"],
|
|
734
|
+
"variable": [],
|
|
735
|
+
"conditionalFields": [],
|
|
736
|
+
"shapes": [
|
|
737
|
+
{
|
|
738
|
+
"number": 1,
|
|
739
|
+
"digest": "c9bc851c852dfb51682f74063bf0e1764fc4a57b1032d8f72907f1ba4604bc4d",
|
|
740
|
+
"changes": [],
|
|
741
|
+
"skeleton": [
|
|
742
|
+
["h2","Context List"],
|
|
743
|
+
["column","Context List","",1,1,"Bounded Context"],
|
|
744
|
+
["column","Context List","",1,2,"Responsibility"],
|
|
745
|
+
["column","Context List","",1,3,"Subdomain Type"],
|
|
746
|
+
["column","Context List","",1,4,"Owner / Team"],
|
|
747
|
+
["column","Context List","",1,5,"Primary Code Area"],
|
|
748
|
+
["column","Context List","",1,6,"Notes"],
|
|
749
|
+
["h2","Relationships"],
|
|
750
|
+
["column","Relationships","",1,1,"Source Context"],
|
|
751
|
+
["column","Relationships","",1,2,"Target Context"],
|
|
752
|
+
["column","Relationships","",1,3,"Relationship Type"],
|
|
753
|
+
["column","Relationships","",1,4,"Integration Mechanism"],
|
|
754
|
+
["column","Relationships","",1,5,"Notes"],
|
|
755
|
+
["h2","Integration Notes"],
|
|
756
|
+
["h2","Open Questions"],
|
|
757
|
+
["note","","","f50eb4efa07651f3"],
|
|
758
|
+
["comment","","","14592fdd6506429b"],
|
|
759
|
+
["note","Context List","","6304b838f27c10ca"]
|
|
760
|
+
]
|
|
761
|
+
}
|
|
762
|
+
]
|
|
763
|
+
},
|
|
764
|
+
"brownfield/glossary.md": {
|
|
765
|
+
"source": "templates/glossary.md",
|
|
766
|
+
"paths": ["domain/glossary.md"],
|
|
767
|
+
"variable": [],
|
|
768
|
+
"conditionalFields": [],
|
|
769
|
+
"shapes": [
|
|
770
|
+
{
|
|
771
|
+
"number": 1,
|
|
772
|
+
"digest": "5a40a00ec68efead0bbf31657fb3e55277ea5298b059ce1a880eff292d7dafad",
|
|
773
|
+
"changes": [],
|
|
774
|
+
"skeleton": [
|
|
775
|
+
["h2","Terms"],
|
|
776
|
+
["column","Terms","",1,1,"Term"],
|
|
777
|
+
["column","Terms","",1,2,"Definition"],
|
|
778
|
+
["column","Terms","",1,3,"Bounded Context"],
|
|
779
|
+
["column","Terms","",1,4,"Code Mapping"],
|
|
780
|
+
["column","Terms","",1,5,"Notes"],
|
|
781
|
+
["h2","Open Questions"],
|
|
782
|
+
["note","","","6d9c3fab52614fda"],
|
|
783
|
+
["comment","","","14592fdd6506429b"]
|
|
784
|
+
]
|
|
785
|
+
}
|
|
786
|
+
]
|
|
787
|
+
},
|
|
788
|
+
"brownfield/lightweight-spec.md": {
|
|
789
|
+
"source": "templates/lightweight-spec.md",
|
|
790
|
+
"paths": ["features/active/*/lightweight-*.md","features/active/*/BUG-*.md"],
|
|
791
|
+
"variable": [["Root Cause"],["Behavior Delta","MODIFIED - behavior modified in this fix"]],
|
|
792
|
+
"conditionalFields": ["id"],
|
|
793
|
+
"shapes": [
|
|
794
|
+
{
|
|
795
|
+
"number": 1,
|
|
796
|
+
"digest": "0ab6dff302dff239258871a2367a6bfaba7a0f37280816e214d0f732d2aa19c2",
|
|
797
|
+
"changes": [],
|
|
798
|
+
"skeleton": [
|
|
799
|
+
["field","id"],
|
|
800
|
+
["field","title"],
|
|
801
|
+
["field","status"],
|
|
802
|
+
["field","bounded-context"],
|
|
803
|
+
["field","created"],
|
|
804
|
+
["field","branch"],
|
|
805
|
+
["field","hotfix-branch","optional"],
|
|
806
|
+
["field","hotfix-identity","optional"],
|
|
807
|
+
["h2","Problem"],
|
|
808
|
+
["h2","Behavior Delta"],
|
|
809
|
+
["h2","Fix Approach"],
|
|
810
|
+
["h2","Implementation Paths"],
|
|
811
|
+
["h2","Implementation Tasks"],
|
|
812
|
+
["h2","Tech Debt Discovered (if any)"],
|
|
813
|
+
["comment","","","66ee7bcc021bdf60"],
|
|
814
|
+
["note","Behavior Delta","","9274a756d68ba622"],
|
|
815
|
+
["note","Implementation Paths","","fbcdf6221b244a7f"],
|
|
816
|
+
["comment","Implementation Paths","","6945fc7a16909c8a"],
|
|
817
|
+
["note","Implementation Tasks","","53aeda10c7c5a2b5"]
|
|
818
|
+
]
|
|
819
|
+
}
|
|
820
|
+
]
|
|
821
|
+
},
|
|
822
|
+
"brownfield/models.md": {
|
|
823
|
+
"source": "templates/models.md",
|
|
824
|
+
"paths": ["domain/*/models.md"],
|
|
825
|
+
"variable": [],
|
|
826
|
+
"conditionalFields": [],
|
|
827
|
+
"shapes": [
|
|
828
|
+
{
|
|
829
|
+
"number": 1,
|
|
830
|
+
"digest": "d0681b3c3c8f7a40719aab1d623326b4b88cb717dbda3e728282da705bb0592c",
|
|
831
|
+
"changes": [],
|
|
832
|
+
"skeleton": [
|
|
833
|
+
["h2","Context"],
|
|
834
|
+
["h2","Entities"],
|
|
835
|
+
["column","Entities","",1,1,"Entity"],
|
|
836
|
+
["column","Entities","",1,2,"Responsibility"],
|
|
837
|
+
["column","Entities","",1,3,"Key Identity"],
|
|
838
|
+
["column","Entities","",1,4,"Code Mapping"],
|
|
839
|
+
["column","Entities","",1,5,"Notes"],
|
|
840
|
+
["h2","Value Objects"],
|
|
841
|
+
["column","Value Objects","",1,1,"Value Object"],
|
|
842
|
+
["column","Value Objects","",1,2,"Responsibility"],
|
|
843
|
+
["column","Value Objects","",1,3,"Equality Components"],
|
|
844
|
+
["column","Value Objects","",1,4,"Code Mapping"],
|
|
845
|
+
["column","Value Objects","",1,5,"Notes"],
|
|
846
|
+
["h2","Domain Services"],
|
|
847
|
+
["column","Domain Services","",1,1,"Service"],
|
|
848
|
+
["column","Domain Services","",1,2,"Responsibility"],
|
|
849
|
+
["column","Domain Services","",1,3,"Inputs / Outputs"],
|
|
850
|
+
["column","Domain Services","",1,4,"Code Mapping"],
|
|
851
|
+
["column","Domain Services","",1,5,"Notes"],
|
|
852
|
+
["h2","Repository Interfaces"],
|
|
853
|
+
["column","Repository Interfaces","",1,1,"Repository"],
|
|
854
|
+
["column","Repository Interfaces","",1,2,"Aggregate / Entity"],
|
|
855
|
+
["column","Repository Interfaces","",1,3,"Query Responsibility"],
|
|
856
|
+
["column","Repository Interfaces","",1,4,"Code Mapping"],
|
|
857
|
+
["column","Repository Interfaces","",1,5,"Notes"],
|
|
858
|
+
["h2","Code Mapping Notes"],
|
|
859
|
+
["note","","","1afc2b26ac19235e"],
|
|
860
|
+
["comment","","","14592fdd6506429b"]
|
|
861
|
+
]
|
|
862
|
+
}
|
|
863
|
+
]
|
|
864
|
+
},
|
|
865
|
+
"brownfield/phase-spec.md": {
|
|
866
|
+
"source": "templates/phase-spec.md",
|
|
867
|
+
"paths": ["features/active/*/phase-spec-*.md"],
|
|
868
|
+
"variable": [],
|
|
869
|
+
"conditionalFields": [],
|
|
870
|
+
"shapes": [
|
|
871
|
+
{
|
|
872
|
+
"number": 1,
|
|
873
|
+
"digest": "c489d6f5963c65fa1f9b65025a595777035dad9a79548a412015cc297dc5db05",
|
|
874
|
+
"changes": [],
|
|
875
|
+
"skeleton": [
|
|
876
|
+
["field","spec-id"],
|
|
877
|
+
["field","title"],
|
|
878
|
+
["field","status"],
|
|
879
|
+
["field","bounded-context"],
|
|
880
|
+
["field","created"],
|
|
881
|
+
["field","author"],
|
|
882
|
+
["field","branch"],
|
|
883
|
+
["h2","Problem Description"],
|
|
884
|
+
["h2","Domain Concepts"],
|
|
885
|
+
["column","Domain Concepts","",1,1,"Concept"],
|
|
886
|
+
["column","Domain Concepts","",1,2,"Type"],
|
|
887
|
+
["column","Domain Concepts","",1,3,"Description"],
|
|
888
|
+
["h2","Behavior Scenarios"],
|
|
889
|
+
["h3","Behavior Scenarios","Main Success Scenario"],
|
|
890
|
+
["h3","Behavior Scenarios","Alternative Scenarios"],
|
|
891
|
+
["h2","Business Rules"],
|
|
892
|
+
["column","Business Rules","",1,1,"BR-ID"],
|
|
893
|
+
["column","Business Rules","",1,2,"Rule"],
|
|
894
|
+
["column","Business Rules","",1,3,"Notes"],
|
|
895
|
+
["h2","Delta from prior phases"],
|
|
896
|
+
["h3","Delta from prior phases","ADDED - BR / behavior added in this phase"],
|
|
897
|
+
["h3","Delta from prior phases","MODIFIED - BR / behavior modified in this phase"],
|
|
898
|
+
["h3","Delta from prior phases","REMOVED - BR removed in this phase"],
|
|
899
|
+
["h3","Delta from prior phases","RENAMED - BR renamed in this phase"],
|
|
900
|
+
["h3","Delta from prior phases","UNCHANGED - explicitly unaffected (optional)"],
|
|
901
|
+
["h2","Edge Cases"],
|
|
902
|
+
["column","Edge Cases","",1,1,"ID"],
|
|
903
|
+
["column","Edge Cases","",1,2,"Case"],
|
|
904
|
+
["column","Edge Cases","",1,3,"Expected Handling"],
|
|
905
|
+
["h2","Implementation Notes"],
|
|
906
|
+
["h3","Implementation Notes","Current Delivery-Layer Implementation"],
|
|
907
|
+
["h3","Implementation Notes","Domain Layer Design"],
|
|
908
|
+
["h3","Implementation Notes","Keep Delivery/Entrypoint Code Thin"],
|
|
909
|
+
["h3","Implementation Notes","Target Architecture Considerations"],
|
|
910
|
+
["h2","Data Structure Changes"],
|
|
911
|
+
["column","Data Structure Changes","",1,1,"Table"],
|
|
912
|
+
["column","Data Structure Changes","",1,2,"Column"],
|
|
913
|
+
["column","Data Structure Changes","",1,3,"Change Type"],
|
|
914
|
+
["column","Data Structure Changes","",1,4,"Description"],
|
|
915
|
+
["h2","Test Strategy"],
|
|
916
|
+
["h2","Open Questions"],
|
|
917
|
+
["h2","Implementation Tasks"],
|
|
918
|
+
["comment","","","22d03947b5430523"],
|
|
919
|
+
["note","Problem Description","","4a70d14f1c4778be"],
|
|
920
|
+
["comment","Problem Description","","045168ac3cf58468"],
|
|
921
|
+
["comment","Domain Concepts","","72e938bcba7f437e"],
|
|
922
|
+
["comment","Behavior Scenarios","","cf1bfc6341687ac2"],
|
|
923
|
+
["note","Business Rules","","b5618acd1f4e1464"],
|
|
924
|
+
["comment","Business Rules","","cf1bfc6341687ac2"],
|
|
925
|
+
["note","Delta from prior phases","","3f4fcb96597b87fc"],
|
|
926
|
+
["comment","Delta from prior phases","","a60457fb84afbbe1"],
|
|
927
|
+
["comment","Edge Cases","","cf1bfc6341687ac2"],
|
|
928
|
+
["comment","Implementation Notes","","0907e63466dc3f49"],
|
|
929
|
+
["note","Implementation Notes","Current Delivery-Layer Implementation","4ce8df070ffdc60f"],
|
|
930
|
+
["note","Implementation Notes","Domain Layer Design","a8b8a9ddbbd65fd0"],
|
|
931
|
+
["note","Implementation Notes","Keep Delivery/Entrypoint Code Thin","f782f772aec177bf"],
|
|
932
|
+
["note","Implementation Notes","Target Architecture Considerations","131b0bebdff07dea"],
|
|
933
|
+
["note","Data Structure Changes","","0c88c6ba8884dea9"],
|
|
934
|
+
["comment","Data Structure Changes","","0907e63466dc3f49"],
|
|
935
|
+
["note","Test Strategy","","f8fae1d2d73bd996"],
|
|
936
|
+
["comment","Test Strategy","","934dd23ce8eb6bc7"],
|
|
937
|
+
["comment","Open Questions","","a9d1632b0ae9577a"],
|
|
938
|
+
["note","Implementation Tasks","","c7ca1fff244b8ee5"],
|
|
939
|
+
["comment","Implementation Tasks","","c8a9178ac857d785"]
|
|
940
|
+
]
|
|
941
|
+
}
|
|
942
|
+
]
|
|
943
|
+
},
|
|
944
|
+
"brownfield/rules.md": {
|
|
945
|
+
"source": "templates/rules.md",
|
|
946
|
+
"paths": ["domain/*/rules.md"],
|
|
947
|
+
"variable": [],
|
|
948
|
+
"conditionalFields": [],
|
|
949
|
+
"shapes": [
|
|
950
|
+
{
|
|
951
|
+
"number": 1,
|
|
952
|
+
"digest": "879453d938c564d0f8332e68103ee1795af9ed4d642cac119fdf376cd9d681d8",
|
|
953
|
+
"changes": [],
|
|
954
|
+
"skeleton": [
|
|
955
|
+
["h2","Rule Index"],
|
|
956
|
+
["column","Rule Index","",1,1,"BR-ID"],
|
|
957
|
+
["column","Rule Index","",1,2,"Rule summary"],
|
|
958
|
+
["column","Rule Index","",1,3,"Behavior anchor"],
|
|
959
|
+
["column","Rule Index","",1,4,"Status"],
|
|
960
|
+
["column","Rule Index","",1,5,"Last updated"],
|
|
961
|
+
["h2","Status Legend"],
|
|
962
|
+
["column","Status Legend","",1,1,"Status"],
|
|
963
|
+
["column","Status Legend","",1,2,"Meaning"],
|
|
964
|
+
["h2","Open Questions"],
|
|
965
|
+
["note","","","64e8ff1bdfecbdfe"],
|
|
966
|
+
["comment","","","3a4253074adb61f4"]
|
|
967
|
+
]
|
|
968
|
+
}
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
"brownfield/tech-debt.md": {
|
|
972
|
+
"source": "templates/tech-debt.md",
|
|
973
|
+
"paths": ["migration/tech-debt.md"],
|
|
974
|
+
"variable": [],
|
|
975
|
+
"conditionalFields": [],
|
|
976
|
+
"shapes": [
|
|
977
|
+
{
|
|
978
|
+
"number": 1,
|
|
979
|
+
"digest": "60cc642b99f5126a6ac42499ab1e7aeb9ecd419d768e295222a47cecf3de63e5",
|
|
980
|
+
"changes": [],
|
|
981
|
+
"skeleton": [
|
|
982
|
+
["h2","Debt Items"],
|
|
983
|
+
["column","Debt Items","",1,1,"Item"],
|
|
984
|
+
["column","Debt Items","",1,2,"Location"],
|
|
985
|
+
["column","Debt Items","",1,3,"Description"],
|
|
986
|
+
["column","Debt Items","",1,4,"Severity"],
|
|
987
|
+
["column","Debt Items","",1,5,"Migration impact"],
|
|
988
|
+
["column","Debt Items","",1,6,"Status"],
|
|
989
|
+
["h2","Follow-up Notes"],
|
|
990
|
+
["note","","","4e4356c466d4914e"],
|
|
991
|
+
["comment","","","14592fdd6506429b"]
|
|
992
|
+
]
|
|
993
|
+
}
|
|
994
|
+
]
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|