speccrew 0.6.48 → 0.6.49

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.
@@ -32,10 +32,10 @@ Worker Agent (speccrew-task-worker)
32
32
  ---
33
33
 
34
34
  ## XML Workflow Definition
35
-
35
+ > **REQUIRED**: Before executing this workflow, read the XML workflow specification: `speccrew-workspace/docs/rules/xml-workflow-spec.md`
36
+ ```xml
37
+ <?xml version="1.0" encoding="UTF-8"?>
36
38
  <workflow id="techs-quality-check" status="pending" version="1.0" desc="Quality assurance for tech documentation">
37
- > **REQUIRED**: Before executing this workflow, read the XML workflow specification: `docs/rules/xml-workflow-spec.md`
38
-
39
39
  <!-- ============================================================
40
40
  Input Parameters Definition
41
41
  ============================================================ -->
@@ -81,30 +81,14 @@ Worker Agent (speccrew-task-worker)
81
81
  <!-- ============================================================
82
82
  Step 1: Read Generated Documentation
83
83
  ============================================================ -->
84
+ <!-- Step 1: Read Generated Documentation -->
84
85
  <block type="task" id="S1-B1" action="run-skill" status="pending" desc="Read all generated documentation files">
85
- <description>Read all generated documentation files in the platform directory</description>
86
- <required-documents>
87
- <file>{platform_dir}/INDEX.md</file>
88
- <file>{platform_dir}/tech-stack.md</file>
89
- <file>{platform_dir}/architecture.md</file>
90
- <file>{platform_dir}/conventions-design.md</file>
91
- <file>{platform_dir}/conventions-dev.md</file>
92
- <file>{platform_dir}/conventions-unit-test.md</file>
93
- <file>{platform_dir}/conventions-system-test.md</file>
94
- <file>{platform_dir}/conventions-build.md</file>
95
- </required-documents>
96
- <optional-documents>
97
- <file condition="backend OR has_data_layer">{platform_dir}/conventions-data.md</file>
98
- <file condition="frontend">{platform_dir}/ui-style/ui-style-guide.md</file>
99
- </optional-documents>
100
- <analysis-report>
101
- <file>{platform_id}.analysis.json</file>
102
- </analysis-report>
103
- <output var="documents_read"/>
104
- <record>
105
- <item>All files found</item>
106
- <item>File sizes</item>
107
- </record>
86
+ <field name="description">Read all generated documentation files in the platform directory</field>
87
+ <field name="required_documents">INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md</field>
88
+ <field name="optional_documents">conventions-data.md (backend OR has_data_layer), ui-style/ui-style-guide.md (frontend)</field>
89
+ <field name="analysis_report">{platform_id}.analysis.json</field>
90
+ <field name="output" var="documents_read"/>
91
+ <field name="record">All files found, File sizes</field>
108
92
  </block>
109
93
 
110
94
  <block type="checkpoint" id="CP1" name="documents_read" desc="All documents read">
@@ -115,65 +99,27 @@ Worker Agent (speccrew-task-worker)
115
99
  Step 2: Completeness Check
116
100
  ============================================================ -->
117
101
  <block type="task" id="S2-B1" action="run-skill" status="pending" desc="Perform completeness check">
118
- <description>Verify all expected documents and sections exist</description>
102
+ <field name="description">Verify all expected documents and sections exist</field>
119
103
 
120
104
  <!-- 2.1 Document Existence Check -->
121
- <subtask name="document_existence">
122
- <check table="platform_type">
123
- <row condition="all" required="INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md"/>
124
- <row condition="backend" additional="+ conventions-data.md"/>
125
- <row condition="web/mobile/desktop" additional="+ ui-style/ui-style-guide.md"/>
126
- </check>
127
- </subtask>
105
+ <!-- document_existence: Check documents based on platform_type -->
106
+ <field name="check">All platforms require: INDEX.md, tech-stack.md, architecture.md, conventions-design.md, conventions-dev.md, conventions-unit-test.md, conventions-system-test.md, conventions-build.md</field>
107
+ <field name="check">Backend platforms additionally require: conventions-data.md</field>
108
+ <field name="check">Web/mobile/desktop platforms additionally require: ui-style/ui-style-guide.md</field>
128
109
 
129
110
  <!-- 2.2 Section Completeness Check -->
130
- <subtask name="section_completeness">
131
- <document name="INDEX.md">
132
- <check-item>Platform summary</check-item>
133
- <check-item>Technology stack overview</check-item>
134
- <check-item>Navigation links to all convention documents</check-item>
135
- <check-item>Agent usage guide</check-item>
136
- </document>
137
- <document name="tech-stack.md">
138
- <check-item>Overview section</check-item>
139
- <check-item>Core Technologies table</check-item>
140
- <check-item>Dependencies section (grouped by category)</check-item>
141
- <check-item>Development Tools section</check-item>
142
- <check-item>Configuration Files list</check-item>
143
- </document>
144
- <document name="architecture.md">
145
- <check-item>Component/Module Architecture section</check-item>
146
- <check-item>State Management / Dependency Injection section</check-item>
147
- <check-item>API Integration / Module Organization section</check-item>
148
- <check-item>Styling Approach / Middleware section</check-item>
149
- </document>
150
- <document name="conventions-dev.md">
151
- <check-item>Naming Conventions section</check-item>
152
- <check-item>Directory Structure section</check-item>
153
- <check-item>Code Style section</check-item>
154
- <check-item>Import/Export Patterns section</check-item>
155
- <check-item>Pre-Development Checklist section</check-item>
156
- </document>
157
- <document name="conventions-build.md">
158
- <check-item>Build Tool &amp; Configuration section</check-item>
159
- <check-item>Environment Management section</check-item>
160
- <check-item>Build Profiles &amp; Outputs section</check-item>
161
- </document>
162
- </subtask>
111
+ <!-- section_completeness: Verify required sections in each document -->
112
+ <field name="check">INDEX.md must contain: Platform summary, Technology stack overview, Navigation links to all convention documents, Agent usage guide</field>
113
+ <field name="check">tech-stack.md must contain: Overview section, Core Technologies table, Dependencies section (grouped by category), Development Tools section, Configuration Files list</field>
114
+ <field name="check">architecture.md must contain: Component/Module Architecture section, State Management / Dependency Injection section, API Integration / Module Organization section, Styling Approach / Middleware section</field>
115
+ <field name="check">conventions-dev.md must contain: Naming Conventions section, Directory Structure section, Code Style section, Import/Export Patterns section, Pre-Development Checklist section</field>
116
+ <field name="check">conventions-build.md must contain: Build Tool &amp; Configuration section, Environment Management section, Build Profiles &amp; Outputs section</field>
163
117
 
164
118
  <!-- 2.3 Analysis Report Completeness -->
165
- <subtask name="analysis_report_completeness">
166
- <check file="{platform_id}.analysis.json">
167
- <check-item>platform_id field</check-item>
168
- <check-item>platform_type field</check-item>
169
- <check-item>analyzed_at timestamp</check-item>
170
- <check-item>topics object with all expected topics</check-item>
171
- <check-item>documents_generated array</check-item>
172
- <check-item>coverage_summary object</check-item>
173
- </check>
174
- </subtask>
175
-
176
- <output var="completeness_result"/>
119
+ <!-- analysis_report_completeness: Verify analysis.json structure -->
120
+ <field name="check">{platform_id}.analysis.json must contain: platform_id field, platform_type field, analyzed_at timestamp, topics object with all expected topics, documents_generated array, coverage_summary object</field>
121
+
122
+ <field name="output" var="completeness_result"/>
177
123
  </block>
178
124
 
179
125
  <block type="event" id="E2" action="log" level="info" desc="Completeness check result">
@@ -188,42 +134,38 @@ Worker Agent (speccrew-task-worker)
188
134
  Step 3: Cross-Validation
189
135
  ============================================================ -->
190
136
  <block type="task" id="S3-B1" action="run-skill" status="pending" desc="Perform cross-validation">
191
- <description>Verify information is consistent across documents and with source code</description>
137
+ <field name="description">Verify information is consistent across documents and with source code</field>
192
138
 
193
139
  <!-- 3.1 Version Consistency Check -->
194
- <subtask name="version_consistency">
195
- <action>Read {source_path}/package.json</action>
196
- <check>Framework versions match documentation</check>
197
- <check>Key dependency versions match documentation</check>
198
- <check>Build tool versions match documentation</check>
199
- <output var="version_checks"/>
200
- </subtask>
140
+ <!-- version_consistency: Read {source_path}/package.json and verify versions -->
141
+ <field name="action">Read {source_path}/package.json</field>
142
+ <field name="check">Framework versions match documentation</field>
143
+ <field name="check">Key dependency versions match documentation</field>
144
+ <field name="check">Build tool versions match documentation</field>
145
+ <field name="output" var="version_checks"/>
201
146
 
202
147
  <!-- 3.2 Dependency Reference Consistency -->
203
- <subtask name="dependency_consistency">
204
- <check>Each dependency in tech-stack.md exists in package.json</check>
205
- <check>Version format is consistent</check>
206
- <output var="dependency_checks"/>
207
- </subtask>
148
+ <!-- dependency_consistency: Verify dependencies exist and formats match -->
149
+ <field name="check">Each dependency in tech-stack.md exists in package.json</field>
150
+ <field name="check">Version format is consistent</field>
151
+ <field name="output" var="dependency_checks"/>
208
152
 
209
153
  <!-- 3.3 Cross-Document Reference Check -->
210
- <subtask name="cross_document_references">
211
- <check>INDEX.md links to all other documents</check>
212
- <check condition="frontend">conventions-design.md references ui-style/ui-style-guide.md</check>
213
- <check>All documents have consistent platform_id references</check>
214
- <check>All documents have consistent platform_type references</check>
215
- <output var="reference_checks"/>
216
- </subtask>
154
+ <!-- cross_document_references: Verify cross-references between documents -->
155
+ <field name="check">INDEX.md links to all other documents</field>
156
+ <field name="check">conventions-design.md references ui-style/ui-style-guide.md (for frontend)</field>
157
+ <field name="check">All documents have consistent platform_id references</field>
158
+ <field name="check">All documents have consistent platform_type references</field>
159
+ <field name="output" var="reference_checks"/>
217
160
 
218
161
  <!-- 3.4 Configuration File Reference Check -->
219
- <subtask name="config_file_references">
220
- <check>ESLint config path → file exists</check>
221
- <check>Prettier config path → file exists</check>
222
- <check>Build config path → file exists</check>
223
- <output var="config_checks"/>
224
- </subtask>
225
-
226
- <output var="cross_validation_result"/>
162
+ <!-- config_file_references: Verify config file paths point to existing files -->
163
+ <field name="check">ESLint config path → file exists</field>
164
+ <field name="check">Prettier config path → file exists</field>
165
+ <field name="check">Build config path → file exists</field>
166
+ <field name="output" var="config_checks"/>
167
+
168
+ <field name="output" var="cross_validation_result"/>
227
169
  </block>
228
170
 
229
171
  <block type="event" id="E3" action="log" level="info" desc="Cross-validation result">
@@ -238,42 +180,38 @@ Worker Agent (speccrew-task-worker)
238
180
  Step 4: Consistency Check
239
181
  ============================================================ -->
240
182
  <block type="task" id="S4-B1" action="run-skill" status="pending" desc="Perform consistency check">
241
- <description>Verify naming conventions and style are uniform across all documents</description>
183
+ <field name="description">Verify naming conventions and style are uniform across all documents</field>
242
184
 
243
185
  <!-- 4.1 Naming Convention Consistency -->
244
- <subtask name="naming_conventions">
245
- <check>Component naming (PascalCase vs camelCase) matches conventions-dev.md</check>
246
- <check>File naming conventions match conventions-dev.md</check>
247
- <check>Variable naming conventions match conventions-dev.md</check>
248
- <output var="naming_issues"/>
249
- </subtask>
186
+ <!-- naming_conventions: Check naming patterns match conventions-dev.md -->
187
+ <field name="check">Component naming (PascalCase vs camelCase) matches conventions-dev.md</field>
188
+ <field name="check">File naming conventions match conventions-dev.md</field>
189
+ <field name="check">Variable naming conventions match conventions-dev.md</field>
190
+ <field name="output" var="naming_issues"/>
250
191
 
251
192
  <!-- 4.2 Platform Terminology Consistency -->
252
- <subtask name="terminology_consistency">
253
- <check>Platform identifier is consistent (e.g., web-react vs react-web)</check>
254
- <check>Framework name is consistent (e.g., React vs react)</check>
255
- <check>Language name is consistent (e.g., TypeScript vs Typescript)</check>
256
- <output var="terminology_issues"/>
257
- </subtask>
193
+ <!-- terminology_consistency: Verify consistent terminology usage -->
194
+ <field name="check">Platform identifier is consistent (e.g., web-react vs react-web)</field>
195
+ <field name="check">Framework name is consistent (e.g., React vs react)</field>
196
+ <field name="check">Language name is consistent (e.g., TypeScript vs Typescript)</field>
197
+ <field name="output" var="terminology_issues"/>
258
198
 
259
199
  <!-- 4.3 Code Style Consistency -->
260
- <subtask name="code_style_consistency">
261
- <check>Quote style matches conventions-dev.md (single vs double)</check>
262
- <check>Semicolon usage matches conventions-dev.md</check>
263
- <check>Indentation style matches conventions-dev.md</check>
264
- <output var="style_issues"/>
265
- </subtask>
200
+ <!-- code_style_consistency: Verify code style matches conventions-dev.md -->
201
+ <field name="check">Quote style matches conventions-dev.md (single vs double)</field>
202
+ <field name="check">Semicolon usage matches conventions-dev.md</field>
203
+ <field name="check">Indentation style matches conventions-dev.md</field>
204
+ <field name="output" var="style_issues"/>
266
205
 
267
206
  <!-- 4.4 UI Reference Consistency (Frontend Platforms) -->
268
207
  <block type="gateway" id="G4" mode="guard" test="${platform_type} IN ['web', 'mobile', 'desktop']" desc="Check UI reference for frontend platforms">
269
- <subtask name="ui_reference_consistency">
270
- <check>conventions-design.md contains reference to ui-style/ui-style-guide.md</check>
271
- <check>ui_style_analysis_level indicator exists</check>
272
- <output var="ui_reference_issues"/>
273
- </subtask>
208
+ <!-- ui_reference_consistency: Verify UI style references for frontend platforms -->
209
+ <field name="check">conventions-design.md contains reference to ui-style/ui-style-guide.md</field>
210
+ <field name="check">ui_style_analysis_level indicator exists</field>
211
+ <field name="output" var="ui_reference_issues"/>
274
212
  </block>
275
213
 
276
- <output var="consistency_result"/>
214
+ <field name="output" var="consistency_result"/>
277
215
  </block>
278
216
 
279
217
  <block type="event" id="E4" action="log" level="info" desc="Consistency check result">
@@ -288,45 +226,35 @@ Worker Agent (speccrew-task-worker)
288
226
  Step 5: Source Traceability Check
289
227
  ============================================================ -->
290
228
  <block type="task" id="S5-B1" action="run-skill" status="pending" desc="Perform source traceability check">
291
- <description>Verify all documents properly cite their sources</description>
229
+ <field name="description">Verify all documents properly cite their sources</field>
292
230
 
293
231
  <!-- 5.1 File Reference Block Check -->
294
- <subtask name="file_reference_blocks">
295
- <loop over="documents" as="doc">
296
- <check>File reference block exists at document beginning</check>
297
- <check>Contains list of referenced files</check>
298
- <check>File paths use relative paths (NOT absolute or file://)</check>
299
- </loop>
300
- <output var="cite_block_checks"/>
301
- </subtask>
232
+ <!-- file_reference_blocks: For each document, verify file reference blocks -->
233
+ <field name="check">File reference block exists at document beginning</field>
234
+ <field name="check">Contains list of referenced files</field>
235
+ <field name="check">File paths use relative paths (NOT absolute or file://)</field>
236
+ <field name="output" var="cite_block_checks"/>
302
237
 
303
238
  <!-- 5.2 Diagram Source Annotation Check -->
304
- <subtask name="diagram_source_annotations">
305
- <loop over="mermaid_diagrams" as="diagram">
306
- <check>**Diagram Source** annotation exists after diagram</check>
307
- <check>Source file path is provided</check>
308
- <check>Path uses relative format</check>
309
- </loop>
310
- <output var="diagram_source_checks"/>
311
- </subtask>
239
+ <!-- diagram_source_annotations: For each Mermaid diagram, verify source annotations -->
240
+ <field name="check">**Diagram Source** annotation exists after diagram</field>
241
+ <field name="check">Source file path is provided</field>
242
+ <field name="check">Path uses relative format</field>
243
+ <field name="output" var="diagram_source_checks"/>
312
244
 
313
245
  <!-- 5.3 Section Source Annotation Check -->
314
- <subtask name="section_source_annotations">
315
- <loop over="major_sections" as="section">
316
- <check>**Section Source** annotation exists at section end OR generic guidance note is present</check>
317
- </loop>
318
- <output var="section_source_checks"/>
319
- </subtask>
246
+ <!-- section_source_annotations: For each major section, verify source annotations -->
247
+ <field name="check">**Section Source** annotation exists at section end OR generic guidance note is present</field>
248
+ <field name="output" var="section_source_checks"/>
320
249
 
321
250
  <!-- 5.4 Path Format Validation -->
322
- <subtask name="path_format_validation">
323
- <check>No paths start with drive letter (e.g., d:/, C:\)</check>
324
- <check>No paths use file:// protocol</check>
325
- <check>Correct relative depth used (e.g., ../../../../ for 4 levels)</check>
326
- <output var="path_format_issues"/>
327
- </subtask>
328
-
329
- <output var="traceability_result"/>
251
+ <!-- path_format_validation: Verify path formats are correct -->
252
+ <field name="check">No paths start with drive letter (e.g., d:/, C:\)</field>
253
+ <field name="check">No paths use file:// protocol</field>
254
+ <field name="check">Correct relative depth used (e.g., ../../../../ for 4 levels)</field>
255
+ <field name="output" var="path_format_issues"/>
256
+
257
+ <field name="output" var="traceability_result"/>
330
258
  </block>
331
259
 
332
260
  <block type="event" id="E5" action="log" level="info" desc="Source traceability result">
@@ -341,38 +269,31 @@ Worker Agent (speccrew-task-worker)
341
269
  Step 6: Mermaid Compatibility Check
342
270
  ============================================================ -->
343
271
  <block type="task" id="S6-B1" action="run-skill" status="pending" desc="Perform Mermaid compatibility check">
344
- <description>Verify all Mermaid diagrams are compatible with standard rendering</description>
272
+ <field name="description">Verify all Mermaid diagrams are compatible with standard rendering</field>
345
273
 
346
274
  <!-- 6.1 Forbidden Elements Check -->
347
- <subtask name="forbidden_elements">
348
- <loop over="mermaid_diagrams" as="diagram">
349
- <check>No `style` definitions</check>
350
- <check>No `direction` keyword</check>
351
- <check>No HTML tags (e.g., &lt;br/>, &lt;div>)</check>
352
- <check>No nested subgraphs</check>
353
- </loop>
354
- <output var="forbidden_element_issues"/>
355
- </subtask>
275
+ <!-- forbidden_elements: For each Mermaid diagram, check for forbidden elements -->
276
+ <field name="check">No `style` definitions</field>
277
+ <field name="check">No `direction` keyword</field>
278
+ <field name="check">No HTML tags (e.g., &lt;br/>, &lt;div>)</field>
279
+ <field name="check">No nested subgraphs</field>
280
+ <field name="output" var="forbidden_element_issues"/>
356
281
 
357
282
  <!-- 6.2 Syntax Validation -->
358
- <subtask name="syntax_validation">
359
- <loop over="mermaid_diagrams" as="diagram">
360
- <check>Valid diagram type declaration</check>
361
- <check>Properly closed brackets</check>
362
- <check>Valid node syntax</check>
363
- </loop>
364
- <output var="syntax_issues"/>
365
- </subtask>
283
+ <!-- syntax_validation: For each Mermaid diagram, verify syntax -->
284
+ <field name="check">Valid diagram type declaration</field>
285
+ <field name="check">Properly closed brackets</field>
286
+ <field name="check">Valid node syntax</field>
287
+ <field name="output" var="syntax_issues"/>
366
288
 
367
289
  <!-- 6.3 Diagram Type Usage -->
368
- <subtask name="diagram_type_usage">
369
- <check condition="structure">Use graph TB/LR for structure diagrams</check>
370
- <check condition="process">Use flowchart TD for process diagrams</check>
371
- <check condition="api">Use sequenceDiagram for API diagrams</check>
372
- <output var="type_usage_issues"/>
373
- </subtask>
374
-
375
- <output var="mermaid_result"/>
290
+ <!-- diagram_type_usage: Verify correct diagram types are used -->
291
+ <field name="check">Use graph TB/LR for structure diagrams</field>
292
+ <field name="check">Use flowchart TD for process diagrams</field>
293
+ <field name="check">Use sequenceDiagram for API diagrams</field>
294
+ <field name="output" var="type_usage_issues"/>
295
+
296
+ <field name="output" var="mermaid_result"/>
376
297
  </block>
377
298
 
378
299
  <block type="event" id="E6" action="log" level="info" desc="Mermaid compatibility result">
@@ -387,9 +308,9 @@ Worker Agent (speccrew-task-worker)
387
308
  Step 7: Generate Quality Report
388
309
  ============================================================ -->
389
310
  <block type="task" id="S7-B1" action="run-script" status="pending" desc="Generate quality report JSON">
390
- <description>Generate comprehensive quality report in JSON format</description>
391
- <output-file>{platform_dir}/quality-report.json</output-file>
392
- <format>
311
+ <field name="description">Generate comprehensive quality report in JSON format</field>
312
+ <field name="output_file">{platform_dir}/quality-report.json</field>
313
+ <field name="format">
393
314
  {
394
315
  "platform_id": "{platform_id}",
395
316
  "platform_type": "{platform_type}",
@@ -435,13 +356,9 @@ Worker Agent (speccrew-task-worker)
435
356
  },
436
357
  "recommendations": []
437
358
  }
438
- </format>
439
- <quality-score-calculation>
440
- <formula>quality_score = (passed / total_checks) * 100</formula>
441
- <warning-penalty>Warnings count as 0.5 towards failed</warning-penalty>
442
- <critical-penalty>Critical failures (missing required documents) deduct 10 points each</critical-penalty>
443
- </quality-score-calculation>
444
- <output var="quality_report"/>
359
+ </field>
360
+ <field name="quality_score_calculation">quality_score = (passed / total_checks) * 100; Warnings count as 0.5 towards failed; Critical failures (missing required documents) deduct 10 points each</field>
361
+ <field name="output" var="quality_report"/>
445
362
  </block>
446
363
 
447
364
  <block type="checkpoint" id="CP7" name="quality_report_generated" desc="Quality report generated">
@@ -452,12 +369,10 @@ Worker Agent (speccrew-task-worker)
452
369
  Step 8: Write Completion Marker
453
370
  ============================================================ -->
454
371
  <block type="task" id="S8-B1" action="run-script" status="pending" desc="Write completion marker">
455
- <description>Create completion marker file to signal quality check completion</description>
456
- <validation>
457
- <rule level="mandatory">Verify quality-report.json exists before writing marker</rule>
458
- </validation>
459
- <output-file>{platform_dir}/quality-done.json</output-file>
460
- <format>
372
+ <field name="description">Create completion marker file to signal quality check completion</field>
373
+ <field name="validation">MUST verify quality-report.json exists before writing marker</field>
374
+ <field name="output_file">{platform_dir}/quality-done.json</field>
375
+ <field name="format">
461
376
  {
462
377
  "platform_id": "{platform_id}",
463
378
  "status": "completed",
@@ -465,12 +380,9 @@ Worker Agent (speccrew-task-worker)
465
380
  "report_path": "quality-report.json",
466
381
  "completed_at": "{ISO 8601 timestamp}"
467
382
  }
468
- </format>
469
- <status-values>
470
- <value name="completed">Quality check finished successfully</value>
471
- <value name="failed">Critical error during quality check</value>
472
- </status-values>
473
- <output var="completion_marker"/>
383
+ </field>
384
+ <field name="status_values">completed: Quality check finished successfully; failed: Critical error during quality check</field>
385
+ <field name="output" var="completion_marker"/>
474
386
  </block>
475
387
 
476
388
  <block type="event" id="E8" action="log" level="info" desc="Quality check complete">
@@ -498,12 +410,7 @@ Worker Agent (speccrew-task-worker)
498
410
  <field name="quality_score" from="${quality_report.summary.quality_score}" type="number"/>
499
411
  <field name="quality_report" from="${platform_dir}/quality-report.json" type="string"/>
500
412
  <field name="completion_marker" from="${platform_dir}/quality-done.json" type="string"/>
501
- <field name="summary">
502
- <total_checks from="${quality_report.summary.total_checks}"/>
503
- <passed from="${quality_report.summary.passed}"/>
504
- <warnings from="${quality_report.summary.warnings}"/>
505
- <failed from="${quality_report.summary.failed}"/>
506
- </field>
413
+ <field name="summary">total_checks: ${quality_report.summary.total_checks}, passed: ${quality_report.summary.passed}, warnings: ${quality_report.summary.warnings}, failed: ${quality_report.summary.failed}</field>
507
414
  </block>
508
415
 
509
416
  <!-- ============================================================
@@ -545,6 +452,7 @@ Worker Agent (speccrew-task-worker)
545
452
  </block>
546
453
 
547
454
  </workflow>
455
+ ```
548
456
 
549
457
  ---
550
458