From workflow
複数ステップの成果物ゴール(例: 記事の下書き→サムネ→告知→公開前チェック→公開、 月次レポートの作成→整形→チェック→共有)を、ステップ分解 → ~/.belta/goals/<slug>.md への 永続化 → 順次実行 → 進捗記録(done/blocked)→ セッションをまたいだ再開 → 完了アーカイブまで 一貫管理する。「○○を達成したい」「ゴールとして管理して」「プロジェクトとして進めたい」 「最後までやり切って」「あのゴールの続き」「ゴールの進捗は?」等の発話、/goal コマンド、 または SessionStart フックのゴール再開検知の注入で発火する。1 ツール・1 会話で完結する 単発依頼(workflow 本体)、当日限りの TODO メモ(~/.belta/todos/)、定期実行の依頼 (scheduler)には使わない。
How this skill is triggered — by the user, by Claude, or both
Slash command
/workflow:goalThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
belta の他機能が「その場で分岐する(workflow)」「定期的に回す(scheduler)」のに対し、本スキルは **1 回の会話で終わらない仕事を、言った後も覚えていて完遂まで面倒を見る** 手段を提供する。「AI自動化OS」6 分類の goal(複数作業を束ねて成果まで進める)に相当する。
belta の他機能が「その場で分岐する(workflow)」「定期的に回す(scheduler)」のに対し、本スキルは 1 回の会話で終わらない仕事を、言った後も覚えていて完遂まで面倒を見る 手段を提供する。「AI自動化OS」6 分類の goal(複数作業を束ねて成果まで進める)に相当する。
scripts/goal-scan.js が担う(パーサは hooks/goal-util.js。SessionStart の再開検知と判定基準を揃える)。この二層は insights(notes-scan.js + LLM)と同じ役割分担です。
出力言語(必須): 利用者への進捗報告・
AskUserQuestionの文面・ゴールファイルの本文は、すべて日本語で出力する(走査 JSON のフィールド名が英語でも、利用者に見せる文章は日本語に翻訳する)。
/goal コマンド(new / list / resume / done / archive)hooks/session-start.js の (G))が「進行中のゴールがあります」と注入したとき使わない場面(SKIP): 1 ツールで完結する単発依頼(通常の workflow 分岐で処理)/当日限りの TODO メモ(~/.belta/todos/ に書くだけでよい)/「毎朝」「毎週」等の定期実行(scheduler スキル)。
~/.belta/goals/<slug>.md(1 ゴール 1 ファイル。書式の正本は references/goal-format.md)~/.belta/goals/GOALS.md(表示専用。作成・進捗更新のたびに upsert するが、走査はこのファイルを読まない)パスはホームディレクトリ環境変数(POSIX: $HOME / Windows: %USERPROFILE%)から解決する。goals/ ディレクトリは Write ツールが親ごと自動作成するので mkdir は不要。
AskUserQuestion でステップ案を提示し、承認・修正を受ける。monthly-sales-report)。node "${CLAUDE_PLUGIN_ROOT}/scripts/goal-scan.js" の一覧で衝突を確認し、衝突したら -2、-3… を付ける。~/.belta/goals/<slug>.md を Write し、GOALS.md に索引行を upsert する。target_date(期日)がある場合、「期日リマインドの定期ジョブを張りますか?」と AskUserQuestion で確認し、希望されたら scheduler へ委譲する(雛形: references/goal-job-templates.md)。- [x] にし、行末に <!-- done:YYYY-MM-DD --> を付けるupdated_at を当日に更新するGOALS.md の索引行(steps:done/total / updated)を upsert する- [!] にし、行末に <!-- blocked:理由 --> を付けて理由を残す。updated_at も更新する。必ず最初に走査して現状を取得する(記憶や推測で進めない):
node "${CLAUDE_PLUGIN_ROOT}/scripts/goal-scan.js" --slug <slug>
進捗(done/total)・次のステップ・blocked の有無を日本語で報告する。
blocked ステップがあれば、解消したか(承認が下りたか・情報が揃ったか)を確認する。解消していれば - [ ] に戻して続行、未解消ならスキップして次の pending へ進めるか利用者に確認する。
以降は Step 2 と同じ。
status: done に更新し、完了を報告する(何が達成されたかを 1〜2 文で)。AskUserQuestion で確認し、承認されたら status: archived に更新する。ファイルは移動・削除しない(status 変更のみ。クロスプラットフォーム規約と監査性のため)。status: archived にする(ステップは未完了のままでよい)。| 相手 | 関係 |
|---|---|
~/.belta/todos/ | todos は当日限りの単発メモ(日次ファイル、追跡なし)。複数ステップを束ねて完遂まで追うなら goal。迷ったら「明日も続きをやるか?」で判定(やるなら goal)。 |
| scheduler | 期日リマインド・週次のゴール棚卸しを定期ジョブとして張れる(references/goal-job-templates.md)。goal 自体は定期実行しない。 |
| insights / report | goal-scan.js の JSON を振り返り・成長レポートの材料に使える(読み取り専用なので自由に呼んでよい)。 |
| workflow スキル | 各ステップの実行は workflow の分岐ロジック・安全層(PII フック・permissions・機密度確認)をそのまま通る。goal は新しい権限を獲得しない。 |
goal-scan.js --slug を先に実行し、記録済みのステップに従う。LLM の記憶でステップを作り直すと進捗が壊れる。- [ ] / - [x] / - [!]。- [~] や - [WIP] 等の独自記法を発明しない(パーサ hooks/goal-util.js が読めなくなる)。## ステップ 見出しの配下以外にチェックボックスを書かない。 パーサは ## ステップ から次の ## までしか数えないが、メモ欄のチェックボックスは利用者を混乱させる。updated_at も更新する。 これが stale(7 日停滞)検知の基準。忘れると放置ゴールとして誤検知される。GOALS.md は表示専用。 進捗の判定に使わない・真実のソースにしない(古くても実害が出ない設計)。status: archived。 mv / rm を必須経路に置かない(cross-platform.md)。done: / blocked: コメントの書式を崩さない(<!-- done:YYYY-MM-DD --> / <!-- blocked:理由 -->)。理由に --> を含めない。npx claudepluginhub belta-group/belta-workflow-agent --plugin workflowSets up isolated workspaces using native worktree tools or git worktree fallback. Use before starting feature work to protect the current branch.