mergegate/.miyabi/README.md
Shunsuke Hayashi 48dfa915c7 feat: Add hooks, workflow, MCP support and core modules
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>
2025-11-22 23:37:14 +09:00

328 lines
6.1 KiB
Markdown

# .miyabi Directory
Miyabi CLI設定・拡張ディレクトリ
## ディレクトリ構造
```
.miyabi/
├── config.toml # メイン設定ファイル
├── README.md # このファイル
├── agents/
│ └── specs/ # Agent仕様定義
├── commands/ # カスタムスラッシュコマンド
├── prompts/ # 再利用可能プロンプト
├── templates/ # コード・ドキュメントテンプレート
├── sessions/ # 保存されたセッションデータ
└── tasks/ # タスク管理データ
```
## 設定ファイル (config.toml)
### API設定
```toml
[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設定
```toml
[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
```
### セッション設定
```toml
[session]
# 自動保存
auto_save = true
# 保存間隔 (秒)
auto_save_interval = 30
# 最大セッション数
max_sessions = 100
```
### ツール設定
```toml
[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`:
```markdown
# コードレビュー
以下のコードをレビューしてください:
1. バグの可能性
2. パフォーマンス問題
3. セキュリティ脆弱性
4. コーディング規約違反
改善提案も含めてください。
```
使用: TUIで `/review` と入力
## プロンプトテンプレート
`prompts/` 配下に再利用可能なプロンプトを保存。
### 例: Rustコードレビュー
`prompts/rust-review.md`:
```markdown
# Rustコードレビューチェックリスト
- [ ] unwrap/expect の使用箇所
- [ ] エラーハンドリング
- [ ] 所有権とライフタイム
- [ ] unsafe コードの妥当性
- [ ] Clippy警告の確認
```
## Agent仕様
`agents/specs/` にカスタムAgent仕様を定義。
### 例: コードリファクタリングAgent
`agents/specs/refactor-agent.yaml`:
```yaml
name: refactor-agent
version: "1.0"
description: コードリファクタリング専門Agent
capabilities:
- code_analysis
- refactoring
- testing
preferences:
style: functional
error_handling: result
max_iterations: 10
```
## セッション管理
### コマンドライン操作
```bash
# セッション一覧
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 形式で保存:
```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` ファイルを配置して、プロジェクト固有のルールを定義:
```yaml
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
```
## 環境変数
設定ファイルの値は環境変数でオーバーライド可能:
```bash
# 必須
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レスポンスのキャッシュで高速化:
```rust
use miyabi_core::{create_llm_cache, LLMCacheKey};
let cache = create_llm_cache(); // 1時間TTL
```
### フィーチャーフラグ
機能の段階的ロールアウト:
```rust
use miyabi_core::FeatureFlagManager;
let flags = FeatureFlagManager::new();
flags.set_flag("new_ui", true);
```
### Circuit Breaker
API障害時の保護:
```rust
use miyabi_core::CircuitBreaker;
let breaker = CircuitBreaker::default();
// 5回失敗で開く、60秒後に半開
```
### プラグイン
カスタム機能の追加:
```rust
use miyabi_core::{Plugin, PluginManager};
let manager = PluginManager::new();
manager.register(Box::new(MyPlugin))?;
```
## トラブルシューティング
### API接続エラー
1. API Keyの確認: `echo $ANTHROPIC_API_KEY`
2. ネットワーク接続確認
3. タイムアウト値の増加
### セッション破損
1. `sessions/` から該当ファイルを削除
2. `miyabi sessions` で確認
### 設定が反映されない
1. 設定ファイルの構文確認: `cat config.toml`
2. 環境変数の確認
3. CLIオプションの優先順位確認
## 使い方
```bash
# TUI起動
miyabi
# バージョン情報
miyabi version
# ステータス確認
miyabi status
# ヘルプ
miyabi --help
```