Communitygithub.com

scchearn/loam

AIコーディングエージェントのためのワークフロースキル:計画、実行、およびセッション間で永続的なナレッジベースを維持します。

loam とは?

loamは、AIコーディングエージェント(Claude Code、Cursor、Codexなど)が、セッションを超えて構造化された計画、実行、および永続的なメモリ管理を行うためのワークフロースキル群です。このスキルはルーターとして機能し、ユーザーの意図に基づいて適切なサブスキル(例:loam-writing-spec、loam-planning、loam-adding-to-memoryなど)を呼び出します。メモリモデルは3つの基盤(wiki、ガイダンス、チェックポイント)で構成され、エージェントは承認なしにメモリを自律的に書き込み、修正できます。耐久性のあるメモリのための採用ルーブリック(R1-R3、D1-D2)と自己修正、鮮度検証のトリガーを備え、メモリの品質を維持します。このスキルは、ホストハーネスのスキルローダーを介して呼び出すことで、一貫性のあるワークフローとメモリの整合性を保証します。

対応✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add scchearn/loam

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

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

ドキュメント

loamの使い方

これはloamスキル名前空間のルーターです。それ自体は作業を実行しません。特定の意図に対してどのloamスキルを呼び出すべきか、およびすべてのスキルに適用されるルールを指示します。

これはルーティング/メタスキルです。 マッチするスキルを認識したら、ホストハーネスのスキルローダーを介して呼び出してください。ここで作業を実行しないでください。

絶対条件

3つのルールにより、loamの作業がメモリモデルと整合します。

  1. loamアクションの前に関連スキルを呼び出すこと。 単なるツール呼び出しではありません。計画、調査、開始、再開、チェックポイント作成、議論または合意形成、計画修正、メモリ追加、メモリ照会、メモリ修正、メモリリンティング、メモリレビュー、学習の記録、ガイダンス監査、Wikiのスキャフォールディング、またはVaultの初期化の前に:該当するスキルを呼び出してください。このドキュメントはルーターです。スキルの本文に実際のルールがあります。その他のすべての責任はあなたにあります。呼び出し側に倒してください。
  2. メモリ優先、基盤は後。 まず「メモリ」について話してください。マークダウン基盤をガイダンス基盤やチェックポイント基盤と区別する場合のみ「wiki」を使用してください。メモリ全体を指すときに「wiki」と言わないでください。wikiはメモリの一つの基盤であり、全体ではありません。
  3. エージェント所有のメモリ書き込み。 エージェントは事前承認なしにメモリの書き込み、修正、ルーティング、アーカイブを行います。人間は古いまたは間違ったコンテンツにフラグを立てることができ、エージェントが発見した矛盾と同じ修正フローをトリガーします。

メモリモデル

メモリは、loamがキャプチャするすべての包括的な概念です。3つの基盤が存在します:

基盤定義管理主体
wikiwiki/下の耐久性のあるObsidian対応マークダウンノート。トピック、エンティティ、概念、分析ページ。loam-memoryグループ(ほとんどのスキル)
ガイダンスAGENTS.mdが正規のガイダンスファイルです。CLAUDE.mdは薄いインポートシム(@AGENTS.mdのみ)です。.claude.local.mdは個人用オーバーライド用。loam-memoryグループ(auditing-guidance、learning-from-sessionガイダンスパス)
チェックポイントwiki/checkpoints/下の一時的な作業状態。再開用ノートであり、耐久性のある知識ではありません。loam-workグループ(checkpointingが書き込み、resumingが読み取り)

wiki基盤はqmdがインデックスするものです。ガイダンス基盤はハーネスがプロンプトコンテキストとしてロードするものです。チェックポイントは作業状態であり、知識ではありません。index.mdやlog.mdに触れることを拒否し、耐久性のある主張になるべきではありません。

まず「メモリ」について話してください。基盤の区別が重要な場合のみ「wiki」を使用してください。 マークダウンノートを操作するスキルは、メモリのwiki基盤で動作します。AGENTS.mdを編集するスキルは、メモリのガイダンス基盤で動作します。どちらもメモリです。

耐久メモリ採用ルーブリック

Wikiページを作成する前にこのルーブリックを使用してください。ページ作成スキルはこのセクションを参照し、コピーしないでください。

