Communitygithub.com

lsaint/aikito

AIエージェント間で持続可能なワークスペースを提供します。

aikito とは?

Aikitoは、複数のAIエージェント間で一貫した設定、スキル、メモリ、MCPサーバーを管理するためのGit管理されたワークスペースツールです。CLIとユーザーワークスペースを分離し、`~/aikito`を真実のソースとして、エージェント固有の設定はランタイムエントリポイントとして扱います。安全な操作を重視し、読み取り専用の探索、`--dry-run`の活用、ユーザーへの確認を必須とし、APIキーやトークンなどの機密情報はGit外で管理します。グローバル設定、プロジェクト固有のリソース、MCPサーバー、サブエージェント、メモリをルーティングし、`aikito init`、`aikito sync`、`aikito adopt`などのコマンドで初期化、同期、移行を行います。主にClaude CodeやCursorなどのAIエージェント環境を対象とし、プロジェクト間での設定の一貫性と耐久性を提供することを目的としています。

対応~Claude Code~Codex CLI~Cursor
npx skills add lsaint/aikito

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

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

ドキュメント

aikito は何をしますか?

目的

Aikitoを、持続可能なエージェントリソースのための正規のGit管理ソースとして使用し、それらのリソースをサポート対象のコーディングエージェントおよびプロジェクトに同期します。

メンタルモデル

CLIソースとユーザーワークスペースを分離して保持します:

~/aikito-src   CLI ソースチェックアウト
~/aikito       正規のユーザーワークスペース

ワークスペースには真実のソースが含まれます:

~/aikito/
├── agents.toml
├── skills.toml
├── subagents.toml
├── mcps/
├── global/AGENTS.md
├── skills/
├── memory/
└── projects/<name>/

エージェント設定ディレクトリとプロジェクトの .agents/ ディレクトリはランタイムエントリポイントであり、独立したソースではありません。最初に正規のワークスペースファイルを変更し、その後CLIで同期します。

ワークスペースが ~/aikito でない場合は AIKITO_DIR を使用します。CLIがワークスペース内にあると想定せず、インストールされた aikito コマンドを使用してください。

ブートストラップ

CLIがインストールされていない場合は、公式ソースリポジトリを使用し、そのチェックアウトを将来のワークスペースとは別に保持します:

git clone https://github.com/lsaint/aikito.git "$HOME/aikito-src"
export PATH="$HOME/aikito-src/bin:$PATH"

クローンする前に、ターゲットに関係のないユーザーデータが含まれていないことを確認してください。ユーザーの指示なしに既存のチェックアウトを上書きしないでください。

ワークスペースを初期化して検査します:

aikito init workspace ~/aikito
aikito status

aikito init workspace は、CLIソースツリー、別のソースチェックアウト、認識されない空でないディレクトリを拒否します。これらのガードをバイパスしようとしないでください。初期化後、何かを同期する前に生成されたファイルを検査してください。

安全プロトコル

  • 読み取り専用の探索から開始します:関連する正規ファイル、aikito status、リソース固有のステータスコマンドを検査します。
  • aikito adopt は --apply なしで実行します。適用する前に、採用計画、競合、および認証情報の処理をユーザーに表示します。
  • サポートされている同期コマンドには --dry-run を使用します。
  • 管理対象外のターゲットや競合する指示はユーザーが決定するものとして扱います。静かに上書きしないでください。
  • APIキー、トークン、パスワード、OAuth素材はAikitoワークスペースとGitの外に保持します。正規のMCP設定に環境変数参照を保存します。
  • 明示的なforceまたはprune操作の前に警告し、レビューしたターゲットに範囲を限定します。
  • ローカルのGitリポジトリを公開しても安全だと扱わないでください。リモートを追加したりプッシュする前に、メモリと設定にプライベートデータがないかレビューしてください。
  • ワークスペースとターゲットエージェント設定の両方で、ユーザーによる無関係な変更を保持します。

リソースルーティング

グローバル指示とスキル

正規ソース:

~/aikito/global/AGENTS.md
~/aikito/skills.toml
~/aikito/skills/<skill-name>/

変更をレビューした後:

aikito sync global --dry-run
aikito sync global
aikito status
aikito show skills
aikito show skill <target>
aikito edit skill <target>

生成されたエージェントネイティブの指示やスキルエントリを独立したソースとして編集しないでください。

