content-publishlisted
Install: claude install-skill idean3885/claude-ops-agent
# 블로그 발행
블로그 포스팅을 Jekyll(Chirpy 테마) 형식으로 변환하여 발행합니다.
## 금지 패턴 (HARD CONSTRAINTS)
| 금지 행위 | 이유 | 올바른 방법 |
|----------|------|------------|
| 변환 발행 모드에서 톤·내용 수정 | 입력 콘텐츠는 ops-agent:content-write에서 검증 완료 상태여야 함 | ops-agent:content-write 또는 오케스트레이터에서 선행 처리 |
| Phase 4 없이 Phase 5 진입 | 비평가 검토 누락 시 품질 미보장 | Phase 4 통과 후 Phase 5 진행 |
| em dash(`—`) 사용 | 한국어 키보드에 없는 문자, AI 생성 텍스트 신호 | 콜론(`:`), 쉼표(`,`), 괄호(`()`) 등 문맥에 맞는 대체 |
| 리더빌리티·톤 자체 검증 | ops-agent:content-verify가 단일 소스, 자체 수행 시 기준 분산 | ops-agent:content-verify(standalone) 위임 |
| 발행된 포스트의 파일명(slug) 변경 | URL이 깨져 이력서/외부 링크가 404 발생 | 제목(`title:`)만 변경, 파일명은 최초 확정 후 불변 |
## 역할
블로그 레포의 CLAUDE.md 포스팅 규칙에 맞는 포스팅을 작성하고, Jekyll 형식으로 변환하여 발행합니다.
## 트리거
- "블로그 작성", "글 쓰기", "블로그 변환", "블로그에 올려"
## 워크플로우 선택
| 모드 | 조건 | 설명 |
|------|------|------|
| **직접 작성** | 블로그 레포에서 실행, 콘텐츠 미제공 | Phase 1~7 전체 수행 |
| **변환 발행** | 콘텐츠가 이미 제공됨 (오케스트레이션) | Phase 4~7만 수행 |
---
## 설정
이 스킬은 **어떤 디렉토리에서든** 실행 가능합니다.
블로그 레포 경로는 글로벌 설정에서 로드합니다.
```
설정 파일: ~/.claude/blog-publisher.json
```
```json
{
"blogRepo": "/path/to/blog-repo"
}
```
설정 파일이 없으면 사용자에게 경로를 질문하고 자동 생성합니다.
---
## 직접 작성 워크플로우
### Phase 1: 저자 소재 수집 및 주제 협의
**Step 1: 기존 포스팅 스캔**
`_posts/` 디렉토리의 기존 포스팅 제목과 주제를 확인한다.
중복/유사 주제가 있으면 사용자에게 알리고 차별화 방향을 협의한다.
**Step 2: 저자 소재 수집**
본문 작성 전에 저자의 고유 소재를 먼저 확보한다.
아래 항목 중 해당하는 것을 사용자에게 질문한다:
- 직접 겪은 문제와 해결 과정
- 실패/시행착오 사례
- 구체적 수치/측정 결과
- 선택의 이유 (왜 A를 선택하고 B를 버렸는가)
- 이전과 달라진 점 (Before/After)
> "아티클 정리" 카테고리의 경우, 소재 수집 항목을 다음으로 대체한다:
> - 이 아티클을