主張がWikiページに値するのは、以下の3つすべてを満たす場合のみです:

  • R1 再利用可能 — 別のタスクでの将来のセッションがそれをおそらく必要とする。
  • R2 プロジェクト/ドメインについて — コードベース、アーキテクチャ、決定、規約、外部依存関係、または耐久性のある外部事実について。会話、エージェント、または一時的なユーザー状態についてではありません。
  • R3 再構築にコストがかかり、再確認可能 — ライブソース(コード、設定、カレンダー、タスクリスト)から主張を再導出するコストが、ページのメンテナンスコストよりも高い場合。1つのコマンドまたは1つのファイル読み取りで取り戻せる場合、ページに値しません。外部ソースが存在する場合、ページはそれを指定し、鮮度を再検証できるようにします。純粋な決定と根拠は自己ソーシングであり、その理由を述べることでこれを満たします。

失格条件はルーブリックを上書きします:

  • D1 一時的 — ビルド状態、現在のブランチ、「今日Xを実行した」など、運用レポート。
  • D2 重複 — 既存のページがカバーしている場合、新しいページを作成する代わりに既存のページを修正します。

タイブレーカー:ライブソースから再構築できない場合は採用、再構築可能な場合は破棄。wiki/.archive/は、以前は耐久性があったが現在は置き換えられたコンテンツ専用です。決して耐久性がなかった資料はWikiに書き込まれず、アーカイブもされません。

ルーティングマトリックス

資料宛先スキルパス
再利用可能なプロジェクト/ドメイン事実、ルーブリックを通過耐久性のあるWikiページloam::adding-to-memory、自己修正
エージェント行動の規約/コマンド/落とし穴AGENTS.md / CLAUDE.mdloam::learning-from-sessionガイダンスパス
再開/引き継ぎ用のセッション状態wiki/checkpoints/<slug>.mdloam::checkpointing
作業単位に添付されたタスクごとのコンテキストタスク注釈 / 計画ファイルloam::planning、loam::starting
ビルド出力、ブランチ状態、一回限り、検証不可能、またはルーブリック不合格破棄、オプションでlog.md監査行を追加なし

自己修正と人間フラグトリガー

  • 自己修正: エージェントがメモリを読み取り、現在の証拠との矛盾を発見した場合、置き換えられた耐久性のあるページをアーカイブヘッダー付きでwiki/.archive/に移動し、ライブロケーションに修正を書き込み、log.mdにself-correctエントリを追加し、元のタスクを続行します。
  • 人間フラグ: 人間がメモリページが間違っているか古いと言った場合、それを承認リクエストではなく修正トリガーとして扱います。フラグが立てられたページと現在の証拠を読み取り、置き換えられた耐久性のあるページをアーカイブし、修正を書き込み、ログに記録し、何が変更されたかを報告します。
  • アーカイブ範囲: .archive/は、耐久性があり、後に間違っていたり、古くなったり、置き換えられたページのみを対象とします。決して耐久性がなかった資料は他の場所にルーティングされるか破棄されます。

鮮度検証トリガー

既存のupdated_atとリント時の証拠を使用し、鮮度フロントマターを追加しないでください。

  • F1 引用されたファイルパスがページのupdated_at以降に変更された。
  • F2 リファクタリング、名前変更、削除、または移行が参照パスに影響を与えた(loam::syncing-code-graph --touched)。
  • F3 ページが名前を挙げている固定バージョン、API、または外部ドキュメントに新しい言及がある。
  • F4 updated_atが90日より古く、ページがAPI、設定、バージョン、コードパスなどの揮発性サーフェスを引用している。リントはこれを再検証用にフラグし、自動アーカイブはしません。
  • F5 読み取り時の矛盾。自己修正で処理されます。

検証結果は次のいずれかです:確認済み(updated_atを更新)、修正済み(アーカイブ + 書き換え + ログ)、または降格(「もはや適用されない」理由でアーカイブ)。

レッドフラグ:「STOPして呼び出せ」を意味する考え

これらの合理化によりスキルがスキップされます。これらの考えのいずれかに気づいた場合、セッションで「すでに読んだ」としても、該当するスキルを呼び出してください。

