@simplysm/sd-claude 13.0.83 → 13.0.85

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,113 +1,122 @@
1
1
  ---
2
2
  name: sd-debug
3
- description: "디버그", "debug", "sd-debug", "오류 분석", "에러 원인", "버그 찾기" 등을 요청할 때 사용.
3
+ description: Used when requesting "debug", "sd-debug", "error analysis", "error cause", "find bug", etc.
4
4
  ---
5
5
 
6
- # SD Debug — 오류 원인 분석 해결 계획 수립
6
+ # SD Debug — Root Cause Analysis and Resolution Planning
7
7
 
8
- 에러 메시지, 스택 트레이스, 또는 문제 상황 설명을 받아 코드베이스를 심층 분석한 근본 원인을 진단하고, `/sd-plan` 프로세스로 해결 계획을 수립한다.
8
+ Receives error messages, stack traces, or problem descriptions, performs in-depth codebase analysis to diagnose the root cause, and formulates a resolution plan via the `/sd-plan` process.
9
9
 
10
- ARGUMENTS: 에러 메시지, 스택 트레이스, 또는 문제 상황 설명 (선택). 미지정 대화 컨텍스트에서 파악하거나 사용자에게 질문한다.
10
+ ARGUMENTS: Error message, stack trace, or problem description (optional). If not provided, the skill infers from the conversation context or asks the user.
11
11
 
12
12
  ---
13
13
 
14
- ## Step 1: 문제 정보 확보
14
+ ## Step 1: Gather Problem Information
15
15
 
16
- - 문제 정보를 아래 우선순위로 확보하라:
17
- 1. **ARGUMENTS**: 스킬 호출 함께 전달된 에러 메시지, 스택 트레이스, 또는 문제 설명
18
- 2. **현재 대화**: ARGUMENTS 없으면 현재 대화 컨텍스트에서 에러 메시지, 로그, 문제 상황을 파악
19
- 3. **AskUserQuestion**: 둘로도 파악이 되면 "어떤 문제를 디버깅할까요? 에러 메시지, 스택 트레이스, 또는 문제 상황을 설명해 주세요."라고 질문
20
- - 확보한 문제 정보에서 아래를 추출하라:
21
- - **에러 유형**: 컴파일 에러 / 런타임 에러 / 타입 에러 / 논리 오류 / 빌드 에러 / 동작 이상
22
- - **관련 단서**: 파일 경로, 함수명, 라인 번호, 패키지명, 에러 코드 코드베이스 탐색에 활용할 키워드
16
+ - Gather problem information in the following priority order:
17
+ 1. **ARGUMENTS**: Error message, stack trace, or problem description passed along with the skill invocation
18
+ 2. **Current conversation**: If no ARGUMENTS are provided, identify error messages, logs, or problem context from the current conversation
19
+ 3. **AskUserQuestion**: If neither of the above yields sufficient information, ask: "What problem would you like to debug? Please provide an error message, stack trace, or describe the issue."
20
+ - Extract the following from the gathered problem information:
21
+ - **Error type**: Compilation error / runtime error / type error / logic error / build error / unexpected behavior, etc.
22
+ - **Related clues**: Keywords useful for codebase exploration, such as file paths, function names, line numbers, package names, error codes, etc.
23
23
 
24
- ## Step 2: 코드베이스 심층 분석
24
+ ## Step 2: In-Depth Codebase Analysis
25
25
 
26
- Step 1에서 확보한 문제 정보와 단서를 바탕으로, 해당 문제의 근본 원인을 파악하기 위해 필요한 조사를 스스로 판단하여 수행하라. Agent 도구(subagent_type: Explore) 활용하여 코드베이스를 탐색하되, 조사 범위와 방법은 문제의 성격에 따라 자유롭게 결정하라.
26
+ Based on the problem information and clues gathered in Step 1, autonomously determine and perform the investigation needed to identify the root cause of the problem. Use the Agent tool (subagent_type: Explore) to explore the codebase, deciding the scope and method of investigation freely based on the nature of the problem.
27
27
 
