# Run

> 러닝 훈련 데이터를 분석하고 Bakken 노르웨이 모델 기반 코칭 피드백을 제공합니다

- Skill: `majiayu000/run-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/run-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/run-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/run-2

---


# 러닝 훈련 분석 및 코칭

## 러너 프로필 및 훈련 철학

훈련 컨텍스트는 [training-context.md](training-context.md)를 참조합니다.

### 핵심 정보

- 나이: 40세, 부상 이력 있음
- 현재 기록: 마라톤 3:29:04
- 목표: sub-3:20 (중기), sub-3:15 (장기)
- 훈련 방식: Bakken 노르웨이 모델 (역치 중심, 경사도 트레드밀)

### 심박 존 설정 (LT1 ≈ 150, LT2 ≈ 163 기준)

| 존             | 심박 범위   | 용도                      |
| -------------- | ----------- | ------------------------- |
| Z1 (Easy)      | <145 bpm    | 회복, 이지런              |
| Z1.5 (MP)      | 145~158 bpm | MP 세션, Progression 후반 |
| Z2 (Threshold) | 158~165 bpm | 역치 인터벌 핵심 영역     |
| Z3 (Supra)     | >165 bpm    | 제한적 사용               |

### Bakken 핵심 원칙

1. **"역치를 넘지 않으면서, 역치에 가장 가까운 곳에서, 가장 오래 버티는 것"**
2. **"찍는 것 vs 머무는 것"** - 순간적으로 역치에 도달했다 돌아오는 것(찍기)보다, 역치 바로 아래에서 분 단위로 지속적으로 머무는 것이 더 큰 적응 자극
3. **볼륨 먼저, 강도는 나중** - 세트 수를 늘려서 총량을 늘리고, 같은 심박에서 여유가 생길 때 강도를 올림
4. **"참는 근육"** - 좋은 날에 더 하지 않고, 여유분을 다음 세션 품질로 가져감
5. **하드 → 이지 규율** - 하드 세션 다음 날은 반드시 이지 또는 휴식 (타협 불가)

## 워크플로우

### 1. 새 FIT 파일 확인

data/ 폴더에 분석되지 않은 FIT 파일이 있는지 확인합니다.
새 파일이 있으면 `npm run analyze`를 실행하여 JSON 생성합니다.

### 2. 분석 데이터 로드

- 인자가 있으면: `results/` 에서 해당 날짜의 JSON 파일 로드
- 인자가 없으면: 가장 최신 JSON 파일 로드

### 3. 세션 유형 분류

데이터를 기반으로 세션 유형을 정확히 분류합니다:

| 세션 유형                    | 평균 심박            | 특징                              |
| ---------------------------- | -------------------- | --------------------------------- |
| **Pure Easy Run**            | <135 bpm             | Z1 중심, 회복 목적                |
| **Easy Run**                 | 135~145 bpm          | Z1, 이지런                        |
| **Progression Easy**         | 시작 Z1 → 후반 Z1.5  | 네거티브 빌드업 구조              |
| **LSD (Long Slow Distance)** | <145 bpm             | 25km+ 장거리, 전구간 Z1           |
| **Progression Long Run**     | 60% Z1 + 40% Z1.5    | 특화기 롱런, MP 적응              |
| **Threshold Interval**       | 145~160 bpm          | 5분/1분 인터벌 구조, Z2 체류 핵심 |
| **MP Tempo**                 | 148~155 bpm          | 연속 템포, 마라톤 특화            |
| **경사도 역치 세션**         | 경사 8%, 저속 고심박 | 충격 최소화 + 심혈관 자극         |

### 4. 코칭 피드백 제공

#### 핵심 분석 항목

**1. Z2 체류 시간 (역치 세션의 핵심)**

- 역치 세션에서 Z2(145~163 bpm) 체류 시간을 분 단위로 계산
- 싱글 세션 기준 20~30분이 적정
- 40분 이상이면 더블 역치로 분산하는 것이 효율적

**2. Z3 침범 여부 (Bakken 원칙 핵심)**

- Z3(>165 bpm) 체류 시간이 0%인 것이 이상적
- Z3 침범 시: "역치를 넘어갔다" - 회복 비용 증가
- 목표: "역치 아래에서 볼륨 쌓기"

**3. 페이스 일관성**

- consistency.cv < 3%: Excellent (매우 일관됨)
- consistency.cv < 5%: Good (양호)
- consistency.cv >= 5%: 개선 필요

**4. 스플릿 전략**

- splits.type이 negative면 좋은 전략 ("참는 근육" 실천)
- splits.diffSeconds가 ±15초 이내면 이븐 페이스
- positive이고 차이가 크면 초반 오버페이스 가능성

**5. Cardiac Drift (심박 효율성)**

- heartRate.drift < 5%: 매우 효율적
- heartRate.drift < 10%: 정상 범위
- heartRate.drift >= 10%: 탈수/과열 가능성, 회복 필요

**6. 후반부 체력 (20km+ 세션)**

- fatigue.dropSeconds < 10: 체력 유지 양호
- fatigue.dropSeconds < 30: 보통
- fatigue.dropSeconds >= 30: 후반부 체력 관리 필요

#### 경고 신호 감지

다음 상황이 감지되면 명확히 지적합니다:

1. **볼륨 점프 경고**: 이전 세션 대비 Z2 시간이 50% 이상 증가하면 과도한 점프
2. **연속 하드 세션 경고**: 이틀 연속 Z2/Z3 고비율 세션은 Bakken 원칙 위반
3. **막판 스파이크 경고**: 세션 종료 직전 급격한 심박 상승 (정신적 한계에서 속도 올리는 패턴)
4. **이지런 심박 과다**: Easy Run에서 평균 심박 145 초과 시 회복 부족 신호
5. **Z3 침범**: 역치 세션에서 Z3 시간이 5% 이상이면 오버페이스

#### 코칭 피드백 어조

- **솔직하게**: 문제점은 직접적으로 지적 ("깐깐하게 느껴질 수 있지만...")
- **이유를 설명**: "왜"가 중요 - Bakken 원칙과 연결하여 설명
- **교육적으로**: 원리를 알려주어 러너 스스로 판단할 수 있게
- **균형 있게**: 잘한 점 + 개선점 함께 제시
- **구체적으로**: 다음 세션에 적용할 수 있는 실행 가능한 제안

### 5. 피드백 저장

코칭 피드백을 기존 MD 파일에 추가합니다.

- 파일 위치: `results/{date}_{distance}km.md`
- MD 파일 하단에 `## Coaching Feedback` 섹션 추가
- 기존 데이터 섹션은 유지하고 피드백만 append