考えアクション
「これをWikiに書くだけだ」loam-adding-to-memoryを呼び出す。採用ルーブリックを適用し、その後書き込むかルーティングする。
「簡単だから計画するだけだ」loam-writing-specを呼び出す。loam-planningの前に仕様が必要。
「エージェント間で簡単な議論を実行するだけだ」loam-configuring-agentsを呼び出す。議論は承認ゲート付き。ゲート前の送信は不可。
「この計画を直接編集するだけだ」loam-amending-planを呼び出す。計画変更は連鎖する。スキルが影響を調査する。
「後で役立つかもしれないのでこのメモリページを書く」最初に採用ルーブリックを適用する。不合格ならルーティングまたは破棄する。
「Wikiが古いのでインラインで修正する」置き換えられた耐久性のあるページをアーカイブし、修正を書き込み、ログに記録し、続行する。
「この学習をメモとしてキャプチャするだけだ」loam-learning-from-sessionを呼び出す。Wikiまたはガイダンスにルーティングする。あなたではない。
「Wikiをちょっと確認するだけだ」loam-querying-memoryを呼び出す。古いコンテキストではなく、メモリに基づいて行動する。
「このコマンドをAGENTS.mdに追加するだけだ」loam-learning-from-session(ガイダンスパス)または完全な監査の場合はloam-auditing-guidanceを呼び出す。
「一時停止して後で再開するだけだ」loam-checkpointingを呼び出す。チェックポイントは再開可能なアーティファクトであり、メンタルノートではない。
「中断したところから再開する」loam-resumingを呼び出す。行動前にライブ状態を確認する。
「Wikiをセットアップする」最初にloam-scaffolding-wikiを呼び出し、次にObsidian設定のためにloam-initializing-vaultを呼び出す。

loamライフサイクル

loamタスクの場合:

  1. 方向付け。 以下の決定グラフからマッチするスキルを認識する。2つのスキルが関連するように見える場合、優先順位ルールを適用する。
  2. スキルを選択。 ホストハーネスのスキルローダーを介して呼び出す。
  3. 基盤の境界を維持。 チェックポイントを耐久性のあるページに書き込まない。ガイダンスをWikiページに書き込まない。WikiコンテンツをAGENTS.mdに書き込まない。各基盤には専用のスキルがある。
  4. メモリ書き込み前に採用とルーティングを適用。 耐久性のあるWikiページはルーブリックを通過する必要がある。それ以外はガイダンス、チェックポイント、タスク注釈、または破棄にルーティングされる。
  5. 該当するスキルを介してのみ計画/チェックポイント/ガイダンスを更新。 計画をインラインで編集しないでください。loam-amending-planを使用してください。チェックポイントをインラインで書き込まないでください。loam-checkpointingを使用してください。AGENTS.mdをインラインで編集しないでください。loam-learning-from-sessionまたはloam-auditing-guidanceを使用してください。

競合ルール(2つのスキルが関連するように見える場合)

  • プロセス/現在の作業スキルがメモリメンテナンススキルより優先。 実行中にメモリ問題を発見した場合、最初に現在の作業ステップを完了するか(またはチェックポイントを作成し)、その後メモリスキルを呼び出す。
  • メモリ書き込みはエージェント所有。 現在の作業が学習を生成した場合、マトリックスを通じてルーティングする。古いメモリを露呈した場合、アーカイブ+ログ付きでインライン修正する。
  • チェックポイントは一時的。 wiki/checkpoints/の下に存在するが、耐久性のある主張ではない。index.mdやlog.mdの更新を拒否する。loam-adding-to-memoryを通さずにチェックポイントを耐久性のあるメモに昇格させないでください。
  • 修正 vs リンティング。 loam-amending-memoryは特定の間違った主張を修正する。loam-linting-memoryはグラフ全体をヘルスチェックする。特定のエラーを見つけた場合は修正する。一般的なチェックが必要な場合はリントする。
  • クエリ vs レビュー。 loam-querying-memoryは質問に答える。loam-reviewing-memoryはギャップを明らかにする。答えが必要な場合はクエリ。未解決事項を知りたい場合はレビュー。
  • 追加 vs 学習。 loam-adding-to-memoryはソース(ファイル、記事、会話メモ)を取り込む。loam-learning-from-sessionはセッションから得た洞察をキャプチャし、Wikiまたはガイダンスにルーティングする。ソースがある場合は追加。セッションが洞察を生んだ場合は学習。

決定グラフ