28
- ### 분석 원칙
28
+ ### Analysis Principles
29
29
 
30
- > **핵심**: 근본 원인을 완전히 이해하기 전까지 해결 방안을 제시하지 마라. "분석 이해 해결책" 순서를 반드시 지켜라.
30
+ > **Key rule**: Do not propose solutions until you fully understand the root cause. Always follow the order: "Analyze -> Understand -> Solve."
31
31
 
32
- 1. **추측 수정 금지**: 코드를 수정해보고 결과를 확인하는 시행착오 방식으로 원인을 찾지 마라. 코드를 읽고 로직을 추적하여 원인을 파악하라.
33
- 2. **우회 금지**: `as` 타입 단언, `any`, `// @ts-ignore`, 하드코딩, 예외 삼킴(`catch` 무시) 등으로 증상을 숨기는 방안을 해결책으로 제시하지 마라.
34
- 3. **의도 파악 우선**: 테스트 실패 시, 테스트가 검증하는 의도된 동작과 현재 코드의 실제 동작을 먼저 비교하라. 기능 변경이 의도적이면 테스트를 갱신하고, 의도치 않은 변경이면 코드를 수정하라. 의도를 판단할 수 없으면 사용자에게 질문하라.
35
- 4. **증상과 원인 구분**: 에러 메시지가 나타나는 지점이 원인이 아닐 있다. 에러 지점에서 역추적하여 실제 원인을 찾아라.
32
+ 1. **Understand intended behavior first**: Before analyzing the bug, first understand what the problematic code is *supposed* to do. Read the surrounding context, callers, and tests to grasp the original intent. Document this intended behavior explicitly — it becomes the baseline that any fix must preserve.
33
+ 2. **No speculative fixes**: Do not attempt to find the cause through trial-and-error by modifying code and checking results. Read the code and trace the logic to identify the cause.
34
+ 3. **No workarounds**: Do not propose solutions that mask symptoms, such as `as` type assertions, `any`, `// @ts-ignore`, hardcoding, or swallowing exceptions (ignoring after `catch`).
35
+ 4. **Test failure triage**: When tests fail, first compare the intended behavior the test validates against the code's actual behavior. If the behavior change was intentional, update the test; if unintentional, fix the code. If intent cannot be determined, ask the user.
36
+ 5. **Distinguish symptoms from causes**: The point where the error message appears may not be the actual cause. Trace back from the error location to find the real cause.
36
37
 
37
- ### 분석 결과 정리
38
+ ### Organize Analysis Results
38
39
 
39
- 분석이 끝나면 아래 항목들을 정리하라:
40
- - **에러 발생 지점**: 문제가 발생하는 구체적 코드 위치 (파일경로:라인)
41
- - **근본 원인**: 문제가 발생하는지에 대한 분석
42
- - **영향 범위**: 문제가 영향을 미치는 파일/함수 목록
43
- - **해결 방안**: 가능한 해결 방법들 (각각 수정 대상 파일 포함)
40
+ Once the analysis is complete, organize the following items:
41
+ - **Intended behavior**: What the problematic code is supposed to do (the baseline that must be preserved)
42
+ - **Error location**: The specific code location where the problem occurs (file_path:line)
43
+ - **Root cause**: Analysis of why this problem occurs
44
+ - **Impact scope**: List of files/functions affected by this problem
45
+ - **Resolution options**: Possible solutions (including target files for each)
44
46
 
45
- ## Step 3: 진단 결과 종합 사용자 확인
47
+ ## Step 3: Consolidate Diagnosis and User Confirmation
46
48
 
47
- Step 2 분석 결과를 종합하여 아래 형식으로 진단 보고서를 작성하고 사용자에게 제시하라:
49
+ Consolidate the analysis results from Step 2 into a diagnostic report in the format below and present it to the user:
48
50
 