グローバルスキルを追加、名前変更、または削除する場合は、その変更をディレクトリのみの編集ではなく、クロスランタイム移行として扱います:

  • skills.toml、公開エクスポート許可リスト、および古いスキル名への参照を更新します。
  • グローバルスキルをロードするすべてのサポート対象エージェントが、agents.toml と aikito init テンプレートで正しい skills_path を持つことを確認します。エージェントCLIとそのIDEが同じグローバルスキルディレクトリを使用するとは想定しないでください。
  • 関連するテストを実行し、次に aikito sync global と aikito status を実行します。
  • 管理対象の各エージェントターゲットを検査し、新しいスキルが表示され、古い名前のスタンクリンクが削除されていることを確認します。
  • プロジェクトが意図的にオーバーライドまたはコピーしない限り、グローバルスキルをプロジェクトの agent.toml ファイルに保持しないでください。

プロジェクト

ワークスペースは中央の真実のソースであり、通常は一度だけ存在します。プロジェクト登録は、1つのコードディレクトリとそのプロジェクト固有のエージェントリソースを表します。要求された指示、スキル選択、またはメモリがプロジェクト固有であり、現在のコードディレクトリが登録されていない場合、ユーザーに登録するかどうかを尋ねてください。グローバルリソースのためにプロジェクトを登録しないでください。

確認後、コードディレクトリからプロジェクトを初期化します:

aikito init project

ディレクトリ名と現在のパスがデフォルトです。必要に応じて明示的な引数を使用します:

aikito init project <name> <path>

このコマンドは、正規のプロジェクトスケルトンを作成し、その .agents/ ランタイムを同期します。管理対象外の既存のランタイムリソースや別のパスにバインドされたプロジェクト名はユーザーにとっての競合として扱います。バイパスしないでください。

プロジェクト設定は以下に属します:

~/aikito/projects/<name>/agent.toml
~/aikito/projects/<name>/AGENTS.md
~/aikito/projects/<name>/memory/

以下で同期して確認します:

aikito show projects
aikito show project <name>
aikito sync project <name> --dry-run
aikito sync project <name>
aikito status
aikito diff
aikito show memory

プロジェクトの指示とメモリは正規ソースにリンクされたままです。プロジェクトスキルは sync_mode に従います:link はシンボリックリンクを保持し、copy はプロジェクトのGit追跡用に管理されたコピーを生成します。aikito status を使用してコピースキルのドリフトを検出し、aikito diff を使用して正規スキルと比較します。同期はドリフトしたコピーを置き換えることを拒否します。生存させるべき変更をマージするか、レビュー後に aikito sync project <name> --force を使用します。

ターゲットの .agents/skills/ および .agents/memory/ ディレクトリはAikitoによって排他的に管理されます。未知のエントリは競合であり、プロジェクト同期によって削除されることはありません。そこに関係のないファイルを保存しないでください。

MCPサーバー

正規ソース:

~/aikito/mcps/*.toml

プレビュー、適用、確認:

aikito sync mcp --dry-run
aikito sync mcp
aikito show mcp

ライブエージェントチェックが有用な場合にのみ aikito show mcp --live を使用します。サポートされている認証フローには aikito auth mcp <agent> <server> を使用します。キャプチャされた認証情報を印刷、永続化、またはコミットしないでください。

サブエージェント

正規ソース:

~/aikito/subagents.toml
~/aikito/subagents/

プレビュー、適用、確認:

aikito sync subagents --dry-run
aikito sync subagents
aikito show subagents
aikito show subagent <target>
aikito edit subagent <target>

--prune を使用する前に、孤立した管理ファイルをレビューしてください。ステータスをグリーンにするためだけに管理対象外のターゲットを強制しないでください。

メモリ

グローバルメモリは ~/aikito/memory/ に属します。プロジェクト固有のメモリは ~/aikito/projects/<name>/memory/ に属します。

aikito show memory [target]
aikito edit memory <target>

個別の durable-memory スキルを使用して、知識が永続化するのに十分な耐久性があるか、どのスコープがそれを所有するか、そしてそれをどのようにバージョン管理するかを判断します。

採用

既存のエージェント設定をインポートする前にプレビューします:

aikito adopt

ユーザーが計画をレビューし、指示の競合を解決した後にのみ:

aikito adopt --apply

適用すると、タイムスタンプ付きのバックアップが ~/.aikito/backups/adopt_<timestamp> の下に作成されます。採用はリソースをワークスペースにインポートします。エージェントネイティブの設定変更は、明示的な同期中にのみ行われます。

検証と現在の動作

各書き込み後、最も狭い関連ステータスコマンドを実行し、レポートされたターゲットを検査します。インストールされたバージョンでサポートされているオプションについては、aikito <command> --help を権威として使用します。ソースチェックアウトから作業する場合は、そのルートREADMEと関連するリンクされたドキュメントを参照して、現在のアーキテクチャと安全モデルを確認してください。

関連スキル