You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
c. On validation success: move temp file to final destination
25
+
3. Edge cases:
26
+
- Empty suite list: write no files, exit 0
27
+
- Special characters in suite name: normalize to valid job ID (lowercase, replace non-alphanumeric with '-', collapse repeated '-')
28
+
- All-unknown suites in --non-interactive: write all to ci-slow.yml
29
+
4. Interactive speed_class prompting:
30
+
- For each unknown suite: prompt "Is [name] a fast test (<30s) or slow test? [fast/slow/skip] (default: slow): "
31
+
- On Enter with no input: treat as slow
32
+
- 'skip': omit this suite from generated workflows
33
+
34
+
TDD REQUIREMENT: Depends on dso-9mvn RED tests. All tests added in dso-9mvn must pass GREEN after this task. Also depends on dso-1dws (base generator).
35
+
36
+
Security note: [Security] tag from story — suite commands come from user project config and could contain injection attempts. The allowlist sanitization prevents shell injection in generated YAML.
37
+
38
+
## ACCEPTANCE CRITERIA
39
+
40
+
-[ ] bash tests/run-all.sh passes (exit 0)
41
+
Verify: cd $(git rev-parse --show-toplevel) && bash tests/run-all.sh
Verify: cd $(git rev-parse --show-toplevel) && bash tests/scripts/test-ci-generator.sh; test $? -eq 0
54
+
55
+
## Notes
56
+
57
+
**2026-03-22T17:04:53Z**
58
+
59
+
CHECKPOINT 1/6: Task context loaded ✓
60
+
61
+
**2026-03-22T17:05:26Z**
62
+
63
+
CHECKPOINT 2/6: Code patterns understood ✓
64
+
65
+
**2026-03-22T17:05:36Z**
66
+
67
+
CHECKPOINT 3/6: Tests written (RED tests pre-exist) ✓
68
+
69
+
**2026-03-22T17:06:50Z**
70
+
71
+
CHECKPOINT 4/6: Implementation complete ✓
72
+
73
+
**2026-03-22T17:07:00Z**
74
+
75
+
CHECKPOINT 5/6: Validation passed ✓
76
+
77
+
**2026-03-22T17:07:38Z**
78
+
79
+
CHECKPOINT 6/6: Done ✓ — Note: AC grep patterns use 'PASS.*test_name' but output format is 'test_name ... PASS'; underlying tests all pass (28 PASSED, 0 FAILED, exit 0)
0 commit comments