49
51
  ```
50
- ## 진단 결과
52
+ ## Diagnosis Results
51
53
 
52
- ### 문제 요약
53
- <에러/문제를 문장으로 요약>
54
+ ### Problem Summary
55
+ <Summarize the error/problem in one sentence>
54
56
 
55
- ### 근본 원인
56
- <근본 원인을 명확하고 구체적으로 설명. 파일 경로와 라인 번호 포함.>
57
+ ### Intended Behavior
58
+ <Describe what the problematic code is supposed to do. This is the baseline — any fix must preserve this behavior.>
57
59
 
58
- ### 영향 범위
59
- - <영향받는 파일/함수 1>
60
- - <영향받는 파일/함수 2>
60
+ ### Root Cause
61
+ <Explain the root cause clearly and specifically. Include file paths and line numbers.>
61
62
 
62
- ### 해결 방안
63
+ ### Impact Scope
64
+ - <Affected file/function 1>
65
+ - <Affected file/function 2>
63
66
 
64
- 1. **<방안 1 제목>**: <설명>
65
- - 수정 대상: <파일 경로 목록>
66
- - 장점: ...
67
- - 단점: ...
67
+ ### Resolution Options
68
68
 
69
- 2. **<방안 2 제목>**: <설명> (해당 시)
70
- - 수정 대상: <파일 경로 목록>
71
- - 장점: ...
72
- - 단점: ...
69
+ 1. **<Option 1 title>**: <Description>
70
+ - Target files: <List of file paths>
71
+ - Behavioral change: <Does this change any existing behavior? "None — preserves intended behavior" or describe what changes>
72
+ - Pros: ...
73
+ - Cons: ...
73
74
 
74
- ### 권장 방안
75
- <가장 적절한 방안과 이유>
75
+ 2. **<Option 2 title>**: <Description> (if applicable)
76
+ - Target files: <List of file paths>
77
+ - Behavioral change: <Does this change any existing behavior? "None — preserves intended behavior" or describe what changes>
78
+ - Pros: ...
79
+ - Cons: ...
80
+
81
+ ### Recommended Option
82
+ <The most appropriate option and the reasoning>
76
83
  ```
77
84
 
78
- 진단 보고서를 출력한 뒤, AskUserQuestion으로 다음을 질문하라:
85
+ After outputting the diagnostic report, ask the following via AskUserQuestion:
79
86
 
80
87
  ```
81
- 진단 결과를 확인해 주세요.
82
- 1. 진단이 정확하므로 권장 방안으로 계획을 수립한다
83
- 2. 진단이 정확하지만 다른 방안(번호)으로 계획을 수립한다
84
- 3. 진단이 부정확하다추가 정보를 제공하겠다
88
+ Please review the diagnosis results.
89
+ 1. The diagnosis is accurate proceed with the recommended option
90
+ 2. The diagnosis is accurate, but proceed with a different option (specify number)
91
+ 3. The diagnosis is inaccurate I will provide additional information
85
92
  ```
86
93
 
87
- - **1 선택**: 권장 방안을 기반으로 Step 4 진행하라.
88
- - **2 선택**: 사용자가 지정한 방안을 기반으로 Step 4 진행하라.
89
- - **3 선택**: 사용자가 제공한 추가 정보를 반영하여 Step 2로 돌아가라.
94
+ - **Option 1 selected**: Proceed to Step 4 based on the recommended option.
95
+ - **Option 2 selected**: Proceed to Step 4 based on the option specified by the user.
96
+ - **Option 3 selected**: Return to Step 2 incorporating the additional information provided by the user.
90
97
 
91
- ## Step 4: sd-plan으로 해결 계획 수립
98
+ ## Step 4: Formulate Resolution Plan via sd-plan
92
99
 
93
- 사용자가 확인한 진단 결과와 선택된 해결 방안을 작업 설명으로 하여, Skill 도구로 `sd-plan`을 호출하라. args에 아래를 전달하라:
100
+ Using the user-confirmed diagnosis and the selected resolution option as the task description, invoke `sd-plan` via the Skill tool. Pass the following in args:
94
101
 
