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
OCR, 여권 및 외국인등록증 상세 데이터는 향후 별도 기능으로 구현할 예정이지만 현재 Demo Seed의 선행조건은 아니다. 시연용 이미지와 OCR 처리 결과도 본 이슈에서 미리 생성하지 않는다.
또한 현재 Worker 모델에는 E-9 업무에서 사용하는 날짜 의미가 충분히 분리되어 있지 않다. 정확한 E-9 취업활동기간 및 관련 만료일의 의미 구분은 #84에서 Worker 모델을 확장해 처리하며, #84의 구현은 본 이슈의 선행조건으로 삼지 않는다.
따라서 본 이슈에서는 응웬반A를 대표 시연의 시작 상태로 정리하고, 현재 코드베이스에 이미 구현된 모델만 사용해 Demo Seed의 정합성과 재현성을 보강한다.
명시적으로 계획되어 있으나 아직 구현되지 않은 모델이나 API는 본 이슈에서 선행 구현하지 않는다.
추가로 #9의 PostgreSQL 17 Compose Smoke 과정에서 DEMO_SEED_ENABLED=true로 Server를 기동할 경우 Demo Seed의 직접 SQL에서 java.time.Instant를 바인딩하는 과정에서 PostgreSQL JDBC 타입 추론 오류가 발생하는 것이 확인되었다.
PSQLException: Can't infer the SQL type to use for an instance of java.time.Instant
따라서 응웬반A의 Golden Flow 시작 상태 정리와 함께 Demo Seed의 PostgreSQL JDBC 호환성도 보강한다.
목표
빈 데이터베이스에서 Demo Seed를 실행했을 때 다음 상태를 보장한다.
HR 사용자가 응웬반A를 대상으로 대표 자연어 요청을 즉시 시작할 수 있다.
AI 요청을 시작하는 데 필요한 현재 구현 범위의 Worker, Company, HR 사용자 및 Workflow 기준 데이터가 존재한다.
응웬반A의 대표 시나리오에 해당하는 AiRun, Case, Task 및 후속 처리 결과는 아직 생성되지 않은 상태다.
실제 시연 과정에서 생성되는 데이터가 기존 Seed와 충돌하거나 중복되지 않는다.
OCR, 여권 및 외국인등록증 상세 모델을 구현하지 않아도 Demo Seed가 정상 실행된다.
다른 근로자와 해당 근로자의 기존 Showcase Seed는 변경 없이 유지된다.
PostgreSQL 17에서 DEMO_SEED_ENABLED=true로 빈 데이터베이스에 Server를 기동했을 때 Demo Seed가 정상 완료된다.
동일한 PostgreSQL 데이터베이스에서 Server를 재기동하거나 Demo Seed를 다시 실행해도 오류나 중복 데이터가 발생하지 않는다.
대표 시연 시작 상태
Seed에 사전 존재하는 데이터
데모 Company
HR 사용자 및 현재 권한 모델에서 필요한 권한
응웬반A Worker
현재 Worker 모델이 지원하는 이름, 국적, 기본 사용 언어, 근로 상태 등 기본정보
현재 구현된 Workflow Catalog 및 Workflow Version
현재 구현된 Task Type 및 공통 코드·상태값
정확한 E-9 취업활동기간 및 관련 날짜 의미의 분리는 #84에서 처리하며, 해당 필드나 판정 로직을 본 이슈의 Seed 선행조건으로 요구하지 않는다.
별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 현재 존재하지 않으므로 본 이슈에서 생성하지 않는다. 관련 버전 정보는 실제 AI 실행 이후 생성되는 AiAttempt의 실행 메타데이터 범위에서 관리한다.
Seed가 미리 생성하지 않는 데이터
다음 데이터는 대표 시연 시작 전에 Seed하지 않는다.
해당 기능이 구현되어 있는 경우에도 실제 대표 시연 과정에서 생성되어야 하며, 본 이슈에서 완료 상태를 미리 만들지 않는다.
HR 요청문에 대한 AiRun
AiAttempt
분석 결과
Slot
Question
Candidate
Candidate Decision
응웬반A의 대표 시나리오 대상 Case
해당 Case에 속하는 Task
대표 시나리오 대상 승인
WorkerLink
WorkerResponse
응웬반A 대표 시나리오용 WorkerDocument
Document Request Draft
시연 중 업로드되는 파일
ExternalSubmission
Evidence
대표 시나리오 대상 Case 및 Task의 완료 상태
관련 Activity 및 Audit Event
작업 범위
수정 대상 제한
본 이슈의 데이터 수정 대상은 응웬반A와 응웬반A의 대표 시나리오에 직접 연결된 Demo Seed로 한정한다.
기존에 구성된 다른 근로자와 해당 근로자의 WorkerDocument, Case, Task, Artifact, Approval, Submission, Evidence 및 업무 상태는 Figma 예시와 화면 밀도를 위한 Showcase Seed이므로 그대로 유지한다.
응웬반A 데이터와 다른 근로자 데이터가 동일한 Seed Catalog 또는 파일에 함께 정의되어 있어 해당 파일을 수정하는 것은 허용한다. 단, 응웬반A와 무관한 기존 Seed 레코드의 값, 고정 식별자, 상태, 관계 및 생성 여부를 변경해서는 안 된다.
공통 참조 데이터는 응웬반A 시나리오에 필수적인 연결 오류가 있는 경우에만 수정한다. 해당 수정으로 기존 Showcase Seed의 동작이나 화면 구성이 변경되어서는 안 된다.
1. 응웬반A Worker Seed 정리
응웬반A가 대표 시연 대상임을 명확히 하고, 현재 Worker Entity와 API가 지원하는 필드만 사용해 데이터를 구성한다.
필수 조건:
Worker 식별자가 모든 환경에서 결정적이어야 한다.
이름, 국적, 기본 사용 언어 및 근로 상태가 현재 Worker 모델 범위에서 일관되어야 한다.
기존 Worker 모델이 지원하는 필드만 사용한다.
신규 Worker 컬럼을 추가하지 않는다.
#84에서 구현 예정인 E-9 날짜·비자정보 필드를 선행 구현하지 않는다.
정확한 3년 취업활동기간 또는 관련 만료일 판정 로직을 본 이슈에서 추가하지 않는다.
여권번호, 외국인등록번호, 체류지 주소 등 별도 상세정보를 추가하지 않는다.
2. HR 사용자·권한 Seed 확인
대표 시연을 수행하는 HR 사용자가 현재 구현된 기능 범위에서 응웬반A에 접근하고 대표 흐름을 진행할 수 있는지 확인한다.
확인 대상:
응웬반A 조회
AI 요청 생성
Candidate 검토 및 결정
Case와 Task 조회
승인 처리
Worker Link 관련 처리
외부 제출 및 Evidence 기록
Task와 Case 완료
HR 사용자와 응웬반A는 동일 Company 범위에서 접근 가능해야 한다.
기존 권한 모델로 충족하며, Demo Seed만을 위한 신규 Role 또는 Permission을 추가하지 않는다.
별도 Workplace 모델은 현재 존재하지 않으므로 본 이슈에서 신규 Domain 또는 연결을 추가하지 않는다.
3. AI Workflow 참조 데이터 연결
현재 코드베이스에 구현된 범위 안에서 대표 시나리오에 필요한 Workflow 참조가 누락되지 않도록 한다.
확인 대상:
대표 시나리오에서 사용하는 Workflow Catalog
Workflow Catalog Version
Candidate가 사용하는 현재 Workflow 정의
Case 생성 시 Workflow Snapshot을 구성할 수 있는 현재 참조 정보
현재 구현된 Task Type 및 공통 코드
참조 데이터가 이미 존재한다면 중복 생성하지 않고 현재 구현된 식별자와 Version을 사용한다.
별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 추가하지 않는다.
Agent Version, Prompt Version 등 실행 시점 메타데이터는 실제 AiRun 및 AiAttempt 생성 이후 기록되는 범위로 두며 대표 시연 시작 Seed의 선행 데이터로 취급하지 않는다.
4. 응웬반A의 사전 진행 데이터 제거
응웬반A의 대표 시나리오를 이미 진행되거나 완료된 상태로 만드는 기존 Seed는 생성 대상에서 제외한다.
대상 예시:
대표 시나리오 대상 Case
해당 Case에 속하는 기존 3개 Task
해당 Task의 Checklist
대표 시나리오 대상 Approval
Worker Link 발급 완료 상태
Worker Response
Document Request Draft
ExternalSubmission
Evidence
관련 Activity 및 Audit Event
대표 흐름의 중간·완료 상태를 나타내는 Operational 데이터
위 데이터는 다른 근로자에게 재연결하지 않는다.
다른 근로자에게 연결된 기존 Showcase Seed는 수정하지 않는다. 해당 데이터는 Figma 화면 정합성과 목록·업무함·대시보드의 화면 밀도를 위해 그대로 유지한다.
응웬반A 데이터를 제외하는 과정에서 순번 기반으로 생성되는 다른 Showcase fixture의 고정 ID가 변경되지 않도록 한다.
5. 응웬반A의 문서·OCR Seed 의존성 제거
응웬반A 대표 시나리오의 시작 상태에서는 WorkerDocument를 사전 생성하지 않는다.
기존 응웬반A Showcase 문서는 Golden Flow 시작 Seed에서 제외한다.
PASSPORT_COPY
ARC
CONTRACT
또한 다음 데이터를 대표 시연 시작 조건으로 요구하거나 참조하지 않는다.
여권 유효 상태
외국인등록증 사본 누락 상태
문서 준비도 결과
문서 요청 Task
OCR 처리 상태
OCR 추출 결과
여권 또는 외국인등록증 상세정보
여권 또는 외국인등록증 이미지 파일
다른 근로자에게 연결된 기존 문서 Showcase Seed는 그대로 유지한다.
6. Seed Manifest와 문서 갱신
현행 저장소에서 사용 중인 다음 문서를 실제 Seed 결과에 맞게 갱신한다.
docs/demo-seed.md
docs/demo-seed-fixture-manifest.md
Demo Seed 수량을 직접 명시하는 관련 개발 문서
현재 저장소에 존재하지 않는 src/main/resources/demo-seed-manifest.json은 신규 생성하지 않는다.
문서에는 최소한 다음 내용을 명시한다.
대표 시연의 시작 Worker
시연 전에 존재하는 데이터
Seed가 미리 생성하지 않는 데이터
결정적 식별자
Seed 실행 방법
Seed 재실행 시 기대 결과
Showcase Seed와 Golden Flow 시작 데이터의 구분
응웬반A의 WorkerDocument가 사전 생성되지 않는다는 점
OCR, 여권 및 외국인등록증 상세 데이터가 본 이슈 범위 밖이라는 점
정확한 E-9 날짜 의미와 판정은 #84의 후속 범위라는 점
다른 근로자의 기존 Showcase Seed가 유지된다는 점
구버전 Demo DB 초기화 정책
PostgreSQL에서의 실행 및 재실행 결과
7. 멱등성과 재현성 보장
Demo Seed를 여러 번 실행해도 중복 데이터가 생성되지 않아야 한다.
필수 조건:
Seed 데이터는 동일한 Business Key 또는 고정 UUID를 사용한다.
이미 존재하는 현재 Seed 데이터는 재사용하거나 안전하게 검증한다.
응웬반A의 대표 시연 시작 상태가 Seed 실행 순서에 따라 달라지지 않아야 한다.
다른 근로자의 기존 Showcase fixture 고정 식별자가 변경되지 않아야 한다.
구버전 Seed에서 사용한 응웬반A Golden Flow 고정 ID가 남아 있는 DB를 현재 Seed와 암묵적으로 혼합하지 않는다.
구버전 Golden Flow Seed가 발견될 경우 사용자 생성 데이터를 임의 삭제하지 않고 개인 Demo DB 또는 volume 초기화를 명시적으로 안내한다.
Seed 정리를 위한 데이터 삭제 Flyway Migration을 추가하지 않는다.
8. PostgreSQL JDBC 시간 타입 바인딩 보강
Demo Seed에서 JdbcTemplate 또는 이에 준하는 방식으로 직접 SQL을 실행하는 코드를 점검한다.
필수 조건:
DemoCaseSeeder를 포함해 Demo Seed의 직접 SQL 사용 지점을 확인한다.
Instant 등 PostgreSQL JDBC가 직접 타입을 추론하지 못하는 값을 그대로 SQL timestamp 파라미터로 전달하지 않는다.
대상 PostgreSQL 컬럼 타입에 맞게 JDBC 경계에서 명시적으로 변환한다.
Instant를 timestamp 계열 컬럼에 전달할 경우 Timestamp.from(instant) 또는 동등하게 명시적인 JDBC 바인딩을 사용한다.
시간 타입 변환은 Seed infrastructure의 JDBC 경계에서 수행한다.
Domain Model과 일반 Application 코드의 시간 타입은 변경하지 않는다.
null 가능 값은 기존 의미를 유지한다.
timezone 또는 날짜·시각 의미가 암묵적으로 변경되지 않아야 한다.
본 작업을 위해 신규 Table, Flyway Migration 또는 운영 API를 추가하지 않는다.
Demo Seed와 무관한 일반 Repository 또는 Application SQL은 수정 범위에 포함하지 않는다.
데이터 정합성 규칙
응웬반A는 하나의 활성 Worker로만 존재한다.
응웬반A는 Demo Company에 일관되게 연결된다.
HR 사용자는 동일 Company 범위에서 응웬반A를 조회할 수 있어야 한다.
응웬반A의 국적과 기본 사용 언어가 서로 모순되지 않아야 한다.
정확한 E-9 취업활동기간 및 관련 날짜 판정은 #84의 Worker 모델 확장 이후 범위로 둔다.
대표 시연 시작 시 응웬반A에게 대표 시나리오 대상 Case가 없어야 한다.
대표 시연 시작 시 응웬반A에게 대표 시나리오 대상 Task가 없어야 한다.
대표 시연 시작 시 응웬반A에게 WorkerDocument가 없어야 한다.
대표 시나리오 대상 승인, Worker Link, Worker Response, Submission, Evidence 및 완료 상태가 없어야 한다.
대표 시나리오 대상 AiRun, AiAttempt, Question, Candidate 및 Candidate Decision이 없어야 한다.
여권, 외국인등록증 또는 OCR 상태가 AI 요청 시작의 필수 입력으로 연결되어서는 안 된다.
Client 전용 Mock 상태를 Server Seed에 신규 Domain으로 구현하지 않는다.
다른 근로자의 기존 Seed 데이터와 연결 관계 및 고정 식별자는 변경하지 않는다.
구현 원칙
Seed 구현에는 현재 코드베이스에 이미 존재하는 Server 모델만 사용한다.
명시적으로 계획되어 있으나 미구현 상태인 모델은 본 이슈에서 선행 구현하지 않는다.
#84의 Worker E-9 날짜·비자정보 확장을 본 이슈의 선행조건으로 삼지 않는다.
Seed를 위해 신규 Table, API 또는 Domain Model을 추가하지 않는다.
Figma에만 존재하고 Server 계약이 없는 상태는 Client Mock으로 유지한다.
대표 시연은 하나의 일관된 Golden Flow 시작 상태를 기준으로 한다.
중간 단계별 S0~S5 Seed 프로필 전환 기능은 추가하지 않는다.
Task Dependency Graph나 별도 Workflow Lock 모델을 추가하지 않는다.
외부 기관 자동 제출을 구현하지 않는다.
AI 자동 승인 또는 자동 발송을 구현하지 않는다.
다른 근로자의 Showcase Seed를 정리·재배치·축소하지 않는다.
구버전 Demo Seed 데이터를 자동 삭제하지 않는다.
이번 이슈에서 하지 않는 것
Worker E-9 날짜·비자정보
#84에서 정의하는 Worker 날짜 필드 추가
visa_type 추가
정확한 E-9 3년 취업활동기간 판정
고용허가 관련 종료일 판정
취업활동 가능 종료일 판정
날짜 의미 간 관계를 임의 추정하는 로직
관련 Worker Flyway, Entity, DTO, Mapper 변경
Workplace 및 연락처
별도 Workplace Domain 추가
Worker 연락처 필드 추가
연락처 저장을 위한 신규 Table 또는 API 추가
Agent / Prompt Version
별도 Agent Version Seed Entity
별도 Prompt Version Seed Entity
활성 Version Registry 신규 구현
실행 전에 Agent / Prompt Version row를 미리 생성하는 Seed
OCR
OCR 실행 기능 구현
OCR Job 또는 OCR Result Domain 구현
OCR Provider, Model 또는 Request ID 저장
OCR 상태, 오류 또는 처리시각 컬럼 추가
Bounding Box 및 필드별 Confidence 저장
OCR 원문 응답 저장
OCR 수정 이력 저장
OCR 완료 결과 Seed
시연용 OCR 이미지 파일 Seed
여권·외국인등록증
worker_document에 여권 상세 컬럼 추가
worker_document에 외국인등록증 상세 컬럼 추가
여권번호 저장
성, 이름, 생년월일 및 성별 추출값 저장
여권 발급일 및 만료일 상세값 저장
외국인등록번호 저장
체류자격 OCR 추출값 저장
체류기간 만료일 OCR 추출값 저장
체류지 주소 저장
여권 또는 외국인등록증 이미지 Seed
관련 Flyway, Entity, DTO, Mapper 또는 API 변경
문서 생성·제출 자동화
계약서·신청서 Template Registry
문서 Generation Job
PDF, HWP 또는 HWPX Binary 생성
생성 문서 Retry Lifecycle
외부 기관 API 자동 제출
기관 로그인 자동화
제출 Package 및 Item Version Graph
기관별 결과 상태 Taxonomy
기타
별도 Consent Domain
범용 Upload Session Domain
SMS·메신저 실제 발송 연동
완전한 Antivirus 또는 Malware Scan 인프라
범용 BPMN 엔진
Task 간 Dependency 또는 Lock 기능
다른 근로자의 기존 Showcase Seed 변경
완료 조건
Seed 데이터
빈 데이터베이스에서 Demo Seed가 정상 실행된다.
응웬반A Worker가 정확히 한 건 생성된다.
응웬반A의 Company, 국적, 기본 사용 언어 및 근로 상태가 현재 Worker 모델 범위에서 일관된다.
대표 시연에 필요한 HR 사용자가 동일 Company 범위에서 응웬반A에 접근할 수 있다.
현재 구현된 Workflow Catalog 및 Workflow Version을 사용할 수 있다.
별도 Workplace, 연락처, Agent Version 또는 Prompt Version 모델을 본 이슈에서 추가하지 않는다.
#84의 Worker 날짜·비자정보 확장을 선행 구현하지 않는다.
대표 시연 시작 상태
Seed 직후 응웬반A의 대표 시나리오 대상 AiRun이 존재하지 않는다.
Seed 직후 대표 시나리오 대상 AiAttempt, Question, Candidate 및 Candidate Decision이 존재하지 않는다.
Seed 직후 응웬반A의 대표 시나리오 대상 Case가 존재하지 않는다.
Seed 직후 해당 Case에서 생성될 Task가 존재하지 않는다.
Seed 직후 응웬반A의 WorkerDocument가 존재하지 않는다.
Seed 직후 대표 시나리오 대상 Approval이 존재하지 않는다.
Seed 직후 대표 시나리오 대상 Worker Link 및 Worker Response가 존재하지 않는다.
Seed 직후 대표 시나리오 대상 Submission 및 Evidence가 존재하지 않는다.
Seed 직후 대표 시나리오 관련 Activity 및 Audit Event가 존재하지 않는다.
HR 요청을 시작할 때 기존 Seed와 식별자 또는 상태 충돌이 발생하지 않는다.
문서·OCR 범위
응웬반A 대표 시나리오에 여권 또는 외국인등록증 Seed가 필요하지 않다.
PASSPORT_COPY, ARC 또는 CONTRACT WorkerDocument가 응웬반A의 시작 상태에 사전 생성되지 않는다.
응웬반A의 OCR 결과나 신분증 식별번호가 Seed에 포함되지 않는다.
worker_document 스키마를 변경하지 않고 구현이 완료된다.
OCR, 여권 및 외국인등록증 관련 신규 API 또는 Domain을 추가하지 않는다.
정합성·멱등성
Demo Seed를 두 번 이상 실행해도 중복 데이터가 생성되지 않는다.
응웬반A Golden Flow 데이터 제외로 인해 다른 Showcase fixture의 고정 식별자가 변경되지 않는다.
구버전 응웬반A Golden Flow Seed가 남아 있는 DB를 자동 삭제하거나 현재 Seed와 암묵적으로 혼합하지 않는다.
대표 시연 시작 데이터와 Showcase Seed의 목적이 Manifest 및 문서에서 구분된다.
docs/demo-seed-fixture-manifest.md와 docs/demo-seed.md가 실제 생성 결과와 일치한다.
관련 Seed 테스트가 통과한다.
기존 Showcase Seed 보존
응웬반A를 제외한 기존 근로자 Seed의 수와 고정 식별자가 변경되지 않는다.
다른 근로자의 기존 Case, Task, 문서 및 업무 상태가 변경되지 않는다.
다른 근로자 기반 목록·업무함·대시보드 화면 구성이 기존과 동일하게 유지된다.
응웬반A와 무관한 Seed를 삭제하거나 다른 Worker로 재연결하지 않는다.
공통 Catalog 파일이 수정된 경우 응웬반A 외 기존 Seed 레코드에 대한 회귀 테스트가 통과한다.
PostgreSQL 호환성
PostgreSQL 17 빈 데이터베이스에서 DEMO_SEED_ENABLED=true로 Server가 정상 기동된다.
Demo Seed 실행 중 Instant 또는 다른 Java 시간 타입의 SQL 타입 추론 오류가 발생하지 않는다.
Demo Seed의 직접 SQL 시간 파라미터가 대상 PostgreSQL 컬럼과 호환되는 방식으로 바인딩된다.
동일한 PostgreSQL 데이터베이스에서 Server를 재기동하거나 Seed를 재실행해도 정상 완료된다.
재기동 전후 Seed 데이터 수에 의도하지 않은 변화가 없다.
재기동 전후 기존 Showcase 고정 데이터가 유지된다.
Seed timestamp의 날짜, 시각 및 timezone 의미가 유지된다.
PostgreSQL 호환성 수정을 위해 Flyway Migration이나 Domain 시간 타입을 변경하지 않는다.
배경
현재 Demo Seed에는 응웬반A와 관련된 Worker, 문서, Case, Task, 승인, 요청문, 제출·증빙 상태가 일부 미리 생성되어 있다.
그러나 대표 시연은 HR 사용자가 자연어 요청을 입력하는 시점부터 시작하며, 이후 다음 흐름을 실제로 진행하는 방식이다.
AiRun → Case/Task → 승인 → Worker Link/응답 → 외부 제출·증빙 → 완료OCR, 여권 및 외국인등록증 상세 데이터는 향후 별도 기능으로 구현할 예정이지만 현재 Demo Seed의 선행조건은 아니다. 시연용 이미지와 OCR 처리 결과도 본 이슈에서 미리 생성하지 않는다.
또한 현재 Worker 모델에는 E-9 업무에서 사용하는 날짜 의미가 충분히 분리되어 있지 않다. 정확한 E-9 취업활동기간 및 관련 만료일의 의미 구분은 #84에서 Worker 모델을 확장해 처리하며, #84의 구현은 본 이슈의 선행조건으로 삼지 않는다.
따라서 본 이슈에서는 응웬반A를 대표 시연의 시작 상태로 정리하고, 현재 코드베이스에 이미 구현된 모델만 사용해 Demo Seed의 정합성과 재현성을 보강한다.
명시적으로 계획되어 있으나 아직 구현되지 않은 모델이나 API는 본 이슈에서 선행 구현하지 않는다.
추가로 #9의 PostgreSQL 17 Compose Smoke 과정에서
DEMO_SEED_ENABLED=true로 Server를 기동할 경우 Demo Seed의 직접 SQL에서java.time.Instant를 바인딩하는 과정에서 PostgreSQL JDBC 타입 추론 오류가 발생하는 것이 확인되었다.따라서 응웬반A의 Golden Flow 시작 상태 정리와 함께 Demo Seed의 PostgreSQL JDBC 호환성도 보강한다.
목표
빈 데이터베이스에서 Demo Seed를 실행했을 때 다음 상태를 보장한다.
AiRun,Case,Task및 후속 처리 결과는 아직 생성되지 않은 상태다.DEMO_SEED_ENABLED=true로 빈 데이터베이스에 Server를 기동했을 때 Demo Seed가 정상 완료된다.대표 시연 시작 상태
Seed에 사전 존재하는 데이터
CompanyWorker정확한 E-9 취업활동기간 및 관련 날짜 의미의 분리는 #84에서 처리하며, 해당 필드나 판정 로직을 본 이슈의 Seed 선행조건으로 요구하지 않는다.
별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 현재 존재하지 않으므로 본 이슈에서 생성하지 않는다. 관련 버전 정보는 실제 AI 실행 이후 생성되는
AiAttempt의 실행 메타데이터 범위에서 관리한다.Seed가 미리 생성하지 않는 데이터
다음 데이터는 대표 시연 시작 전에 Seed하지 않는다.
해당 기능이 구현되어 있는 경우에도 실제 대표 시연 과정에서 생성되어야 하며, 본 이슈에서 완료 상태를 미리 만들지 않는다.
AiRunAiAttemptCaseTaskWorkerLinkWorkerResponseWorkerDocumentExternalSubmissionEvidence작업 범위
수정 대상 제한
본 이슈의 데이터 수정 대상은 응웬반A와 응웬반A의 대표 시나리오에 직접 연결된 Demo Seed로 한정한다.
기존에 구성된 다른 근로자와 해당 근로자의
WorkerDocument, Case, Task, Artifact, Approval, Submission, Evidence 및 업무 상태는 Figma 예시와 화면 밀도를 위한 Showcase Seed이므로 그대로 유지한다.응웬반A 데이터와 다른 근로자 데이터가 동일한 Seed Catalog 또는 파일에 함께 정의되어 있어 해당 파일을 수정하는 것은 허용한다. 단, 응웬반A와 무관한 기존 Seed 레코드의 값, 고정 식별자, 상태, 관계 및 생성 여부를 변경해서는 안 된다.
공통 참조 데이터는 응웬반A 시나리오에 필수적인 연결 오류가 있는 경우에만 수정한다. 해당 수정으로 기존 Showcase Seed의 동작이나 화면 구성이 변경되어서는 안 된다.
1. 응웬반A Worker Seed 정리
응웬반A가 대표 시연 대상임을 명확히 하고, 현재 Worker Entity와 API가 지원하는 필드만 사용해 데이터를 구성한다.
필수 조건:
2. HR 사용자·권한 Seed 확인
대표 시연을 수행하는 HR 사용자가 현재 구현된 기능 범위에서 응웬반A에 접근하고 대표 흐름을 진행할 수 있는지 확인한다.
확인 대상:
HR 사용자와 응웬반A는 동일 Company 범위에서 접근 가능해야 한다.
기존 권한 모델로 충족하며, Demo Seed만을 위한 신규 Role 또는 Permission을 추가하지 않는다.
별도 Workplace 모델은 현재 존재하지 않으므로 본 이슈에서 신규 Domain 또는 연결을 추가하지 않는다.
3. AI Workflow 참조 데이터 연결
현재 코드베이스에 구현된 범위 안에서 대표 시나리오에 필요한 Workflow 참조가 누락되지 않도록 한다.
확인 대상:
참조 데이터가 이미 존재한다면 중복 생성하지 않고 현재 구현된 식별자와 Version을 사용한다.
별도의 활성 Agent Version 또는 Prompt Version Seed 모델은 추가하지 않는다.
Agent Version, Prompt Version 등 실행 시점 메타데이터는 실제
AiRun및AiAttempt생성 이후 기록되는 범위로 두며 대표 시연 시작 Seed의 선행 데이터로 취급하지 않는다.4. 응웬반A의 사전 진행 데이터 제거
응웬반A의 대표 시나리오를 이미 진행되거나 완료된 상태로 만드는 기존 Seed는 생성 대상에서 제외한다.
대상 예시:
ExternalSubmissionEvidence위 데이터는 다른 근로자에게 재연결하지 않는다.
다른 근로자에게 연결된 기존 Showcase Seed는 수정하지 않는다. 해당 데이터는 Figma 화면 정합성과 목록·업무함·대시보드의 화면 밀도를 위해 그대로 유지한다.
응웬반A 데이터를 제외하는 과정에서 순번 기반으로 생성되는 다른 Showcase fixture의 고정 ID가 변경되지 않도록 한다.
5. 응웬반A의 문서·OCR Seed 의존성 제거
응웬반A 대표 시나리오의 시작 상태에서는 WorkerDocument를 사전 생성하지 않는다.
기존 응웬반A Showcase 문서는 Golden Flow 시작 Seed에서 제외한다.
PASSPORT_COPYARCCONTRACT또한 다음 데이터를 대표 시연 시작 조건으로 요구하거나 참조하지 않는다.
다른 근로자에게 연결된 기존 문서 Showcase Seed는 그대로 유지한다.
6. Seed Manifest와 문서 갱신
현행 저장소에서 사용 중인 다음 문서를 실제 Seed 결과에 맞게 갱신한다.
docs/demo-seed.mddocs/demo-seed-fixture-manifest.md현재 저장소에 존재하지 않는
src/main/resources/demo-seed-manifest.json은 신규 생성하지 않는다.문서에는 최소한 다음 내용을 명시한다.
7. 멱등성과 재현성 보장
Demo Seed를 여러 번 실행해도 중복 데이터가 생성되지 않아야 한다.
필수 조건:
8. PostgreSQL JDBC 시간 타입 바인딩 보강
Demo Seed에서
JdbcTemplate또는 이에 준하는 방식으로 직접 SQL을 실행하는 코드를 점검한다.필수 조건:
DemoCaseSeeder를 포함해 Demo Seed의 직접 SQL 사용 지점을 확인한다.Instant등 PostgreSQL JDBC가 직접 타입을 추론하지 못하는 값을 그대로 SQL timestamp 파라미터로 전달하지 않는다.Instant를 timestamp 계열 컬럼에 전달할 경우Timestamp.from(instant)또는 동등하게 명시적인 JDBC 바인딩을 사용한다.데이터 정합성 규칙
구현 원칙
이번 이슈에서 하지 않는 것
Worker E-9 날짜·비자정보
visa_type추가Workplace 및 연락처
Agent / Prompt Version
OCR
여권·외국인등록증
worker_document에 여권 상세 컬럼 추가worker_document에 외국인등록증 상세 컬럼 추가문서 생성·제출 자동화
기타
완료 조건
Seed 데이터
대표 시연 시작 상태
AiRun이 존재하지 않는다.AiAttempt, Question, Candidate 및 Candidate Decision이 존재하지 않는다.문서·OCR 범위
PASSPORT_COPY,ARC또는CONTRACTWorkerDocument가 응웬반A의 시작 상태에 사전 생성되지 않는다.worker_document스키마를 변경하지 않고 구현이 완료된다.정합성·멱등성
docs/demo-seed-fixture-manifest.md와docs/demo-seed.md가 실제 생성 결과와 일치한다.기존 Showcase Seed 보존
PostgreSQL 호환성
DEMO_SEED_ENABLED=true로 Server가 정상 기동된다.Instant또는 다른 Java 시간 타입의 SQL 타입 추론 오류가 발생하지 않는다.테스트 항목
자동 테스트
공통 Demo Seed
PostgreSQL 17
devprofile Application Context 기동수동 확인
DEMO_SEED_ENABLED=true와 필요한 Demo 비밀번호를 설정한다.관련 이슈 및 PR
[EPIC] FOWOCO Server Roadmap · Controlled AI Workflow MVP[Worker Link] 로그인 없는 근로자 보안 링크와 응답 구현[E2E] 제품 대표 복합 요청 시나리오·데모 런북 완성[Approval & Audit][Worker][P0] E-9 업무용 4개 날짜·비자정보 확장후속 범위
산출물
docs/demo-seed.mddocs/demo-seed-fixture-manifest.md