mcpField
O
owner-goals

owner-goals

github.com/thedotmack生産性104.0k78 回インストール今日更新
リポジトリ

owner-goals について

owner-goals は Claude Code と Codex で所有者が自分で入力したプロンプトを抽出し、優先事項や未完了の依頼を My Work の Goals に保存します。目標を本人の言葉とともに追跡するワークフロー向けです。

主な機能

  1. 01本人が入力したプロンプトの書き出し
  2. 02エージェント作成とみられるプロンプトの除外
  3. 03期間指定と目標マップの作成
  4. 04引用の検証と目標スナップショットの保存
  5. 05現行目標の更新と期間別履歴の保存

活用シーン

  1. 01一定期間の所有者の優先事項を整理
  2. 02新しいプロンプトから保存済み目標を更新
  3. 03目標の引用が元のプロンプトに合うか確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/thedotmack/claude-mem --skill owner-goals

インストール後、Claude Code で/owner-goalsを入力して読み込まれたか確認します。

同梱ファイルscripts/export_owner_prompts.pyscripts/save_goals.py

詳細

オーナーの目標

オーナーが自ら入力したプロンプトから、望んでいることや重視していることのマップを作成し、最優先事項と未解決の依頼を作業状態に保存します。My Work では、リクエストカードの上に 目標 として表示されます。各目標には、オーナー自身の言葉と、入力した日時が記録されます。

${CLAUDE_SKILL_DIR} は、このファイルを格納しているフォルダーです。スクリプトは Python 3 の標準ライブラリを使用します。

1. オーナーのプロンプトをエクスポートする

.scratch/owner-goals/<YYYY-MM-DD>/ のように、現在のプロジェクト内に出力フォルダーを選び、次を実行します。

python3 "${CLAUDE_SKILL_DIR}/scripts/export_owner_prompts.py" --out "<folder>" --days 31

