| name | translator |
| description | Environmental scanning report Korean translation skill. Translates EN reports to KO and validates quality. Use when — (1) KO report is missing after workflow completion, (2) user requests report translation, (3) KO file assurance is needed before dashboard build. Invoked via /translate command. |
Korean Translation Skill
Purpose
Translates English (EN) reports from the environmental scanning system into Korean (KO).
Translation quality is validated by translation_validator.py, adhering to the translation-terms.yaml terminology map.
When to Use
- KO report missing after workflow completion: When Step 5.2 (dashboard) detects KO file absence
- Manual user request:
/translate command execution
- M4 Gate remediation: Automatically invoked on CG-002/004 failure
Architecture
┌──────────────────────────────────────────────┐
│ Translator Skill │
│ │
│ Input: EN report (.md) │
│ Terms: translation-terms.yaml (200+ terms) │
│ Agent: @translation-agent (LLM translation) │
│ Validate: translation_validator.py (11 checks│
│ Output: KO report (*-ko.md) │
└──────────────────────────────────────────────┘
Execution Modes
Mode 1: Single File Translation
/translate --file <path-to-en-report.md>
- Read EN source file
- Determine output path (
*-ko.md suffix convention)
- Read
env-scanning/config/translation-terms.yaml
- Invoke
@translation-agent sub-agent with:
- Source file path
- Output file path
- Terminology map
- Quality threshold: 0.95
- Run
translation_validator.py on output
- Report result
Mode 2: All Reports for a Date
/translate --date 2026-03-24
- Read SOT (
workflow-registry.yaml) for enabled workflows
- For each enabled WF, check if KO report exists
- Translate ALL missing KO reports (parallel where possible)
- Validate each KO report
- Summary report
Mode 3: Auto (called from Step 5.2)
When invoked programmatically from the dashboard step:
- Receive list of missing KO file paths
- Translate each (EN source path → KO output path)
- Validate
- Return success/failure list
Translation Protocol
Step 1: Load Configuration
TERMS_FILE = "env-scanning/config/translation-terms.yaml"
VALIDATOR = "env-scanning/core/translation_validator.py"
Step 2: Determine File Pairs (SOT-Driven)
EN/KO filenames are read from SOT (do not hardcode):
workflows.{wf_key}.deliverables.report_en
workflows.{wf_key}.deliverables.report_ko
workflows.{wf_key}.data_root
integration.deliverables.report_en
integration.deliverables.report_ko
integration.output_root
Current SOT values (for reference only; always read from SOT at runtime):
| WF | report_en | report_ko |
|---|
| wf1-general | environmental-scan-{date}.md | environmental-scan-{date}-ko.md |
| wf2-arxiv | environmental-scan-{date}.md | arxiv-scan-{date}-ko.md |
| wf3-naver | naver-scan-{date}.md | naver-scan-{date}-ko.md |
| wf4-multiglobal-news | environmental-scan-{date}.md | environmental-scan-{date}-ko.md |
| integrated | integrated-scan-{date}.md | integrated-scan-{date}-ko.md |
Step 3: Translate via @translation-agent
Invoke @translation-agent sub-agent for each file:
Instructions to pass to @translation-agent:
1. Read the English source file: {EN_PATH}
2. Read the terminology map: env-scanning/config/translation-terms.yaml
3. Translate the ENTIRE document to Korean following these rules:
- IMMUTABLE: STEEPs terms (Social, Technological, Economic, Environmental, Political, spiritual), signal IDs, URLs, dates, scores, file paths
- PRESERVE: arXiv, GPT, AI, EU, WHO, UN and other proper nouns
- USE MAPPINGS: Follow terminology map (e.g., "weak signal" -> "약한 신호", "environmental scanning" -> "환경 스캐닝")
- REGISTER: Formal Korean (합쇼체)
- STRUCTURE: 100% preserve original markdown structure (headings, tables, lists, bold, etc.)
4. Write output to: {KO_PATH}
5. Do NOT add, omit, or reinterpret any content. Translation only.
Step 4: Validate
python3 env-scanning/core/translation_validator.py \
--source {EN_PATH} \
--target {KO_PATH} \
--terms env-scanning/config/translation-terms.yaml
Validation checks:
- STRUCT-001~008: Structure preservation (heading count, table count, list item count, horizontal rules, links, code blocks, total line count ratio +/-40%, blank line ratio)
- TERM-001: STEEPs immutable term preservation
- TERM-002: Proper noun over-translation prevention
- TERM-003: Terminology map compliance >= 60%
Step 5: Retry on Failure
On validation failure:
- Pass failure item feedback to @translation-agent
- Re-translate (max 2 retries)
- After 2 failures, request manual review from user
Quality Standards
| Criterion | Value | Rationale |
|---|
| Structure preservation rate | >= 90% | Maintain original markdown structure |
| Terminology map compliance | >= 60% | TERM-003 standard |
| Korean character ratio | >= 30% | M4 CG-007 standard |
| Immutable term preservation | 100% | STEEPs framework |
| Translation register | Formal Korean | Official report style |
Integration Points
Dashboard Step 5.2
Before dashboard generation, checks for KO file existence and invokes this skill if missing.
M4 Gate Remediation
This skill is invoked as a remediation path when CG-002 (KO report exists) fails.
Manual Invocation
Users can directly invoke /translate --date YYYY-MM-DD to supplement missing translations.
Dependencies
- Worker Agent:
.claude/agents/workers/translation-agent.md
- Validator:
env-scanning/core/translation_validator.py
- Terms Map:
env-scanning/config/translation-terms.yaml
- SOT:
env-scanning/config/workflow-registry.yaml (bilingual section)