Communitygithub.com

chasey-myagi/helm

코딩 에이전트가 작업 중 유지하는 실시간 단일 태스크 작업 보드입니다. 이를 지켜보고, 실행 중 목표를 수정할 수 있습니다.

helm란 무엇인가요?

helm은 AI 코딩 에이전트(Claude Code, Codex 등)가 단일 태스크 진행 상황을 인간이 실시간으로 모니터링하고 조종할 수 있는 라이브 보드입니다. 에이전트는 저렴한 토큰 비용으로 `helm` 명령어를 호출하여 상태, 계획, 이벤트, 결정, 차단 요인 등을 업데이트하며, 로컬 서버가 SSE를 통해 브라우저 UI에 변경 사항을 스트리밍합니다. 인간은 보드에서 목표와 방향을 직접 편집할 수 있으며, 에이전트는 체크포인트마다 `helm goal` 명령어로 변경된 조향을 읽고 따라야 합니다. 이 스킬은 Node.js 전용 의존성 없는 단일 스크립트로 제공되어 설치 부담이 없으며, 모든 주요 AI 에이전트 플랫폼에서 사용할 수 있습니다. 작업이 종료되거나 사용자가 없으면 서버가 자동 종료되어 개발 워크플로에 가볍게 통합됩니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add chasey-myagi/helm

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

helm은(는) 무엇을 하나요?

하나의 태스크를 위한 라이브 보드입니다. 사람이 브라우저에서 이를 열어두고; 당신(에이전트)은 작업 중 저렴한 helm 호출로 업데이트하며; 단기 로컬 서버가 페이지에 변경 사항을 실시간 스트리밍합니다. 사람은 핸들을 잡을 수 있습니다 — 목표/조향을 편집하고 — 당신은 다음 체크포인트에서 이를 따릅니다.

두 가지 규칙

  1. 오직 helm만 호출하세요. HTML, 서버, state.json을 직접 작성하거나 편집하지 마세요. 각 helm 호출은 몇 토큰에 불과하며, 이것이 핵심입니다: 작업 중 보드를 정직하게 유지하는 비용을 낮게 유지합니다. 스타일이 적용된 페이지를 재전송하는 것은 10배 비용이 들며 목적을 무너뜨립니다.
  2. 모든 체크포인트에서 사람의 조향을 다시 읽으세요 (계획 단계 사이, 되돌릴 수 없는 작업 전) helm goal을 사용하여. 사람은 페이지를 통해 조향하며; 당신은 확인할 때만 볼 수 있습니다. 목표나 조향이 변경되었다면 새 버전을 따르고 이를 event에 명시하세요.

도우미

helm은 빌드된 의존성 없는 Node 스크립트 dist/helm.mjs로 제공됩니다 (기본 node에서 실행 — npm install 불필요, 설치 시 빌드 없음). 경로를 한 번 캡처하여 재사용하세요:

HELM="<이-스킬-디렉토리>/dist/helm.mjs"   # 예: ~/.claude/skills/helm/dist/helm.mjs

이 경로로 호출하세요 — "$HELM" …는 shebang을 통해 작동하거나 node "$HELM" …를 사용하세요. Kubernetes를 사용한다면 helm을 별칭으로 두지 마세요 — 그것은 다른 helm입니다. init 후에는 cwd에서 상위로 이동하여 보드가 자동으로 발견되므로 이후 호출에 --dir이 필요하지 않습니다.

워크플로

  1. 한 번 init, 지켜볼 가치가 있는 태스크 시작 시. 사람이 첫 순간부터 조향할 수 있도록 목표를 제공하세요:

    "$HELM" init --title "인증을 JWT로 마이그레이션" --agent "Claude Code" --model claude-opus-4-8 \
                 --goal "세션을 쿠키에서 상태 비저장 JWT로 이동, 아무도 잃지 않기"
    

    이 명령은 서버를 시작하고 브라우저를 엽니다. 사용자에게 보드가 준비되었으며 언제든지 목표/조향을 편집할 수 있다고 알리세요.

  2. 계획을 세워 작업의 형태를 볼 수 있게 한 다음, 단계를 진행하세요. step N은 이전 단계를 완료로 표시하고 N을 현재 활동으로 설정하며 진행률을 업데이트합니다 — 한 번의 호출로 모든 것이 변경됩니다:

    "$HELM" plan "사용자 백업" "RS256 발급/검증 추가" "세션 마이그레이션" "전환" "회귀 테스트"
    "$HELM" step 2
    
  3. 작업 중 설명하세요 — 작고, 자주, 정직하게. 각각은 한 번의 호출입니다:

    "$HELM" event ok   "사용자 테이블이 backups/users.sql로 백업됨"
    "$HELM" event warn "3개 세션이 레거시 쿠키 형태를 사용, 수동 마이그레이션 필요"  # 함정도 여기에 포함
    "$HELM" decide "서비스가 공개 키로만 검증하도록 RS256을 HS256보다 선택"
    "$HELM" decide "먼저 스테이징에 배포, 프로덕션은 사람의 승인 대기" --assumption     # 확인되지 않은 가정 표시
    
  4. 체크포인트 — 사람의 조향을 읽고 따르세요:

    "$HELM" goal      # GOAL + STEERING을 출력합니다; 사용자가 편집했다면 해당 줄에 명시됨 — 따르세요
    

    방향이 변경되었다면 적응하고 기록하세요: "$HELM" event info "조향 변경됨 → 스테이징만 진행".

  5. 실제 차단 요인이 발생하는 즉시 표면화하고, 답변을 받으면 해결하세요:

    "$HELM" ask "스테이징 DB 또는 프로덕션 DB를 먼저 마이그레이션할까요?"   # 진정한 인간 개입 질문만
    "$HELM" status "프로덕션 결정을 기다리는 중" --state blocked   # blocked/new 질문은 인간에게 알림
    "$HELM" resolve 1
    
  6. 완료: "$HELM" done "모든 세션 마이그레이션 완료, 테스트 통과". 보드는 계속 볼 수 있으며, 아무도 보고 있지 않으면 서버가 자동 종료됩니다. "$HELM" stop은 즉시 종료하고; "$HELM" open은 다시 엽니다.

