Phase 2: Hooks System - Event-driven execution with HookEvent/HookAction types - HookManager for registration and execution Phase 3: Multi-Agent Workflow - Workflow orchestration with dependency graphs - WorkflowStep with conditions and retry support Phase 4: MCP (Model Context Protocol) Support - McpServer for external tool servers - McpManager for multiple server management Also includes core modules: cache, error_policy, feature_flags, git, logger, plugin, retry, rules 662 tests passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| agents/specs | ||
| commands | ||
| prompts | ||
| templates | ||
| config.toml | ||
| README.md | ||
.miyabi Directory
Miyabi CLI設定・拡張ディレクトリ
ディレクトリ構造
.miyabi/
├── config.toml # メイン設定ファイル
├── README.md # このファイル
├── agents/
│ └── specs/ # Agent仕様定義
├── commands/ # カスタムスラッシュコマンド
├── prompts/ # 再利用可能プロンプト
├── templates/ # コード・ドキュメントテンプレート
├── sessions/ # 保存されたセッションデータ
└── tasks/ # タスク管理データ
設定ファイル (config.toml)
API設定
[api]
# API Key (環境変数 ANTHROPIC_API_KEY でも設定可能)
api_key = "sk-ant-..."
# 使用モデル
model = "claude-sonnet-4-5-20250929"
# 最大トークン数
max_tokens = 8192
# タイムアウト (秒)
timeout_secs = 120
# リトライ回数
max_retries = 3
# 拡張思考モード
thinking = false
# システムプロンプト
system_prompt = "You are a helpful assistant"
UI設定
[ui]
# テーマ: tokyo-night, dracula, monokai, etc.
theme = "tokyo-night"
# Vimキーバインド
vim_mode = false
# サイドバー表示
show_sidebar = false
# ステータスバー表示
show_status_bar = true
# パンくずリスト表示
show_breadcrumb = true
# コードの行番号表示
show_line_numbers = true
セッション設定
[session]
# 自動保存
auto_save = true
# 保存間隔 (秒)
auto_save_interval = 30
# 最大セッション数
max_sessions = 100
ツール設定
[tools]
# Bashツール有効化
enable_bash = true
# ファイル操作ツール有効化
enable_file_tools = true
# 検索ツール有効化
enable_search_tools = true
# 低リスク操作の自動承認
auto_approve_low_risk = false
# Bashタイムアウト (秒)
bash_timeout = 120
カスタムコマンド
commands/ 配下に .md ファイルを作成してスラッシュコマンドを定義。
例: /review コマンド
commands/review.md:
# コードレビュー
以下のコードをレビューしてください:
1. バグの可能性
2. パフォーマンス問題
3. セキュリティ脆弱性
4. コーディング規約違反
改善提案も含めてください。
使用: TUIで /review と入力
プロンプトテンプレート
prompts/ 配下に再利用可能なプロンプトを保存。
例: Rustコードレビュー
prompts/rust-review.md:
# Rustコードレビューチェックリスト
- [ ] unwrap/expect の使用箇所
- [ ] エラーハンドリング
- [ ] 所有権とライフタイム
- [ ] unsafe コードの妥当性
- [ ] Clippy警告の確認
Agent仕様
agents/specs/ にカスタムAgent仕様を定義。
例: コードリファクタリングAgent
agents/specs/refactor-agent.yaml:
name: refactor-agent
version: "1.0"
description: コードリファクタリング専門Agent
capabilities:
- code_analysis
- refactoring
- testing
preferences:
style: functional
error_handling: result
max_iterations: 10
セッション管理
コマンドライン操作
# セッション一覧
miyabi sessions
# 特定セッションで再開
miyabi --session <session-id>
# Markdownエクスポート
miyabi sessions -m <session-id>
# JSONエクスポート
miyabi sessions -e <session-id>
# セッション削除
miyabi sessions -d <session-id>
セッションファイル形式
セッションは sessions/ に JSON 形式で保存:
{
"id": "uuid",
"created_at": "2025-01-01T00:00:00Z",
"updated_at": "2025-01-01T01:00:00Z",
"model": "claude-sonnet-4-5-20250929",
"messages": [...]
}
プロジェクトルール (.miyabirules)
プロジェクトルートに .miyabirules ファイルを配置して、プロジェクト固有のルールを定義:
version: 1
rules:
- name: "no-unwrap"
pattern: ".unwrap()"
suggestion: "Use ? operator or proper error handling"
file_extensions: ["rs"]
severity: "warning"
enabled: true
- name: "no-println-debug"
pattern: "println!"
suggestion: "Use tracing macros for logging"
file_extensions: ["rs"]
severity: "info"
agent_preferences:
codegen:
style: "functional"
error_handling: "result"
min_score: 80
clippy_strict: true
settings:
auto_format: true
max_file_size: 1048576
環境変数
設定ファイルの値は環境変数でオーバーライド可能:
# 必須
export ANTHROPIC_API_KEY="sk-ant-..."
# オプション
export MIYABI_MODEL="claude-sonnet-4-5-20250929"
export MIYABI_MAX_TOKENS="16384"
export MIYABI_THINKING="true"
export MIYABI_THEME="dracula"
Core Library機能の利用
キャッシュ
LLMレスポンスのキャッシュで高速化:
use miyabi_core::{create_llm_cache, LLMCacheKey};
let cache = create_llm_cache(); // 1時間TTL
フィーチャーフラグ
機能の段階的ロールアウト:
use miyabi_core::FeatureFlagManager;
let flags = FeatureFlagManager::new();
flags.set_flag("new_ui", true);
Circuit Breaker
API障害時の保護:
use miyabi_core::CircuitBreaker;
let breaker = CircuitBreaker::default();
// 5回失敗で開く、60秒後に半開
プラグイン
カスタム機能の追加:
use miyabi_core::{Plugin, PluginManager};
let manager = PluginManager::new();
manager.register(Box::new(MyPlugin))?;
トラブルシューティング
API接続エラー
- API Keyの確認:
echo $ANTHROPIC_API_KEY - ネットワーク接続確認
- タイムアウト値の増加
セッション破損
sessions/から該当ファイルを削除miyabi sessionsで確認
設定が反映されない
- 設定ファイルの構文確認:
cat config.toml - 環境変数の確認
- CLIオプションの優先順位確認
使い方
# TUI起動
miyabi
# バージョン情報
miyabi version
# ステータス確認
miyabi status
# ヘルプ
miyabi --help