「やりたいこと...」
├─ 新しいことを始める
│  ├─ 質問を調査 ──────────────────── /loam::writing-spec
│  ├─ 承認された作業を計画 ────────── /loam::planning
│  └─ 議論 / 合意形成 ─────────────── /loam::configuring-agents
├─ 作業を実行する
│  ├─ 計画を開始 ──────────────────── /loam::starting
│  ├─ 一時停止 / 引き継ぎ ─────────── /loam::checkpointing
│  ├─ 一時停止後に再開 ────────────── /loam::resuming
│  └─ 進行中の計画を変更 ──────────── /loam::amending-plan
├─ メモリを扱う
│  ├─ ソースを追加 ────────────────── /loam::adding-to-memory
│  ├─ コードベースを取り込む ──────── /loam::ingesting-codebase
│  ├─ コードグラフのドリフトを同期 ── /loam::syncing-code-graph
│  ├─ 質問をする ──────────────────── /loam::querying-memory
│  ├─ 間違いを修正 ────────────────── /loam::amending-memory
│  ├─ ヘルスチェック ──────────────── /loam::linting-memory
│  ├─ 乱雑なコーパスを正規化 ──────── /loam::normalizing-memory
│  ├─ 未解決事項を確認 ────────────── /loam::reviewing-memory
│  ├─ セッション学習をキャプチャ ──── /loam::learning-from-session
│  └─ エージェントガイダンスを監査 ── /loam::auditing-guidance
└─ 基盤をセットアップする
   ├─ Wikiをスキャフォールド ──────── /loam::scaffolding-wiki
   └─ Obsidian Vaultを初期化 ──────── /loam::initializing-vault

あいまいなケースの優先順位注意

意図が2つのスキルにマッピングされる場合、上記のツリーが主要なルーターです。ツリーが曖昧さを解決しない場合、ライフサイクルセクションの競合ルールを適用します。それでも不明な場合:ユーザーにどちらの意図が近いか尋ねてください。

コンパクトスキルリファレンス

スキルごとに1行。決定グラフが主要なルーターです。これはクイックルックアップ用です。

  • loam-writing-spec — 質問を調査し、specs/<slug>.mdを生成
  • loam-planning — 承認された仕様を実行可能な計画にコンパイル
  • loam-starting — 計画の実行を開始または再開
  • loam-resuming — チェックポイントノートから再開
  • loam-checkpointing — 一時停止前に再開可能なチェックポイントを書き込み
  • loam-configuring-agents — エージェント間で承認ゲート付きの構造化された議論または会議を実行し、収束成果物を生成
  • loam-amending-plan — スコープ変更後に進行中の計画を更新
  • loam-adding-to-memory — ソースをメモリ(wiki基盤)に取り込む
  • loam-ingesting-codebase — コードベースをwikilinkエッジを持つエンティティページとして取り込む
  • loam-syncing-code-graph — コードグラフを計画ゲートまたはオンデマンドでリポジトリに調整
  • loam-querying-memory — メモリから質問に答える
  • loam-amending-memory — 特定の間違ったまたは古いメモリの主張を修正
  • loam-linting-memory — メモリグラフのヘルスチェック
  • loam-normalizing-memory — 乱雑なメモリコーパスに構造を後付け
  • loam-reviewing-memory — メモリ内の未解決のギャップを明らかにする
  • loam-learning-from-session — セッション学習をキャプチャし、Wikiまたはガイダンスにルーティング
  • loam-auditing-guidance — AGENTS.md / CLAUDE.md / .claude.local.mdを監査および改善
  • loam-scaffolding-wiki — 新しいwiki基盤スキャフォールドをインスタンス化
  • loam-initializing-vault — 設定付きのObsidian Vaultをセットアップ

スラッシュコマンドのインストール

ユーザーが/checkpointや/resumeを(/loam::checkpointingや/loam::resumingを入力する代わりに)ショートカットコマンドとして希望する場合、インストールできます。コマンドファイルはloamリポジトリのcommands/に同梱されています。

完全なプロトコルについてはreferences/commands-install.mdを読んでください。 以下の内容をカバーしています:

  • どのハーネスで実行しているか(検出シグナル)
  • ハーネスが期待するコマンド形式(マークダウン vs TOML)
  • どこにインストールするか(グローバル vs プロジェクトローカル)
  • コピー前に許可を求めるプロトコル

コマンドファイルはassets/commands/の下にバンドルされたアセットとして提供されています。

関連スキル