자주, 작게 업데이트하세요. 상태 변경, 완료된 단계, 함정, 결정, 새 아티팩트 — 각각은 한 번의 호출입니다. 보드는 분 단위로 현실을 추적할 때만 가치가 있습니다.

명령어

명령어기능
helm init --title T [--subtitle S] [--agent A] [--model M] [--goal G] [--theme light|dark] [--no-open]보드 생성, 서버 시작, 브라우저 열기.
helm status TEXT [--state running|blocked|waiting|done] [--phase P] [--pct N]현재 활동(NOW) 줄 설정. blocked는 인간에게 알림.
helm plan A B C … · helm plan --add TEXT계획 단계 설정 또는 하나 추가.
helm step N [--text NOW]단계 N으로 진행: 이전 단계 완료, N 활성화, NOW + 진행률 업데이트.
helm event KIND TEXT타임라인 항목 추가. KIND ∈ ok fail warn info run. 함정/막다른 길 → warn/fail.
helm decide TEXT [--assumption]결정 기록; --assumption은 확인되지 않은 것으로 표시(사람이 수정 가능).
helm ask QUESTION · helm resolve N"입력 필요" 항목 추가/제거 (인간에게 알림).
helm goal · helm goal --set TEXT사람의 목표+조향 읽기 (체크포인트에서 수행) 또는 목표 설정.
helm link LABEL URL · helm image PATH [--label L] · helm data LABEL VALUE아티팩트 첨부 (링크/이미지/통계).
helm meta [--title …] [--subtitle …] [--theme …] [--agent …] [--model …]나중에 헤더 필드 편집.
helm done [TEXT] · helm stop · helm open완료 · 서버 즉시 중지 · 보드 다시 열기.

규칙 (자동 처리되거나 필요함)

  • ask는 진정한 결정에만 사용하세요. 해결되었거나 수사적인 질문으로 채우지 마세요. 인간의 입력이 필요하지 않으면 비워두세요 — 조용한 보드는 정직한 보드입니다.
  • --state는 실시간 펄스, 색상, 알림을 제어합니다. 작업 중에는 running을 사용하고, 막혔거나 인간을 기다릴 때는 blocked/waiting을 사용하세요 (데스크톱 알림과 탭 제목의 🔴 카운트로 알림). 종료 시 done.
  • 결정 vs 가정. 일반 decide는 확정된 선택에; --assumption은 확인되지 않았지만 가정하는 사항에 사용하세요. 가정 태그는 인간이 초기에 잘못된 방향을 잡아줄 정확한 지점이므로 정직하게 표시하세요.
  • 출처 바닥글과 활동 범례는 자동으로 렌더링됩니다 — 직접 만들지 마세요.
  • 프로세스는 단기 수명입니다. 태스크가 완료되고 아무도 보고 있지 않으면 자동 종료되며, 다시 시작되지 않습니다. 페이지가 닫혀 있는 동안 업데이트가 발생해도 저장됩니다; helm open은 최신 상태를 보여줍니다.

파일

실행 파일 (커밋됨, 의존성 없음 — dist/):

  • dist/helm.mjs — 모든 업데이트에 호출하는 CLI.
  • dist/server.mjs — 단기 로컬 서버: UI 제공, SSE로 상태 스트리밍, 조향 기록 수신, 버려지면 자동 종료.
  • dist/board.html — 보드 UI (투 컬럼, 라벤더 라이트 + 다크) 서버가 제공.

빌드 방법 (개발 전용, 실행에 불필요): src/*.ts (TypeScript 소스, 하나의 공유 types.ts 데이터 모델), build.mjs (esbuild), package.json. src/ 편집 후 npm run build 실행. 비협상 조건은 DEVRULES.md 참조.

관련 스킬