“AI야 글 써줘”는 일반론을 낳는다 — 그래서 스킬을 설계했다
블로그 글을 쓰는 게 생각보다 어렵다. 주제는 있는데 방향이 없고, 방향은 있는데 내 이야기가 없고, 내 이야기는 있는데 어디 있는지 모르겠다.
AI한테 “이 주제로 글 써줘”라고 던지면 일반론이 나온다. 누구나 검색으로 찾을 수 있는 글. 내 이름을 굳이 달 이유가 없는 글.
그래서 스킬로 만들었다. 사용자가 방향을 주면 AI가 내 위키에서 내 이야기를 꺼내 초안을 짜고, 사용자가 검수하면 발행까지 자동으로 가는 파이프라인. 지금 이 글도 그 파이프라인을 거쳤다.
/blog-series — 다음 편 계획
시리즈물이면 먼저 여기서 시작한다. /blog-series는 발행본 전체를 스캔해서 시리즈 현황 표(series-map.md)를 만들고, 어느 아크 슬롯이 비어 있는지 보여준다.
시리즈는 기승전결 4막 구조로 짠다.
- intro — 왜 시작했나, 배경과 계기
- build-N — 어떻게 만들었나, 구현과 삽질
- use-N — 실제로 어떻게 쓰나
- wrap — 얻은 것, 아쉬운 것, 다음 단계
지금 읽고 있는 이 글이 slowloop-lab 시리즈의 use-1 편이다. 쓰기 전에 /blog-series slowloop로 현황을 확인하고 다음 슬롯을 잡은 뒤 /blog-draft로 넘겼다.
단발 글이면 이 단계는 건너뛴다 — 바로 /blog-draft로.
/blog-draft — 서술 하나로 초안까지
예전에는 씨앗(seed)을 먼저 만들고, 그걸 초안(draft)으로 늘리는 두 단계였다. 쓰다 보니 중간에 한 번 더 멈추는 게 오히려 방해였다.
지금은 /blog-draft 하나다. 서술을 주면 초안까지 한 번에 간다.
/blog-draft slowloop lab 블로그 구축편 써줘 ← 시리즈물
/blog-draft claude-code 4레버 방법론 정리해줘 ← 단발글
내부적으로 두 가지를 연속으로 한다.
raw 직독. 핵심 원칙은 하나다: raw 원본을 직접 읽는다. wiki 페이지는 이미 한 번 요약된 것이라 날것의 표현이 날아간 상태다. 실제 대화·삽질 순간·구체 수치는 raw/ 원본 안에 있다. 그걸 읽지 않고 쓰면 AI가 그럴듯하게 채운다 — 그럴듯하게 지어낸 게 문제다. 읽은 경로는 frontmatter raw_sources:에 기록한다.
초안 작성. raw에서 끌어온 사례 위에 방향을 잡고 본문을 쓴다. 확신 없는 곳, 사용자 경험이 더 필요한 곳에는 ⚠️[무엇이 필요한지] 인라인 마커를 남긴다. 그 마커를 사용자가 Obsidian에서 채우면 검수 완료다. 자연어가 로직이 되는 원리와 같은 맥락이다 — 스킬은 AI가 무엇을 해야 하는지를 자연어로 정의한 것이다.
초안은 export/slowloop/content-drafts/에 status: draft로 저장되고, 여기서 멈춘다. 발행은 사용자가 검수 후 다음 단계에서.
/blog-publish — 발행하기
초안 검수가 끝나면 발행이다. 그냥 파일을 옮기는 게 아니라 7단계 게이트를 거친다.
① 메타데이터 검증 — title·content_type·format·발행일 형식 확인. fix: 필드가 남아 있으면 발행 중단.
② raw 대조 검수 — ⚠️ 마커가 본문에 하나라도 남아 있으면 발행 중단. 채우지 않은 채로는 나가지 않는다.
③ 문서 연결 생성 — 전체 발행 코퍼스를 스캔해서 이 글과 주제·태그·개념이 겹치는 슬러그를 찾는다. references 필드와 본문 인라인 링크를 자동으로 채운다.
④ 링크 검증 — 본문의 [[...]] 위키링크와 references 슬러그가 실제 발행본에 존재하는지 확인. 죽은 링크 있으면 경고.
⑤ 본문 추출 — ## 📝 본문 (draft) 섹션만 빼낸다. 메타·⚠️ 마커·검수 안내는 제거.
⑥ 발행본 저장 — export/slowloop/blog/<시리즈>/<slug>.md.
⑦ 영문 번역 발행 — 한국어 발행본을 blog_en/에 동시 발행. 직역 금지, 영어 관용에 맞게 재구성하되 저자 톤 유지.
게이트가 많아 보이지만 한 번도 안 걸리면 30초다. 걸린다는 건 실제로 문제가 있다는 거라서.
/blog-lint, /blog-archive — 유지보수
글이 쌓이면 메타가 어긋나기 시작한다. content_type이 복수값으로 들어간 것, references 슬러그가 발행 취소된 것, 한영 대응이 맞지 않는 것. /blog-lint가 이걸 주기적으로 잡아준다.
발행한 글을 숨기고 싶을 때는 /blog-archive. frontmatter에 status: archived 한 줄이 들어가면 사이트에서 404가 된다. 파일은 남아있다. git이 있으니 언제든 되돌릴 수 있다.
이 파이프라인이 돌아가는 방식을 한 줄로 요약하면 이렇다.
서술 하나를 주면 AI가 raw에서 내 이야기를 꺼내 초안을 짜고, 사용자가 검수하면 KO+EN이 동시에 나간다.
글을 “쓰는” 게 아니라 “발행”하는 것에 가깝다.