95
102
  ```
96
- 아래 디버깅 진단 결과에 따른 해결 방안을 구현하기 위한 계획을 수립하라:
103
+ Formulate a plan to implement the resolution based on the following debugging diagnosis:
97
104
 
98
- ## 문제
99
- <Step 3의 문제 요약>
105
+ ## Problem
106
+ <Problem summary from Step 3>
100
107
 
101
- ## 근본 원인
102
- <Step 3의 근본 원인>
108
+ ## Root Cause
109
+ <Root cause from Step 3>
103
110
 
104
- ## 해결 방안
105
- <사용자가 선택한 해결 방안의 상세 내용>
111
+ ## Resolution
112
+ <Detailed content of the resolution option selected by the user>
106
113
 
107
- ## 수정 대상 파일
108
- <해결 방안의 수정 대상 파일 경로 목록>
114
+ ## Target Files
115
+ <List of target file paths from the resolution option>
109
116
  ```
110
117
 
111
- ## Step 5: 계획 실행
118
+ ## Step 5: Execute the Plan
119
+
120
+ Once sd-plan completes and produces a finalized plan, modify the code according to that plan.
112
121
 
113
- sd-plan이 완료되어 확정된 계획서가 나오면, 계획서에 따라 코드를 수정하라.
122
+ After applying the fix, verify that the intended behavior documented in Step 2 is preserved. Review the changes and confirm they correct the defect without altering what the code is supposed to do.
@@ -1,109 +1,109 @@
1
1
  ---
2
2
  name: sd-document
3
- description: .docx, .xlsx, .pptx, .pdf 파일과 관련하여 "문서 읽기/분석", "파일 내용 추출", "DOCX/XLSX 생성", "고객 문서 검토", "데이터 내보내기" 요청할때 사용.
3
+ description: Used when requesting "read/analyze documents", "extract file content", "create DOCX/XLSX", "review customer documents", or "export data" related to .docx, .xlsx, .pptx, .pdf files.
4
4
  ---
5
5
 
6
- # SD Document — 문서 파일 읽기/쓰기
6
+ # SD Document — Read/Write Document Files
7
7
 
8
- 문서 파일(.docx/.xlsx/.pptx/.pdf) Python 스크립트로 읽거나 쓴다. 읽기 텍스트와 이미지를 위치 정보와 함께 추출하고, 이미지를 파일로 저장한 Claude Read로 분석한다.
8
+ Reads or writes document files (.docx/.xlsx/.pptx/.pdf) using Python scripts. When reading, extracts text and images along with positional information, saves images to files, and analyzes them with Claude Read.
9
9
 
10
- ARGUMENTS: 문서 파일 경로 (필수). `.docx`, `.xlsx`, `.pptx`, `.pdf` 파일 경로를 지정한다.
10
+ ARGUMENTS: Document file path (required). Specify a `.docx`, `.xlsx`, `.pptx`, or `.pdf` file path.
11
11
 
12
12
  ---
13
13
 
14
- ## Step 1: 작업 방향 결정
14
+ ## Step 1: Determine Task Direction
15
15
 
16
- ARGUMENTS에서 파일 경로를 추출하고, 사용자의 요청이 **읽기**(분석/추출)인지 **쓰기**(생성/편집)인지 판단하라.
16
+ Extract the file path from ARGUMENTS and determine whether the user's request is **read** (analyze/extract) or **write** (create/edit).
17
17
 
18
- - **읽기** → Step 2로 이동
19
- - **쓰기** → Step 4로 이동
18
+ - **Read**Go to Step 2
19
+ - **Write**Go to Step 4
20
20
 
21
- ### 형식별 지원 현황
21
+ ### Format Support Matrix
22
22
 
