# Blog Post

> kangraemin.github.io 블로그에 올릴 기술 포스트를 작성할 때 사용. '포스트 써줘', '글 써줘', '블로그 글', '포스팅 해줘' 등의 요청 시 반드시 이 스킬을 사용.

- Skill: `kangraemin/blog-post` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kangraemin/blog-post`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kangraemin/blog-post/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: kangraemin (https://skillmd.com/u/kangraemin)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kangraemin/blog-post

---


## 역할

`_posts/YYYY-MM-DD-slug.md` 파일을 생성한다.

## 필수 절차

1. **EnterPlanMode 툴을 호출해서 Plan 모드 진입** — 글 작성 전 반드시 실행
   - Plan 모드 안에서 **실제 포스트 전체 초안**을 작성해서 보여줄 것
   - front matter + 본문 전체를 마크다운으로 작성 (목차/구조만 보여주는 것 금지)
   - 사용자가 내용을 읽고 수정 요청하거나 OK 할 수 있도록
2. **ExitPlanMode 후 파일 저장** — 사용자가 OK 하면 Plan 모드 종료 후 절대 경로에 파일 생성

## 저장 경로 (절대 경로 고정)

- 포스트: `/Users/ram/programming/vibecoding/kangraemin.github.io/_posts/YYYY-MM-DD-slug.md`
- 이미지: `/Users/ram/programming/vibecoding/kangraemin.github.io/assets/images/posts/YYYY-MM-DD-slug/`

## Front matter 형식

```yaml
---
title: [카테고리] - [제목]
date: YYYY-MM-DD
categories:
 - Android
tags:
 - tag1
 - tag2
---
```

- title 끝에 공백 여러 개 붙임 (기존 포스트 스타일)
- categories는 Android / Kotlin / JVM 중 맞는 것
- date는 오늘 날짜

## 본문 구조

```
한두 줄 요약 (포스트가 다루는 내용)

<!-- more -->

### 섹션 제목

<aside>
💡핵심 개념 한 줄 정의
</aside>

- 설명
  - 세부 설명
- 설명

### 다음 섹션

코드 예시가 있으면 kotlin 코드블록으로
```

## 글의 목적

- 본인이 배운 내용을 정리해서 공유하는 포스트
- 독자가 처음 접하는 개념이라도 이해할 수 있도록 쉽게 설명
- 개념 → 왜 필요한지 → 어떻게 동작하는지 → 예시 코드 흐름으로 자연스럽게 연결
- 어렵게 느껴지는 개념도 비유나 간단한 예시로 풀어주면 좋음

## 어투 / 문체 규칙

기존 포스트 스타일에 맞춤. 대표 참고 포스트: `_posts/2025-04-23-coroutine-continuation.md`, `_posts/2025-04-21-thread.md`

- **인트로 문장**: `~에 대해 알아봅니다`, `~를 확인해봅니다` 등 ~합니다체로 마무리
- **본문 스타일**: 명사형 종결(`~됨`, `~함`)과 `~할 수 있음`, `~이루어짐` 등을 자연스럽게 혼용
- **불릿 내용**: 짧은 라벨이 아닌 설명적 문장으로 작성. "확인 방법" 같은 기계적 서브헤더 금지
- **단어 간 공백**: `JVM 은`, `각 쓰레드는`, `중단 될 때` 처럼 조사/어미 앞에 공백
- **영어 기술 용어**: 번역하지 않고 그대로 사용 (suspend, resume, Stack Frame 등)
- **불릿 계층**: 산문체 최소화, 계층 불릿으로 설명
- **코드 블록**: 실제 동작 예시 + 하단에 `// 출력 결과` 주석으로 결과 포함
- **파일명 slug**: 영어 소문자, 하이픈 구분

## AI 티 안 나게 쓰는 법 (필수)

이 포스트는 개발자가 직접 공부하고 정리한 글처럼 읽혀야 함. 아래를 철저히 지킬 것.

**금지 표현 (AI 글에서 자주 나오는 패턴)**
- `~에 대해 알아보겠습니다` / `~를 살펴보겠습니다` — 금지
- `이처럼`, `따라서`, `결론적으로`, `정리하자면` — 금지
- `매우 중요합니다`, `꼭 기억해야 합니다` 같은 과한 강조 — 금지
- 섹션 끝마다 요약 붙이는 것 — 금지
- 지나치게 매끄럽고 정리된 문장 — 금지 (실제 공부 노트처럼 약간 직설적이어도 됨)

**유지할 것**
- 개념을 직접 겪으며 배운 사람이 쓴 것처럼 → 왜 이게 필요한지 본인 관점에서 서술
- 필요하면 간단한 비유 사용, 단 억지스럽지 않게
- 군더더기 없이 핵심만 — 길게 늘리지 말 것

## 이미지

### 사용자가 스크린샷을 제공한 경우

1. **반드시 Read 툴로 이미지를 직접 열어서 내용 확인** — 보지 않고 추측으로 설명 작성 금지
2. 이미지 내용을 파악한 뒤, 글의 흐름상 가장 적절한 위치에 삽입
3. 이미지를 `/Users/ram/programming/vibecoding/kangraemin.github.io/assets/images/posts/YYYY-MM-DD-slug/` 에 직접 복사 저장
4. 파일명은 `1.png`, `2.png` 순서 또는 원본 파일명 그대로 사용
5. 포스트 본문에서 개념 설명 불릿 안에 들여쓰기로 삽입, 이미지 바로 아래 줄에 실제 이미지 내용 기반 설명 불릿 추가

```markdown
- 개념 설명

    ![1.png](/assets/images/posts/2025-04-24-example/1.png)

    - 이미지에 대한 설명
```

### 이미지가 없는 경우

- 텍스트 / 코드로만 설명 가능하면 이미지 자리 만들지 않아도 됨

## 출력

항상 절대 경로로 파일 저장. 현재 작업 디렉토리 무관.

## 저장 후 자기 검증 (필수)

파일 저장 후 아래 체크리스트를 직접 돌리고, 문제 있으면 바로 수정할 것.

**AI 냄새 체크**
- [ ] `~에 대해 알아보겠습니다` / `~를 살펴보겠습니다` 없는지
- [ ] `이처럼`, `따라서`, `결론적으로`, `정리하자면` 없는지
- [ ] 마지막에 `### 정리` 또는 `### 마치며` 같은 요약 섹션이 없는지 (AI 패턴 — 제거)
- [ ] 섹션 끝마다 요약 불릿 붙어있지 않은지
- [ ] 모든 섹션이 똑같은 구조(e.g. `확인 방법` → `실용적 의미`)로 반복되지 않는지
- [ ] 문장이 지나치게 매끄럽고 교과서 같지 않은지

**어투 체크**
- [ ] 인트로가 `~알아봅니다` / `~확인해봅니다` 등 합니다체로 끝나는지
- [ ] 본문이 기존 포스트 스타일 (명사형 + 합니다체 혼용) 과 일치하는지
- [ ] "확인 방법" 같은 기계적 서브헤더가 없는지
- [ ] 단어 간 공백 스타일 (`JVM 은`, `중단 될 때`) 유지되는지

문제 발견 시 해당 부분 수정 후 사용자에게 "이 부분 AI 같아서 수정했어요" 알릴 것.

