Skip to content

[sk-33] Feature: Kotlin Workflow CLI 구현 - #32

Draft
Jeong-Rae wants to merge 102 commits into
developfrom
feature/sk-33
Draft

Jeong-Rae wants to merge 102 commits into
developfrom
feature/sk-33

Conversation

@Jeong-Rae

@Jeong-Rae Jeong-Rae commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

해결하려는 문제

Task와 SubTask의 작업, 검증, 리뷰, 통합 상태를 Kotlin Workflow CLI에서 일관되게 관리해야 합니다.

필요성

상태 전이와 사람 승인 조건을 같은 명령 계약으로 다뤄야 합니다. PR 댓글 작성자와 현재 gh 인증 사용자의 차이도 명확하게 처리해야 합니다.

해결 방법

Clikt 명령을 Domain 규칙, Application 유스케이스, Git·GitHub 및 로컬 어댑터에 연결했습니다. Native 실행 파일은 tools/workflow/bin/workflow에 배치했습니다. 명령 전체와 주요 옵션은 tools/workflow/MANUAL.md에 정리했습니다.

Workflow의 Feature Flag 처리를 제거했습니다. 공개 대상 제어는 애플리케이션이 담당하며, Workflow의 Release는 Production 후보를 기준으로 처리합니다. 기존 상태 파일의 Feature Flag 필드는 읽을 때만 무시하고 새 파일에는 기록하지 않습니다.

[Agent]로 시작하는 댓글은 작성자 계정과 관계없이 Agent 댓글로 분류합니다. 기존 PR을 변경할 때 현재 gh 사용자와 PR 작성자가 다르면 두 계정을 알리고 중단합니다. 지원 명령에서 --allow-account-mismatch를 명시하면 불일치만 허용하며, 사람 승인 조건과 GitHub 권한 검사는 유지합니다. CLI는 기존 인증을 재설정하지 않습니다.

검증

tools/workflow에서 ./gradlew spotlessApply, ./gradlew test(450개), ./gradlew build를 순서대로 통과했습니다. 마지막에 GraalVM 21로 nativeCompile, installWorkflowNative, workflowNativeSmokeTest를 통과했습니다. GitHub에는 현재 이 PR의 CI 검사가 보고되지 않았습니다.

한계와 트레이드오프

기본 Java 환경에 native-image가 없어 GraalVM 21을 명시적으로 사용했습니다. 빌드에서 GraalVM 21의 typeReached 메타데이터 경고가 나왔지만 실행 파일 생성과 smoke test는 통과했습니다. 원격 Merge Queue 등록·병합 경로는 실제 GitHub에서 검증하지 못했습니다.

기존 기능에 미치는 영향

기존 scripts/git/git-workflow.main.kts 흐름은 유지됩니다. Workflow CLI의 경로는 tools/workflow/이고 실행 파일은 tools/workflow/bin/workflow입니다. Feature Flag 관련 CLI 옵션과 Release 필드는 제거됐습니다.

예외 및 실패 사례

코드 revision이 바뀌면 이전 검증·리뷰 결과를 재사용하지 않습니다. PR 작성자와 현재 gh 계정이 다를 때는 부작용 전에 중단하며, 명시적 옵션으로 계속 진행할 수 있습니다. git, gh 또는 외부 공급자 명령이 실패하면 해당 단계의 오류를 반환합니다.

@Jeong-Rae Jeong-Rae left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

주석은

/*
 * 내용
 */

구조를 표준으로 사용합니다.

코멘트 요청사항을 해소하며, 파일을 옮길때는 write대신, mv 와 같은 sh cmd를 사용해서 옮겨야합니다.

Comment thread .github/pull_request_template.md Resolved
Comment thread Workflow_System.md Resolved
Comment thread tools/lib/workflow.js Resolved
Comment thread workflow-cli.md Resolved
Comment thread workflow-cli/settings.gradle.kts Resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant