speccrew 0.6.42 → 0.6.44
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/.speccrew/skills/speccrew-knowledge-bizs-api-analyze-xml/SKILL.md +505 -477
- package/.speccrew/skills/speccrew-knowledge-bizs-api-graph-xml/SKILL.md +290 -196
- package/.speccrew/skills/speccrew-knowledge-bizs-identify-entries-xml/SKILL.md +145 -145
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-analyze-xml/SKILL.md +325 -376
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-graph-xml/SKILL.md +241 -129
- package/.speccrew/skills/speccrew-knowledge-bizs-ui-style-extract-xml/SKILL.md +231 -209
- package/.speccrew/skills/speccrew-knowledge-module-summarize-xml/SKILL.md +301 -255
- package/.speccrew/skills/speccrew-knowledge-system-summarize-xml/SKILL.md +362 -278
- package/.speccrew/skills/speccrew-knowledge-techs-generate-conventions-xml/SKILL.md +722 -627
- package/.speccrew/skills/speccrew-knowledge-techs-generate-xml/SKILL.md +195 -117
- package/.speccrew/skills/speccrew-knowledge-techs-index-xml/SKILL.md +151 -99
- package/.speccrew/skills/speccrew-knowledge-techs-init-xml/SKILL.md +201 -99
- package/package.json +1 -1
|
@@ -24,31 +24,31 @@ Worker Agent (speccrew-task-worker)
|
|
|
24
24
|
|
|
25
25
|
| Variable | Type | Description | Example |
|
|
26
26
|
|----------|------|-------------|---------|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
27
|
+
| `${platform_id}` | string | Platform identifier | `"web-react"`, `"backend-nestjs"` |
|
|
28
|
+
| `${platform_type}` | string | Platform type | `web`, `mobile`, `backend`, `desktop`, `api` |
|
|
29
|
+
| `${framework}` | string | Primary framework | `react`, `nestjs`, `flutter`, etc. |
|
|
30
|
+
| `${source_path}` | string | Platform source directory | `"frontend-web"` |
|
|
31
|
+
| `${config_files}` | array | List of configuration file paths | `["package.json", "tsconfig.json"]` |
|
|
32
|
+
| `${convention_files}` | array | List of convention file paths | `[".eslintrc.js", ".prettierrc"]` |
|
|
33
|
+
| `${output_path}` | string | Output directory for generated documents | `speccrew-workspace/knowledges/techs/{platform_id}/` |
|
|
34
|
+
| `${language}` | string | Target language for generated content | `"zh"`, `"en"` |
|
|
35
|
+
| `${completed_dir}` | string | (Optional) Directory for analysis coverage report output | `speccrew-workspace/iterations/...` |
|
|
36
36
|
|
|
37
37
|
## Output Variables
|
|
38
38
|
|
|
39
39
|
| Variable | Type | Description |
|
|
40
40
|
|----------|------|-------------|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
41
|
+
| `${status}` | string | Generation status: `"success"`, `"partial"`, or `"failed"` |
|
|
42
|
+
| `${documents_generated}` | array | List of generated document filenames |
|
|
43
|
+
| `${analysis_file}` | string | Path to the analysis coverage report |
|
|
44
|
+
| `${message}` | string | Summary message for status update |
|
|
45
45
|
|
|
46
46
|
## Output
|
|
47
47
|
|
|
48
|
-
Generate the following documents in
|
|
48
|
+
Generate the following documents in `${output_path}/`:
|
|
49
49
|
|
|
50
50
|
```
|
|
51
|
-
{
|
|
51
|
+
${output_path}/
|
|
52
52
|
├── INDEX.md # Platform technology index (Required)
|
|
53
53
|
├── tech-stack.md # Technology stack details (Required)
|
|
54
54
|
├── architecture.md # Architecture conventions (Required)
|
|
@@ -74,19 +74,20 @@ Generate the following documents in `{{output_path}}/`:
|
|
|
74
74
|
|
|
75
75
|
> **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
<workflow name="platform-conventions-generation" version="1.0">
|
|
77
|
+
<workflow id="platform-conventions-generation" status="pending" version="1.0" desc="Platform conventions generation workflow">
|
|
79
78
|
|
|
80
79
|
<!-- ==================== INPUT PARAMETERS ==================== -->
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
80
|
+
<block type="input" id="I1" desc="Platform conventions generation input parameters">
|
|
81
|
+
<field name="platform_id" required="true" type="string" desc="Platform identifier (e.g., web-react, backend-nestjs)"/>
|
|
82
|
+
<field name="platform_type" required="true" type="string" desc="Platform type: web, mobile, backend, desktop, api"/>
|
|
83
|
+
<field name="framework" required="true" type="string" desc="Primary framework (react, nestjs, flutter, etc.)"/>
|
|
84
|
+
<field name="source_path" required="true" type="string" desc="Platform source directory"/>
|
|
85
|
+
<field name="config_files" required="true" type="array" desc="List of configuration file paths"/>
|
|
86
|
+
<field name="convention_files" required="true" type="array" desc="List of convention file paths (eslint, prettier, etc.)"/>
|
|
87
|
+
<field name="output_path" required="true" type="string" desc="Output directory for generated documents"/>
|
|
88
|
+
<field name="language" required="true" type="string" desc="Target language (e.g., zh, en)"/>
|
|
89
|
+
<field name="completed_dir" required="false" type="string" desc="Directory for analysis coverage report output"/>
|
|
90
|
+
</block>
|
|
90
91
|
|
|
91
92
|
<!-- ==================== GLOBAL CONSTRAINT RULES ==================== -->
|
|
92
93
|
<block type="rule" id="GLOBAL-R1" level="mandatory" desc="Continuous execution rules">
|
|
@@ -131,652 +132,746 @@ Generate the following documents in `{{output_path}}/`:
|
|
|
131
132
|
</block>
|
|
132
133
|
|
|
133
134
|
<!-- ==================== STEP 0: READ DOCUMENT TEMPLATES ==================== -->
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
<
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
135
|
+
<!-- Read INDEX Template -->
|
|
136
|
+
<block type="task" id="B0-1" action="read-file" desc="Read INDEX template">
|
|
137
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/INDEX-TEMPLATE.md"/>
|
|
138
|
+
<field name="output" var="template_index" from="file.content"/>
|
|
139
|
+
</block>
|
|
140
|
+
|
|
141
|
+
<!-- Read TECH-STACK Template -->
|
|
142
|
+
<block type="task" id="B0-2" action="read-file" desc="Read tech-stack template">
|
|
143
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/TECH-STACK-TEMPLATE.md"/>
|
|
144
|
+
<field name="output" var="template_tech_stack" from="file.content"/>
|
|
145
|
+
</block>
|
|
146
|
+
|
|
147
|
+
<!-- Read ARCHITECTURE Template -->
|
|
148
|
+
<block type="task" id="B0-3" action="read-file" desc="Read architecture template">
|
|
149
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/ARCHITECTURE-TEMPLATE.md"/>
|
|
150
|
+
<field name="output" var="template_architecture" from="file.content"/>
|
|
151
|
+
</block>
|
|
152
|
+
|
|
153
|
+
<!-- Read CONVENTIONS-DESIGN Template -->
|
|
154
|
+
<block type="task" id="B0-4" action="read-file" desc="Read conventions-design template">
|
|
155
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DESIGN-TEMPLATE.md"/>
|
|
156
|
+
<field name="output" var="template_conventions_design" from="file.content"/>
|
|
157
|
+
</block>
|
|
158
|
+
|
|
159
|
+
<!-- Read CONVENTIONS-DEV Template -->
|
|
160
|
+
<block type="task" id="B0-5" action="read-file" desc="Read conventions-dev template">
|
|
161
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DEV-TEMPLATE.md"/>
|
|
162
|
+
<field name="output" var="template_conventions_dev" from="file.content"/>
|
|
163
|
+
</block>
|
|
164
|
+
|
|
165
|
+
<!-- Read CONVENTIONS-UNIT-TEST Template -->
|
|
166
|
+
<block type="task" id="B0-6" action="read-file" desc="Read conventions-unit-test template">
|
|
167
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-UNIT-TEST-TEMPLATE.md"/>
|
|
168
|
+
<field name="output" var="template_conventions_unit_test" from="file.content"/>
|
|
169
|
+
</block>
|
|
170
|
+
|
|
171
|
+
<!-- Read CONVENTIONS-SYSTEM-TEST Template -->
|
|
172
|
+
<block type="task" id="B0-7" action="read-file" desc="Read conventions-system-test template">
|
|
173
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-SYSTEM-TEST-TEMPLATE.md"/>
|
|
174
|
+
<field name="output" var="template_conventions_system_test" from="file.content"/>
|
|
175
|
+
</block>
|
|
176
|
+
|
|
177
|
+
<!-- Read CONVENTIONS-BUILD Template -->
|
|
178
|
+
<block type="task" id="B0-8" action="read-file" desc="Read conventions-build template">
|
|
179
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-BUILD-TEMPLATE.md"/>
|
|
180
|
+
<field name="output" var="template_conventions_build" from="file.content"/>
|
|
181
|
+
</block>
|
|
182
|
+
|
|
183
|
+
<!-- Read CONVENTIONS-DATA Template (Optional) -->
|
|
184
|
+
<block type="task" id="B0-9" action="read-file" desc="Read conventions-data template">
|
|
185
|
+
<field name="target" value="../speccrew-knowledge-techs-generate/templates/CONVENTIONS-DATA-TEMPLATE.md"/>
|
|
186
|
+
<field name="output" var="template_conventions_data" from="file.content"/>
|
|
187
|
+
</block>
|
|
188
|
+
|
|
189
|
+
<!-- Read Mermaid Rules -->
|
|
190
|
+
<block type="task" id="B0-10" action="read-file" desc="Read Mermaid rules">
|
|
191
|
+
<field name="target" value="speccrew-workspace/docs/rules/mermaid-rule.md"/>
|
|
192
|
+
<field name="output" var="mermaid_rules" from="file.content"/>
|
|
193
|
+
</block>
|
|
194
|
+
|
|
195
|
+
<block type="checkpoint" id="CP0" name="templates-loaded" desc="Templates loaded">
|
|
196
|
+
<field name="verify" value="${template_index} != null AND ${template_tech_stack} != null"/>
|
|
197
|
+
</block>
|
|
198
|
+
<block type="event" id="E0" action="log" level="info" desc="Log templates loaded">
|
|
199
|
+
<field name="message" value="Step 0 Status: COMPLETED - All templates loaded"/>
|
|
200
|
+
</block>
|
|
191
201
|
|
|
192
202
|
<!-- ==================== STEP 1: ANALYZE PROJECT SOURCE CODE STRUCTURE ==================== -->
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
<
|
|
196
|
-
|
|
197
|
-
<
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
<
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
203
|
+
<!-- Read Primary Config Files -->
|
|
204
|
+
<block type="loop" id="L1" over="${config_files}" as="config_file" desc="Read config files">
|
|
205
|
+
<block type="task" id="B1-1" action="read-file" desc="Read config file">
|
|
206
|
+
<field name="target" value="${source_path}/${config_file}"/>
|
|
207
|
+
<field name="output" var="config_${config_file}" from="file.content"/>
|
|
208
|
+
</block>
|
|
209
|
+
</block>
|
|
210
|
+
|
|
211
|
+
<!-- Read Convention Files -->
|
|
212
|
+
<block type="loop" id="L2" over="${convention_files}" as="convention_file" desc="Read convention files">
|
|
213
|
+
<block type="task" id="B1-2" action="read-file" desc="Read convention file">
|
|
214
|
+
<field name="target" value="${source_path}/${convention_file}"/>
|
|
215
|
+
<field name="output" var="convention_${convention_file}" from="file.content"/>
|
|
216
|
+
</block>
|
|
217
|
+
</block>
|
|
218
|
+
|
|
219
|
+
<!-- Extract Technology Stack -->
|
|
220
|
+
<block type="task" id="B1-3" action="extract-tech-stack" desc="Extract tech stack">
|
|
221
|
+
<field name="config_files" value="${config_files}"/>
|
|
222
|
+
<field name="config_content" value="${config_content}"/>
|
|
223
|
+
<field name="output" var="framework" from="extraction.framework"/>
|
|
224
|
+
<field name="output" var="framework_version" from="extraction.framework_version"/>
|
|
225
|
+
<field name="output" var="language" from="extraction.language"/>
|
|
226
|
+
<field name="output" var="language_version" from="extraction.language_version"/>
|
|
227
|
+
<field name="output" var="build_tool" from="extraction.build_tool"/>
|
|
228
|
+
<field name="output" var="dependencies" from="extraction.dependencies"/>
|
|
229
|
+
<field name="output" var="dev_dependencies" from="extraction.dev_dependencies"/>
|
|
230
|
+
</block>
|
|
231
|
+
|
|
232
|
+
<!-- Extract Conventions from Config Files -->
|
|
233
|
+
<block type="task" id="B1-4" action="extract-conventions" desc="Extract conventions">
|
|
234
|
+
<field name="convention_files" value="${convention_files}"/>
|
|
235
|
+
<field name="convention_content" value="${convention_content}"/>
|
|
236
|
+
<field name="output" var="eslint_rules" from="extraction.eslint"/>
|
|
237
|
+
<field name="output" var="prettier_config" from="extraction.prettier"/>
|
|
238
|
+
<field name="output" var="testing_config" from="extraction.testing"/>
|
|
239
|
+
<field name="output" var="naming_conventions" from="extraction.naming"/>
|
|
240
|
+
</block>
|
|
241
|
+
|
|
242
|
+
<!-- Analyze Directory Structure -->
|
|
243
|
+
<block type="task" id="B1-5" action="analyze-structure" desc="Analyze directory structure">
|
|
244
|
+
<field name="target" value="${source_path}"/>
|
|
245
|
+
<field name="output" var="directory_structure" from="analysis.directories"/>
|
|
246
|
+
<field name="output" var="file_patterns" from="analysis.patterns"/>
|
|
247
|
+
</block>
|
|
248
|
+
|
|
249
|
+
<!-- Detect Data Layer for conventions-data.md decision -->
|
|
250
|
+
<block type="task" id="B1-6" action="detect-data-layer" desc="Detect data layer">
|
|
251
|
+
<field name="dependencies" value="${dependencies}"/>
|
|
252
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
253
|
+
<field name="output" var="data_layer_detected" from="detection.found"/>
|
|
254
|
+
<field name="output" var="data_technology" from="detection.technology"/>
|
|
255
|
+
<field name="output" var="generate_data_doc" from="detection.should_generate"/>
|
|
256
|
+
</block>
|
|
257
|
+
|
|
258
|
+
<block type="event" id="E1-1" action="log" level="info" desc="Log platform info">
|
|
259
|
+
<field name="message" value="Platform: ${platform_id}, Type: ${platform_type}, Framework: ${framework}"/>
|
|
260
|
+
</block>
|
|
261
|
+
<block type="event" id="E1-2" action="log" level="info" desc="Log data layer info">
|
|
262
|
+
<field name="message" value="Data Layer Detected: ${data_layer_detected}, Technology: ${data_technology}"/>
|
|
263
|
+
</block>
|
|
264
|
+
<block type="event" id="E1-3" action="log" level="info" desc="Log data doc decision">
|
|
265
|
+
<field name="message" value="Generate conventions-data.md: ${generate_data_doc}"/>
|
|
266
|
+
</block>
|
|
267
|
+
|
|
268
|
+
<block type="checkpoint" id="CP1" name="structure-analyzed" desc="Structure analyzed">
|
|
269
|
+
<field name="verify" value="${framework} != null"/>
|
|
270
|
+
</block>
|
|
271
|
+
<block type="event" id="E1-4" action="log" level="info" desc="Log step 1 status">
|
|
272
|
+
<field name="message" value="Step 1 Status: COMPLETED - Project structure analyzed"/>
|
|
273
|
+
</block>
|
|
256
274
|
|
|
257
275
|
<!-- ==================== STEP 2: DOMAIN-SPECIFIC CONVENTION EXTRACTION ==================== -->
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
<
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
<
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
<
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
</task>
|
|
276
|
+
<!-- Frontend Topics Extraction -->
|
|
277
|
+
<block type="gateway" id="G2-1" mode="guard" desc="Frontend topics gate">
|
|
278
|
+
<branch test="${platform_type} == 'web' OR ${platform_type} == 'mobile' OR ${platform_type} == 'desktop'" name="Frontend platform">
|
|
279
|
+
<block type="task" id="B2-1" action="search-topic" desc="Search i18n topic">
|
|
280
|
+
<field name="topic" value="i18n"/>
|
|
281
|
+
<field name="paths" value="["locales/", "i18n/", "lang/"]"/>
|
|
282
|
+
<field name="output" var="topic_i18n_status" from="search.status"/>
|
|
283
|
+
<field name="output" var="topic_i18n_files" from="search.files"/>
|
|
284
|
+
</block>
|
|
285
|
+
<block type="task" id="B2-2" action="search-topic" desc="Search authorization topic">
|
|
286
|
+
<field name="topic" value="authorization"/>
|
|
287
|
+
<field name="paths" value="["permission/", "router/", "store/", "utils/auth"]"/>
|
|
288
|
+
<field name="output" var="topic_auth_status" from="search.status"/>
|
|
289
|
+
<field name="output" var="topic_auth_files" from="search.files"/>
|
|
290
|
+
</block>
|
|
291
|
+
<block type="task" id="B2-3" action="search-topic" desc="Search menu registration topic">
|
|
292
|
+
<field name="topic" value="menu_registration"/>
|
|
293
|
+
<field name="paths" value="["router/", "store/", "layout/"]"/>
|
|
294
|
+
<field name="output" var="topic_menu_status" from="search.status"/>
|
|
295
|
+
<field name="output" var="topic_menu_files" from="search.files"/>
|
|
296
|
+
</block>
|
|
297
|
+
<block type="task" id="B2-4" action="search-topic" desc="Search data dictionary topic">
|
|
298
|
+
<field name="topic" value="data_dictionary"/>
|
|
299
|
+
<field name="paths" value="["components/Dict", "utils/dict", "store/"]"/>
|
|
300
|
+
<field name="output" var="topic_dict_status" from="search.status"/>
|
|
301
|
+
<field name="output" var="topic_dict_files" from="search.files"/>
|
|
302
|
+
</block>
|
|
303
|
+
<block type="task" id="B2-5" action="search-topic" desc="Search logging topic">
|
|
304
|
+
<field name="topic" value="logging"/>
|
|
305
|
+
<field name="paths" value="["utils/log", "plugins/sentry"]"/>
|
|
306
|
+
<field name="output" var="topic_logging_status" from="search.status"/>
|
|
307
|
+
<field name="output" var="topic_logging_files" from="search.files"/>
|
|
308
|
+
</block>
|
|
309
|
+
<block type="task" id="B2-6" action="search-topic" desc="Search API request layer topic">
|
|
310
|
+
<field name="topic" value="api_request_layer"/>
|
|
311
|
+
<field name="paths" value="["utils/request", "api/", "config/", "interceptors/"]"/>
|
|
312
|
+
<field name="output" var="topic_api_status" from="search.status"/>
|
|
313
|
+
<field name="output" var="topic_api_files" from="search.files"/>
|
|
314
|
+
</block>
|
|
315
|
+
<block type="task" id="B2-7" action="search-topic" desc="Search data validation topic">
|
|
316
|
+
<field name="topic" value="data_validation"/>
|
|
317
|
+
<field name="paths" value="["utils/validate"]"/>
|
|
318
|
+
<field name="output" var="topic_validation_status" from="search.status"/>
|
|
319
|
+
<field name="output" var="topic_validation_files" from="search.files"/>
|
|
320
|
+
</block>
|
|
321
|
+
<block type="task" id="B2-8" action="search-topic" desc="Search file upload topic">
|
|
322
|
+
<field name="topic" value="file_upload"/>
|
|
323
|
+
<field name="paths" value="["components/Upload", "api/file", "utils/upload"]"/>
|
|
324
|
+
<field name="output" var="topic_upload_status" from="search.status"/>
|
|
325
|
+
<field name="output" var="topic_upload_files" from="search.files"/>
|
|
326
|
+
</block>
|
|
327
|
+
</branch>
|
|
328
|
+
</block>
|
|
329
|
+
|
|
330
|
+
<!-- Backend Topics Extraction -->
|
|
331
|
+
<block type="gateway" id="G2-2" mode="guard" desc="Backend topics gate">
|
|
332
|
+
<branch test="${platform_type} == 'backend'" name="Backend platform">
|
|
333
|
+
<block type="task" id="B2-9" action="search-topic" desc="Search backend i18n topic">
|
|
334
|
+
<field name="topic" value="backend_i18n"/>
|
|
335
|
+
<field name="paths" value="["resources/i18n/", "messages*.properties"]"/>
|
|
336
|
+
<field name="output" var="topic_backend_i18n_status" from="search.status"/>
|
|
337
|
+
<field name="output" var="topic_backend_i18n_files" from="search.files"/>
|
|
338
|
+
</block>
|
|
339
|
+
<block type="task" id="B2-10" action="search-topic" desc="Search authorization permissions topic">
|
|
340
|
+
<field name="topic" value="authorization_permissions"/>
|
|
341
|
+
<field name="paths" value="["security/", "controller/", "framework/"]"/>
|
|
342
|
+
<field name="output" var="topic_backend_auth_status" from="search.status"/>
|
|
343
|
+
<field name="output" var="topic_backend_auth_files" from="search.files"/>
|
|
344
|
+
</block>
|
|
345
|
+
<block type="task" id="B2-11" action="search-topic" desc="Search backend data dictionary topic">
|
|
346
|
+
<field name="topic" value="data_dictionary"/>
|
|
347
|
+
<field name="paths" value="["dict/", "system/"]"/>
|
|
348
|
+
<field name="output" var="topic_backend_dict_status" from="search.status"/>
|
|
349
|
+
<field name="output" var="topic_backend_dict_files" from="search.files"/>
|
|
350
|
+
</block>
|
|
351
|
+
<block type="task" id="B2-12" action="search-topic" desc="Search multi-tenancy topic">
|
|
352
|
+
<field name="topic" value="multi_tenancy"/>
|
|
353
|
+
<field name="paths" value="["framework/tenant/", "base/entity/"]"/>
|
|
354
|
+
<field name="output" var="topic_tenant_status" from="search.status"/>
|
|
355
|
+
<field name="output" var="topic_tenant_files" from="search.files"/>
|
|
356
|
+
</block>
|
|
357
|
+
<block type="task" id="B2-13" action="search-topic" desc="Search logging audit topic">
|
|
358
|
+
<field name="topic" value="logging_audit"/>
|
|
359
|
+
<field name="paths" value="["logback*.xml", "log4j2*.xml", "operatelog/"]"/>
|
|
360
|
+
<field name="output" var="topic_backend_logging_status" from="search.status"/>
|
|
361
|
+
<field name="output" var="topic_backend_logging_files" from="search.files"/>
|
|
362
|
+
</block>
|
|
363
|
+
<block type="task" id="B2-14" action="search-topic" desc="Search exception handling topic">
|
|
364
|
+
<field name="topic" value="exception_handling"/>
|
|
365
|
+
<field name="paths" value="["handler/", "exception/", "enums/ErrorCode"]"/>
|
|
366
|
+
<field name="output" var="topic_exception_status" from="search.status"/>
|
|
367
|
+
<field name="output" var="topic_exception_files" from="search.files"/>
|
|
368
|
+
</block>
|
|
369
|
+
<block type="task" id="B2-15" action="search-topic" desc="Search caching topic">
|
|
370
|
+
<field name="topic" value="caching"/>
|
|
371
|
+
<field name="paths" value="["cache/", "redis/", "CacheConfig"]"/>
|
|
372
|
+
<field name="output" var="topic_cache_status" from="search.status"/>
|
|
373
|
+
<field name="output" var="topic_cache_files" from="search.files"/>
|
|
374
|
+
</block>
|
|
375
|
+
<block type="task" id="B2-16" action="search-topic" desc="Search scheduled jobs topic">
|
|
376
|
+
<field name="topic" value="scheduled_jobs"/>
|
|
377
|
+
<field name="paths" value="["job/", "task/", "schedule/"]"/>
|
|
378
|
+
<field name="output" var="topic_jobs_status" from="search.status"/>
|
|
379
|
+
<field name="output" var="topic_jobs_files" from="search.files"/>
|
|
380
|
+
</block>
|
|
381
|
+
<block type="task" id="B2-17" action="search-topic" desc="Search file storage topic">
|
|
382
|
+
<field name="topic" value="file_storage"/>
|
|
383
|
+
<field name="paths" value="["file/", "infra/file/", "FileClient"]"/>
|
|
384
|
+
<field name="output" var="topic_storage_status" from="search.status"/>
|
|
385
|
+
<field name="output" var="topic_storage_files" from="search.files"/>
|
|
386
|
+
</block>
|
|
387
|
+
</branch>
|
|
388
|
+
</block>
|
|
389
|
+
|
|
390
|
+
<block type="checkpoint" id="CP2" name="domain-conventions-extracted" desc="Domain conventions extracted">
|
|
391
|
+
<field name="verify" value="true"/>
|
|
392
|
+
</block>
|
|
393
|
+
<block type="event" id="E2" action="log" level="info" desc="Log step 2 status">
|
|
394
|
+
<field name="message" value="Step 2 Status: COMPLETED - Domain-specific conventions extracted"/>
|
|
395
|
+
</block>
|
|
379
396
|
|
|
380
397
|
<!-- ==================== STEP 2.1: GENERATE INDEX.MD ==================== -->
|
|
381
|
-
<task
|
|
382
|
-
<
|
|
383
|
-
<
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
</
|
|
398
|
+
<block type="task" id="B3-1" action="copy-template" desc="Copy INDEX template">
|
|
399
|
+
<field name="source" value="${template_index}"/>
|
|
400
|
+
<field name="target" value="${output_path}/INDEX.md"/>
|
|
401
|
+
<field name="platform_id" value="${platform_id}"/>
|
|
402
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
403
|
+
<field name="framework" value="${framework}"/>
|
|
404
|
+
</block>
|
|
405
|
+
<block type="task" id="B3-2" action="search_replace" desc="Replace platform name in INDEX">
|
|
406
|
+
<field name="target" value="${output_path}/INDEX.md"/>
|
|
407
|
+
<field name="search" value="{Platform Name}"/>
|
|
408
|
+
<field name="replace" value="${platform_id}"/>
|
|
409
|
+
</block>
|
|
410
|
+
<block type="task" id="B3-3" action="search_replace" desc="Replace platform type in INDEX">
|
|
411
|
+
<field name="target" value="${output_path}/INDEX.md"/>
|
|
412
|
+
<field name="search" value="{Platform Type}"/>
|
|
413
|
+
<field name="replace" value="${platform_type}"/>
|
|
414
|
+
</block>
|
|
415
|
+
<block type="checkpoint" id="CP3" name="index-generated" desc="INDEX.md generated">
|
|
416
|
+
<field name="verify" value="file.exists(${output_path}/INDEX.md)"/>
|
|
417
|
+
</block>
|
|
418
|
+
<block type="event" id="E3" action="log" level="info" desc="Log step 2.1 status">
|
|
419
|
+
<field name="message" value="Step 2.1 Status: COMPLETED - INDEX.md generated"/>
|
|
420
|
+
</block>
|
|
401
421
|
|
|
402
422
|
<!-- ==================== STEP 2.2: GENERATE TECH-STACK.MD ==================== -->
|
|
403
|
-
<task
|
|
404
|
-
<
|
|
405
|
-
<
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
+
<block type="task" id="B4-1" action="copy-template" desc="Copy tech-stack template">
|
|
424
|
+
<field name="source" value="${template_tech_stack}"/>
|
|
425
|
+
<field name="target" value="${output_path}/tech-stack.md"/>
|
|
426
|
+
<field name="framework" value="${framework}"/>
|
|
427
|
+
<field name="framework_version" value="${framework_version}"/>
|
|
428
|
+
<field name="dependencies" value="${dependencies}"/>
|
|
429
|
+
</block>
|
|
430
|
+
<block type="task" id="B4-2" action="fill-tech-stack-sections" desc="Fill tech-stack sections">
|
|
431
|
+
<field name="target" value="${output_path}/tech-stack.md"/>
|
|
432
|
+
<field name="framework" value="${framework}"/>
|
|
433
|
+
<field name="framework_version" value="${framework_version}"/>
|
|
434
|
+
<field name="language" value="${language}"/>
|
|
435
|
+
<field name="build_tool" value="${build_tool}"/>
|
|
436
|
+
<field name="dependencies" value="${dependencies}"/>
|
|
437
|
+
<field name="dev_dependencies" value="${dev_dependencies}"/>
|
|
438
|
+
</block>
|
|
439
|
+
<block type="checkpoint" id="CP4" name="tech-stack-generated" desc="tech-stack.md generated">
|
|
440
|
+
<field name="verify" value="file.exists(${output_path}/tech-stack.md)"/>
|
|
441
|
+
</block>
|
|
442
|
+
<block type="event" id="E4" action="log" level="info" desc="Log step 2.2 status">
|
|
443
|
+
<field name="message" value="Step 2.2 Status: COMPLETED - tech-stack.md generated"/>
|
|
444
|
+
</block>
|
|
423
445
|
|
|
424
446
|
<!-- ==================== STEP 2.3: GENERATE ARCHITECTURE.MD ==================== -->
|
|
425
|
-
<task
|
|
426
|
-
<
|
|
427
|
-
<
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
447
|
+
<block type="task" id="B5-1" action="copy-template" desc="Copy architecture template">
|
|
448
|
+
<field name="source" value="${template_architecture}"/>
|
|
449
|
+
<field name="target" value="${output_path}/architecture.md"/>
|
|
450
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
451
|
+
<field name="directory_structure" value="${directory_structure}"/>
|
|
452
|
+
</block>
|
|
453
|
+
<block type="task" id="B5-2" action="fill-architecture-sections" desc="Fill architecture sections">
|
|
454
|
+
<field name="target" value="${output_path}/architecture.md"/>
|
|
455
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
456
|
+
<field name="framework" value="${framework}"/>
|
|
457
|
+
<field name="directory_structure" value="${directory_structure}"/>
|
|
458
|
+
<field name="file_patterns" value="${file_patterns}"/>
|
|
459
|
+
</block>
|
|
460
|
+
<block type="checkpoint" id="CP5" name="architecture-generated" desc="architecture.md generated">
|
|
461
|
+
<field name="verify" value="file.exists(${output_path}/architecture.md)"/>
|
|
462
|
+
</block>
|
|
463
|
+
<block type="event" id="E5" action="log" level="info" desc="Log step 2.3 status">
|
|
464
|
+
<field name="message" value="Step 2.3 Status: COMPLETED - architecture.md generated"/>
|
|
465
|
+
</block>
|
|
442
466
|
|
|
443
467
|
<!-- ==================== STEP 2.4: GENERATE CONVENTIONS-DESIGN.MD ==================== -->
|
|
444
|
-
<task
|
|
445
|
-
<
|
|
446
|
-
<
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
468
|
+
<block type="task" id="B6-1" action="copy-template" desc="Copy conventions-design template">
|
|
469
|
+
<field name="source" value="${template_conventions_design}"/>
|
|
470
|
+
<field name="target" value="${output_path}/conventions-design.md"/>
|
|
471
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
472
|
+
</block>
|
|
473
|
+
<block type="task" id="B6-2" action="fill-design-sections" desc="Fill design sections">
|
|
474
|
+
<field name="target" value="${output_path}/conventions-design.md"/>
|
|
475
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
476
|
+
<field name="framework" value="${framework}"/>
|
|
477
|
+
<field name="naming_conventions" value="${naming_conventions}"/>
|
|
478
|
+
</block>
|
|
479
|
+
<block type="checkpoint" id="CP6" name="conventions-design-generated" desc="conventions-design.md generated">
|
|
480
|
+
<field name="verify" value="file.exists(${output_path}/conventions-design.md)"/>
|
|
481
|
+
</block>
|
|
482
|
+
<block type="event" id="E6" action="log" level="info" desc="Log step 2.4 status">
|
|
483
|
+
<field name="message" value="Step 2.4 Status: COMPLETED - conventions-design.md generated"/>
|
|
484
|
+
</block>
|
|
459
485
|
|
|
460
486
|
<!-- ==================== STEP 2.5: GENERATE CONVENTIONS-DEV.MD ==================== -->
|
|
461
|
-
<task
|
|
462
|
-
<
|
|
463
|
-
<
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
487
|
+
<block type="task" id="B7-1" action="copy-template" desc="Copy conventions-dev template">
|
|
488
|
+
<field name="source" value="${template_conventions_dev}"/>
|
|
489
|
+
<field name="target" value="${output_path}/conventions-dev.md"/>
|
|
490
|
+
<field name="eslint_rules" value="${eslint_rules}"/>
|
|
491
|
+
<field name="prettier_config" value="${prettier_config}"/>
|
|
492
|
+
</block>
|
|
493
|
+
<block type="task" id="B7-2" action="fill-dev-sections" desc="Fill dev sections">
|
|
494
|
+
<field name="target" value="${output_path}/conventions-dev.md"/>
|
|
495
|
+
<field name="eslint_rules" value="${eslint_rules}"/>
|
|
496
|
+
<field name="prettier_config" value="${prettier_config}"/>
|
|
497
|
+
<field name="naming_conventions" value="${naming_conventions}"/>
|
|
498
|
+
<field name="file_patterns" value="${file_patterns}"/>
|
|
499
|
+
</block>
|
|
500
|
+
<block type="checkpoint" id="CP7" name="conventions-dev-generated" desc="conventions-dev.md generated">
|
|
501
|
+
<field name="verify" value="file.exists(${output_path}/conventions-dev.md)"/>
|
|
502
|
+
</block>
|
|
503
|
+
<block type="event" id="E7" action="log" level="info" desc="Log step 2.5 status">
|
|
504
|
+
<field name="message" value="Step 2.5 Status: COMPLETED - conventions-dev.md generated"/>
|
|
505
|
+
</block>
|
|
478
506
|
|
|
479
507
|
<!-- ==================== STEP 2.6: GENERATE CONVENTIONS-UNIT-TEST.MD ==================== -->
|
|
480
|
-
<task
|
|
481
|
-
<
|
|
482
|
-
<
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
508
|
+
<block type="task" id="B8-1" action="copy-template" desc="Copy conventions-unit-test template">
|
|
509
|
+
<field name="source" value="${template_conventions_unit_test}"/>
|
|
510
|
+
<field name="target" value="${output_path}/conventions-unit-test.md"/>
|
|
511
|
+
<field name="testing_config" value="${testing_config}"/>
|
|
512
|
+
</block>
|
|
513
|
+
<block type="task" id="B8-2" action="fill-unit-test-sections" desc="Fill unit-test sections">
|
|
514
|
+
<field name="target" value="${output_path}/conventions-unit-test.md"/>
|
|
515
|
+
<field name="testing_config" value="${testing_config}"/>
|
|
516
|
+
<field name="framework" value="${framework}"/>
|
|
517
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
518
|
+
</block>
|
|
519
|
+
<block type="checkpoint" id="CP8" name="conventions-unit-test-generated" desc="conventions-unit-test.md generated">
|
|
520
|
+
<field name="verify" value="file.exists(${output_path}/conventions-unit-test.md)"/>
|
|
521
|
+
</block>
|
|
522
|
+
<block type="event" id="E8" action="log" level="info" desc="Log step 2.6 status">
|
|
523
|
+
<field name="message" value="Step 2.6 Status: COMPLETED - conventions-unit-test.md generated"/>
|
|
524
|
+
</block>
|
|
495
525
|
|
|
496
526
|
<!-- ==================== STEP 2.7: GENERATE CONVENTIONS-SYSTEM-TEST.MD ==================== -->
|
|
497
|
-
<task
|
|
498
|
-
<
|
|
499
|
-
<
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
527
|
+
<block type="task" id="B9-1" action="copy-template" desc="Copy conventions-system-test template">
|
|
528
|
+
<field name="source" value="${template_conventions_system_test}"/>
|
|
529
|
+
<field name="target" value="${output_path}/conventions-system-test.md"/>
|
|
530
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
531
|
+
</block>
|
|
532
|
+
<block type="task" id="B9-2" action="fill-system-test-sections" desc="Fill system-test sections">
|
|
533
|
+
<field name="target" value="${output_path}/conventions-system-test.md"/>
|
|
534
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
535
|
+
<field name="framework" value="${framework}"/>
|
|
536
|
+
</block>
|
|
537
|
+
<block type="checkpoint" id="CP9" name="conventions-system-test-generated" desc="conventions-system-test.md generated">
|
|
538
|
+
<field name="verify" value="file.exists(${output_path}/conventions-system-test.md)"/>
|
|
539
|
+
</block>
|
|
540
|
+
<block type="event" id="E9" action="log" level="info" desc="Log step 2.7 status">
|
|
541
|
+
<field name="message" value="Step 2.7 Status: COMPLETED - conventions-system-test.md generated"/>
|
|
542
|
+
</block>
|
|
511
543
|
|
|
512
544
|
<!-- ==================== STEP 2.8: GENERATE CONVENTIONS-BUILD.MD ==================== -->
|
|
513
|
-
<task
|
|
514
|
-
<
|
|
515
|
-
<
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
545
|
+
<block type="task" id="B10-1" action="copy-template" desc="Copy conventions-build template">
|
|
546
|
+
<field name="source" value="${template_conventions_build}"/>
|
|
547
|
+
<field name="target" value="${output_path}/conventions-build.md"/>
|
|
548
|
+
<field name="build_tool" value="${build_tool}"/>
|
|
549
|
+
</block>
|
|
550
|
+
<block type="task" id="B10-2" action="fill-build-sections" desc="Fill build sections">
|
|
551
|
+
<field name="target" value="${output_path}/conventions-build.md"/>
|
|
552
|
+
<field name="build_tool" value="${build_tool}"/>
|
|
553
|
+
<field name="config_files" value="${config_files}"/>
|
|
554
|
+
<field name="dependencies" value="${dependencies}"/>
|
|
555
|
+
</block>
|
|
556
|
+
<block type="checkpoint" id="CP10" name="conventions-build-generated" desc="conventions-build.md generated">
|
|
557
|
+
<field name="verify" value="file.exists(${output_path}/conventions-build.md)"/>
|
|
558
|
+
</block>
|
|
559
|
+
<block type="event" id="E10" action="log" level="info" desc="Log step 2.8 status">
|
|
560
|
+
<field name="message" value="Step 2.8 Status: COMPLETED - conventions-build.md generated"/>
|
|
561
|
+
</block>
|
|
528
562
|
|
|
529
563
|
<!-- ==================== STEP 2.9: GENERATE CONVENTIONS-DATA.MD (CONDITIONAL) ==================== -->
|
|
530
|
-
<gateway
|
|
531
|
-
<branch
|
|
532
|
-
<task
|
|
533
|
-
<
|
|
534
|
-
<
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
564
|
+
<block type="gateway" id="G11" mode="exclusive" desc="Generate data doc decision">
|
|
565
|
+
<branch test="${generate_data_doc} == true" name="Generate data doc">
|
|
566
|
+
<block type="task" id="B11-1" action="copy-template" desc="Copy conventions-data template">
|
|
567
|
+
<field name="source" value="${template_conventions_data}"/>
|
|
568
|
+
<field name="target" value="${output_path}/conventions-data.md"/>
|
|
569
|
+
<field name="data_technology" value="${data_technology}"/>
|
|
570
|
+
</block>
|
|
571
|
+
<block type="task" id="B11-2" action="fill-data-sections" desc="Fill data sections">
|
|
572
|
+
<field name="target" value="${output_path}/conventions-data.md"/>
|
|
573
|
+
<field name="data_technology" value="${data_technology}"/>
|
|
574
|
+
<field name="platform_type" value="${platform_type}"/>
|
|
575
|
+
<field name="dependencies" value="${dependencies}"/>
|
|
576
|
+
</block>
|
|
577
|
+
<block type="checkpoint" id="CP11" name="conventions-data-generated" desc="conventions-data.md generated">
|
|
578
|
+
<field name="verify" value="file.exists(${output_path}/conventions-data.md)"/>
|
|
579
|
+
</block>
|
|
580
|
+
<block type="event" id="E11" action="log" level="info" desc="Log step 2.9 status">
|
|
581
|
+
<field name="message" value="Step 2.9 Status: COMPLETED - conventions-data.md generated"/>
|
|
582
|
+
</block>
|
|
547
583
|
</branch>
|
|
548
|
-
<branch
|
|
549
|
-
<event action="log" level="info"
|
|
584
|
+
<branch default="true" name="Skip data doc">
|
|
585
|
+
<block type="event" id="E12" action="log" level="info" desc="Log skip status">
|
|
586
|
+
<field name="message" value="Step 2.9 Status: SKIPPED - No data layer detected, conventions-data.md not generated"/>
|
|
587
|
+
</block>
|
|
550
588
|
</branch>
|
|
551
|
-
</
|
|
589
|
+
</block>
|
|
552
590
|
|
|
553
591
|
<!-- ==================== STEP 3: VERIFY ALL FILES GENERATED ==================== -->
|
|
554
|
-
<task
|
|
555
|
-
<
|
|
556
|
-
<
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
</
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
592
|
+
<block type="task" id="B12-1" action="verify-file-exists" desc="Verify INDEX.md">
|
|
593
|
+
<field name="target" value="${output_path}/INDEX.md"/>
|
|
594
|
+
<field name="output" var="index_exists" from="verify.result"/>
|
|
595
|
+
</block>
|
|
596
|
+
<block type="task" id="B12-2" action="verify-file-exists" desc="Verify tech-stack.md">
|
|
597
|
+
<field name="target" value="${output_path}/tech-stack.md"/>
|
|
598
|
+
<field name="output" var="tech_stack_exists" from="verify.result"/>
|
|
599
|
+
</block>
|
|
600
|
+
<block type="task" id="B12-3" action="verify-file-exists" desc="Verify architecture.md">
|
|
601
|
+
<field name="target" value="${output_path}/architecture.md"/>
|
|
602
|
+
<field name="output" var="architecture_exists" from="verify.result"/>
|
|
603
|
+
</block>
|
|
604
|
+
<block type="task" id="B12-4" action="verify-file-exists" desc="Verify conventions-design.md">
|
|
605
|
+
<field name="target" value="${output_path}/conventions-design.md"/>
|
|
606
|
+
<field name="output" var="conventions_design_exists" from="verify.result"/>
|
|
607
|
+
</block>
|
|
608
|
+
<block type="task" id="B12-5" action="verify-file-exists" desc="Verify conventions-dev.md">
|
|
609
|
+
<field name="target" value="${output_path}/conventions-dev.md"/>
|
|
610
|
+
<field name="output" var="conventions_dev_exists" from="verify.result"/>
|
|
611
|
+
</block>
|
|
612
|
+
<block type="task" id="B12-6" action="verify-file-exists" desc="Verify conventions-unit-test.md">
|
|
613
|
+
<field name="target" value="${output_path}/conventions-unit-test.md"/>
|
|
614
|
+
<field name="output" var="conventions_unit_test_exists" from="verify.result"/>
|
|
615
|
+
</block>
|
|
616
|
+
<block type="task" id="B12-7" action="verify-file-exists" desc="Verify conventions-system-test.md">
|
|
617
|
+
<field name="target" value="${output_path}/conventions-system-test.md"/>
|
|
618
|
+
<field name="output" var="conventions_system_test_exists" from="verify.result"/>
|
|
619
|
+
</block>
|
|
620
|
+
<block type="task" id="B12-8" action="verify-file-exists" desc="Verify conventions-build.md">
|
|
621
|
+
<field name="target" value="${output_path}/conventions-build.md"/>
|
|
622
|
+
<field name="output" var="conventions_build_exists" from="verify.result"/>
|
|
623
|
+
</block>
|
|
624
|
+
|
|
625
|
+
<block type="task" id="B12-9" action="compile-verification" desc="Compile verification results">
|
|
626
|
+
<field name="index_exists" value="${index_exists}"/>
|
|
627
|
+
<field name="tech_stack_exists" value="${tech_stack_exists}"/>
|
|
628
|
+
<field name="architecture_exists" value="${architecture_exists}"/>
|
|
629
|
+
<field name="conventions_design_exists" value="${conventions_design_exists}"/>
|
|
630
|
+
<field name="conventions_dev_exists" value="${conventions_dev_exists}"/>
|
|
631
|
+
<field name="conventions_unit_test_exists" value="${conventions_unit_test_exists}"/>
|
|
632
|
+
<field name="conventions_system_test_exists" value="${conventions_system_test_exists}"/>
|
|
633
|
+
<field name="conventions_build_exists" value="${conventions_build_exists}"/>
|
|
634
|
+
<field name="output" var="all_required_exist" from="compilation.all_exist"/>
|
|
635
|
+
<field name="output" var="missing_files" from="compilation.missing"/>
|
|
636
|
+
</block>
|
|
637
|
+
|
|
638
|
+
<block type="gateway" id="G13" mode="exclusive" desc="Verification result">
|
|
639
|
+
<branch test="${all_required_exist} == true" name="All files exist">
|
|
640
|
+
<block type="event" id="E13" action="log" level="info" desc="Log verification success">
|
|
641
|
+
<field name="message" value="Step 3 Status: COMPLETED - All required documents verified to exist"/>
|
|
642
|
+
</block>
|
|
643
|
+
</branch>
|
|
644
|
+
<branch default="true" name="Files missing">
|
|
645
|
+
<block type="event" id="E14" action="log" level="error" desc="Log verification failure">
|
|
646
|
+
<field name="message" value="Step 3 Status: FAILED - Missing files: ${missing_files}"/>
|
|
647
|
+
</block>
|
|
648
|
+
<block type="output" id="O-fail" desc="Failed output">
|
|
649
|
+
<field name="status" value="failed"/>
|
|
650
|
+
<field name="message" value="Verification failed - missing required documents"/>
|
|
651
|
+
</block>
|
|
652
|
+
</branch>
|
|
653
|
+
</block>
|
|
654
|
+
|
|
655
|
+
<block type="checkpoint" id="CP12" name="files-verified" desc="Files verified">
|
|
656
|
+
<field name="verify" value="${all_required_exist} == true"/>
|
|
657
|
+
</block>
|
|
609
658
|
|
|
610
659
|
<!-- ==================== STEP 4: CREATE COMPLETION MARKER ==================== -->
|
|
611
|
-
<
|
|
612
|
-
<
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
<
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
</
|
|
660
|
+
<block type="gateway" id="G14" mode="guard" desc="Pre-create check">
|
|
661
|
+
<branch test="${all_required_exist} == true" name="Can create marker">
|
|
662
|
+
<block type="task" id="B14" action="create-file" desc="Create done marker">
|
|
663
|
+
<field name="target" value="${output_path}/conventions.done"/>
|
|
664
|
+
<field name="content" value="{
|
|
665
|
+
"platform_id": "${platform_id}",
|
|
666
|
+
"worker_type": "conventions",
|
|
667
|
+
"status": "completed",
|
|
668
|
+
"documents_generated": ["INDEX.md", "tech-stack.md", "architecture.md", "conventions-design.md", "conventions-dev.md", "conventions-unit-test.md", "conventions-system-test.md", "conventions-build.md"],
|
|
669
|
+
"conventions_data_generated": ${generate_data_doc},
|
|
670
|
+
"analysis_file": "${platform_id}.analysis-conventions.json",
|
|
671
|
+
"completed_at": "${iso_timestamp}"
|
|
672
|
+
}"/>
|
|
673
|
+
</block>
|
|
674
|
+
<block type="event" id="E15" action="log" level="info" desc="Log done marker created">
|
|
675
|
+
<field name="message" value="Step 4 Status: COMPLETED - Done marker created"/>
|
|
676
|
+
</block>
|
|
677
|
+
</branch>
|
|
678
|
+
</block>
|
|
679
|
+
|
|
680
|
+
<block type="checkpoint" id="CP13" name="done-marker-created" desc="Done marker created">
|
|
681
|
+
<field name="verify" value="file.exists(${output_path}/conventions.done)"/>
|
|
682
|
+
</block>
|
|
634
683
|
|
|
635
684
|
<!-- ==================== STEP 5: GENERATE ANALYSIS COVERAGE REPORT ==================== -->
|
|
636
|
-
<task
|
|
637
|
-
<
|
|
638
|
-
<
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
"files_analyzed": {{topic_i18n_files}},
|
|
655
|
-
"notes": ""
|
|
685
|
+
<block type="task" id="B15-1" action="determine-output-dir" desc="Determine output directory">
|
|
686
|
+
<field name="completed_dir" value="${completed_dir}"/>
|
|
687
|
+
<field name="output_path" value="${output_path}"/>
|
|
688
|
+
<field name="output" var="report_output_dir" from="determination.dir"/>
|
|
689
|
+
</block>
|
|
690
|
+
|
|
691
|
+
<block type="task" id="B15-2" action="create-file" desc="Create analysis report">
|
|
692
|
+
<field name="target" value="${report_output_dir}/${platform_id}.analysis-conventions.json"/>
|
|
693
|
+
<field name="content" value="{
|
|
694
|
+
"platform_id": "${platform_id}",
|
|
695
|
+
"platform_type": "${platform_type}",
|
|
696
|
+
"worker_type": "conventions",
|
|
697
|
+
"analyzed_at": "${iso_timestamp}",
|
|
698
|
+
"topics": {
|
|
699
|
+
"i18n": {
|
|
700
|
+
"status": "${topic_i18n_status}",
|
|
701
|
+
"files_analyzed": ${topic_i18n_files},
|
|
702
|
+
"notes": ""
|
|
656
703
|
},
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
704
|
+
"authorization": {
|
|
705
|
+
"status": "${topic_auth_status}",
|
|
706
|
+
"files_analyzed": ${topic_auth_files},
|
|
707
|
+
"notes": ""
|
|
661
708
|
},
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
709
|
+
"menu_registration": {
|
|
710
|
+
"status": "${topic_menu_status}",
|
|
711
|
+
"files_analyzed": ${topic_menu_files},
|
|
712
|
+
"notes": ""
|
|
666
713
|
},
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
714
|
+
"data_dictionary": {
|
|
715
|
+
"status": "${topic_dict_status}",
|
|
716
|
+
"files_analyzed": ${topic_dict_files},
|
|
717
|
+
"notes": ""
|
|
671
718
|
},
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
719
|
+
"logging": {
|
|
720
|
+
"status": "${topic_logging_status}",
|
|
721
|
+
"files_analyzed": ${topic_logging_files},
|
|
722
|
+
"notes": ""
|
|
676
723
|
},
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
724
|
+
"api_request_layer": {
|
|
725
|
+
"status": "${topic_api_status}",
|
|
726
|
+
"files_analyzed": ${topic_api_files},
|
|
727
|
+
"notes": ""
|
|
681
728
|
},
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
729
|
+
"data_validation": {
|
|
730
|
+
"status": "${topic_validation_status}",
|
|
731
|
+
"files_analyzed": ${topic_validation_files},
|
|
732
|
+
"notes": ""
|
|
686
733
|
},
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
734
|
+
"file_upload": {
|
|
735
|
+
"status": "${topic_upload_status}",
|
|
736
|
+
"files_analyzed": ${topic_upload_files},
|
|
737
|
+
"notes": ""
|
|
691
738
|
}
|
|
692
739
|
},
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
740
|
+
"config_files_analyzed": ${config_files},
|
|
741
|
+
"source_dirs_scanned": ["${source_path}"],
|
|
742
|
+
"documents_generated": ["INDEX.md", "tech-stack.md", "architecture.md", "conventions-design.md", "conventions-dev.md", "conventions-unit-test.md", "conventions-system-test.md", "conventions-build.md"],
|
|
743
|
+
"coverage_summary": {
|
|
744
|
+
"topics_found": 0,
|
|
745
|
+
"topics_partial": 0,
|
|
746
|
+
"topics_not_found": 0,
|
|
747
|
+
"topics_total": 8,
|
|
748
|
+
"coverage_percent": 0
|
|
702
749
|
}
|
|
703
|
-
}
|
|
704
|
-
|
|
750
|
+
}"/>
|
|
751
|
+
</block>
|
|
705
752
|
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
753
|
+
<block type="checkpoint" id="CP14" name="analysis-report-generated" desc="Analysis report generated">
|
|
754
|
+
<field name="verify" value="file.exists(${report_output_dir}/${platform_id}.analysis-conventions.json)"/>
|
|
755
|
+
</block>
|
|
756
|
+
<block type="event" id="E16" action="log" level="info" desc="Log step 5 status">
|
|
757
|
+
<field name="message" value="Step 5 Status: COMPLETED - Analysis coverage report generated"/>
|
|
758
|
+
</block>
|
|
710
759
|
|
|
711
760
|
<!-- ==================== STEP 6: REPORT RESULTS ==================== -->
|
|
712
|
-
<
|
|
713
|
-
<
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
761
|
+
<block type="event" id="E17" action="log" level="info" desc="Log separator">
|
|
762
|
+
<field name="message" value="==============================================="/>
|
|
763
|
+
</block>
|
|
764
|
+
<block type="event" id="E18" action="log" level="info" desc="Log header">
|
|
765
|
+
<field name="message" value="Platform Convention Documents Generated: ${platform_id}"/>
|
|
766
|
+
</block>
|
|
767
|
+
<block type="event" id="E19" action="log" level="info" desc="Log INDEX">
|
|
768
|
+
<field name="message" value="- INDEX.md: ✓"/>
|
|
769
|
+
</block>
|
|
770
|
+
<block type="event" id="E20" action="log" level="info" desc="Log tech-stack">
|
|
771
|
+
<field name="message" value="- tech-stack.md: ✓"/>
|
|
772
|
+
</block>
|
|
773
|
+
<block type="event" id="E21" action="log" level="info" desc="Log architecture">
|
|
774
|
+
<field name="message" value="- architecture.md: ✓"/>
|
|
775
|
+
</block>
|
|
776
|
+
<block type="event" id="E22" action="log" level="info" desc="Log conventions-design">
|
|
777
|
+
<field name="message" value="- conventions-design.md: ✓"/>
|
|
778
|
+
</block>
|
|
779
|
+
<block type="event" id="E23" action="log" level="info" desc="Log conventions-dev">
|
|
780
|
+
<field name="message" value="- conventions-dev.md: ✓"/>
|
|
781
|
+
</block>
|
|
782
|
+
<block type="event" id="E24" action="log" level="info" desc="Log conventions-unit-test">
|
|
783
|
+
<field name="message" value="- conventions-unit-test.md: ✓"/>
|
|
784
|
+
</block>
|
|
785
|
+
<block type="event" id="E25" action="log" level="info" desc="Log conventions-system-test">
|
|
786
|
+
<field name="message" value="- conventions-system-test.md: ✓"/>
|
|
787
|
+
</block>
|
|
788
|
+
<block type="event" id="E26" action="log" level="info" desc="Log conventions-build">
|
|
789
|
+
<field name="message" value="- conventions-build.md: ✓"/>
|
|
790
|
+
</block>
|
|
791
|
+
<block type="event" id="E27" action="log" level="info" desc="Log conventions-data">
|
|
792
|
+
<field name="message" value="- conventions-data.md: ${generate_data_doc ? '✓' : 'SKIPPED'}"/>
|
|
793
|
+
</block>
|
|
794
|
+
<block type="event" id="E28" action="log" level="info" desc="Log analysis file">
|
|
795
|
+
<field name="message" value="- ${platform_id}.analysis-conventions.json: ✓"/>
|
|
796
|
+
</block>
|
|
797
|
+
<block type="event" id="E29" action="log" level="info" desc="Log output directory">
|
|
798
|
+
<field name="message" value="- Output Directory: ${output_path}"/>
|
|
799
|
+
</block>
|
|
800
|
+
<block type="event" id="E30" action="log" level="info" desc="Log footer">
|
|
801
|
+
<field name="message" value="==============================================="/>
|
|
802
|
+
</block>
|
|
803
|
+
|
|
804
|
+
<block type="output" id="O-vals" desc="Final output values">
|
|
805
|
+
<field name="status" value="success"/>
|
|
806
|
+
<field name="documents_generated" value="[INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md]"/>
|
|
807
|
+
<field name="analysis_file" value="${report_output_dir}/${platform_id}.analysis-conventions.json"/>
|
|
808
|
+
<field name="message" value="Convention documents generated for ${platform_id}"/>
|
|
809
|
+
</block>
|
|
810
|
+
|
|
811
|
+
<block type="checkpoint" id="CP15" name="workflow-complete" desc="Workflow complete">
|
|
812
|
+
<field name="verify" value="true"/>
|
|
813
|
+
</block>
|
|
738
814
|
|
|
739
815
|
<!-- ==================== FINAL OUTPUT ==================== -->
|
|
740
|
-
<output
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
816
|
+
<block type="output" id="O1" desc="Final workflow outputs">
|
|
817
|
+
<field name="status" from="step6-report-results.status"/>
|
|
818
|
+
<field name="documents_generated" from="step6-report-results.documents_generated"/>
|
|
819
|
+
<field name="analysis_file" from="step6-report-results.analysis_file"/>
|
|
820
|
+
<field name="message" from="step6-report-results.message"/>
|
|
821
|
+
</block>
|
|
744
822
|
|
|
745
823
|
<!-- ==================== ERROR HANDLING ==================== -->
|
|
746
|
-
<error-handler>
|
|
747
|
-
<catch type="file-not-found">
|
|
748
|
-
<event action="log" level="error"
|
|
749
|
-
|
|
750
|
-
|
|
824
|
+
<block type="error-handler" id="EH1" desc="Global error handling">
|
|
825
|
+
<catch error-type="file-not-found">
|
|
826
|
+
<block type="event" id="E-err1" action="log" level="error" desc="Log file not found">
|
|
827
|
+
<field name="message" value="File not found: ${error.file}"/>
|
|
828
|
+
</block>
|
|
829
|
+
<block type="output" id="O-err1" desc="Error output">
|
|
830
|
+
<field name="status" value="failed"/>
|
|
831
|
+
<field name="message" value="Required file not found: ${error.file}"/>
|
|
832
|
+
</block>
|
|
751
833
|
</catch>
|
|
752
|
-
<catch type="template-error">
|
|
753
|
-
<event action="log" level="error"
|
|
754
|
-
|
|
755
|
-
|
|
834
|
+
<catch error-type="template-error">
|
|
835
|
+
<block type="event" id="E-err2" action="log" level="error" desc="Log template error">
|
|
836
|
+
<field name="message" value="Template processing error: ${error.message}"/>
|
|
837
|
+
</block>
|
|
838
|
+
<block type="output" id="O-err2" desc="Error output">
|
|
839
|
+
<field name="status" value="failed"/>
|
|
840
|
+
<field name="message" value="Failed to process template: ${error.message}"/>
|
|
841
|
+
</block>
|
|
756
842
|
</catch>
|
|
757
|
-
<catch type="verification-failed">
|
|
758
|
-
<event action="log" level="error"
|
|
759
|
-
|
|
760
|
-
|
|
843
|
+
<catch error-type="verification-failed">
|
|
844
|
+
<block type="event" id="E-err3" action="log" level="error" desc="Log verification error">
|
|
845
|
+
<field name="message" value="Verification failed: ${error.message}"/>
|
|
846
|
+
</block>
|
|
847
|
+
<block type="output" id="O-err3" desc="Error output">
|
|
848
|
+
<field name="status" value="failed"/>
|
|
849
|
+
<field name="message" value="Document verification failed: ${error.message}"/>
|
|
850
|
+
</block>
|
|
761
851
|
</catch>
|
|
762
|
-
<catch type="context-limit">
|
|
763
|
-
<event action="log" level="warning"
|
|
764
|
-
|
|
765
|
-
|
|
852
|
+
<catch error-type="context-limit">
|
|
853
|
+
<block type="event" id="E-err4" action="log" level="warning" desc="Log context limit">
|
|
854
|
+
<field name="message" value="Context window running low - checkpoint saved"/>
|
|
855
|
+
</block>
|
|
856
|
+
<block type="output" id="O-err4" desc="Partial output">
|
|
857
|
+
<field name="status" value="partial"/>
|
|
858
|
+
<field name="message" value="Execution paused due to context limit. Checkpoint saved, can resume."/>
|
|
859
|
+
</block>
|
|
766
860
|
</catch>
|
|
767
861
|
<finally>
|
|
768
|
-
<event action="log" level="info"
|
|
862
|
+
<block type="event" id="E-finally" action="log" level="info" desc="Log workflow complete">
|
|
863
|
+
<field name="message" value="Workflow execution completed with status: ${status}"/>
|
|
864
|
+
</block>
|
|
769
865
|
</finally>
|
|
770
|
-
</
|
|
866
|
+
</block>
|
|
771
867
|
|
|
772
868
|
</workflow>
|
|
773
|
-
```
|
|
774
869
|
|
|
775
870
|
## Constraints
|
|
776
871
|
|
|
777
872
|
1. **DO NOT create temporary scripts, batch files, or workaround code files (`.py`, `.bat`, `.sh`, `.ps1`, etc.)** under any circumstances
|
|
778
|
-
2. **DO NOT analyze files outside the specified
|
|
779
|
-
3. **All content MUST be in the language specified by
|
|
873
|
+
2. **DO NOT analyze files outside the specified `${source_path}`**
|
|
874
|
+
3. **All content MUST be in the language specified by `${language}`**
|
|
780
875
|
4. **Use `search_replace` for section filling, NEVER rewrite entire document**
|
|
781
876
|
5. **Mermaid diagrams MUST follow the rules in `mermaid-rule.md`**
|
|
782
877
|
6. **All links MUST use relative paths, NEVER `file://` protocol**
|
|
@@ -790,22 +885,22 @@ When the task is complete, report the following:
|
|
|
790
885
|
**Status:** `success` | `partial` | `failed`
|
|
791
886
|
|
|
792
887
|
**Summary:**
|
|
793
|
-
- Platform:
|
|
794
|
-
- Type:
|
|
795
|
-
- Framework:
|
|
888
|
+
- Platform: `${platform_id}`
|
|
889
|
+
- Type: `${platform_type}`
|
|
890
|
+
- Framework: `${framework}`
|
|
796
891
|
- Documents generated: 8 required + (1 optional if data layer detected)
|
|
797
892
|
|
|
798
893
|
**Files Generated:**
|
|
799
|
-
-
|
|
800
|
-
-
|
|
801
|
-
-
|
|
802
|
-
-
|
|
803
|
-
-
|
|
804
|
-
-
|
|
805
|
-
-
|
|
806
|
-
-
|
|
807
|
-
-
|
|
808
|
-
-
|
|
894
|
+
- `${output_path}/INDEX.md` - Platform technology index
|
|
895
|
+
- `${output_path}/tech-stack.md` - Technology stack details
|
|
896
|
+
- `${output_path}/architecture.md` - Architecture conventions
|
|
897
|
+
- `${output_path}/conventions-design.md` - Design conventions
|
|
898
|
+
- `${output_path}/conventions-dev.md` - Development conventions
|
|
899
|
+
- `${output_path}/conventions-unit-test.md` - Unit testing conventions
|
|
900
|
+
- `${output_path}/conventions-system-test.md` - System testing conventions
|
|
901
|
+
- `${output_path}/conventions-build.md` - Build and deployment conventions
|
|
902
|
+
- `${output_path}/conventions-data.md` - Data conventions (optional)
|
|
903
|
+
- `${completed_dir}/${platform_id}.analysis-conventions.json` - Analysis coverage report
|
|
809
904
|
|
|
810
905
|
## Checklist
|
|
811
906
|
|
|
@@ -834,7 +929,7 @@ When the task is complete, report the following:
|
|
|
834
929
|
- [ ] **Mermaid compatibility**: No `style`, `direction`, `<br/>`, or nested subgraphs
|
|
835
930
|
- [ ] **Document completeness**: All 8 required documents exist (verified in Step 3)
|
|
836
931
|
- [ ] **Done marker integrity**: Done marker only created after verification
|
|
837
|
-
- [ ] **Analysis Coverage Report**:
|
|
932
|
+
- [ ] **Analysis Coverage Report**: `${platform_id}.analysis-conventions.json` generated
|
|
838
933
|
|
|
839
934
|
## CONTINUOUS EXECUTION RULES
|
|
840
935
|
|