본문 바로가기

(02) OpenClaw로 ‘개발 자동화 OS’ 만들기 — 멀티세션, 태스크, 리뷰, CI/CD

· 약 3분 읽기 ·

OpenClaw를 ‘개발 자동화 OS’처럼 쓰기 위해 만든 운영 규칙과 자동화(멀티세션, TODO-driven autopilot, 리뷰/머지 게이트, worktree-per-task, Cloudflare 배포)를 한 번에 정리합니다.

TL;DR (핵심 요약)

  • 문서가 곧 실행: TODO.md / SESSIONS.md / tasks/*.md를 단일 진실로 삼는다.
  • Stage-gated Done: EXEC:done이 아니라 REVIEW:done까지가 DONE.
  • Autopilot(CRON): REVIEW:pending을 우선 처리하고, PR 업데이트→리뷰→반영까지 한 사이클에 끝낸다.
  • 멀티세션 운영: 구현/리뷰/디자인을 분리하고, “스턱”을 문서와 로그로 즉시 가시화한다.
  • 기본 전략 = worktree-per-task: 태스크 1개 = 브랜치 1개 = worktree 1개. 클코 5세션 병렬이 가능해진다.

1) 한눈에 보는 전체 플로우

flowchart TD
  U["User / Owner"] -->|요청| TODO["agent-ops/TODO.md"]
  TODO --> CRON["Autopilot Cron"]
  CRON --> WT["git worktree: /tmp/ys-{label}"]
  WT --> CLCO["Claude Code (up to 5 sessions)"]
  CLCO --> PR["GitHub PR -> dev"]
  PR --> REV["Independent Review"]
  REV -->|APPROVE| MERGE["Merge dev"]
  REV -->|Request changes| FIX["Follow-up tasks"]
  MERGE --> DEPLOY["Cloudflare Pages dev deploy"]
  DEPLOY --> U

  subgraph SSOT["Single Source of Truth"]
    TODO
    SESS["agent-ops/SESSIONS.md"]
    TASKS["agent-ops/tasks/*.md"]
  end
  CRON --- SESS
  CRON --- TASKS

1) 왜 이런 운영이 필요했나

에이전트로 개발을 굴리면 속도는 빨라지지만, 동시에 이런 문제가 생긴다.

  • 작업이 실제로는 멈췄는데 문서상으로는 진행 중처럼 보임
  • PR이 여러 개 떠 있는데 서로 중복/충돌해서 머지 순서가 꼬임
  • “끝냈다”가 EXEC만 끝난 상태인지, 리뷰까지 끝난 상태인지 애매함

그래서 우리는 기능 개발만이 아니라, 개발이 계속 굴러가게 만드는 운영 시스템(governance + automation)을 먼저 고정했다.


2) Single Source of Truth: agent-ops

작업의 기준은 코드 리포지토리가 아니라, 아래 ops 문서들이다.

  • ~/projects/.agent-ops/TODO.md
    • 지금 당장 할 일(AUTO_NOW), 다음 체인(PENDING_CHAIN), 승인 대기(WITH_USER) 등
  • ~/projects/.agent-ops/SESSIONS.md
    • 실제 실행 세션(클코/서브에이전트/크론) 추적
  • ~/projects/.agent-ops/tasks/*.md
    • 태스크 단위 체크리스트(Exit criteria 포함)

운영 철학: 기록 없는 작업은 존재하지 않는다.


3) Stage-gated Done (중요)

태스크가 EXEC:done에서 멈추면, 시스템 전체가 점점 스턱된다.

그래서 DONE의 정의를 이렇게 고정했다.

  • PLAN → EXEC → TEST → PR → REVIEW → MERGE_DEV → DONE
  • 최소 조건: REVIEW:done

이 규칙이 있어야 “PR은 열려 있는데 리뷰 안 돼서 다음 태스크가 못 올라가는” 상태를 줄일 수 있다.


4) PR/리뷰/머지 거버넌스

우리가 쓰는 기본 흐름은 아래다.

  • feature/* → PR to dev → 독립 리뷰 → merge dev
  • dev → PR to main → 사용자 승인 → merge/deploy

그리고 PR 본문은 무조건 사람이 읽을 수 있게 유지한다.

  • What/Why
  • Scope(변경 파일/역할)
  • Testing 결과
  • Risk/Rollback
  • Next

(쉘 안전을 위해 PR 본문 업데이트는 --body-file을 표준으로 쓴다.)


5) Autopilot(CRON): TODO-driven 엔진

크론은 상태 리포터가 아니라 실행 엔진이다.

기본 동작:

  1. AUTO_NOW 상위 항목을 스캔
  2. SESSIONS.md와 실제 프로세스 불일치 감지 후 문서 정정
  3. 우선순위는 항상:
    • REVIEW:pending(리뷰를 닫아버리기) → 그 다음 구현
  4. 한 사이클 안에서 가능하면:
    • PR 업데이트 → PR 본문 최신화 → 독립 리뷰 → 결과 반영까지 마감

6) 멀티세션 운영 (구현/리뷰/디자인 분리)

세션은 목적별로 분리한다.

  • implement
  • review
  • design
  • deploy

그리고 어떤 세션이 active인데 실제 프로세스가 없으면 즉시 문서 정정(paused/failed)한다.


7) 기본 전략: worktree-per-task (최대 5 병렬)

병렬로 여러 태스크를 돌리면 가장 큰 문제가 git checkout 충돌/워킹트리 오염이다.

그래서 기본 전략을 이렇게 바꿨다.

  • 태스크 1개 = 브랜치 1개 = worktree 1개
    • 브랜치: feature/<label>
    • worktree: /tmp/ys-<label>

클코(Claude Code) 세션은 프로젝트 루트 컨텍스트를 유지하되, 매번 아래 1줄을 프롬프트 맨 위에 박아서 타겟을 강제한다.

TARGET WORKTREE: /tmp/ys-<label>

이 방식이면 클코 5세션 병렬도 안정적으로 굴릴 수 있다.

주의: 공용 파일 touch 충돌

Layout.astro, global.css 같이 공용 파일을 동시에 건드리는 태스크는 병렬 금지. 태스크 문서에 touch-files를 기록하고, 같은 그룹은 락을 걸어 순차 처리한다.


8) CI/CD & 배포 (Cloudflare Pages)

  • wrangler로 Pages 프로젝트 생성
  • dev 브랜치로 스테이징 배포를 빠르게 갱신
  • 사용자는 dev URL에서 즉시 확인

(운영/배포는 자동화하되, main 배포는 사용자 승인 게이트를 유지한다.)


9) 다음 단계

이 운영 프레임 위에, “진짜 블로그” 기능을 얹는다.

  • 카테고리/태그 사이드바
  • 정렬(최신/인기/최근상승)
  • 좋아요(익명 카운터)
  • 댓글(자체 구현: Workers + D1)

NOTE: 이 글은 초안(draft)입니다. 운영 규칙이 진화하면 내용도 업데이트됩니다.

Comments

Loading…
1000

RSS

Subscribe via RSS to get updates in your reader.

Open RSS feed
On this page
⚙️ Widgets

지금

2026년 2월 16일

  • 작게 자주 개선하면서 홈페이지를 다듬고 있습니다.
  • 문서화와 자동화를 정리해 다음 작업 속도를 높이고 있습니다.
  • 협업/문의는 이메일로 받고 있습니다.

Send a message

Quick note via email.

Email is not configured.

Upvote this page

If this page was useful, leave an upvote.