oto/agent-task/archive/2026/05/02+yaml_validation/complete.log
toki ac1c42448e refactor: split build_ios and git commands, add cli styling, improve pipeline system
- Split BuildIOS command into build_ios_archive and build_ios_build
- Split Git command into git_branch, git_remote, git_revision, git_stash
- Add cli_style.dart and printer.dart for consistent CLI output
- Add macos_signing.dart for macOS/iOS code signing
- Refactor pipeline system (pipeline, pipeline_condition, pipeline_contain, etc.)
- Update tag_system, defined_data, pipeline_data
- Update application and command files for new structure
- Add tests for new command catalog and core functionality
- Update README with new features
2026-05-20 20:50:59 +09:00

42 lines
2 KiB
Text

# Complete - 02+yaml_validation
## 완료 일시
2026-05-20
## 요약
YAML 기본 구조, command list, workflow node shape 검증을 DataBuild 파싱 전후의 명시 validation message로 정리했다. 총 3회 리뷰 루프 후 최종 PASS.
## 루프 이력
| Plan | Review | Verdict | 메모 |
|------|--------|---------|------|
| `plan_cloud_G07_0.log` | `code_review_cloud_G07_0.log` | FAIL | root/property/command id 타입 오류가 generated parser/type error로 노출되어 follow-up 필요 |
| `plan_cloud_G07_1.log` | `code_review_cloud_G07_1.log` | FAIL | non-string workflow task key가 jsonEncode raw error로 노출되어 follow-up 필요 |
| `plan_cloud_G07_2.log` | `code_review_cloud_G07_2.log` | PASS | nested YAML 변환 안전화와 workflow key validation test 확인 완료 |
## 구현/정리 내용
- `Application.build()`에서 `DataBuild.fromJson()` 전에 build map과 command list 기본 구조를 검증하도록 했다.
- `getMapFromYamlA()`를 nested `YamlMap`/`YamlList` 재귀 변환 방식으로 바꿔 JSON encoder raw error를 피했다.
- `Pipeline.pipelineInitialize()`에서 workflow item shape와 unsupported task 메시지에 index와 지원 task 목록을 포함하도록 했다.
- root non-map, property non-map, command id/type non-string, workflow numeric key invalid YAML 테스트를 추가했다.
- 코드 포맷을 적용했다.
## 최종 검증
- `dart analyze` - PASS; `Analyzing oto... No issues found!`
- `dart test test/oto_application_test.dart test/oto_core_test.dart` - PASS; `+12: All tests passed!`
- `dart test test/oto_command_catalog_test.dart` - PASS; `+5: All tests passed!`
- `dart run bin/main.dart exe -f assets/yaml/sample/01_basic.yaml` - PASS; `Build Successfully Complete`
- `dart run bin/main.dart exe -f assets/yaml/sample/02_pipeline_if.yaml` - PASS; `Build Successfully Complete`
- numeric workflow key smoke - PASS; expected failure path now reports `Validate Pipeline` with `workflow[0]` instead of raw encoder error.
## 잔여 Nit
- 없음
## 후속 작업
- 없음