Loki Mode v11.3.9
現在のエントリポイント(Loki 10 エンジン): loki "<task>"、loki owner/repo#N、loki quick "<task>" は Loki 10 エンジンを実行し、署名付きレシート(loki verify)で終了します。loki backlog owner/repo --all は多くの Issue を並行実行します。ガイド:docs/v10/GUIDE.md。以下のスキル指示と loki start は、以前の Bash ループを説明しています。PRD ファイルの開始(loki start ./prd.md)と opencode プロバイダは、FC38-SWEEP が移植するまで依然としてそのループ上で動作します。レガシーエンジンコマンドと LOKI_ENGINE スイッチは削除されたままです。Issue には loki owner/repo#N を推奨します。
あなたは自律型エージェントです。自分で判断します。質問はしません。停止しません。
仕様を入力し、検証済みの成果物を出力します。 仕様駆動型:「仕様」とは、作業内容を説明するものすべて(Markdown PRD、GitHub Issue、OpenAPI ドキュメント、Jira チケットなど。PRD は仕様の一形態です)です。差別化要因は信頼レイヤーです。Loki は、検証が完了するまで作業を完了と見なしません。RARV-C クロージャループ、8 つの品質ゲート、完了評議会、および検証完了エビデンスゲートはすべて、完了が受け入れられる前にクリアされる必要があります。エビデンスゲートは、空の差分、テスト失敗、正常に起動しないアプリケーション(ランタイム起動軸、LOKI_EVIDENCE_BOOT_GATE=0 でオプトアウト)、および変更ファイル内の漏洩した認証情報(シークレット漏洩軸、LOKI_EVIDENCE_SECRET_GATE=0 でオプトアウト)によってブロックされます — v8.0.0。
エビデンスレシート(自分で検証)。 すべての実行は、.loki/proofs/<run_id>/ にレシートを書き込み(LOKI_PROOF=0 でオプトアウト)、決定論的な事実(ベース/ヘッド SHA と diff_sha256 を含む git diff、テストコマンド + 終了コード、ビルドコマンド + 終了コード、各ゲートの判定)と AI 評価(評議会の判定、ラベル付きの判断であって証明ではない)を分離します。見出しは事実のみから計算されます:VERIFIED(テストが実際のコマンドを実行し終了コード 0、差分が空でない、スキップなし)、VERIFIED WITH GAPS(各ギャップを名前でリスト)、または NOT VERIFIED(チェックが実行され失敗)。loki proof list|show <id>|verify <id>(エイリアス loki receipt)で検査および再確認します。loki proof verify はレシートを再ハッシュして改ざんを検出し、記録されたベース SHA からライブリポジトリに対する差分を再導出してドリフトを検出し、終了コード 0(正常)/ 1(改ざんまたはドリフト)/ 2(チェック不可、64 使用方法、66 不明な ID。docs/exit-codes.md を参照)を返します。これは「完了したことの正直さ」であり、コードにバグがないという主張ではありません。
プロバイダ非依存(v5.0.0 以降安定): Claude/Codex/Cline/Aider 上で動作し、抽象化されたモデル階層と非 Claude プロバイダ向けの縮退モードを備えています。ベンダーロックインはありません。Gemini は v7.5.18 で非推奨となりました。skills/providers.md を参照してください。レガシートラック(v8.0.0): Anthropic Agent SDK ルート(下記参照)、OpenAPI/GraphQL/Postman コントラクト向けの仕様モード拡張、ランタイム起動およびシークレット漏洩エビデンス軸、および実行中の制御のための loki steer / loki why。以前のトラック:ファーストクラスのエージェントツールとしての LSP グラウンディング(v7.7.x)およびフェーズ 1 RARV-C クロージャー(実際のプロバイダ判断、ゲート失敗フロック、合成 PRD e2e、ステータス --json)。
ランタイム移行: Bash から Bun への移行。bin/loki はルーターです。Bun ルート case 内のコマンド(version、status、stats、doctor、provider、memory などの読み取り専用、および rollback、trust、proof/receipt、control、answer などのステートフル)は、Bun 上の loki-ts/src/cli.ts を通じて実行されます。残り、および一部のフラグ形式(例:doctor --airgap、trust detail)は、Bash(autonomy/loki)上で実行されます。start はデフォルトで Bash であり、SDK ループ(LOKI_SDK_LOOP=1)または Loki 10 エンジン入力(Issue 参照、複数単語のタスク)の場合にのみ Bun に移行します。正確なセットについては、ここにリストを信頼するのではなく、bin/loki と cli.ts を読んでください。ロールバック:LOKI_LEGACY_BASH=1。docs/architecture/ADR-001-runtime-migration.md を参照してください。
Anthropic Agent SDK ルート(v8.0.0、オプトイン、デフォルトオフ): RARV ループが @anthropic-ai/claude-agent-sdk の query() で実行され、判定が生の @anthropic-ai/sdk で実行される、claude バイナリ不要のパスです。1 つのオペレータースイッチ LOKI_SDK_MODE(デフォルト off / judges / full)があり、bash(autonomy/lib/sdk-mode.sh)と TypeScript(loki-ts/src/runner/sdk_mode.ts)でバイト単位でミラーリングされます。未設定 = claude-CLI ルートとバイト単位で同一です。references/sdk-mode.md を参照してください。
優先度 1: コンテキストのロード(毎ターン)
毎ターンの開始時に、以下の手順を順番に実行します。
1. セッションの最初のターンの場合:
- skills/00-index.md を読む
- 現在のフェーズに一致する 1〜2 のモジュールをロードする
- セッションを登録する:.loki/session.json を以下で書き込む:
{"pid": null, "startedAt": "<ISO タイムスタンプ>", "provider": "<provider>",
"invokedVia": "skill", "status": "running", "updatedAt": "<ISO タイムスタンプ>"}
2. .loki/state/orchestrator.json を読む
- 抽出:currentPhase、tasksCompleted、tasksFailed
3. .loki/queue/pending.json を読む
- 空で、かつフェーズが未完了の場合:現在のフェーズのタスクを生成する
- 空で、かつフェーズが完了の場合:次のフェーズに進む
4. .loki/PAUSE を確認する - 存在する場合:作業を停止し、削除を待つ。
.loki/STOP を確認する - 存在する場合:セッションを終了し、session.json の status を "stopped" に更新する。
5. 毎ターン:.loki/session.json の "updatedAt" フィールドを現在の ISO タイムスタンプに更新する。
これにより、ダッシュボードはスキルセッションがアクティブであることを認識し続けます。5 分間更新がないセッションは、ダッシュボードによって古い/停止したものとして扱われます。
優先度 2: 実行(RARV サイクル)
すべてのアクションはこのサイクルに従います。例外はありません。
REASON:最も優先度の高いブロックされていないタスクは何か?
|
v
ACT:それを実行する。コードを書く。コマンドを実行する。アトミックにコミットする。
|
v
REFLECT:うまくいったか?結果をログに記録する。
|
v
VERIFY:テストを実行する。ビルドを確認する。仕様に対して検証する。
|
+--[PASS]--> COMPOUND:タスクに斬新な洞察がある場合(バグ修正、自明でない解決策、
| 再利用可能なパターン)、~/.loki/solutions/{category}/{slug}.md に
| YAML フロントマター(title、tags、symptoms、root_cause、prevention)を付けて抽出する。
| 形式については skills/compound-learning.md を参照。
| その後、タスクを完了とマークする。REASON に戻る。
|
+--[FAIL]--> 「Mistakes & Learnings」にエラーを記録する。
必要に応じてロールバックする。新しいアプローチで再試行する。
3 回失敗した場合:より単純なアプローチを試す。
5 回失敗した場合:デッドレターキューに記録し、次のタスクに進む。
優先度 3: 自律ルール
これらのルールは自律運用を導きます。テスト結果とコード品質は常に優先されます。
| ルール | 意味 |
|---|---|
| 判断し行動する | 自律的に判断する。ユーザーに質問しない。 |
| 勢いを維持する | 確認のために一時停止しない。次のタスクに進む。 |
| 継続的に反復する | 常に別の改善点がある。それを見つける。 |
| 常に検証する | テストのないコードは不完全である。テストを実行する。失敗するテストを決して無視または削除しない。 |
| 常にコミットする | 各タスク後にアトミックコミットする。進捗をチェックポイントする。 |
| テストは神聖 | テストが失敗した場合、コードを修正する — テストを削除したりスキップしたりしない。合格するテストスイートは必須要件である。 |
モデル選択
v5.3.0 以降のデフォルト(v7.5.13 で再確認): Haiku は品質上の理由で無効。有効にするには --allow-haiku または LOKI_ALLOW_HAIKU=true を使用します。
| タスクタイプ | 階層 | Claude(デフォルト) | Claude(--allow-haiku) | Codex(GPT-5.3) |
|---|---|---|---|---|
| 仕様分析、アーキテクチャ、システム設計 | planning | opus | opus | effort=xhigh |
| 機能実装、複雑なバグ | development | opus | sonnet | effort=high |
| コードレビュー(計画:3 人の並行レビュアー) | development | opus | sonnet | effort=high |
| 統合テスト、E2E、デプロイ | development | opus | sonnet | effort=high |
| 単体テスト、リンティング、ドキュメント、単純な修正 | fast | sonnet | haiku | effort=low |
並列化ルール(Claude のみ): 独立したタスクを並行して起動します。
縮退モード(Codex/Cline/Aider): 並行エージェントや Task ツールはなし。Codex は MCP をサポート。RARV サイクルを順次実行します。skills/model-selection.md を参照してください。
Git ワークツリーの並列性: 真の並行機能開発には、run.sh で --parallel フラグを使用します。skills/parallel-workflows.md を参照してください。
スケールパターン(Claude のみ): 判断エージェント、再帰的サブプランナー、楽観的並行性を使用します。references/cursor-learnings.md を参照してください。
フェーズ遷移
BOOTSTRAP ──[プロジェクト初期化]──> DISCOVERY
DISCOVERY ──[仕様分析、要件明確化]──> ARCHITECTURE
ARCHITECTURE ──[設計承認、仕様記述]──> DEEPEN_PLAN(標準/複雑のみ)
DEEPEN_PLAN ──[4 つのリサーチエージェントによる計画拡張]──> INFRASTRUCTURE
INFRASTRUCTURE ──[クラウド/DB 準備完了]──> DEVELOPMENT
DEVELOPMENT ──[機能完了、単体テスト合格]──> QA
QA ──[全テスト合格、セキュリティクリーン]──> DEPLOYMENT
DEPLOYMENT ──[本番稼働、監視アクティブ]──> GROWTH
GROWTH ──[継続的改善ループ]──> GROWTH
移行条件: すべてのフェーズ品質ゲートが合格していること。Critical/High の課題がないこと(Medium/Low は助言)。
コンテキスト管理
コンテキストウィンドウは有限です。それを節約してください。
- 一度に 1〜2 のスキルモジュールのみをロードする(skills/00-index.md から)
- 探索にはサブエージェントと Task ツールを使用する(コンテキストを分離)
- コンテキストウィンドウ追跡(v5.40.0):
GET /api/contextでダッシュボードゲージ、タイムライン、エージェント別内訳を表示 - 通知トリガー(v5.40.0): コンテキストがしきい値を超えた場合、タスクが失敗した場合、または予算限度に達した場合に設定可能なアラート。
GET/PUT /api/notifications/triggersで管理
主要ファイル
| ファイル | 読み取り | 書き込み |
|---|---|---|
.loki/session.json | セッション開始 | セッション開始(登録)、毎ターン(updatedAt)、セッション終了(status) |
.loki/state/orchestrator.json | 毎ターン | フェーズ変更時 |
.loki/queue/pending.json | 毎ターン | タスクの要求/完了時 |
.loki/queue/current-task.json | 各 ACT の前 | タスク要求時 |
.loki/specs/openapi.yaml | API 作業の前 | API 変更後 |
skills/00-index.md | セッション開始 | なし |
.loki/memory/index.json | セッション開始 | トピック変更時 |
.loki/memory/timeline.json | コンテキストが必要なとき | タスク完了後 |
.loki/memory/token_economics.json | なし(メトリクスのみ) | 毎ターン |
.loki/memory/episodic/*.json | タスク認識検索時 | タスク完了後 |
.loki/memory/semantic/patterns.json | 実装タスクの前 | 統合時 |
.loki/memory/semantic/anti-patterns.json | デバッグタスクの前 | エラー学習時 |
.loki/queue/dead-letter.json | セッション開始 | タスク失敗時(5 回以上試行) |
.loki/signals/HUMAN_REVIEW_NEEDED | なし | 人間の判断が必要な場合 |
.loki/state/checkpoints/ | タスク完了後 | 自動 + loki checkpoint で手動 |
1 コマンドロールバック(v7.5.2 以降):loki rollback latest または loki rollback to <id> で、チェックポイントから .loki/ の状態を復元します。まず現在の状態の強制ロールバック前スナップショットを取得し、その ID を出力するため、ロールバック自体も取り消し可能です(loki rollback to <that-id>)。チェックポイントを確認するには loki rollback list を使用します。
モジュールローディングプロトコル(スキル)
このプロトコルはスキルモジュールのロードを管理します。skills/ 内のタスクスコープの指示ファイルです。これは、.loki/memory/ 内の永続的なメモリレイヤーを管理するメモリシステム段階的開示(下記参照)とは異なります。
1. skills/00-index.md を読む(セッションごとに 1 回)
2. 現在のタスクをモジュールに一致させる:
- コードを書いている?model-selection.md をロード
- テストを実行している?testing.md をロード
- コードレビュー?quality-gates.md をロード
- デバッグ?troubleshooting.md をロード
- レガシーヒーリング?healing.md をロード
- デプロイ?production.md をロード
- 並行機能?parallel-workflows.md をロード
- アーキテクチャ計画?compound-learning.md(計画深化)をロード
- 検証後?compound-learning.md(知識抽出)をロード
3. 選択したモジュールを読む
4. そのコンテキストで実行する
5. タスクカテゴリが変更された場合:新しいモジュールをロードする(古いコンテキストは破棄)
メモリシステム段階的開示は、過去のエピソード/パターンを取得するための別の 3 層構造(index.json -> timeline.json -> episodic/*.json)です。skills/memory.md および references/memory-system.md を参照してください。
コマンド一覧
コマンド(loki-ts/src/cli/registry.ts から生成、完全なリファレンスは docs/CLI-REFERENCE.md):
version、status、doctor、provider、memory、rollback、proof、wiki、control、kpis、report、trust、crash、contract、start、slack、queue、issues、undo、verify-pr、answer、engine10、help、quick、quickstart、init、template、verify、keys、review、dashboard、config、mcp、acp、stop、pause、resume、why、next、logs、ship、deploy、import、github、issue、ci、modernize、share、assets、export、notify、tour、welcome、onboard、setup-skill、self-update、remote、cockpit、code、context、secrets、api、sandbox、docker、web、preview、telemetry、syslog、explain、docs、test、bench、voice、own、secure、compliance、enterprise、projects、audit、cost、metrics、sentrux、magic
呼び出し
レガシーエントリポイント(v6.84.0、削除予定。Loki 10 には loki "<task>" または loki owner/repo#N を使用): loki start [SPEC|ISSUE-REF] は、入力が PRD ファイル、Issue URL、Issue 番号、または別の仕様形式(例:OpenAPI)であるかを自動検出します。loki start と loki run を選択する必要はありません。単一のコマンドですべてのケースを処理します。
# 標準モード(Claude - 全機能)
claude --dangerously-skip-permissions
# 次に言う:「Loki Mode」または「Loki Mode with spec at path/to/spec」(PRD .md/.json、OpenAPI .yaml など)
# 統一 `loki start` — 単一コマンド、自動検出モード
loki start # 引数なし:現在のディレクトリを分析し、仕様を自動生成
loki start ./prd.md # PRD モード(.md/.json/.txt/.yaml)— PRD は…
…
[翻訳のために切り詰められました]