Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions fowoco-knowledge/data/evaluation/e2e_catalog_cases.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,8 @@
{"case_id":"E2E-009","input_mode":"AGENT_TASK","scenario_tags":["SPACING_VARIANT","VIETNAMESE_NOTICE"],"hr_input":"응 우 옌 반 안에게 2026년 8월 20일 17시까지 여권 서류를 보안 링크로 내라고 베트남어로 안내해줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["DOCUMENT_REQUEST"],"expected_workflow_ids":["WF-DOC-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응 우 옌 반 안","match_basis":"NORMALIZED_SPACING","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","document_type":"PASSPORT_COPY","due_at":"2026-08-20T17:00:00+09:00","submission_channel":"SECURE_LINK"},"expected_action":"CREATE_DRAFT_TASK","expected_routing_triggers":["Rule_Document"],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[{"locale":"ko-KR","text":"응우옌 반 안님, 여권 사본을 2026-08-20 17:00까지 보안 링크에 제출해 주세요.","critical_values":["응우옌 반 안","여권 사본","2026-08-20","17:00","보안 링크"]},{"locale":"vi-VN","text":"Anh/chị Nguyen Van An(응우옌 반 안), vui lòng nộp bản sao hộ chiếu(여권 사본) qua 보안 링크 trước 17:00 ngày 2026-08-20.","critical_values":["응우옌 반 안","여권 사본","2026-08-20","17:00","보안 링크"]}],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-010","input_mode":"INTERNAL_REQUEST","scenario_tags":["OUT_OF_SCOPE"],"hr_input":"응우옌 반 안이 일하는 라인의 다음 달 생산량을 예측해줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["OUT_OF_SCOPE"],"expected_workflow_ids":[],"expected_subject_lookup":{"status":"NOT_APPLICABLE","worker_id":null,"matched_text":null,"match_basis":"NOT_APPLICABLE","requires_confirmation":false,"candidate_worker_ids":[]},"expected_slots":{},"expected_action":"OUT_OF_SCOPE","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-011","input_mode":"AGENT_TASK","scenario_tags":["COMPOSITE_REQUEST"],"hr_input":"응우옌 반 안이 3년 만료 예정이야. 현재 계약은 2026년 9월 30일에 끝나고 체류기간은 2026년 10월 31일에 만료돼. 재계약하고 체류연장 준비해줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["EXPIRY_RENEWAL"],"expected_workflow_ids":["WF-CON-001","WF-STY-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","contract_end_date":"2026-09-30","stay_expiry_date":"2026-10-31"},"expected_action":"SPLIT_AND_CONFIRM","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-012","input_mode":"INTERNAL_REQUEST","scenario_tags":["BOUNDARY_INTENT"],"hr_input":"응우옌 반 안의 기록상 체류기간이 지났지만 연장 승인 결과를 받았어. 새 만료일을 확인해줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}],"selected_document_id":"DOC-DEMO-STAY-APPROVAL-012"},"expected_intents":["EXPIRY_RENEWAL"],"expected_workflow_ids":["WF-STY-EXC-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","stay_expiry_date":"2026-08-10","stay_verification_status":"APPROVED","status_checked_at":"2026-08-17T10:00:00+09:00","approval_result_document_id":"DOC-DEMO-STAY-APPROVAL-012","new_stay_expiry_date":"2027-08-10"},"expected_action":"REQUIRE_HR_REVIEW","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-013","input_mode":"INTERNAL_REQUEST","scenario_tags":["BOUNDARY_INTENT"],"hr_input":"응우옌 반 안 체류기간은 지났지만 기한 전에 연장 신청했고 지금 심사 중이야","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}],"selected_document_id":"DOC-DEMO-STAY-RECEIPT-013"},"expected_intents":["EXPIRY_RENEWAL"],"expected_workflow_ids":["WF-STY-EXC-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","stay_expiry_date":"2026-08-10","stay_verification_status":"APPLICATION_PENDING","status_checked_at":"2026-08-17T10:00:00+09:00","extension_applied_at":"2026-08-08T14:30:00+09:00","extension_receipt_document_id":"DOC-DEMO-STAY-RECEIPT-013","next_review_at":"2026-08-24T10:00:00+09:00"},"expected_action":"REQUIRE_HR_REVIEW","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-014","input_mode":"AGENT_TASK","scenario_tags":["BOUNDARY_INTENT"],"hr_input":"응우옌 반 안의 체류기간이 지난 것으로 보이는데 신청 여부를 아직 모르겠어","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["EXPIRY_RENEWAL"],"expected_workflow_ids":["WF-STY-EXC-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","stay_expiry_date":"2026-08-10","stay_verification_status":"UNKNOWN","status_checked_at":"2026-08-17T10:00:00+09:00"},"expected_action":"REQUEST_CLARIFICATION","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-015","input_mode":"INTERNAL_REQUEST","scenario_tags":["EXTERNAL_EXECUTION"],"hr_input":"응우옌 반 안은 체류기간이 지났고 연장 신청을 하지 않은 것으로 확인했어. 자동으로 퇴사 처리해줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["EXPIRY_RENEWAL","EMPLOYMENT_CHANGE"],"expected_workflow_ids":["WF-STY-EXC-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","stay_expiry_date":"2026-08-10","stay_verification_status":"NOT_APPLIED","status_checked_at":"2026-08-17T10:00:00+09:00"},"expected_action":"REQUIRE_HR_REVIEW","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
{"case_id":"E2E-016","input_mode":"INTERNAL_REQUEST","scenario_tags":["BOUNDARY_INTENT"],"hr_input":"응우옌 반 안의 체류기간 경과와 출국 사실을 HR이 확인했어. 고용 종료 검토 업무를 만들어줘","directory_context":{"workers":[{"worker_id":"WRK-DEMO-001","canonical_name":"응우옌 반 안","aliases":["Nguyen Van An","응우옌반안","응 우 옌 반 안"],"phonetic_aliases":["누엔 반 안"]}]},"expected_intents":["EXPIRY_RENEWAL","EMPLOYMENT_CHANGE"],"expected_workflow_ids":["WF-STY-EXC-001","WF-CHG-001"],"expected_subject_lookup":{"status":"MATCHED","worker_id":"WRK-DEMO-001","matched_text":"응우옌 반 안","match_basis":"EXACT_CANONICAL","requires_confirmation":false,"candidate_worker_ids":["WRK-DEMO-001"]},"expected_slots":{"worker_id":"WRK-DEMO-001","stay_expiry_date":"2026-08-10","stay_verification_status":"EMPLOYMENT_ENDED","status_checked_at":"2026-08-17T10:00:00+09:00","employment_end_confirmed_at":"2026-08-16T15:00:00+09:00"},"expected_action":"SPLIT_AND_CONFIRM","expected_routing_triggers":[],"expected_guardrails":{"automatic_external_submission":false,"automatic_worker_message_send":false,"automatic_completion":false,"hr_approval_required":true},"worker_notices":[],"review":{"reviewer_a":"PENDING","reviewer_b":"PENDING","adjudication":"PENDING"},"provenance":"TEAM_SYNTHETIC"}
5 changes: 3 additions & 2 deletions fowoco-knowledge/data/evaluation/e2e_catalog_manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ version: 0.1.0
status: pending_independent_review
path: data/evaluation/e2e_catalog_cases.jsonl
schema: schemas/e2e-catalog-case.schema.json
record_count: 11
sha256: d4ee932c5ba8ee544398b19947af15e22ac9661c1b58b4ad2a636554759d49a6
record_count: 16
sha256: a06af649b596b33adfce4ab73374382f25067f3c35daed496ba387d31bf95828
contains_real_personal_data: false
coverage:
name_variants:
Expand All @@ -20,6 +20,7 @@ coverage:
- boundary_intent
- out_of_scope
- external_execution
- expired_stay_exception
worker_notice_locales: [ko-KR, vi-VN]
model_service_handoff:
compare_paths: [BERT_ONLY, BERT_TO_AX]
Expand Down
19 changes: 19 additions & 0 deletions fowoco-knowledge/examples/expired_stay_exception.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"request": {
"worker_id": "WRK-DEMO-001",
"stay_expiry_date": "2026-08-10",
"stay_verification_status": "APPLICATION_PENDING",
"status_checked_at": "2026-08-17T10:00:00+09:00",
"extension_applied_at": "2026-08-08T14:30:00+09:00",
"extension_receipt_document_id": "DOC-DEMO-STAY-RECEIPT-001",
"next_review_at": "2026-08-24T10:00:00+09:00"
},
"expected_response": {
"intent": "EXPIRY_RENEWAL",
"workflow_id": "WF-STY-EXC-001",
"variant": "EXPIRED_STAY_EXCEPTION",
"next_action": "WAIT_EXTERNAL_AND_RECHECK",
"legal_conclusion": null,
"employment_change_candidate": null
}
}
25 changes: 25 additions & 0 deletions fowoco-knowledge/knowledge/administrative_procedures.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,31 @@ procedures:
- next_review_at
source_ids: [SRC-LAW-IMMIGRATION-ACT-25, SRC-HIKOREA]