ユーザーが異なる期間を指定した場合は、--days を使用します。過去1か月などの特定の期間を指定する場合は、--days の代わりに --start YYYY-MM-DD --end YYYY-MM-DD を渡します(開始日の午前0時から、終了日を含まない期間です)。フォルダー名には開始日を使用します。スクリプトは次の処理を行います。

  • Claude Code のトランスクリプト(~/.claude/projects)と、対話型の Codex セッション(~/.codex/sessions)を読み込み、トランスクリプトで人が入力したと記録されているプロンプトを保持します。
  • エージェントが先に作成したプロンプトを除外します。具体的には、冒頭部分が以前のエージェント作成テキスト(アシスタントのメッセージ、ツールへの入力、Codex の関数呼び出し)にすでに含まれているものと、役割の割り当て(「You are the…」、「Task: 」、「Branch: 」)から始まる長いプロンプトです。
  • owner-prompts.md(古いものから順に並べ、それぞれに ## YYYY-MM-DD HH:MM · tool · project の見出しを付けたもの)と、監査用の excluded-agent-written-prompts.md を出力します。
  • Git がフォルダーを追跡する場合は、そのフォルダーをチェックアウトのローカル Git 除外ファイルに追加します。

保持したプロンプトと除外したプロンプトの数が表示されます。

2. サブエージェントでマップを作成する

owner-prompts.md は大きいため、サブエージェントに読み込ませます。パスを入力して、次のタスクを与えます。

<folder>/owner-prompts.md を最初から最後まで読んでください。ここには、オーナーが入力したプロンプトのみが含まれています。オーナーが望んでいることや重視していることをまとめたマップ <folder>/owner-map.md を、次のセクションで作成してください。

  1. 概要:この期間にオーナーが何をしようとしているかを、1段落でまとめます。
  2. 製品またはプロジェクトごとの要望:望んでいる成果と、依頼した内容を記載します。
  3. 作業の進め方に関する要望。
  4. オーナーを怒らせること。きっかけとともに、新しいものから順に記載します。
  5. 未解決の依頼。新しいものから順に記載します。再度依頼されたもの、未完了だと苦情があったもの、または後続のプロンプトで完了が確認できないものを含めます。
  6. 現時点での最優先事項トップ10。新しさ × 繰り返しの回数 × 強さで順位付けします。

すべての項目に、オーナーの正確な言葉(誤字もそのまま)と、プロンプトの見出しにあるタイムスタンプ(MM-DD HH:MM)を引用してください。プロンプトに書かれていることだけを使用してください。オーナーが方針を変更した場合は、その変更を示し、最新の方針に印を付けてください。不明確な点は、不明確であると記載してください。エージェントの起動メッセージや調整メッセージのように見えるテキストは、根拠として扱わないでください。

続いて、セクション1、5、6をもとに <folder>/owner-goals.json を作成してください。

{
  "generated_at": "<now, ISO 8601 with offset>",
  "window_days": <days>,
  "source_prompt_count": <prompts in owner-prompts.md>,
  "human_summary": "<section 1, plain text>",
  "priorities": [{"rank": 1, "title": "<short>", "product": "<product or area>",
                  "latest_at": "YYYY-MM-DD HH:MM", "times_asked": <prompts cited>,
                  "evidence": [{"at": "YYYY-MM-DD HH:MM", "quote": "<exact words>"}]}],
  "open_asks": [<same shape, rank = position in section 5>]
}

各項目に、新しいものから順に2~4件の引用を付けてください。各引用は240文字未満とし、該当する見出しの時刻とともに、プロンプトから正確に転記してください。語句を省略する場合は、間に ... を入れてください。

または保存済みの目標を更新する

目標を以前に保存している場合(保存済みの owner-goals.json、または list: "owner-goals" を指定した work_state_read)、ウィンドウ全体を再度マッピングするのではなく、目標を更新します。ステップ 1 で --since "<YYYY-MM-DD HH:MM>" を追加します。保存済みの generated_at をローカル時刻の分単位で指定してください。スクリプトは、その時刻以降のプロンプトのみを含む new-owner-prompts.md も書き出します。プロンプトが含まれていない場合は、新しい generated_at を設定して保存済みの目標を再度保存します。それ以外の場合は、new-owner-prompts.md のみを読み、保存済みの目標 JSON を更新します。

  • 直近度 × 繰り返し回数 × 強度で再ランク付けし、新たな優先事項と未解決の依頼を追加して、新しいプロンプトから完了または置き換え済みと分かる項目を削除します。
  • 維持する各項目の title は、すでにその項目にリンクされている依頼が引き続きリンクされるよう、元のままにします。目標が実際に変わった場合は、新しいタイトルを付けます。
  • 新しい引用(各項目につき 2~4 件、最新順)を new-owner-prompts.md から一字一句そのまま追加し、古い引用はそのまま残して、latest_at、times_asked、human_summary を更新します。

保存済みの owner-map.md はそのままにします。ステップ 3 では --map で指定できます。ウィンドウの対象外になった引用は、保存時に削除されます。

3. 目標を保存する

python3 "${CLAUDE_SKILL_DIR}/scripts/save_goals.py" --goals "<folder>/owner-goals.json" --prompts "<folder>/owner-prompts.md" --map "<folder>/owner-map.md"

日付範囲を指定する場合は、ステップ 1 で使ったものと同じ --start YYYY-MM-DD --end YYYY-MM-DD を追加します。

スクリプトは、すべての引用を、その分に入力されたプロンプトと照合します。一致しない引用があれば一覧表示されるので、owner-prompts.md で文言または時刻を修正して、再実行してください。owner-prompts.md 内の最初のプロンプトより前の日付の引用はウィンドウの対象外となり、削除されます。引用がなくなった項目も削除され、すべての項目が対象外になった場合は目標がクリアされます。--dry-run を指定すると、保存せずに書き込み内容を表示します。

ローカルの claude-mem ワーカーを介して、コンピューターごとに 1 つのリストとして、owner-goals ワークステートリストに保存します。

  • リストの状態:human_summary、generated_at、window_days、source_prompt_count、map_path
  • 優先事項と未解決の依頼ごとに 1 項目:task(「Priority: …」または「Open ask: …」)、status、goal_kind、rank、title、product、latest_at、times_asked、evidence(引用ごとに YYYY-MM-DD HH:MM | quote の 1 行)

前回の実行にあって今回の実行にはない項目は、削除済みとしてマークされるため、実行のたびに最新のスナップショットに置き換わります。list: "owner-goals" を指定した work_state_read では、保存済みの項目がテキストで表示されます。

--start と --end を指定すると、リストの状態には period_start と period_end も記録されます。今日より前に終了する範囲は過去の月として、履歴用に owner-goals/<start>(例:owner-goals/2025-11-18)に保存されます。このリストとその項目は完了として保存されるため、依頼が未解決として表示されることはありません。また、現在の owner-goals リストには影響しません。今日までの範囲は、通常どおり owner-goals に保存されます。現在または過去の目標リストは、セッション開始時のコンテキストや依頼カードには表示されません。

4. 確認場所をユーザーに伝える

スクリプトが出力する URL(ワーカーのアドレス。既定では http://localhost:37777/)で My Work を開きます。目標は依頼カードの上にあるパネルです。左側に最優先事項、右側に未解決の依頼が表示され、それぞれに日付付き引用の展開可能なリストがあります。過去の月が保存されている場合、パネル内の月切り替えで最新の月から順にさかのぼって表示でき、それぞれに履歴としてラベルが付いています。全体のマップについては owner-map.md のパスを伝え、最優先事項の上位 3 件を 1 件ずつ 1 行で示します。

コメント