speccrew 0.6.53 → 0.6.55
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.
|
@@ -385,6 +385,34 @@ Before executing the workflow, verify the following inputs:
|
|
|
385
385
|
<field name="message" value="Step 5a Status: COMPLETED - Template copied to ${documentPath}, ready for section filling"/>
|
|
386
386
|
</block>
|
|
387
387
|
|
|
388
|
+
<!-- ==================== STEP 5-DYNAMIC: DYNAMIC SECTION GENERATION ==================== -->
|
|
389
|
+
<!-- Dynamic Section Generation Rule -->
|
|
390
|
+
<block type="rule" id="R-DYNAMIC-SECTIONS" level="mandatory" desc="Dynamic section generation rule">
|
|
391
|
+
<field name="text">BEFORE filling template sections, you MUST first count identified items (endpoints, components, etc.) and dynamically create the corresponding number of sections in the document.</field>
|
|
392
|
+
<field name="text">Step 1: Copy template skeleton to target path</field>
|
|
393
|
+
<field name="text">Step 2: For each identified endpoint/component, insert a new numbered sub-section (e.g., 2.1, 2.2, 2.3...) into the document</field>
|
|
394
|
+
<field name="text">Step 3: Fill each sub-section with the specific endpoint/component details</field>
|
|
395
|
+
<field name="text">NEVER rely on fixed template sections alone — the number of sections MUST match the number of identified items</field>
|
|
396
|
+
</block>
|
|
397
|
+
|
|
398
|
+
<!-- Dynamically Generate Endpoint Sections -->
|
|
399
|
+
<block type="loop" id="L-ENDPOINT-SECTIONS" over="${endpoints}" as="endpoint" desc="Dynamically generate a section for each API endpoint">
|
|
400
|
+
<block type="task" id="B-EP-SECTION" action="generate" desc="Insert endpoint sub-section into document">
|
|
401
|
+
<field name="target" value="${documentPath}"/>
|
|
402
|
+
<field name="content">For endpoint ${endpoint.method} ${endpoint.path}: insert a ## 2.X sub-section containing Endpoint Information table, Request Parameters, Response Data, Business Flow, and Error Codes</field>
|
|
403
|
+
<field name="output" var="section_${endpoint.index}"/>
|
|
404
|
+
</block>
|
|
405
|
+
</block>
|
|
406
|
+
|
|
407
|
+
<!-- Verify Section Count Matches Endpoint Count -->
|
|
408
|
+
<block type="checkpoint" id="CP-SECTIONS-COUNT" desc="Verify section count matches endpoint count">
|
|
409
|
+
<field name="verify" value="Number of generated 2.X sections == ${endpoints.length}"/>
|
|
410
|
+
</block>
|
|
411
|
+
|
|
412
|
+
<block type="event" id="E-DYNAMIC" action="log" level="info" desc="Log dynamic sections status">
|
|
413
|
+
<field name="message" value="Step 5-Dynamic Status: COMPLETED - Generated ${endpoints.length} endpoint sections dynamically"/>
|
|
414
|
+
</block>
|
|
415
|
+
|
|
388
416
|
<!-- ==================== STEP 5B: FILL EACH SECTION USING SEARCH_REPLACE ==================== -->
|
|
389
417
|
<!-- Calculate Dynamic Path Prefix -->
|
|
390
418
|
<block type="task" id="B17" action="calculate-path-prefix" desc="Calculate path prefix">
|
|
@@ -132,7 +132,7 @@ Stage 4: System Summary
|
|
|
132
132
|
<field name="max_concurrent_workers" required="false" type="number" default="5" desc="Maximum parallel Worker count"/>
|
|
133
133
|
<field name="workspace_path" required="true" type="string" desc="Absolute path to speccrew-workspace directory"/>
|
|
134
134
|
<field name="sync_state_bizs_dir" required="true" type="string" desc="Absolute path to knowledges/base/sync-state/knowledge-bizs/"/>
|
|
135
|
-
<field name="
|
|
135
|
+
<field name="speccrew_skills_dir" required="true" type="string" desc="Absolute path to .speccrew/skills/ directory containing skill scripts"/>
|
|
136
136
|
<field name="configs_dir" required="true" type="string" desc="Absolute path to docs/configs/ directory"/>
|
|
137
137
|
<field name="graph_root" required="false" type="string" desc="Graph data output root path (absolute path preferred)" default="${workspace_path}/knowledges/bizs/graph"/>
|
|
138
138
|
<field name="completed_dir" required="true" type="string" desc="Marker file output directory for Worker results (absolute path required)"/>
|
|
@@ -263,6 +263,10 @@ Continue with knowledge base generation?
|
|
|
263
263
|
<field name="verify" value="${platforms.length} > 0"/>
|
|
264
264
|
</block>
|
|
265
265
|
|
|
266
|
+
<block type="task" id="S0-B5" action="run-script" status="pending" desc="Update Stage 0 progress to completed">
|
|
267
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage0 --status completed --output "Detected ${platforms.length} platforms"</field>
|
|
268
|
+
</block>
|
|
269
|
+
|
|
266
270
|
<block type="event" id="S0-E4" action="log" level="info" desc="Report detected platform list">
|
|
267
271
|
<field name="message">Detected ${platforms.length} platforms: ${platforms.names}</field>
|
|
268
272
|
</block>
|
|
@@ -301,6 +305,10 @@ Continue with knowledge base generation?
|
|
|
301
305
|
<field name="file" value="${sync_state_bizs_dir}/.progress.json"/>
|
|
302
306
|
<field name="verify" value="true"/>
|
|
303
307
|
</block>
|
|
308
|
+
|
|
309
|
+
<block type="task" id="S1a-B2" action="run-script" status="pending" desc="Update Stage 1a progress to completed">
|
|
310
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1a --status completed --output "Entry directories recognized for all platforms"</field>
|
|
311
|
+
</block>
|
|
304
312
|
</sequence>
|
|
305
313
|
|
|
306
314
|
<!-- ============================================================
|
|
@@ -316,7 +324,7 @@ Continue with knowledge base generation?
|
|
|
316
324
|
<block type="loop" id="S1b-L1" over="${platforms}" as="platform" desc="Generate Feature inventory for each platform">
|
|
317
325
|
<!-- Step 1: Read platform mapping config -->
|
|
318
326
|
<block type="task" id="S1b-B1" action="run-script" status="pending" desc="Read platform mapping config">
|
|
319
|
-
<field name="command">node "${
|
|
327
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-init-features/scripts/generate-inventory.js"</field>
|
|
320
328
|
<field name="arg">--entryDirsFile</field>
|
|
321
329
|
<field name="arg">${sync_state_bizs_dir}/entry-dirs-${platform.platformId}.json</field>
|
|
322
330
|
<field name="output" var="features_${platform.platformId}"/>
|
|
@@ -333,6 +341,10 @@ Continue with knowledge base generation?
|
|
|
333
341
|
<field name="verify" value="${all_features.length} > 0"/>
|
|
334
342
|
</block>
|
|
335
343
|
|
|
344
|
+
<block type="task" id="S1b-B2" action="run-script" status="pending" desc="Update Stage 1b progress to completed">
|
|
345
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1b --status completed --output "${feature_count} features across ${platform_count} platforms"</field>
|
|
346
|
+
</block>
|
|
347
|
+
|
|
336
348
|
<block type="event" id="S1b-E1" action="log" level="info" desc="Report Feature inventory statistics">
|
|
337
349
|
<field name="message">Feature inventory initialized. ${feature_count} features across ${platform_count} platforms.</field>
|
|
338
350
|
</block>
|
|
@@ -352,7 +364,7 @@ Continue with knowledge base generation?
|
|
|
352
364
|
<branch test="${sync_mode} == 'incremental'" name="Incremental mode">
|
|
353
365
|
<!-- Step 1: Execute Feature merge -->
|
|
354
366
|
<block type="task" id="S1c-B1" action="run-script" status="pending" desc="Merge new and existing Feature inventories">
|
|
355
|
-
<field name="command">node "${
|
|
367
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/merge-features.js"</field>
|
|
356
368
|
<field name="arg">--syncStatePath</field>
|
|
357
369
|
<field name="arg">${sync_state_bizs_dir}</field>
|
|
358
370
|
<field name="arg">--completedDir</field>
|
|
@@ -373,7 +385,7 @@ Continue with knowledge base generation?
|
|
|
373
385
|
|
|
374
386
|
<!-- Step 3: Mark stale Features -->
|
|
375
387
|
<block type="task" id="S1c-B2" action="run-script" status="pending" desc="Clean up documents and markers for deleted Features">
|
|
376
|
-
<field name="command">node "${
|
|
388
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/mark-stale.js"</field>
|
|
377
389
|
<field name="arg">--syncStatePath</field>
|
|
378
390
|
<field name="arg">${sync_state_bizs_dir}</field>
|
|
379
391
|
<field name="arg">--completedDir</field>
|
|
@@ -391,13 +403,21 @@ Continue with knowledge base generation?
|
|
|
391
403
|
<field name="file" value="${sync_state_bizs_dir}/.progress.json"/>
|
|
392
404
|
<field name="passed" value="true"/>
|
|
393
405
|
</block>
|
|
406
|
+
|
|
407
|
+
<block type="task" id="S1c-B3" action="run-script" status="pending" desc="Update Stage 1c progress to completed">
|
|
408
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage1c --status completed</field>
|
|
409
|
+
</block>
|
|
394
410
|
</sequence>
|
|
395
411
|
|
|
396
412
|
<!-- ============================================================
|
|
397
413
|
Stage 2: Feature Analysis (Batch Processing)
|
|
398
414
|
============================================================ -->
|
|
399
415
|
<sequence id="S2" name="Stage 2: Feature Analysis" status="pending" desc="Batch process Feature analysis, dispatch Workers to execute">
|
|
400
|
-
|
|
416
|
+
|
|
417
|
+
<block type="task" id="S2-B-Start" action="run-script" status="pending" desc="Update Stage 2 progress to in_progress">
|
|
418
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage2 --status in_progress</field>
|
|
419
|
+
</block>
|
|
420
|
+
|
|
401
421
|
<block type="rule" id="S2-R1" level="mandatory" desc="Stage 2 mandatory rules">
|
|
402
422
|
<field name="text">MUST use batch-orchestrator for batch management — DO NOT manually track batches</field>
|
|
403
423
|
<field name="text">MUST dispatch Workers for feature analysis — DO NOT analyze features yourself</field>
|
|
@@ -426,7 +446,7 @@ Continue with knowledge base generation?
|
|
|
426
446
|
|
|
427
447
|
<!-- Step 1: Get next batch -->
|
|
428
448
|
<block type="task" id="S2-B1" action="run-script" status="pending" desc="Get next batch of pending Features">
|
|
429
|
-
<field name="command">node "${
|
|
449
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" get-batch</field>
|
|
430
450
|
<field name="arg">--syncStatePath</field>
|
|
431
451
|
<field name="arg">${sync_state_bizs_dir}</field>
|
|
432
452
|
<field name="arg">--batchSize</field>
|
|
@@ -598,7 +618,7 @@ Requirements:
|
|
|
598
618
|
|
|
599
619
|
<!-- Step 3: Process batch results -->
|
|
600
620
|
<block type="task" id="S2-B3" action="run-script" status="pending" desc="Collect and process batch Worker results">
|
|
601
|
-
<field name="command">node "${
|
|
621
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/batch-orchestrator.js" process-results</field>
|
|
602
622
|
<field name="arg">--syncStatePath</field>
|
|
603
623
|
<field name="arg">${sync_state_bizs_dir}</field>
|
|
604
624
|
<field name="arg">--graphRoot</field>
|
|
@@ -620,6 +640,10 @@ Requirements:
|
|
|
620
640
|
<field name="verify" value="${pending_features.length} == 0"/>
|
|
621
641
|
</block>
|
|
622
642
|
|
|
643
|
+
<block type="task" id="S2-B-End" action="run-script" status="pending" desc="Update Stage 2 progress to completed">
|
|
644
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage2 --status completed --output "${analyzed_count} features analyzed"</field>
|
|
645
|
+
</block>
|
|
646
|
+
|
|
623
647
|
<block type="event" id="S2-E-Final" action="log" level="info" desc="Stage 2 complete">
|
|
624
648
|
<field name="message">Stage 2 Milestone: Feature analysis complete. ${analyzed_count} features analyzed, ${failed_count} failed. ${graph_count} graph data files generated.</field>
|
|
625
649
|
</block>
|
|
@@ -684,6 +708,10 @@ Requirements:
|
|
|
684
708
|
<field name="passed" value="true"/>
|
|
685
709
|
</block>
|
|
686
710
|
|
|
711
|
+
<block type="task" id="S3-B5" action="run-script" status="pending" desc="Update Stage 3 progress to completed">
|
|
712
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage3 --status completed --output "${module_count} modules summarized"</field>
|
|
713
|
+
</block>
|
|
714
|
+
|
|
687
715
|
<block type="event" id="S3-E1" action="log" level="info" desc="Stage 3 complete">
|
|
688
716
|
<field name="message">Stage 3 Milestone: Module summaries complete. ${module_count} modules summarized.</field>
|
|
689
717
|
</block>
|
|
@@ -739,6 +767,10 @@ Requirements:
|
|
|
739
767
|
<block type="event" id="S35-E2" action="log" level="info" desc="Stage 3.5 complete">
|
|
740
768
|
<field name="message">Stage 3.5 Milestone: UI style patterns extracted. ${pattern_count} patterns extracted from ${frontend_platform_count} platforms.</field>
|
|
741
769
|
</block>
|
|
770
|
+
|
|
771
|
+
<block type="task" id="S35-B2" action="run-script" status="pending" desc="Update Stage 3.5 progress to completed">
|
|
772
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage3.5 --status completed --output "${pattern_count} patterns extracted"</field>
|
|
773
|
+
</block>
|
|
742
774
|
</sequence>
|
|
743
775
|
|
|
744
776
|
<!-- ============================================================
|
|
@@ -786,6 +818,10 @@ Requirements:
|
|
|
786
818
|
<field name="passed" value="true"/>
|
|
787
819
|
</block>
|
|
788
820
|
|
|
821
|
+
<block type="task" id="S4-B3" action="run-script" status="pending" desc="Update Stage 4 progress to completed">
|
|
822
|
+
<field name="command">node "${workspace_path}/scripts/update-progress.js" update-workflow --file "${sync_state_bizs_dir}/WORKFLOW-PROGRESS.json" --stage Stage4 --status completed --output "System overview generated"</field>
|
|
823
|
+
</block>
|
|
824
|
+
|
|
789
825
|
<block type="event" id="S4-E1" action="log" level="info" desc="Stage 4 complete">
|
|
790
826
|
<field name="message">Stage 4 Milestone: System overview generated. All stages complete. Pipeline finished successfully.</field>
|
|
791
827
|
</block>
|
|
@@ -803,7 +839,7 @@ Requirements:
|
|
|
803
839
|
<field name="message">Worker ${error.worker} failed: ${error.message}</field>
|
|
804
840
|
</block>
|
|
805
841
|
<block type="task" id="EH1-B1" action="run-script" desc="Update failed status">
|
|
806
|
-
<field name="command">node "${
|
|
842
|
+
<field name="command">node "${speccrew_skills_dir}/speccrew-knowledge-bizs-dispatch/scripts/update-feature-status.js"</field>
|
|
807
843
|
<field name="arg">--featureId</field>
|
|
808
844
|
<field name="arg">${error.feature_id}</field>
|
|
809
845
|
<field name="arg">--status</field>
|
|
@@ -72,7 +72,7 @@ Analyze one specific UI feature from source code, extract business functionality
|
|
|
72
72
|
}
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
> **Note**: Graph data
|
|
75
|
+
> **Note**: Graph data (.graph.json) is handled by `speccrew-knowledge-bizs-ui-graph` Skill. This Skill generates feature documentation AND writes `.done.json` completion marker.
|
|
76
76
|
|
|
77
77
|
## Workflow
|
|
78
78
|
|
|
@@ -306,7 +306,31 @@ Analyze one specific UI feature from source code, extract business functionality
|
|
|
306
306
|
<field name="message">Step 5a Status: COMPLETED - Template copied to ${documentPath}</field>
|
|
307
307
|
</block>
|
|
308
308
|
</sequence>
|
|
309
|
-
|
|
309
|
+
|
|
310
|
+
<!-- ==================== STEP 5-MID: DYNAMIC SECTION GENERATION ==================== -->
|
|
311
|
+
<!-- Rule: Dynamic section generation before filling fixed sections -->
|
|
312
|
+
<block type="rule" id="R-DYNAMIC-SECTIONS" level="mandatory" desc="Dynamic section generation rule">
|
|
313
|
+
<field name="text">BEFORE filling template sections, you MUST first count identified UI components and dynamically create the corresponding number of sections in the document.</field>
|
|
314
|
+
<field name="text">Step 1: Copy template skeleton to target path</field>
|
|
315
|
+
<field name="text">Step 2: For each identified UI component/area, insert a new numbered sub-section (e.g., 2.1, 2.2, 2.3...) into the document</field>
|
|
316
|
+
<field name="text">Step 3: Fill each sub-section with the specific component details (wireframe, interactions, events)</field>
|
|
317
|
+
<field name="text">NEVER rely on fixed template sections alone — the number of sections MUST match the number of identified UI components</field>
|
|
318
|
+
</block>
|
|
319
|
+
|
|
320
|
+
<!-- Loop: Dynamically generate a section for each UI component -->
|
|
321
|
+
<block type="loop" id="L-COMPONENT-SECTIONS" over="${analysisResult.components}" as="component" desc="Dynamically generate a section for each UI component">
|
|
322
|
+
<block type="task" id="B-COMP-SECTION" action="generate" desc="Insert component sub-section into document">
|
|
323
|
+
<field name="target" value="${documentPath}"/>
|
|
324
|
+
<field name="content">For component ${component.name} (type: ${component.type}): insert a ## 2.X sub-section containing Component Wireframe, Props/Events table, Interaction Flow, and State Management</field>
|
|
325
|
+
<field name="output" var="section_${component.index}"/>
|
|
326
|
+
</block>
|
|
327
|
+
</block>
|
|
328
|
+
|
|
329
|
+
<!-- Checkpoint: Verify section count matches component count -->
|
|
330
|
+
<block type="checkpoint" id="CP-SECTIONS-COUNT" desc="Verify section count matches component count">
|
|
331
|
+
<field name="verify">Number of generated 2.X sections == ${analysisResult.components.length}</field>
|
|
332
|
+
</block>
|
|
333
|
+
|
|
310
334
|
<!-- ==================== STEP 5B: FILL EACH SECTION USING SEARCH_REPLACE ==================== -->
|
|
311
335
|
<sequence id="S5b" name="Step 5b: Fill Sections" status="pending" desc="Fill document sections">
|
|
312
336
|
<!-- Section 1: Content Overview -->
|
|
@@ -380,6 +404,49 @@ Analyze one specific UI feature from source code, extract business functionality
|
|
|
380
404
|
</block>
|
|
381
405
|
</sequence>
|
|
382
406
|
|
|
407
|
+
<!-- ==================== STEP 7: WRITE COMPLETION MARKERS ==================== -->
|
|
408
|
+
<!-- Calculate Subpath from Source Path -->
|
|
409
|
+
<block type="task" id="B29" action="calculate-subpath" desc="Calculate subpath">
|
|
410
|
+
<field name="sourcePath" value="${sourcePath}"/>
|
|
411
|
+
<field name="output" var="subpath" from="calculation.subpath"/>
|
|
412
|
+
</block>
|
|
413
|
+
|
|
414
|
+
<!-- Generate Marker File Name -->
|
|
415
|
+
<block type="task" id="B30" action="generate-marker-name" desc="Generate marker name">
|
|
416
|
+
<field name="module" value="${module}"/>
|
|
417
|
+
<field name="subpath" value="${subpath}"/>
|
|
418
|
+
<field name="fileName" value="${fileName}"/>
|
|
419
|
+
<field name="output" var="markerName" from="generation.name"/>
|
|
420
|
+
</block>
|
|
421
|
+
|
|
422
|
+
<!-- Pre-write Verification -->
|
|
423
|
+
<block type="checkpoint" id="CP6" name="pre-write-check" desc="Pre-write verification">
|
|
424
|
+
<field name="verify" value="${fileName} does-not-contain '.' AND ${sourceFile} matches 'features-*.json'"/>
|
|
425
|
+
</block>
|
|
426
|
+
|
|
427
|
+
<!-- Write .done.json File -->
|
|
428
|
+
<block type="task" id="B31" action="create-file" desc="Write done marker file">
|
|
429
|
+
<field name="target" value="${completed_dir}/${markerName}.done.json"/>
|
|
430
|
+
<field name="content" value="{
|
|
431
|
+
"fileName": "${fileName}",
|
|
432
|
+
"sourcePath": "${sourcePath}",
|
|
433
|
+
"sourceFile": "${sourceFile}",
|
|
434
|
+
"module": "${module}",
|
|
435
|
+
"documentPath": "${documentPath}",
|
|
436
|
+
"status": "${status}",
|
|
437
|
+
"analysisNotes": "${message}"
|
|
438
|
+
}"/>
|
|
439
|
+
</block>
|
|
440
|
+
|
|
441
|
+
<!-- Verify Marker File Written -->
|
|
442
|
+
<block type="checkpoint" id="CP7" name="marker-written" desc="Marker file written">
|
|
443
|
+
<field name="verify" value="file.exists(${completed_dir}/${markerName}.done.json)"/>
|
|
444
|
+
</block>
|
|
445
|
+
|
|
446
|
+
<block type="event" id="E10" action="log" level="info" desc="Log marker status">
|
|
447
|
+
<field name="message" value="Step 7 Status: COMPLETED - Done marker file written to ${completed_dir}/${markerName}.done.json"/>
|
|
448
|
+
</block>
|
|
449
|
+
|
|
383
450
|
<!-- ==================== FINAL OUTPUT ==================== -->
|
|
384
451
|
<block type="output" id="O1" desc="UI feature analysis output results">
|
|
385
452
|
<field name="status" value="success"/>
|
|
@@ -449,8 +516,9 @@ When the task is complete, report the following:
|
|
|
449
516
|
|
|
450
517
|
**Files Generated:**
|
|
451
518
|
- `{{documentPath}}` - Feature documentation
|
|
519
|
+
- `completed_dir/markerName.done.json` - Completion marker
|
|
452
520
|
|
|
453
|
-
**Note:** Graph data
|
|
521
|
+
**Note:** Graph data (.graph.json) is handled by `speccrew-knowledge-bizs-ui-graph` Skill. The `.done.json` completion marker is written by this Skill in Step 7.
|
|
454
522
|
|
|
455
523
|
## Checklist
|
|
456
524
|
|
|
@@ -463,3 +531,4 @@ When the task is complete, report the following:
|
|
|
463
531
|
- [ ] All sections filled using search_replace
|
|
464
532
|
- [ ] All content in target language (`{{language}}`)
|
|
465
533
|
- [ ] Results reported in JSON format
|
|
534
|
+
- [ ] Done marker file written to completed_dir
|