Skip to content

feat: 업무카드·체크리스트 Workflow 구현 - #39

Merged
hywznn merged 7 commits into
mainfrom
agent/6-task-workflow
Jul 24, 2026
Merged

feat: 업무카드·체크리스트 Workflow 구현#39
hywznn merged 7 commits into
mainfrom
agent/6-task-workflow

Conversation

@hywznn

@hywznn hywznn commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

왜 필요한가요?

Closes #6
Refs #5, #11, #25

Task Workflow를 실제 HR 업무카드로 사용할 수 있도록 구현합니다. Worker CRUD·Document metadata를 다시 구현하지 않고, 병합된 PR #40의 Worker를 최소 read port로 조회합니다.

PR #37의 승인·감사 기반이 main에 Squash Merge되어, 이 PR도 최신 main 위에 Task Workflow 전용 커밋만 다시 정리했습니다.

무엇이 바뀌나요?

  • fowoco/knowledge release용 Workflow Catalog read-only projection과 운영 RELEASED 검증
  • Task 목록·생성·상세·수정, checklist 갱신, 취소의 7개 API
  • company_id 범위 조회, ADMIN/HR/VIEWER 권한, expected_version 낙관적 잠금
  • required slot에 따른 DRAFT/NEEDS_INFO 결정과 checklist template snapshot
  • 중요값 변경 시 기존 승인 무효화 및 조건 충족 시 새 승인 요청 snapshot 생성
  • Task·Checklist·Transition·Audit의 transaction 경계
  • 민감 식별값 차단, 문서 종류·상태 metadata 허용

#40 Worker 계약 반영

  • canonical V3의 work_status, stay_expiry_date, nationality_code 사용
  • WorkerStatus.isCurrentlyEmployed()를 사용해 상태 판단을 한 곳으로 통일
  • ACTIVE, ON_LEAVE 근로자만 새 업무 생성 가능
  • RESIGNED, TERMINATED 근로자는 422 WORKER_NOT_ELIGIBLE
  • Worker CRUD·상세 DTO·Document metadata는 [Worker] 근로자 기본정보·서류 메타데이터 API 구현 #5 담당 범위로 유지
  • 이 PR은 새 DB migration을 추가하지 않음

검증

  • 최신 main 위로 rebase
  • ./gradlew clean test
  • ./gradlew build -x test
  • 7개 API 통합 흐름
  • VIEWER 쓰기 차단과 타 사업장 404
  • 민감정보 거부
  • stale·concurrent update 중 하나만 성공
  • 승인 후 중요값 변경 시 이전 승인 무효화·새 snapshot 생성
  • RESIGNED, TERMINATED 업무 생성 차단
  • OpenAPI snake_case·권한·409·422 계약
  • GitHub Actions Test and build 통과

ADR·저장소 경계

  • ADR-0001: Knowledge 원본을 수정하지 않고 versioned projection만 소비
  • ADR-0002: /api/v1, JWT ActorContext, tenant 격리, 공통 오류와 expected_version
  • ADR-0003: 상태 setter 우회 금지, 중요값 변경의 승인 무효화·재검토 snapshot
  • Prompt·Provider·모델 routing은 포함하지 않음

배포·롤백

새 migration은 추가하지 않습니다. PR #40의 V3와 PR #37의 V4·V5 schema를 사용합니다. 롤백은 이 PR의 squash commit을 revert하고 이전 Server artifact와 Workflow projection으로 되돌립니다.

리뷰에서 중점 확인할 부분

  • Knowledge Workflow projection과 Server read-only 경계
  • Task 생성·수정 시 Worker 상태와 tenant 범위 검증
  • 중요값 변경 시 기존 승인 무효화와 새 승인 snapshot 생성
  • Task·Checklist·Transition·Audit의 동일 transaction 경계
  • RESIGNED, TERMINATED 근로자 업무 생성 차단

@hywznn
hywznn requested a review from chaeliki July 23, 2026 07:41
@hywznn hywznn added area:server Spring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외 priority:P0 MVP 진행을 막는 최우선 핵심 작업 security:privacy 개인정보·접근권한·토큰·보안 영향이 있는 작업 status:in-review 구현을 마치고 리뷰 또는 병합을 기다리는 작업 type:feature 사용자 또는 Agent가 사용하는 기능 개발 labels Jul 23, 2026
@hywznn
hywznn force-pushed the agent/11-approval-audit branch from 00e7f38 to 8e1f8a5 Compare July 24, 2026 02:16
@hywznn
hywznn force-pushed the agent/6-task-workflow branch 2 times, most recently from 366b439 to dc4ed4e Compare July 24, 2026 02:23
@hywznn
hywznn marked this pull request as ready for review July 24, 2026 02:25
chaeliki
chaeliki previously approved these changes Jul 24, 2026
Base automatically changed from agent/11-approval-audit to main July 24, 2026 02:30
@hywznn
hywznn dismissed chaeliki’s stale review July 24, 2026 02:30

The base branch was changed.

hywznn added 7 commits July 24, 2026 11:31
Knowledge 저장소의 Workflow 정의를 Server용 read-only projection으로 검증하고 로드합니다.

운영 환경에서는 RELEASED bundle만 허용하고 Task 유형, 필수 slot, checklist, 출처 version을 고정합니다.
Worker 최소 조회 경계, tenant 범위 Repository, required slot 평가, 낙관적 잠금과 상태 전이를 연결합니다.

중요값 또는 필수 checklist 변경 시 승인 snapshot을 무효화하고 Audit·Transition을 같은 transaction에 기록합니다.
Workflow Catalog와 Task 목록·생성·상세·수정·checklist·취소 endpoint를 /api/v1 계약으로 제공합니다.

snake_case, JWT role, company 격리, expected_version과 409·422 오류 계약을 OpenAPI에 반영합니다.
7개 API 흐름, 타 사업장 은닉, Viewer 쓰기 차단, 민감정보 거부와 승인 무효화를 통합 테스트합니다.

동시 수정은 하나만 성공하고 OpenAPI version·snake_case 계약이 유지되는지 검증합니다.
필수정보와 checklist가 충분하면 기존 승인을 무효화한 뒤 수정본 snapshot을 새로 만들고 READY_FOR_REVIEW로 전환합니다.

문서 종류·상태 metadata는 허용하되 여권번호 등 실제 민감 식별값은 계속 차단합니다.
7개 Task Workflow API, expected_version, 승인 무효화와 Knowledge projection 운영 방법을 README와 환경변수 예시에 추가합니다.

Conventional Commits의 type·scope는 영문으로 유지하고 설명은 한국어로 작성하도록 기여 규칙을 맞춥니다.
@hywznn
hywznn force-pushed the agent/6-task-workflow branch from dc4ed4e to f28f25a Compare July 24, 2026 02:32
@hywznn
hywznn requested a review from chaeliki July 24, 2026 02:32
@hywznn
hywznn merged commit 1b85865 into main Jul 24, 2026
1 check passed
@hywznn
hywznn deleted the agent/6-task-workflow branch July 24, 2026 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:server Spring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외 priority:P0 MVP 진행을 막는 최우선 핵심 작업 security:privacy 개인정보·접근권한·토큰·보안 영향이 있는 작업 status:in-review 구현을 마치고 리뷰 또는 병합을 기다리는 작업 type:feature 사용자 또는 Agent가 사용하는 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task Workflow] 업무카드·체크리스트·상태 전이 구현

2 participants