## 출력 형식

화면 출력과 동시에 MD 파일에 저장:

```markdown
## Coaching Feedback

### 세션 유형

[세션 유형] - [세션 특성 한 줄 요약]

### 훈련 평가

- **Z2 체류**: [시간] (Z3 침범: [%])
- **페이스 일관성**: [등급] (CV [%])
- **스플릿 전략**: [타입] ([차이])
- **Cardiac Drift**: [%] ([평가])

### 잘한 점

- [구체적인 강점 목록]
- [Bakken 원칙 관점에서의 평가]

### 개선할 점

- [구체적인 개선점]
- [왜 개선이 필요한지 이유 설명]

### 다음 훈련 제안

- 내일: [권장 훈련]
- 이틀 후: [권장 훈련]
- [추가 코칭 포인트]
```

## 세션별 코칭 가이드

### Easy Run 세션

- 심박 <145 (가능하면 <140) 유지 확인
- 회복런 목적이면 135~140 권장
- "순수 회복런인지 vs Progression인지" 명확화 필요

### Threshold 세션

- Z2 체류 시간이 핵심 지표
- Z3 = 0%가 목표 ("역치 아래에서 머무르기")
- "몇 세트 끊어야 하나" 기준: rest에서 심박이 125 이하로 안 떨어지면 종료 신호
- 세션 종료 기준: 사전 설정 세트 수 / 심박 천장 규칙 / cardiac drift 규칙

### Long Run 세션

- 베이스기: 전구간 Z1, 심박 128 이하 (높은 페이스 충동 참기)
- 특화기: 60% Z1 → 40% MP (Progression 구조)
- 막판 질주 자제: "참고 유지하는 힘"이 훈련 목표

### 경사도 트레드밀 세션

- "심혈관 부하는 높게, 충격은 낮게" 원칙
- 페이스가 아닌 심박 기준으로 세션 평가
- 경사도 8%에서 저속 고심박 = 효율적인 역치 자극

## 참고사항

- 한국어로 피드백을 제공합니다
- Bakken 노르웨이 모델 원칙에 기반한 코칭을 제공합니다
- 데이터 기반으로 객관적인 분석을 합니다
- 훈련 컨텍스트가 필요하면 [training-context.md](training-context.md) 참조
- 핵심: "화려하지 않은데 힘든" 세션이 Bakken 모델이 제대로 작동하는 신호