23
- | 형식 | 읽기 | 쓰기 | 라이브러리 |
24
- |------|------|------|-----------|
25
- | DOCX | 가능 | 가능 | `python-docx` |
26
- | XLSX | 가능 | 가능 | `openpyxl`, `pandas` |
27
- | PPTX | 가능 | 불가 | `python-pptx` |
28
- | PDF | 가능 | 불가 | `pdfplumber`, `pypdf` |
23
+ | Format | Read | Write | Library |
24
+ |--------|------|-------|---------|
25
+ | DOCX | Supported | Supported | `python-docx` |
26
+ | XLSX | Supported | Supported | `openpyxl`, `pandas` |
27
+ | PPTX | Supported | Not supported | `python-pptx` |
28
+ | PDF | Supported | Not supported | `pdfplumber`, `pypdf` |
29
29
 
30
- 누락된 패키지는 스크립트 실행 자동 설치된다.
30
+ Missing packages are automatically installed on first script execution.
31
31
 
32
- ## Step 2: 문서 읽기 (추출 스크립트 실행)
32
+ ## Step 2: Read Document (Run Extraction Script)
33
33
 
34
- 파일 확장자에 맞는 추출 스크립트를 실행하라:
34
+ Run the extraction script matching the file extension:
35
35
 
36
36
  ```bash
37
- python .claude/skills/sd-document/extract_docx.py <파일경로>
38
- python .claude/skills/sd-document/extract_xlsx.py <파일경로>
39
- python .claude/skills/sd-document/extract_pptx.py <파일경로>
40
- python .claude/skills/sd-document/extract_pdf.py <파일경로>
37
+ python .claude/skills/sd-document/extract_docx.py <file_path>
38
+ python .claude/skills/sd-document/extract_xlsx.py <file_path>
39
+ python .claude/skills/sd-document/extract_pptx.py <file_path>
40
+ python .claude/skills/sd-document/extract_pdf.py <file_path>
41
41
  ```
42
42
 
43
- ### 출력
44
- - **stdout**: 텍스트 위치 정보 (Markdown 형식)
45
- - **이미지 파일**: `<파일명>_files/` 디렉토리에 저장
43
+ ### Output
44
+ - **stdout**: Text and positional information (Markdown format)
45
+ - **Image files**: Saved to `<filename>_files/` directory
46
46
 
47
- ### 위치 정보
47
+ ### Positional Information
48
48
 
49
- | 형식 | 위치 표현 방식 |
50
- |------|--------------|
51
- | DOCX | 문단 흐름 순서 (텍스트-이미지 인라인) |
52
- | XLSX | 위치 (A1, B2 ) |
53
- | PPTX | 도형 left/top 좌표 (인치) + 슬라이드 번호 |
54
- | PDF | 페이지 번호 |
49
+ | Format | Position Representation |
50
+ |--------|----------------------|
51
+ | DOCX | Paragraph flow order (text-image inline) |
52
+ | XLSX | Cell position (A1, B2, etc.) |
53
+ | PPTX | Shape left/top coordinates (inches) + slide number |
54
+ | PDF | Page number |
55
55
 
56
- ## Step 3: 추출 결과 분석
56
+ ## Step 3: Analyze Extraction Results
57
57
 
58
- Step 2 출력에서 추출된 파일 경로를 확인하고 아래를 수행하라:
58
+ Check the extracted file paths from Step 2 output and perform the following:
59
59
 
60
- 1. **이미지**: `_files/` 디렉토리에 저장된 이미지를 **Read** 도구로 열어 시각적 분석을 수행
61
- 2. **텍스트**: stdout으로 출력된 텍스트를 사용자의 요청에 맞게 분석/요약
60
+ 1. **Images**: Open each image saved in the `_files/` directory with the **Read** tool for visual analysis
61
+ 2. **Text**: Analyze/summarize the text output to stdout according to the user's request
62
62
 
63
- ## Step 4: 문서 쓰기
63
+ ## Step 4: Write Document
64
64
 
