Communitygithub.com

chasey-myagi/helm

コーディングエージェントが作業中に維持する、ライブで操作可能なシングルタスク作業ボード。人間はそれを監視し、実行中に目標を編集できます。

helm とは?

helmは、AIコーディングエージェント(Claude Code、Cursor、Codexなど)が1つのタスクに取り組む間、人間がブラウザで開いて監視できるライブな作業ボードを提供するスキルです。エージェントは安価な`helm` CLIコマンド(わずか数トークン)でボードを更新し、ローカルサーバーがSSE経由で変更をページにストリーム配信します。人間はいつでもボード上の目標やステアリング指示を編集でき、エージェントは次のチェックポイントでそれを読み取り、新しい方向に従います。これにより、高価なHTML再出力を避けつつ、エージェントの思考過程、進捗、決定、ブロッカーをリアルタイムで透明化できます。`init`、`plan`、`step`、`event`、`ask`、`goal`などのコマンドで、初期化から計画、進行、イベント記録、人間への質問、ステアリングの確認までをシームレスに行えます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add chasey-myagi/helm

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

helm は何をしますか?

1つのタスクのためのライブボード。人間はブラウザで開いたままにし、あなた(エージェント)は安価なhelm呼び出しで作業中に更新します。短命なローカルサーバーが変更をその場でページにストリーム配信します。人間はいつでも舵を取れます——目標やステアリングを編集し、あなたは次のチェックポイントでそれに従います。

2つのルール

  1. 必ずhelmだけを呼び出すこと。HTML、サーバー、state.jsonを手動で書いたり編集したりしないこと。 各helm呼び出しはわずか数トークンであり、それが要点です——作業中にボードを正直に保つのが安価で済みます。スタイル付きページを再出力すると10倍のコストがかかり、目的が損なわれます。
  2. すべてのチェックポイントで人間のステアリングを再読すること(計画ステップ間、取り返しのつかないことをする前)にはhelm goalを使用します。人間はページを通じてステアリングを操作し、あなたは見なければ見えません。目標やステアリングが変更された場合は、新しいバージョンに従い、そのことをeventで伝えてください。

ヘルパー

helmはビルド済みで依存関係のないNodeスクリプトdist/helm.mjsとして提供されます(生のnodeで動作——npm install不要、インストール時のビルド不要)。パスを一度取得して再利用します:

HELM="<this-skill-dir>/dist/helm.mjs"   # 例: ~/.claude/skills/helm/dist/helm.mjs

このパスで呼び出します——"$HELM" …はshebang経由で動作するか、node "$HELM" …を使用します。Kubernetesを使用している場合は、helmというエイリアスを作らないでください(それは別のhelmです)。init後、ボードはカレントワーキングディレクトリから上位に向かって自動検出されるため、以降の呼び出しで--dirは不要です。

ワークフロー

  1. 一度だけInit。監視する価値のあるタスクの開始時に実行します。人間が最初の瞬間からステアリングできるよう目標を指定します:

    "$HELM" init --title "認証をJWTに移行" --agent "Claude Code" --model claude-opus-4-8 \
                 --goal "セッションをCookieからステートレスJWTに移行し、誰も失わない"
    

    これでサーバーが起動し、ブラウザが開きます。ユーザーにボードが起動し、いつでも目標/ステアリングを編集できることを伝えてください。

  2. 計画を提示して作業の全体像を示し、それを進めていきます。step Nは以前のステップを完了済みとし、Nを現在のアクティビティに設定し、進捗を更新します——1回の呼び出しですべてが動きます:

    "$HELM" plan "ユーザーのバックアップ" "RS256発行/検証を追加" "セッションの移行" "切り替え" "リグレッションチェック"
    "$HELM" step 2
    
  3. 作業を逐次説明——小さく、頻繁に、正直に。各呼び出しは1回だけです:

    "$HELM" event ok   "usersテーブルをbackups/users.sqlにバックアップ"
    "$HELM" event warn "3つのセッションがレガシーCookie形式を使用しており、手動移行が必要"  # 落とし穴もここに
    "$HELM" decide "HS256ではなくRS256を採用。サービスは公開鍵のみで検証可能"
    "$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で再開。

頻繁に小さく更新してください。ステータス変更、完了ステップ、落とし穴、決定、新しいアーティファクト——それぞれが1回の呼び出しです。ボードは、分単位で現実を追跡する場合にのみその価値を発揮します。

コマンド

コマンド説明
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計画ステップを設定するか、1つ追加します。
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を使用します。
  • 決定と前提の違い。 単なるdecideは確約した選択に使います。--assumptionは確認していないが仮定していることに使います。前提タグはまさに人間が早い段階で間違いを発見する場所なので、正直にフラグを立ててください。
  • 来歴フッターとアクティビティ凡例は自動的にレンダリングされます——自分で構築しないでください。
  • プロセスは短命です。 タスクが完了し誰も見ていないときに自動終了し、再起動はしません。ページが閉じられている間に更新があっても保存されます。helm openで最新の状態が表示されます。

ファイル

実行されるもの(コミット済み、依存関係なし——dist/):

  • dist/helm.mjs —— すべての更新で呼び出すCLI。
  • dist/server.mjs —— 短命なローカルサーバー:UIを提供し、SSE経由で状態をストリーム配信し、ステアリングの書き戻しを受け付け、放棄されると自動終了します。
  • dist/board.html —— サーバーが提供するボードUI(2カラム、ラベンダーのライト+ダーク)。

ビルド方法(開発時のみ、実行には不要):src/*.ts(作成されたTypeScript、データモデル用の共有types.ts)、build.mjs(esbuild)、package.json。src/編集後はnpm run buildを実行します。譲れないルールについてはDEVRULES.mdを参照してください。

関連スキル