{
  "schema_version": 1,
  "locale": "ko",
  "steps": {
    "task_pick": {
      "label": "어느 task? (남은 작업 최신순 추천)",
      "echo_template": "task: {value}",
      "options": {
        "__new__": "직접 입력 (새 작업 또는 목록에 없는 task)",
        "_LATEST_SUFFIX": "  (latest)"
      }
    },
    "task_group": {
      "label": "Task group 을 알려주세요 (예: backend-api, INV-1234, refactor)",
      "echo_template": "task-group: {value}",
      "echo_variants": {
        "free_input": "task-group: (직접 입력)"
      }
    },
    "task_group_with_suggestion": {
      "label": "Task group? (brief 추천: {suggestion})",
      "echo_template": "task-group: {value}",
      "options": {
        "__use_suggested__": "brief 값 사용: {suggestion}",
        "__free_input__": "다른 값 입력"
      },
      "echo_variants": {
        "free_input": "task-group: (직접 입력)"
      }
    },
    "task_group_no_suggestion": {
      "label": "Task group? (예: backend-api, INV-1234)",
      "echo_template": "task-group: {value}",
      "options": {
        "__free_input__": "직접 입력"
      },
      "recent_label_prefix": "최근 항목: ",
      "echo_variants": {
        "free_input": "task-group: (직접 입력)"
      }
    },
    "task_group_text": {
      "label": "Task group 을 입력해주세요 (예: backend-api, INV-1234, refactor)",
      "echo_template": "task-group: {value}"
    },
    "task_id": {
      "label": "Task id 를 알려주세요 (예: login-error-analysis, dev-9043)",
      "echo_template": "task-id: {value}",
      "echo_variants": {
        "free_input": "task-id: (직접 입력)"
      }
    },
    "task_id_with_suggestion": {
      "label": "Task id? (brief 추천: {suggestion})",
      "echo_template": "task-id: {value}",
      "options": {
        "__use_suggested__": "brief 값 사용: {suggestion}",
        "__free_input__": "다른 값 입력"
      },
      "echo_variants": {
        "free_input": "task-id: (직접 입력)"
      }
    },
    "task_id_no_suggestion": {
      "label": "Task id? (예: login-error-analysis, dev-9043)",
      "echo_template": "task-id: {value}",
      "options": {
        "__free_input__": "직접 입력"
      },
      "recent_label_prefix": "같은 group 의 기존: ",
      "echo_variants": {
        "free_input": "task-id: (직접 입력)"
      }
    },
    "task_id_text": {
      "label": "Task id 를 입력해주세요 (예: login-error-analysis, dev-9043)",
      "echo_template": "task-id: {value}"
    },
    "task_type": {
      "label": "Task type?",
      "echo_template": "task-type: {value}",
      "options": {
        "_RECOMMENDED_SUFFIX": " (recommended)",
        "_APPROVE_SUFFIX": " (recommended · 계획 승인 후 구현)",
        "_RERUN_SUFFIX": " (현재 phase 재실행)",
        "_BLOCKED_RERUN_SUFFIX": " (현재 phase 재실행 — 열린 명료화에 답한 뒤)",
        "_NEXT_SUFFIX": " (다음 단계)",
        "__free_input__": "직접 입력"
      },
      "echo_variants": {
        "free_input": "task-type: (직접 입력)"
      }
    },
    "task_type_text": {
      "label": "Task type? (입력 가능: requirements-discovery, improvement-discovery, project-analysis, feature-analysis, change-impact-analysis, error-analysis, implementation-option-selection, implementation-planning, implementation, final-verification, release-handoff)",
      "echo_template": "task-type: {value}"
    },
    "selected_direction_pick": {
      "label": "상세 계획의 입력으로 사용할 확정 구현 방향 보고서를 선택하세요 (같은 task의 최신 3개)",
      "echo_template": "selected-direction: {value}",
      "errors": {
        "none": "같은 task에서 선택할 implementation-option-selection 최종 보고서를 찾을 수 없습니다.",
        "unknown": "목록에 없는 selected-direction 경로입니다: {value}"
      }
    },
    "brief_keep": {
      "label": "기존 brief 경로 [{existing_brief_path}] 를 유지할까요?",
      "echo_template": "brief: {value}",
      "options": {
        "keep": "유지",
        "change": "변경"
      },
      "echo_variants": {
        "kept": "brief: {brief_path} (유지)"
      }
    },
    "brief_path_pick": {
      "label": "task brief markdown 을 선택해주세요",
      "echo_template": "brief(pick): {value}",
      "options": {
        "__existing__": "기존 brief 사용: {existing}",
        "__standard__": "표준 경로 사용: {standard}",
        "__free_input__": "직접 입력"
      },
      "labels": {
        "brief_candidate": "같은 task-group brief: {path}"
      },
      "errors": {
        "existing_missing": "기존 brief 가 없습니다. 다른 옵션을 선택하세요."
      }
    },
    "brief_path": {
      "label": "task brief markdown 의 경로를 알려주세요 (project root 기준 상대경로 또는 절대경로)",
      "echo_template": "brief: {value}"
    },
    "feature_evidence_pick": {
      "label": "변경 영향 분석에 사용할 수락된 기능 기준선 보고서를 선택하세요.",
      "echo_template": "feature-evidence: {value}",
      "options": {
        "__skip__": "건너뛰기",
        "__free_input__": "다른 보고서 경로 입력"
      },
      "echo_variants": {
        "skip": "feature-evidence: (none)",
        "selected": "feature-evidence: {path}"
      }
    },
    "feature_evidence": {
      "label": "기능 기준선 final-report 경로를 입력하세요.",
      "echo_template": "feature-evidence: {value}"
    },
    "project_evidence_pick": {
      "label": "분석에 사용할 수락된 프로젝트 문맥 보고서를 선택하세요.",
      "echo_template": "project-evidence: {value}",
      "options": {
        "__skip__": "건너뛰기",
        "__free_input__": "다른 보고서 경로 입력"
      },
      "echo_variants": {
        "skip": "project-evidence: (none)",
        "selected": "project-evidence: {path}"
      }
    },
    "project_evidence": {
      "label": "프로젝트 문맥 final-report 경로를 입력하세요.",
      "echo_template": "project-evidence: {value}"
    },
    "analysis_target_pick": {
      "label": "프로젝트 기능 색인에서 분석 대상을 선택하세요.",
      "echo_template": "analysis-target: {value}",
      "options": {
        "__free_input__": "자연어로 대상 입력"
      }
    },
    "analysis_target": {
      "label": "분석할 기능·여정·역량을 자연어로 입력하세요.",
      "echo_template": "analysis-target: {value}"
    },
    "handoff_stage_pick": {
      "label": "PR 로 내보낼 범위를 선택하세요 (복수 선택 가능 — 검증 accepted + 미-PR stage 만 표시). 제외된 stage: {blocked}",
      "echo_template": "handoff-scope: {value}",
      "labels": {
        "whole_task": "전체 task — whole-task 검증 기반 단일 PR (단독 선택)",
        "stage": "stage {stage} (depends-on: {deps})",
        "blocked_none": "없음"
      },
      "echo_variants": {
        "whole_task": "handoff scope: 전체 task (whole-task 검증 기반)",
        "stage_group": "handoff scope: stage-group ({stages})"
      },
      "errors": {
        "no_plan": "release-handoff 는 이 task 의 implementation-planning final-report 가 필요합니다 — implementation-planning → implementation → final-verification 을 먼저 진행하세요.",
        "plan_not_approved": "최신 plan 이 approved 상태가 아닙니다: {plan} — implementation 이 완료된 task 에서만 release-handoff 를 시작할 수 있습니다.",
        "nothing_eligible": "PR 로 내보낼 수 있는 범위가 없습니다 — 제외 사유: {blocked}. 단독-stage final-verification 의 accepted 기록(okstra handoff record-verified) 또는 whole-task 검증을 먼저 완료하세요.",
        "none_selected": "최소 1개의 범위를 선택하세요",
        "whole_task_exclusive": "'전체 task' 는 단독 선택만 가능합니다 — stage 묶음을 원하면 stage 번호들만 선택하세요",
        "whole_task_missing": "accepted whole-task final-verification 보고서가 없습니다",
        "not_eligible": "eligible 하지 않은 stage: {bad} (선택 가능: {eligible})"
      }
    },
    "brief_carry": {
      "label": "이 task 에 carry-in 할 brief 가 없습니다. {task_type} 는 entry phase 의 brief 를 이어받는 단계입니다 — 어떻게 진행할까요?",
      "echo_template": "brief-carry: {value}",
      "options": {
        "__switch_entry__": "entry phase 로 전환 (추천) — requirements-discovery / error-analysis / improvement-discovery 부터 시작",
        "__free_input__": "brief 경로 직접 입력",
        "__abort__": "중단"
      },
      "echo_variants": {
        "switch_entry": "brief-carry: entry phase 로 전환 — task-type 을 다시 선택합니다",
        "abort": "brief-carry: 중단"
      }
    },
    "base_ref_pick": {
      "label": "이 task 의 base branch?",
      "echo_template": "base-ref: {value}",
      "options": {
        "_RECOMMENDED_SUFFIX": " (recommended)",
        "__free_input__": "직접 입력"
      }
    },
    "fix_cycle_confirm": {
      "label": "이 task 는 release-handoff 까지 완료된 task 입니다. 이번 재진입을 기존 산출물에 대한 버그 픽스 사이클로 기록할까요?",
      "options": {
        "yes": "버그 픽스 사이클로 기록 (추천)",
        "no": "일반 후속 작업 (기록 안 함)",
        "abort": "중단"
      },
      "echo_template": "fix-cycle: {value}"
    },
    "base_ref_text": {
      "label": "base ref 를 입력해주세요 (branch, tag, 또는 short/full SHA)",
      "echo_template": "base-ref: {value}"
    },
    "approved_plan_pick": {
      "label": "approved final-report 경로 (기본: {default})",
      "label_final_verification": "검증 기준이 될 승인된 plan(approved final-report) 을 선택하세요 (기본: {default})",
      "echo_template": "approved-plan(pick): {value}",
      "options": {
        "__use_default__": "기본 경로 사용: {default}",
        "__other__": "직접 입력"
      },
      "labels": {
        "other_report": "이전 보고서: {path}"
      },
      "echo_suffixes": {
        "other_report": "(이전 보고서)"
      },
      "errors": {
        "default_not_found": "기본 approved-plan 경로를 찾을 수 없습니다. '직접 입력'을 선택하세요."
      }
    },
    "approved_plan": {
      "label": "approved final-report.md 의 경로를 알려주세요 (APPROVED 마커 필수)",
      "echo_template": "approved-plan: {value}"
    },
    "approve_plan_confirm": {
      "label": "이대로 구현을 진행할까요?\n  {path}\n· 예 — 이 plan 대로 구현을 실행합니다. 플랜이 아직 승인 전이면 지금 data.json(정본) + 리포트를 함께 approved 로 처리한 뒤 진행합니다. (markdown 만 손으로 고치면 일관성 검증에서 거부되므로 이 경로로 승인하세요.)\n· 아니오 — 진행하지 않습니다.",
      "label_final_verification": "이 plan 을 검증 기준으로 삼아 진행할까요?\n  {path}\n· 예 — 선택한 stage 의 구현 결과를 위 plan 기준으로 검증합니다. (plan 이 아직 승인 전이면 data.json(정본) + 리포트를 함께 approved 로 처리한 뒤 검증합니다.)\n· 아니오 — 진행하지 않습니다.",
      "html_approval_note": "\n지난 {plan_label} 의 보고서에서 사용자의 승인 기록을 발견했습니다.\n  선택된 방식: {option}",
      "html_approval_note_default_option": "(추천 옵션 그대로)",
      "echo_template": "approve-plan: {value}",
      "options": {
        "yes": "예 — 승인하고 구현 진행",
        "no": "아니오 — 진행하지 않음"
      },
      "options_final_verification": {
        "yes": "예 — 이 plan 기준으로 검증 진행",
        "no": "아니오 — 진행하지 않음"
      },
      "options_html_approval": {
        "yes_apply": "예 — 지난 {plan_label} 보고서, 사용자의 승인 기록으로 진행 (추천)",
        "yes": "예 — 내보낸 기록 무시 후 진행 — 진행 방식은 구현 중 다시 정함",
        "no": "아니오 — 진행하지 않음"
      },
      "echo_variants": {
        "selected": "plan 선택: {path} — 다음 단계에서 승인·구현 진행 여부를 확인합니다",
        "selected_final_verification": "검증 기준 plan 선택: {path} — 다음 단계에서 검증 진행 여부를 확인합니다",
        "approved": "approved-plan: {path} (승인·구현 진행 확인됨)",
        "approved_final_verification": "검증 기준 plan 확정: {path} (검증 진행 확인됨)",
        "approved_with_option": "approved-plan: {path} (승인 + 옵션 `{option}` 적용됨)"
      },
      "errors": {
        "declined": "진행을 선택하지 않으면 다음 단계로 넘어갈 수 없습니다. 진행(예)하거나 위저드를 종료하세요.",
        "still_unapproved": "approve-plan: 승인 처리 후에도 승인 상태가 아닙니다 (data.json/markdown 불일치): {path}",
        "unknown_option": "보고서에서 내보낸 승인 기록의 옵션 `{option}` 이 plan 의 Option Candidates 에 없습니다. 유효 후보: {candidates}. 보고서에서 다시 내보내거나 '예 — 승인만' 을 선택하세요."
      }
    },
    "design_prep_decision": {
      "label": "설계 준비 항목 {item_id} — {title}\n대상 stage: {stage_refs}\n\nAI 초안\n- 요약: {proposal_summary}\n- 상세: {details}\n- 가정: {assumptions}\n- 가드레일: {guardrails}\n- 요청 문서: {request_path}\n\n이 초안을 어떻게 처리할까요?",
      "echo_template": "design-prep decision: {value}",
      "options": {
        "accept-draft": "AI 초안 수락",
        "modify-draft": "AI 초안 수정",
        "reject-draft": "AI 초안 거절",
        "later": "나중에 결정"
      },
      "echo_variants": {
        "later": "design-prep {item_id}: 나중에 결정 — 입력 파일을 만들지 않음"
      },
      "errors": {
        "invalid_decision": "설계 준비 결정은 accept-draft, modify-draft, reject-draft, later 중 하나여야 합니다."
      }
    },
    "design_prep_overrides": {
      "label": "설계 준비 항목 {item_id}의 {decision} 내용을 입력하세요. modify-draft는 JSON 객체, reject-draft는 거절 사유를 입력합니다.",
      "echo_template": "design-prep details: {value}",
      "echo_variants": {
        "overrides": "design-prep overrides: JSON 객체 확인됨",
        "note": "design-prep rejection note: 확인됨"
      },
      "errors": {
        "invalid_json": "수정 내용이 올바른 JSON이 아닙니다: {error}",
        "object_required": "수정 내용은 JSON 객체여야 합니다.",
        "note_required": "reject-draft에는 비어 있지 않은 note가 필요합니다."
      }
    },
    "design_prep_confirm": {
      "label": "설계 준비 입력을 저장하기 전 의미 내용을 확인하세요.\n\nitem: {item_id}\ndecision: {decision}\noverrides: {overrides}\nnotes: {notes}\n\n승인된 스냅샷의 모든 의미 필드:\n{item_snapshot}\n\nrevision / input-id / created-at은 확정 후 원자적으로 할당됩니다.",
      "echo_template": "design-prep confirm: {value}",
      "options": {
        "yes": "예 — 이 의미 내용으로 입력 파일 생성",
        "no": "아니오 — 결정 화면으로 돌아가기"
      },
      "echo_variants": {
        "revise": "design-prep {item_id}: 저장하지 않고 결정 화면으로 돌아감",
        "written": "design-prep {item_id}: revision {revision}, input-id {input_id}, path {path}"
      },
      "errors": {
        "confirmation_required": "설계 준비 입력 저장은 yes 또는 no로 확인해야 합니다."
      }
    },
    "stage_pick": {
      "label": "진행할 stage 를 선택하세요(여러 개 선택 가능). '전체' 는 남은 미완료 stage 를 모두, 개별 선택 시 의존하는 미완료 stage 가 자동 포함됩니다.",
      "label_final_verification": "검증할 implementation stage 를 선택하세요.",
      "echo_template": "stage: {value}",
      "options": {
        "auto": "auto (다음 미완료 stage)",
        "whole_task": "전체 task 검증 (모든 stage)",
        "all_stages": "전체 (남은 미완료 stage 모두)",
        "done_mark": "[done]",
        "undone_mark": "[미완]",
        "mark_done": "[완료]",
        "mark_active": "[진행중]",
        "mark_ready": "[준비됨]",
        "mark_blocked": "[대기]"
      },
      "errors": {
        "none_selected": "stage 를 하나 이상 선택하세요.",
        "whole_task_impl": "전체 task 검증은 final-verification 에서만 선택할 수 있습니다.",
        "all_exclusive": "'전체' 는 단독으로만 선택할 수 있습니다.",
        "nothing_selectable": "선택 가능한 stage 가 없습니다 (모두 완료/진행중).",
        "bad_number": "stage 번호가 올바르지 않습니다: {answer}",
        "unknown_stage": "Stage Map 에 없는 stage 입니다: {bad}",
        "occupied": "이미 완료/진행중인 stage 는 선택할 수 없습니다: {bad}"
      },
      "echo_variants": {
        "plain": "stages: {stages}",
        "with_closure": "stages: {stages} (의존성 자동 포함: {added})"
      }
    },
    "directive_pick": {
      "label": "추가 directive 가 있나요?",
      "echo_template": "directive(pick): {value}",
      "options": {
        "__skip__": "없음 (건너뛰기)",
        "__free_input__": "직접 입력"
      },
      "labels": {
        "reuse_last": "이전 run 의 directive 재사용: {snippet}"
      },
      "echo_suffixes": {
        "reuse": "directive: {value} (재사용)",
        "skip": "directive: (none)"
      }
    },
    "related_tasks_pick": {
      "label": "관련 task id 목록이 있나요?",
      "echo_template": "related-tasks(pick): {value}",
      "options": {
        "__skip__": "없음 (건너뛰기)",
        "__free_input__": "직접 입력"
      },
      "labels": {
        "siblings": "같은 group 의 task-id 사용: {snippet}"
      },
      "echo_suffixes": {
        "skip": "related-tasks: (none)",
        "siblings": "related-tasks: {value} (siblings)"
      }
    },
    "clarification_pick": {
      "label": "clarification-response 를 넘길까요? (follow-up 시에만 — final-report 선택 시 user-responses/ 폴더의 답변도 함께 첨부됩니다)",
      "echo_template": "clarification(pick): {value}",
      "options": {
        "__skip__": "없음 (건너뛰기)",
        "__free_input__": "직접 입력"
      },
      "labels": {
        "latest_report": "최근 final-report 사용: {snippet}"
      },
      "sidecar_note": {
        "attached": " + user-responses 답변 {count}개 함께 첨부",
        "empty": " (user-responses 폴더 비어 있음 — final-report 만 첨부)"
      },
      "echo_suffixes": {
        "skip": "clarification: (none)",
        "latest_report": "clarification: {value} (재사용)"
      }
    },
    "reverify_scope_pick": {
      "label": "재검증 범위를 어떻게 할까요? (답변한 항목이 모두 직전 리포트의 stage 에 연결돼 있어 범위를 좁힐 수 있는 상태입니다 — 최종 확정은 run 시점 base-ref 비교)",
      "label_unlinked": "답변한 항목 중 직전 리포트의 stage 에 연결되지 않은 것이 있습니다. 다시 볼 stage 번호를 지정하거나 전체 재검증을 고르세요. 연결되지 않은 id 가 재실행 전체를 full 로 만들지는 않습니다.",
      "echo_template": "reverify-scope: {value}",
      "options": {
        "auto": "관련 stage 만 (추천) — 답변이 닿는 stage 와 그 하위만 다시 검증하고 나머지는 직전 판정을 그대로 이월",
        "full": "전체 재검증 — stage 전부를 처음부터 다시 교차검증 (시간은 더 들지만 계획 형태가 바뀌었을 때 안전)",
        "__free_input__": "직접 입력 — 다시 볼 stage 번호를 지정"
      },
      "echo_suffixes": {
        "auto": "reverify-scope: auto (좁힐 수 있으면 좁힘)",
        "full": "reverify-scope: full (전체 재검증)"
      },
      "errors": {
        "unlinked_auto": "직전 리포트의 stage 에 연결되지 않은 답변이 있어 자동 판정을 쓸 수 없습니다: {ids}. stage 번호를 지정하거나 전체 재검증을 고르세요."
      }
    },
    "reverify_scope_stages": {
      "label": "다시 볼 stage 번호를 쉼표로 입력하세요 (예: 2,3 — 직전 리포트 Stage Map 에 있는 번호만 유효. 지정한 stage 의 하위 stage 까지 함께 재검증됩니다. 빈 줄이면 자동 판정)",
      "echo_template": "reverify-scope: stage {value}",
      "echo_suffixes": {
        "auto": "reverify-scope: auto (좁힐 수 있으면 좁힘)"
      },
      "errors": {
        "not_a_number": "stage 번호는 정수여야 합니다: {token}",
        "unknown_stage": "직전 리포트의 Stage Map 에 없는 stage 입니다: {stages} (Stage Map 의 번호: {known})",
        "no_stage_map": "직전 리포트에서 Stage Map 을 읽을 수 없어 stage 번호를 검증할 수 없습니다: {reason}",
        "unlinked_empty": "직전 리포트의 stage 에 연결되지 않은 답변이 있어 빈 입력(자동)을 쓸 수 없습니다: {ids}. stage 번호를 입력하세요."
      }
    },
    "pr_template_pick": {
      "label": "PR 본문 템플릿 경로를 직접 지정할까요?",
      "echo_template": "pr-template(pick): {value}",
      "options": {
        "__skip__": "자동 해석 (project.json → config → 기본)",
        "__free_input__": "직접 입력"
      },
      "labels": {
        "project_default": "project.json 의 prTemplatePath 사용: {snippet}"
      },
      "echo_suffixes": {
        "skip": "pr-template: (auto-resolve)",
        "project_default": "pr-template: {value} (project default)"
      }
    },
    "executor": {
      "label": "실행자 (executor)?",
      "echo_template": "executor: {value}",
      "options": {
        "_DEFAULT_SUFFIX": " (default)"
      }
    },
    "critic_pick": {
      "label": "critic 모델을 고르세요 (매 런 1명. 동수 계획 항목을 이 역할이 가릅니다)",
      "echo_template": "critic: {value}",
      "options": {},
      "labels": {
        "provider_recommended": "{provider} critic (추천)",
        "provider": "{provider} critic"
      }
    },
    "critic_text": {
      "label": "critic provider 를 선택하세요",
      "echo_template": "critic: {value}",
      "labels": {
        "provider_recommended": "{provider} critic (추천)",
        "provider": "{provider} critic"
      }
    },
    "reuse_previous": {
      "label": "이 task·phase 의 직전 run 설정이 남아 있습니다. 그대로 재사용할까요?\n· 예 — 직전 run 의 워커 구성·역할별 모델·directive·관련 task 를 그대로 가져오고, 가장 최근 final-report 를 clarification 입력으로 자동 선택해 바로 확인 단계로 넘어갑니다.\n· 아니오 — 모델/워커/directive 등을 단계별로 다시 입력합니다.",
      "echo_template": "reuse-previous: {value}",
      "options": {
        "yes": "예 — 직전 설정 그대로 진행",
        "no": "아니오 — 단계별로 다시 입력"
      }
    },
    "role_count": {
      "label": "{role} 역할 인스턴스 수를 선택하세요 ({minimum}..{maximum}, 적정 {default})",
      "echo_template": "role-count: {value}",
      "options": {
        "count": "{count}개{default_suffix}",
        "default_suffix": " (적정)"
      }
    },
    "role_add": {
      "label": "선택 역할 {role} 을(를) 이번 run 에 추가할까요? (최대 {maximum}개)",
      "echo_template": "role-add: {value}",
      "options": {
        "skip": "추가 안 함{default_suffix}",
        "add": "{count}개 추가{default_suffix}",
        "default_suffix": " (기본)"
      }
    },
    "role_model": {
      "label": "{role} 역할 {ordinal}/{count} 인스턴스의 모델을 선택하세요",
      "echo_template": "role-model: {value}",
      "options": {
        "model": "{model_ref} — {display}{default_suffix}",
        "default_suffix": " (기본 후보)"
      }
    },
    "defaults_or_custom": {
      "label": "역할별 모델 선택 단계입니다 (참여 워커 구성을 바꾸는 게 아닙니다).\n이번 run 에서 모델을 고를 역할:\n{role_models}\n· 기본값으로 진행 — 위 추천 모델을 그대로 쓰고, directive·관련 task 없이 바로 넘어갑니다.\n· 커스터마이즈 — 위 역할별 모델을 직접 고르고, 추가 directive·관련 task 도 지정합니다.\n(추천 값은 runtime 기본값으로 해소됩니다. 분석에 참여하지 않는 역할은 위 목록에 나오지 않습니다 — 예: antigravity 는 implementation 의 executor 로 선택했을 때만 표시됩니다.)",
      "echo_template": "customize: {value}",
      "options": {
        "defaults": "기본값으로 진행 (역할별 추천 모델 그대로)",
        "customize": "커스터마이즈 (역할별 모델 직접 선택)"
      }
    },
    "workers_override": {
      "label": "이번 run 에 추가할 분석 워커를 선택해주세요 (최소 1개, 여러 개 가능).\n기본 워커와 report-writer 는 항상 참여하므로 목록에 없습니다 — 기본 워커에서 일부를 빼려면 '직접 선택'을 고르세요.",
      "echo_template": "workers: {value}",
      "labels": {
        "default_roster": "기본 워커만 ({workers}) — 옵션 워커 추가 없음",
        "add_optional": "{worker} 추가 (옵션)"
      },
      "options": {
        "__free_input__": "직접 선택 (기본 워커까지 포함한 전체 목록에서 고르기)"
      },
      "errors": {
        "min_one_required": "워커를 최소 1개 선택해주세요",
        "custom_must_be_alone": "'직접 선택'은 다른 항목과 함께 고를 수 없습니다 — 단독으로 선택해주세요",
        "unknown_option": "목록에 없는 항목입니다: {values}"
      }
    },
    "workers_custom": {
      "label": "참여시킬 분석 워커를 직접 선택해주세요 (최소 1개). report-writer 는 항상 포함됩니다.",
      "echo_template": "workers: {value}",
      "options": {
        "_OPTIONAL_SUFFIX": " (옵션)"
      },
      "errors": {
        "min_one_required": "워커를 최소 1개 선택해주세요"
      }
    },
    "lead_model": {
      "label": "리더(Okstra lead) 제공자와 모델?",
      "echo_template": "lead-model: {value}"
    },
    "executor_model": {
      "label": "실행자({executor}) 모델?",
      "echo_template": "{executor}-model: {value}"
    },
    "claude_model": {
      "label": "claude 워커 모델?",
      "echo_template": "claude-model: {value}"
    },
    "codex_model": {
      "label": "codex 워커 모델?",
      "echo_template": "codex-model: {value}"
    },
    "antigravity_model": {
      "label": "antigravity 워커 모델?",
      "echo_template": "antigravity-model: {value}"
    },
    "grok_model": {
      "label": "Grok 워커 모델?",
      "echo_template": "grok-model: {value}"
    },
    "kimi_model": {
      "label": "Kimi 워커 모델?",
      "echo_template": "kimi-model: {value}"
    },
    "report_writer_model": {
      "label": "리포트 작성자(report-writer) 모델?",
      "echo_template": "report-writer-model: {value}"
    },
    "directive": {
      "label": "추가 directive 가 있으면 적어주세요 (없으면 빈 줄)",
      "echo_template": "directive: {value}"
    },
    "related_tasks": {
      "label": "관련 task id 목록을 쉼표로 구분해서 적어주세요 (없으면 빈 줄)",
      "echo_template": "related-tasks: {value}"
    },
    "clarification": {
      "label": "clarification-response 파일 경로 (follow-up 시에만, 없으면 빈 줄)",
      "echo_template": "clarification: {value}"
    },
    "pr_template": {
      "label": "PR 본문 템플릿 경로 1회성 override (빈 줄이면 project.json → ~/.okstra/config.json → 스킬 디폴트 순으로 자동 해석)",
      "echo_template": "pr-template: {value}"
    },
    "pr_template_scope": {
      "label": "방금 입력한 경로를 영구 저장할까요?",
      "echo_template": "pr-template-scope: {value}",
      "options": {
        "once": "이번 run 만 (1회성)",
        "project": "프로젝트에 저장 (project scope)",
        "global": "전역에 저장 (global scope)"
      }
    },
    "confirm": {
      "label": "이대로 진행할까요?",
      "echo_template": "confirm: {value}",
      "options": {
        "proceed": "Proceed",
        "edit": "Edit",
        "abort": "중단"
      }
    },
    "edit_target": {
      "label": "어느 step 으로 돌아갈까요?",
      "echo_template": "edit-target: {value}"
    }
  },
  "confirmation": {
    "header": "선택 확인:",
    "static_role": "  static-role   : {role}#{ordinal} / {model}",
    "dynamic_role": "  dynamic-role  : {role} / reuse selected participant model",
    "workers_implementation_default": "  workers       : (프로필 기본 — executor + verifier 2 + report-writer)",
    "base_ref_stage_isolated": "  base-ref      : (stage 격리 — 의존 stage 기준으로 run 준비 시점에 자동 해소)",
    "base_ref_reuse_task_dir": "  base-ref      : (기존 `{task_key}` 디렉터리 재사용 — 최초 base 유지)",
    "worktree_new": "  worktree      : 새 브랜치 `{branch}` (base-ref `{base_ref}`) → `{path}`",
    "worktree_reuse": "  worktree      : 기존 디렉터리 재사용 — `{path}` (브랜치 `{branch}`)",
    "worktree_in_worktree": "  worktree      : 현재 worktree 그대로 — `{path}`",
    "worktree_not_git": "  worktree      : git 저장소 아님 — `{path}` 에서 직접 진행",
    "worktree_impl_new": "  worktree      : stage {stage} 새 worktree `{path}` (브랜치 `{branch}`, base 는 run 준비 시 해소)",
    "worktree_impl_reuse": "  worktree      : 기존 stage {stage} worktree `{path}` (브랜치 `{branch}`)",
    "worktree_impl_auto": "  worktree      : stage 자동 선택 — `{path}` 아래 stage-<N>/ worktree 생성/재사용",
    "clarification_sidecars_empty": "  user-responses: 없음 — final-report 만 첨부됩니다",
    "clarification_sidecars_attached": "  user-responses: 사이드카 {files}개 · 답변 {count}개 함께 첨부 — {ids}",
    "clarification_sidecars_none_parsed": "답변으로 셀 항목 없음 (reframe 등)",
    "reverify_scope_incremental": "  reverify-scope: incremental 가능 — 답변된 항목이 모두 직전 리포트의 stage 에 연결됨 (최종 확정은 run 시점 base-ref 비교)",
    "reverify_scope_unlinked": "  reverify-scope: stage 번호 필요 — {ids} 이(가) 직전 리포트의 어느 stage 에도 연결되지 않음 (자동 판정 불가; full 로 강제되지는 않음)",
    "reverify_scope_full": "  reverify-scope: full 예상 — {reason}\n                  (좁히지 못하는 것은 재검증 범위이지 답변이 아닙니다 — 답변은 모두 carry-in 되어 반영되고, 대신 stage 전체를 다시 검증합니다)",
    "reverify_scope_user_full": "  reverify-scope: full (사용자 지정 — 전체 재검증)",
    "reverify_scope_user_stages": "  reverify-scope: stage {stages} 재검증 지정 (사용자 지정 — 하위 stage 포함, 나머지는 직전 판정 이월)",
    "stage_whole_task": "전체 task",
    "handoff_scope_whole_task": "전체 task (whole-task 검증 기반)",
    "handoff_scope_stage_group": "stage-group ({stages})"
  }
}
