[PR #124] [CLOSED] feat: add claude session controls #149

Closed
opened 2026-02-27 10:22:25 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/124
Author: @starworld
Created: 1/27/2026
Status: Closed

Base: mainHead: feature/claude-session-controls


📝 Commits (1)

  • c648816 feat: add claude session controls

📊 Changes

4 files changed (+185 additions, -2 deletions)

View changed files

📝 README.md (+16 -0)
📝 crates/ralph-adapters/Cargo.toml (+1 -0)
📝 crates/ralph-adapters/src/cli_backend.rs (+137 -2)
📝 crates/ralph-core/src/config.rs (+31 -0)

📄 Description

概要

Ralph Orchestrator が Claude CLI セッションを構成するための設定機能を追加します。
Ralph 側に独自のプラグイン/Skills 機構を実装することなく、Claude Code の既存機能(Plugins, MCP, Tools)を安全かつ柔軟に制御できるようになります。

主な変更点

  • Config 設定の追加: cli.claude セクションにて以下を設定可能になりました
    • plugin_dirs: --plugin-dir で読み込むディレクトリ(~ 展開対応)
    • mcp_configs: --mcp-config で読み込む設定ファイル(~ 展開対応)
    • allowed_tools: --allowedTools で許可するツールリスト
    • append_system_prompts: --append-system-prompt で直接渡す文字列
    • append_system_prompt_files: ポリシーファイルを読み込んで system prompt として渡す(読み込み失敗時は Warn)
  • BackendKind Enum の導入: 文字列比較 (command == "claude") に依存せず、バックエンドの種類を型安全に判定するようにしました。これにより、コマンドをフルパスやラッパーに変更しても Claude 特有の処理(temp file, system prompt append)が正しく動作します。
  • コマンドオーバーライドのサポート: cli.command 設定により、Claude CLI のパスやラッパーコマンドを変更可能になりました。
  • 互換性の維持: 既存の cli.args を最後に結合するため、既存のカスタム引数設定を壊しません。

互換性の保証

既存の設定ファイルで cli.claude を指定しない場合、Claude backend の起動引数は従来のデフォルトと同等で動作します(破壊的変更はありません)。

設計上の留意点

  • cli.args は互換性維持のため最後に結合されていますが、cli.claude.allowed_tools などで設定したフラグ(例: --allowedTools)と重複する引数を cli.args で追加した場合、挙動が不明確になる可能性があります。基本は cli.claude.* 設定をご利用ください。

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/mikeyobrien/ralph-orchestrator/pull/124 **Author:** [@starworld](https://github.com/starworld) **Created:** 1/27/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feature/claude-session-controls` --- ### 📝 Commits (1) - [`c648816`](https://github.com/mikeyobrien/ralph-orchestrator/commit/c648816415486bbe2982d1d6f933c21a80bd1295) feat: add claude session controls ### 📊 Changes **4 files changed** (+185 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+16 -0) 📝 `crates/ralph-adapters/Cargo.toml` (+1 -0) 📝 `crates/ralph-adapters/src/cli_backend.rs` (+137 -2) 📝 `crates/ralph-core/src/config.rs` (+31 -0) </details> ### 📄 Description ## 概要 Ralph Orchestrator が Claude CLI セッションを構成するための設定機能を追加します。 Ralph 側に独自のプラグイン/Skills 機構を実装することなく、Claude Code の既存機能(Plugins, MCP, Tools)を安全かつ柔軟に制御できるようになります。 ## 主な変更点 * **Config 設定の追加**: `cli.claude` セクションにて以下を設定可能になりました * `plugin_dirs`: `--plugin-dir` で読み込むディレクトリ(`~` 展開対応) * `mcp_configs`: `--mcp-config` で読み込む設定ファイル(`~` 展開対応) * `allowed_tools`: `--allowedTools` で許可するツールリスト * `append_system_prompts`: `--append-system-prompt` で直接渡す文字列 * `append_system_prompt_files`: ポリシーファイルを読み込んで system prompt として渡す(読み込み失敗時は Warn) * **BackendKind Enum の導入**: 文字列比較 (`command == "claude"`) に依存せず、バックエンドの種類を型安全に判定するようにしました。これにより、コマンドをフルパスやラッパーに変更しても Claude 特有の処理(temp file, system prompt append)が正しく動作します。 * **コマンドオーバーライドのサポート**: `cli.command` 設定により、Claude CLI のパスやラッパーコマンドを変更可能になりました。 * **互換性の維持**: 既存の `cli.args` を最後に結合するため、既存のカスタム引数設定を壊しません。 ## 互換性の保証 既存の設定ファイルで `cli.claude` を指定しない場合、Claude backend の起動引数は従来のデフォルトと同等で動作します(破壊的変更はありません)。 ## 設計上の留意点 * `cli.args` は互換性維持のため最後に結合されていますが、`cli.claude.allowed_tools` などで設定したフラグ(例: `--allowedTools`)と重複する引数を `cli.args` で追加した場合、挙動が不明確になる可能性があります。基本は `cli.claude.*` 設定をご利用ください。 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 10:22:25 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ralph-orchestrator#149
No description provided.