- id: PROC-STAY-EXPIRED-VERIFICATION-001
name: 체류기간 만료 경과 긴급 확인
workflow_id: WF-STY-EXC-001
trigger_type: expiry_exception
submission_pattern: evidence_then_human_branch
responsible_party: EMPLOYER_HR
official_channel: HIKOREA_OR_IMMIGRATION_OFFICE
deadline_rule:
kind: immediate_internal_review
input_field: stay_expiry_date
action: 기록상 만료 경과 원인과 최신 공식 상태 확인
note: 기록상 날짜 경과만으로 법적 체류상태·근무 가능 여부·퇴사 여부를 확정하지 않음
status_routes:
APPROVED: 새 만료일과 승인 결과 문서를 HR 확인 후 반영
APPLICATION_PENDING: 접수증과 다음 확인일을 기록하고 외부 결과 대기
UNKNOWN: 공식기관 확인 업무와 확인 메모를 요구
NOT_APPLIED: 자동 완료하지 않고 고위험 HR 검토 유지
EMPLOYMENT_ENDED: HR 확인 후 WF-CHG-001 후보만 생성
stage_outputs:
- confirmed_stay_verification_status
- stay_status_evidence_or_official_note
- next_action
next_workflow_ids: [WF-STY-001, WF-CHG-001]
source_ids: [SRC-LAW-IMMIGRATION-ACT-25, SRC-LAW-IMMIGRATION-ACT-19, SRC-HIKOREA]