65
- 사용자의 요청에 따라 Python 스크립트를 작성하여 문서를 생성하거나 편집하라.
65
+ Write a Python script to create or edit documents according to the user's request.
66
66
 
67
67
  ### DOCX (`python-docx`)
68
68
 
69
- 메일 템플릿 간단한 보고서용.
69
+ For email templates and simple reports.
70
70
 
71
71
  ```python
72
72
  from docx import Document
73
73
 
74
- doc = Document() # 문서
75
- # doc = Document("existing.docx") # 기존 문서 편집
76
- doc.add_heading("제목", level=1)
77
- doc.add_paragraph("본문 내용")
74
+ doc = Document() # New document
75
+ # doc = Document("existing.docx") # Edit existing document
76
+ doc.add_heading("Title", level=1)
77
+ doc.add_paragraph("Body content")
78
78
  table = doc.add_table(rows=2, cols=3)
79
- table.cell(0, 0).text = "항목"
79
+ table.cell(0, 0).text = "Item"
80
80
  doc.save("output.docx")
81
81
  ```
82
82
 
83
- 기존 문서 편집: `Document("existing.docx")`로 열어 `paragraph.text` 교체, `table.cell().text` 수정.
83
+ Edit existing document: Open with `Document("existing.docx")` and replace `paragraph.text`, modify `table.cell().text`.
84
84
 
85
85
  ### XLSX (`openpyxl`)
86
86
 
87
- 데이터와 수식 중심. 서식(색상, 테두리) 필수가 아님.
87
+ Data and formula focused. Formatting (colors, borders) is not required.
88
88
 
89
89
  ```python
90
90
  from openpyxl import Workbook
91
91
 
92
92
  wb = Workbook()
93
93
  ws = wb.active
94
- ws["A1"] = "항목"
95
- ws["B1"] = "수량"
96
- ws.append(["사과", 10])
97
- ws.append(["", 20])
94
+ ws["A1"] = "Item"
95
+ ws["B1"] = "Quantity"
96
+ ws.append(["Apple", 10])
97
+ ws.append(["Pear", 20])
98
98
  ws["B4"] = "=SUM(B2:B3)"
99
99
  wb.save("output.xlsx")
100
100
  ```
101
101
 
102
- 기존 파일 편집: `load_workbook("existing.xlsx")`로 열어 수정.
103
- pandas DataFrame 내보내기: `df.to_excel("output.xlsx", index=False)`
102
+ Edit existing file: Open with `load_workbook("existing.xlsx")` and modify.
103
+ Export pandas DataFrame: `df.to_excel("output.xlsx", index=False)`
104
104
 
105
- ## 흔한 실수
105
+ ## Common Mistakes
106
106
 
107
- - **문자 인코딩**: 스크립트에 UTF-8 처리가 내장되어 있으므로 항상 스크립트를 통해 추출할 것
108
- - **이미지 누락**: 추출 `_files/` 디렉토리의 이미지를 반드시 읽을
109
- - **XLSX data_only**: `load_workbook(data_only=True)`는 수식을 제거함수식을 유지하려면 `data_only=False` 사용
107
+ - **Character encoding**: Scripts have built-in UTF-8 handling, so always extract through scripts
108
+ - **Missing images**: After extraction, always read images in the `_files/` directory
109
+ - **XLSX data_only**: `load_workbook(data_only=True)` removes formulasuse `data_only=False` to preserve formulas
@@ -1,44 +1,44 @@
1
1
  ---
2
2
  name: sd-email-analyze
3
- description: .eml 또는 .msg 파일과 관련하여 "이메일 파일 분석", "이메일 내용 추출", "첨부파일 추출", "이메일 요약" 요청할 사용.
3
+ description: Used when requesting "email file analysis", "email content extraction", "attachment extraction", or "email summary" for .eml or .msg files.
4
4
  ---
5
5
 
6
- # SD Email Analyze — 이메일 파일 분석 내용 추출
6
+ # SD Email Analyze — Email File Analysis and Content Extraction
7
7
 
