글쓰기 에이전트 시스템을 만들게 된 배경
LinkedIn에서 글쓰기 에이전트를 만든 사례 를 봤다. Claude Code 로 글 30 개를 학습시키고, 그 스타일대로 글을 쓰고, 피드백이 자동으로 쌓이는 시스템을 만들었다는 내용이었다. 4 개의 에이전트 (Style Analyzer, Content Writer, Content Reviewer, Style Learner) 가 루프를 돌면서 피드백이 휘발되지 않고 시스템에 쌓인다는 점이 인상 깊었다.
나도 동일한 경험을 했기에 공감이 되었고, 바로 만들어보고자 마음먹었다.
플랜 수립 과정
1 단계: 요구사항 정의
먼저 어떤 글을 쓸 것인지 정의했다.
- 글의 종류: 에세이, 블로그, LinkedIn 등 복합
- 사용 시나리오:
- A) 주제만 던지기
- B) 아이디어 + 방향 제시
- C) 기존 노트 → 글로 변환
- 피드백 방식: 자연어 + 점수/판정 복합
- 출력 위치:
content/YYYY/Mnn/(기존 vault 구조 유지)
2 단계: 스타일 학습용 샘플 선정
내 스타일이 잘 드러난 글 4 개를 선정했다:
이 글들을 분석해서 스타일 패턴을 추출할 예정이다.
3 단계: 에이전트 구조 설계
처음에는 하나의 에이전트로 모든 것을 하려 했다. 금방 한계가 보였다. 사람도 마찬가지다. 글 쓰는 사람이 동시에 자기 글을 객관적으로 평가하기 어렵다.
그래서 역할을 나눴다. 4 개의 에이전트가 루프를 돈다:
| 에이전트 | 역할 |
|---|---|
| Style Analyzer | 글 분석 → 스타일 가이드 생성/업데이트 |
| Content Writer | 스타일 가이드 기반 초안 작성 |
| Content Reviewer | 스타일 일치도 평가, 80 점 미만 시 Writer 에게 수정 지시 |
| Style Learner | 사용자 피드백 해석 → 피드백 로그 업데이트 |
Writer가 글을 쓰면 → Reviewer가 검토하고 →
통과하면 사용자에게 보여주고 →
피드백을 Learner가 받아서 →
Analyzer의 스타일 가이드를 업데이트한다.
다음에 Writer 가 글을 쓸 때는 업데이트된 가이드를 참조한다. 피드백이 휘발되지 않고 시스템에 쌓인다. 쓸수록 정확해지는 구조다.
4 단계: 피드백 관리 방식 결정
피드백 로그를 어떻게 관리할지 고민했다. 글 유형 (에세이, 블로그, LinkedIn) 별로 특성이 다르기 때문이다.
세 가지 옵션을 검토했다:
- Option A: 글 유형별 완전 분할
- Option B: 계층 구조 (공통 + 유형별)
- Option C: 단일 파일 + 섹션 구분
**Option B (계층 구조)**를 선택했다. 이유:
- 공통 스타일 (톤, 1 인칭, 문장 길이) 은 모든 글에 적용되므로 한 곳에서 관리
- 유형별 특성 (LinkedIn 은 짧고 임팩트, 에세이는 깊이) 은 분리
- 새 유형 추가 시 확장 용이
확정된 플랜
기본 정보
| 항목 | 결정 |
|---|---|
| 스킬 이름 | personal-writing |
| 커맨드 | /pkm:write-essay, /pkm:write-blog, /pkm:write-linkedin |
| 피드백 관리 | 계층 구조 (공통 + 유형별) |
| 구현 순서 | 에세이 → 블로그 → LinkedIn |
| 출력 위치 | content/YYYY/Mnn/ |
파일 구조
.claude/
├── skills/
│ └── personal-writing/
│ ├── SKILL.md # 스킬 메인 문서
│ ├── style-guide.md # 스타일 가이드 (동적 업데이트)
│ │
│ ├── feedback/
│ │ ├── common.md # 공통 피드백
│ │ ├── essay.md # 에세이 특화 피드백
│ │ ├── blog.md # 블로그 특화 피드백
│ │ └── linkedin.md # LinkedIn 특화 피드백
│ │
│ ├── agents/
│ │ ├── analyzer.md # Style Analyzer
│ │ ├── writer.md # Content Writer
│ │ ├── reviewer.md # Content Reviewer
│ │ └── learner.md # Style Learner
│ │
│ └── approved/ # 승인된 글 아카이브
│ ├── essay/
│ ├── blog/
│ └── linkedin/
│
├── commands/
│ ├── pkm:write-essay.md
│ ├── pkm:write-blog.md
│ └── pkm:write-linkedin.md
워크플로우
사용자 입력 (주제/아이디어/기존노트)
│
▼
┌─────────┐
│ Writer │ ← style-guide.md + feedback/*.md
└────┬────┘
│ 초안 생성
▼
┌──────────┐
│ Reviewer │ ← 스타일 일치도 평가
└────┬─────┘
│
┌────┴────┐
│ │
80점 미만 80점 이상
│ │
▼ ▼
Writer 사용자
(수정) (확인)
│
▼ 피드백
┌─────────┐
│ Learner │ → feedback/*.md 업데이트
└────┬────┘
│
▼ (주기적)
┌──────────┐
│ Analyzer │ → style-guide.md 업데이트
└──────────┘
글 유형별 특성
| 유형 | 길이 | 톤 | 구조 | 특징 |
|---|---|---|---|---|
| 에세이 | 1500-3000 자 | 깊이 있는 성찰 | 질문→탐구→통찰 | 개인 경험 중심, 열린 결론 |
| 블로그 | 800-1500 자 | 전달 + 성찰 | 훅→본론→핵심 | 독자 고려, 명확한 테이크어웨이 |
| 300-700 자 | 임팩트 | 훅→스토리→콜투액션 | 짧고 강렬, 줄바꿈 활용 |
구현 로드맵
Phase 1: 기반 구축 + 에세이 (MVP)
- 샘플 4 개 분석 → 스타일 가이드 생성
- Writer, Reviewer 에이전트 구현
/pkm:write-essay커맨드 구현
Phase 2: 학습 루프 완성
- Learner, Analyzer 에이전트 구현
- 피드백 → 가이드 업데이트 워크플로우
Phase 3: 블로그 확장
- 블로그 특화 스타일 정의
/pkm:write-blog커맨드 구현
Phase 4: LinkedIn 확장
- LinkedIn 특화 스타일 정의
/pkm:write-linkedin커맨드 구현
기대 효과
- 피드백 누적: 세션이 바뀌어도 학습이 이어진다
- 스타일 일관성: 내 글 스타일이 시스템에 녹아있다
- 자동 검토: Writer-Reviewer 루프로 품질 보장
- 멀티 디바이스: GitHub 연동으로 모바일에서도 사용 가능
- 확장성: 새 글 유형 추가 용이
다음 단계
이 플랜을 기반으로 실제 구현을 시작한다. 먼저 샘플 4 개를 분석하여 style-guide.md 를 생성하고, 에이전트 프롬프트를 작성한 뒤, /pkm:write-essay 커맨드를 구현할 예정이다.