設定セクションリファレンス
.moai/config/sections/ の主要設定ファイル(handoff/delegation/llm/statusline/security) キーリファレンス。
MoAI-ADKのプロジェクト設定は .moai/config/sections/ 配下の複数のYAMLファイルに分割されています。settings.jsonガイドがClaude Codeランタイム設定を扱うのに対し、このページはMoAI-ADK自身の動作を制御する主要セクションファイルのキーを整理します。
情報1行要約:settings.jsonはClaude Codeに何を許可するかを定義し、.moai/config/sections/*.yamlはMoAI-ADKがどのようにオーケストレーションするかを定義します。
セッション境界で保存されたハンドオフをどのように処理するかを制御します。
handoff:
mode: manual # manual | auto
guide: false| キー | 値 | 説明 |
|---|---|---|
mode | manual (デフォルト) | 保存されたハンドオフを自動注入しない (opt-inベースラインUX) |
mode | auto | /clear 時に保存されたハンドオフをセッションコンテキストに注入した後、audit-trailコピーに移動 |
guide | false (デフォルト) | true 時、non-/clear セッション開始(startup/resume/compact)で待機中ハンドオフがあるというbest-effort stderrヒントを出力。情報提供のみでセッションをブロックしない |
関連: 自律継続ループ, moai handoff.
/moai サブコマンド別のデフォルトスキル/エージェント割り当てマップです。オーケストレータが実行計画を構築する際(Analyze-First)、このマップを読み、どのエージェントをspawnし、どのスキルを注入するかを決定します。
delegation:
version: 1
learning:
observe: routing-ledger
propose_via: harness-tier-ladder
auto_apply: false # Tier-4ゲート — ユーザー承認が必要
subcommands:
plan:
agents: [manager-spec, plan-auditor, Explore]
skills: [moai-workflow-spec, moai-foundation-thinking]
# run / sync / project / fix / loop / ...
domain_skills:
backend: [moai-ref-api-patterns, moai-domain-backend]
security: [moai-ref-owasp-checklist, moai-ref-llm-security, ...]
agents:
manager-spec: [moai-workflow-spec, moai-foundation-thinking]| ブロック | 説明 |
|---|---|
learning | ルーティング使用をappend-only元帳 (.moai/state/routing-ledger.jsonl, opt-in·fail-open) で管理し、ハーネス学習サブシステムが4-tier提案ラダーで更新提案。auto_apply: false — Tier-4変更は AskUserQuestion ユーザー承認が必要 |
subcommands | サブコマンド別 agents (spawnする11個retainedエージェント) + skills (spawn時注入するworkflowスキル)。0個割り当ても有効 (オーケストレータが直接実行) |
domain_skills | ミッションドメイン別注入スキル (spawn当たり0-3個)。ドメイン信号とマッチング |
agents | エージェント別conditionalスキル (トリガー発生時on-demandロード) |
プロファイル、プロファイルマトリクス、エージェント別 override、GLM モデルマッピングを定義します。
llm:
profile: "medium" # high | medium | low (アクティブマトリクス列、max は high として読み込み)
performance_tier: "medium" # legacy エイリアス (profile 不在時に読み込み、同じ語彙)
profiles: # プロファイル列 → 11 エージェント → {model, effort}
high: { ... } # 詳細表: プロファイルマトリクスページ
medium: { ... }
low: { ... }
agent_overrides: {} # エージェント別 {model, effort} override (任意)
glm:
base_url: "https://api.z.ai/api/anthropic"
models:
high: "glm-5.3" # 1M context — Opusスロット
medium: "glm-5.3" # 1M context — Sonnetスロット
low: "glm-5.3" # 1M context — 軽量スロット
fable: "glm-5.3"| キー | 説明 |
|---|---|
profile | アクティブなプロファイルマトリクス列 (high/medium/low。旧 max は high のエイリアスとして読み込まれる)。空なら medium として解釈。全サブエージェント spawn の model+effort のソース |
performance_tier | legacy エイリアスフィールド。profile がない場合のみ読み込まれ、high/medium/low の同じ語彙を共有するため正規化ステップは不要 |
profiles | プロファイル列別のエージェント単位 → {model, effort} マトリクス (11 エージェント × 3 列 = 33 セル)。Go デフォルト値 (template.DefaultProfileMatrix) が欠落セルの権威ある fallback |
agent_overrides | 正規エージェント名別 {model, effort} override。アクティブプロファイルのエージェントセルより優先 (カタログ+enum 検証) |
glm.base_url | Z.AI Anthropic互換プロキシエンドポイント |
glm.models | スロット別GLMモデルマッピング。GLMはClaudeの5段階effortを3個reasoning状態 (thinking-off / reasoning-high / reasoning-max) にcollapse |
関連: プロファイルマトリクス, 3-ティアエージェントアーキテクチャ.
ステータスラインテーマと16セグメントトグルを制御します。
statusline:
theme: "catppuccin-mocha" # catppuccin-mocha | catppuccin-latte
segments:
model: true
context: true
# ... 全16セグメント (すべてデフォルトon)
task: true
pr: true| キー | 説明 |
|---|---|
theme | 正確に2つのテーマが存在: catppuccin-mocha (デフォルト) または catppuccin-latte |
segments | 16セグメント個別トグル (唯一のランタイムレバー)。すべてデフォルトonで、非アクティブ状態はgraceful no-outputで処理 |
セグメントは3行に配置されます — 行1(モデル・バージョン・セッションメタ)、行2(コンテキストウィンドウ・API使用量バー)、行3(ディレクトリ・git・ワークフロー・PR)。
組み込み DefaultSecurityPolicy パターンを拡張 (交換ではなく)する追加セキュリティ設定です。SOLIDの開放-閉鎖原則に従い、core修正なしでconfigで拡張します。
security:
extra_dangerous_bash_patterns:
- 'curl\s+.*\|\s*(ba)?sh'
- 'rm\s+-rf\s+/[^.]'
extra_deny_patterns: []
extra_ask_patterns: []
permission:
strict_mode: true
session_rules: []
sandbox:
required: false
network_allowlist: []
env_scrub_extra: []
docker_image: "alpine:latest"| キー | 説明 |
|---|---|
extra_dangerous_bash_patterns | 組み込みdenyパターンに追加される危険Bashコマンド正規表現 (大文字小文字無視) |
extra_deny_patterns / extra_ask_patterns | 追加ファイルdeny/askパターン |
permission.strict_mode | true 時、bypassPermissionsモードのエージェントspawnを拒否 |
sandbox.required | true 時、sandbox.justification なしの sandbox: none エージェントを拒否 (デフォルトfalse) |
sandbox.network_allowlist | デフォルト8ホストに追加される許可ネットワークホスト |
sandbox.env_scrub_extra | デフォルトscrubリストに追加されるenv変数名 (AWS_*, GITHUB_TOKENなど) |
sandbox.docker_image | dockerバックエンドデフォルトイメージ |
関連: セキュリティノート, settings.jsonガイド.
主チェックアウト(primary checkout)のブランチ状態を守る opt-in ガードです。1 つのチェックアウトを複数のセッションが同時に使うとき、片方が実行した git switch · git checkout · git reset --hard · git stash · git rebase は、もう一方のセッションの作業ツリーを何の合図もなく変えてしまいます。このガードはそれらのコマンドを主チェックアウトでのみ拒否します。
workflow:
branch_guard:
enabled: false # 配布時の既定値| キー | 値 | 説明 |
|---|---|---|
enabled | false(既定) | ガードは完全に不活性です。判定のための git rev-parse すら実行しないため、付随コストがありません |
enabled | true | 主チェックアウトでブランチ状態を変えるコマンドを拒否します。ワークツリー内ではこれまでどおり許可されます |
既定が無効な理由。 このガードが防ぐ危険は、1 つのチェックアウトを複数セッションで共有するときにだけ生じます。1 人で使うリポジトリでは起こらない問題なので、配布版はガードを無効にしたまま出荷されます。複数セッションを同時に動かすリポジトリの管理者が、上のキーを自分で書いて有効にします。
適用範囲。 ガードは主チェックアウトとワークツリーを区別し、ワークツリー内のブランチ操作は妨げません。git status · git log · git diff · git fetch のような読み取りコマンドと、git stash list · git merge-base は有効時でも通過します。
例外と失敗の向き。 ブランチを作る必要のある git 担当エージェントは識別子で例外扱いされ、MOAI_BRANCH_GUARD_EXEMPT=1 環境変数でも回避できます。判定が不確実なとき(リポジトリでない、git rev-parse の失敗など)は拒否せず通し、監査ログだけを残します — 確かな根拠があるときにのみ拒否します。
ブランチを変える必要のある作業は、拒否させるのではなくワークツリーに移すのが定石です。手順は moai worktree を参照してください。
- settings.jsonガイド — Claude Codeランタイム設定
- ハーネスプロファイルと評価 — harness.yaml / evaluator-profiles
- moai doctor —
moai doctor configで結合設定検査