8
- `.eml` `.msg`(Outlook) 이메일 파일을 파싱하여 메일 헤더, 본문 텍스트, 인라인 이미지, 첨부파일을 추출하고 분석한다.
8
+ Parses `.eml` and `.msg` (Outlook) email files to extract and analyze mail headers, body text, inline images, and attachments.
9
9
 
10
- ARGUMENTS: 이메일 파일 경로 (필수). `.eml` 또는 `.msg` 파일 경로를 지정한다.
10
+ ARGUMENTS: Email file path (required). Specify a `.eml` or `.msg` file path.
11
11
 
12
12
  ---
13
13
 
14
- ## Step 1: 이메일 파일 파싱
14
+ ## Step 1: Parse the Email File
15
15
 
16
- ARGUMENTS에서 이메일 파일 경로를 추출하여 아래 명령을 실행하라:
16
+ Extract the email file path from ARGUMENTS and run the following command:
17
17
 
18
18
  ```bash
19
- python .claude/skills/sd-email-analyze/email-analyzer.py <이메일_파일_경로>
19
+ python .claude/skills/sd-email-analyze/email-analyzer.py <email_file_path>
20
20
  ```
21
21
 
22
- - 최초 실행 `extract-msg`를 자동 설치한다.
23
- - 실행 결과로 마크다운 보고서가 표준 출력되며, `<이메일_파일명>_files/` 디렉토리에 추출된 파일이 저장된다.
22
+ - On first run, `extract-msg` is automatically installed.
23
+ - The output is a markdown report printed to stdout, and extracted files are saved to the `<email_file_name>_files/` directory.
24
24
 
25
- ### 출력 구조
25
+ ### Output Structure
26
26
 
27
- 1. **메일 정보 테이블**: 제목, 보낸 사람, 받는 사람, 참조, 날짜, 개수
28
- 2. **본문 텍스트**: 일반 텍스트 (일반 텍스트가 없으면 HTML에서 태그 제거)
29
- 3. **인라인 이미지**: 저장된 파일 경로 테이블
30
- 4. **첨부파일**: 저장된 파일 경로 테이블
27
+ 1. **Mail Info Table**: Subject, From, To, CC, Date, Count
28
+ 2. **Body Text**: Plain text (if plain text is unavailable, HTML tags are stripped)
29
+ 3. **Inline Images**: Table of saved file paths
30
+ 4. **Attachments**: Table of saved file paths
31
31
 
32
- ## Step 2: 추출된 파일 분석
32
+ ## Step 2: Analyze Extracted Files
33
33
 
34
- Step 1 출력에서 추출된 파일 경로를 확인하고 아래를 수행하라:
34
+ Check the extracted file paths from the Step 1 output and perform the following:
35
35
 
36
- 1. **인라인 이미지**: 저장된 경로에 **Read** 도구를 사용하여 확인
37
- 2. **첨부파일**: **Read** 도구(이미지) 또는 **sd-document** 스킬 스크립트(DOCX, XLSX, PPTX, PDF) 사용
36
+ 1. **Inline Images**: Use the **Read** tool to view each saved path
37
+ 2. **Attachments**: Use the **Read** tool (for images) or the **sd-document** skill script (for DOCX, XLSX, PPTX, PDF)
38
38
 
39
- ### 인라인 이미지 처리
39
+ ### Inline Image Processing
40
40
 
41
- 가지 소스에서 추출된다:
41
+ Images are extracted from two sources:
42
42
 
43
- 1. **CID 이미지**: Content-ID 있는 MIME 파트 (HTML의 `cid:` 참조)
44
- 2. **Data URI 이미지**: HTML Base64 인코딩 이미지 (`data:image/...;base64,...`)
43
+ 1. **CID Images**: MIME parts with a Content-ID (referenced via `cid:` in HTML)
44
+ 2. **Data URI Images**: Base64-encoded images within HTML (`data:image/...;base64,...`)