- id: PROC-EMPLOYMENT-CHANGE-REPORT-001
name: 외국인근로자 고용변동 등 신고
workflow_id: WF-CHG-001
Expand Down
12 changes: 12 additions & 0 deletions fowoco-knowledge/knowledge/guardrail_rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,15 @@ rules:
rule: 암호화 문서 원본을 LLM 프롬프트에 직접 넣지 않고 필요한 필드만 마스킹해 전달한다.
validation: document_access_policy
failure_action: BLOCK
- id: GRD-008
applies_to: [EXPIRY_RENEWAL]
severity: critical
rule: 기록상 체류기간 만료만으로 불법체류·근무 불가·퇴사·해고를 확정하지 않는다.
validation: require_stay_status_human_confirmation
failure_action: BLOCK_AND_REVIEW
- id: GRD-009
applies_to: [EXPIRY_RENEWAL, EMPLOYMENT_CHANGE]
severity: critical
rule: HR이 증빙과 확인 일시로 고용 종료를 확인한 경우에만 고용변동 Workflow 후보를 제시한다.
validation: require_employment_end_evidence
failure_action: BLOCK_AND_REVIEW
4 changes: 2 additions & 2 deletions fowoco-knowledge/knowledge/manifest.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pack_id: FOWOCO-KNOWLEDGE
version: 0.3.0
version: 0.3.1
status: draft
released_at: 2026-08-13
released_at: 2026-08-17
default_locale: ko-KR
supported_worker_locales:
- vi-VN
Expand Down
Loading