trellis-finish-work について
trellis-finish-workは、Trellisの開発セッションを締めくくるスキルです。タスクとGitの状態を確認し、完了タスクのアーカイブとセッション記録を行います。コードのコミットは前のワークフロー段階で行います。
主な機能
- 01アクティブタスクとGit状態の確認
- 02未コミットパスの分類
- 03現在および確認済みタスクのアーカイブ
- 04セッション記録の追加
活用シーン
- 01コードのコミット後にタスクを完了する
- 02未変更ファイルが並行作業か確認する
- 03完了タスクをアーカイブしてセッションを記録する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mindfold-ai/ trellis --skill trellis-finish-workインストール後、Claude Code で/trellis-finish-workを入力して読み込まれたか確認します。
詳細
作業の完了
現在のセッションを締めくくります。アクティブなタスク(および、ユーザーが整理を希望する、完了済みで未アーカイブのタスク)をアーカイブし、セッションジャーナルを記録します。ここではコードのコミットは行いません。コードのコミットは、このコマンドを実行する前にワークフローのフェーズ 3.4 で行います。
ステップ 1:現在の状態を確認する
python3 ./.trellis/scripts/get_context.py --mode record
次の内容が表示されます。
- 自分のアクティブなタスク — 現在のタスク以外に、実際に完了していて(コードがマージされ、受け入れ条件を満たしている)、今回アーカイブすべきタスクがないか確認します。
- Git の状態 — 変更がある箇所をすばやく目視で確認します。
- 最近のコミット — ステップ 4 の
--commitで使うハッシュが必要になります。
--mode record で現在のセッションに関連しない完了済みタスクが見つかった場合は、ユーザーに一度だけ確認します。「完了しているように見えるタスクが N 件あります。今回、これらもアーカイブしますか? [y/N]」。デフォルトは「いいえ」です。現在のアクティブなタスクは、ステップ 3 で必ずアーカイブします。
ステップ 2:整合性チェック — 変更のあるパスを分類する
次を実行します。
git status --porcelain
.trellis/workspace/ と .trellis/tasks/ 以下のパスは除外してください。これらは add_session.py と task.py archive によって管理され、自動コミットされるため、このスキル自体の作業によって変更があるものとして表示されます。
残りの変更があるパスについて、それぞれ現在のタスクに属するか、別の並行作業(例:同じリポジトリを別のターミナルウィンドウで編集している場合)に属するかを判断します。判断の目安は次のとおりです。
- 現在のタスクの
prd.md/implement.jsonl/check.jsonlで参照されているパス → 現在のタスク - タスクの明示された範囲に一致するコード領域のパス、またはこのセッションで自分が編集したと覚えているパス → 現在のタスク
- このセッションで自分が編集した覚えのない、無関係な領域のパス → 別の並行作業
そのうえで、次のように対応します。
-
残りのパスに現在のタスクの作業が含まれている — 次のメッセージを表示して中断します。
「作業ツリーに、このタスクの未コミットのコード変更があります:
<list>。finish-work(Trellis コマンド)を実行する前に、ワークフローのフェーズ 3.4 に戻ってコミットしてください。」ここでは
git commitを実行しないでください。ユーザーにコミットを促さないでください。ユーザーはフェーズ 3.4 に戻り、AI がそこでまとめてコミットします。 -
残りのパスがすべて無関係に見える(別のウィンドウでの並行作業)— 一度だけ報告し、ステップ 3 に進みます。
「参考情報:このタスクの範囲外に変更のあるファイルがあります。別のウィンドウでの作業として残します:
<list>。」 -
本当に判断できない — ユーザーに一度だけ確認します。「
<list>はコミットし忘れたこのタスクの作業ですか、それとも別のウィンドウでの作業ですか?(commit / ignore)」その後、回答に応じて対応します。
ステップ 3:タスクをアーカイブする
python3 ./.trellis/scripts/task.py archive <task-name>
最低限、現在のアクティブなタスク(あれば)をアーカイブします。さらに、ステップ 1 でユーザーが確認した追加のタスクもアーカイブします。アーカイブごとに、スクリプトによる自動コミット chore(task): archive ... が作成されます。
アクティブなタスクがなく、ユーザーが追加のタスクのアーカイブも確認していない場合は、このステップを省略します。
ステップ 4:セッションジャーナルを記録する
python3 ./.trellis/scripts/add_session.py \
--title "Session Title" \
--commit "hash1,hash2" \
--summary "Brief summary"
フェーズ 3.4 で作成した作業コミットのハッシュを --commit に指定します(ステップ 1 の Recent commits リスト、または git log --oneline で確認できます)。ステップ 3 のアーカイブコミットのハッシュは含めないでください。これにより、chore: record journal コミットが作成されます。
最終的な Git ログの順序:<フェーズ 3.4 の作業コミット> → chore(task): archive ...(1 件以上)→ chore: record journal。