kstack-handoff

Installation
SKILL.md

kstack-handoff

root session は repo 本体の checkout の default branch で動く。委任するタスクごとに wt CLI で worktree を作り、Herdr なら root の下の子 workspace、Tern なら main の omp が動く root パネルに紐づく floating パネルで omp(子)を起動し、引き継ぎ prompt を送る。子は作業が止まる疑問を intercom で root に聞き、root は答えられなければ user に聞いて子に返す。子は終わったら commit せずに root に報告し、root が未コミット差分の user review を依頼する。user が承認したら、root がそれを子に伝え、子が commit して commit hash を root に返す。push・PR 作成・merge は、root が user に確かめ、user が明示した操作だけを子に指示する。repo によっては merge の前に approve が要り、review の承認は merge の許可ではないため。merge されたら、root は自分の checkout を merge 後の default branch に進めて片付け、前提がそろったタスクを起動する。1 タスクは 1 PR にする。root はやり取りと統合を持ち、実装と commit は子に任せる。

kstack-interface-first-development の「引き継いで監督する」から来たら、今回のフェーズごとの引き継ぎ prompt と、並列に始めるフェーズの組(例: 2 と 3 を並列)をそのまま使う。後のフェーズは、今回のフェーズがすべて merge された後に、ifd が次の回として渡す。

端末ごとの操作(子の起動・prompt の送信・画面の読み方・片付け)は terminal-cli に置く。herdr と Tern のどちらの手順を使うかもそこで決め、ここには端末に依らない段取りだけを書く。

参照ファイルの相対 path は、実際に読み込んだこの SKILL.md の親ディレクトリを基準に解決する。references/terminal-cli.md はその配下にある。agent が示した SKILL の実ファイル path を使い、作業 repo・呼び出し元 SKILL のディレクトリ・固定の ~/.agents/skills を基準にしない。URI 経由で参照を読めなければ、その実ファイル path から読む。

そこでも参照ファイルが無い・読めない場合は、試した絶対 path とエラーを user に伝えて止まる。別の導入先にある本文と参照を混ぜず、同じ導入先へ kstack-handoff をディレクトリごと揃えてから再開する。

手順

  1. 確かめる — intercom がつながっていること(intercom({ action: "status" }) が Connected: Yes)を確かめ、Session ID を控える。terminal-cli の「端末を選ぶ」 で端末と root の場所を同定する。続けて、gh が使えること(gh auth status)、root が repo 本体の checkout の default branch にいること(git rev-parse --show-toplevel が git worktree list の 1 行目の path で、git branch --show-current が gh repo view --json defaultBranchRef -q .defaultBranchRef.name と同じ)を確かめる。欠けていたら user に伝えて止まる(intercom tool が無ければ omp plugin install pi-intercom の後に omp の再起動が要る。root が linked worktree や別の branch にいたら、repo 本体の checkout の default branch で起動し直してもらう)。完了条件: 端末の種類・root の端末上の ID・root の Session ID・checkout・default branch がそろっている
  2. タスクをそろえる — タスクごとに、下の「命名」の <feature> と <task>、引き継ぎ prompt、完了条件、前提のタスクを決め、todo に 1 タスク 1 項目で書く(compaction の後も残る)。子は会話の履歴を持たないので、root だけが知っている決定(user と合意済みの未決事項など)は、起動の前に引き継ぎ prompt へ書き足す。完了条件: すべてのタスクに名前・引き継ぎ prompt・完了条件・前提があり、子が聞かずに済む決定が書かれている
  3. 起動する — 前提のタスクの PR がすべて merge 済みのタスクを、下の「起動」で全部起動する。branch・子の端末・worktree の表を user に示し、待つタスクの todo を block にしてから(待ちの理由を残すと、turn の終わりに omp が未完了の todo を催促しない)、turn を終えて子の message を待つ。完了条件: 起動したすべての子へ引き継ぎ prompt が届き、intercom の開始報告で task・cwd・branch と子の full Session ID を確かめた
  4. 子に応える — 子の message が届くたびに、下の「子とのやり取り」に従って返す。完了の報告が来たら、root が skill://kstack-review-request で子の worktree の未コミット差分の review を user に頼み、turn を終えて結果を待つ。承認されたら、下の「統合」の手順 1 で子に commit させる。完了条件: 届いた message すべてに、答えか review の結果(承認または指摘)を返し、承認されたタスクの commit hash を受け取った
  5. 統合する — commit 済みのタスクについて、push・PR 作成・merge のどれを行うかを user に確かめ、下の「統合」で user が明示した操作だけを子にさせる。merge されたら root の checkout を default branch の最新に進めて片付ける。前提がそろったタスクができたら 3 へ、作業中の子が残っていれば turn を終えて 4 へ戻る。完了条件: すべてのタスクが commit され、user が明示した操作の結果(PR の URL・merge)を受け取り、merge したタスクの子の端末・worktree・branch が残っていない。merge の指示が無い・approve 待ちのタスクは todo を block にして user に伝える。最後に、commit・PR・merge の結果と root の checkout の HEAD を user に報告する
Installs
14
First Seen
12 days ago