Skip to main content

設定セクションリファレンス

.moai/config/sections/ の主要設定ファイル(handoff/delegation/llm/statusline/security) キーリファレンス。

更新 2026-08-15 7分で読めます GitHub で編集 ↗

MoAI-ADKのプロジェクト設定は .moai/config/sections/ 配下の複数のYAMLファイルに分割されています。settings.jsonガイドがClaude Codeランタイム設定を扱うのに対し、このページはMoAI-ADK自身の動作を制御する主要セクションファイルのキーを整理します。

情報
1行要約: settings.json はClaude Codeに何を許可するかを定義し、.moai/config/sections/*.yaml はMoAI-ADKがどのようにオーケストレーションするかを定義します。

handoff.yaml — 自動レジュームハンドオフ

セッション境界で保存されたハンドオフをどのように処理するかを制御します。

yaml
handoff:
    mode: manual   # manual | auto
    guide: false
キー説明
modemanual (デフォルト)保存されたハンドオフを自動注入しない (opt-inベースラインUX)
modeauto/clear 時に保存されたハンドオフをセッションコンテキストに注入した後、audit-trailコピーに移動
guidefalse (デフォルト)true 時、non-/clear セッション開始(startup/resume/compact)で待機中ハンドオフがあるというbest-effort stderrヒントを出力。情報提供のみでセッションをブロックしない

関連: 自律継続ループ, moai handoff.

delegation.yaml — エージェントルーティングSSOT

/moai サブコマンド別のデフォルトスキル/エージェント割り当てマップです。オーケストレータが実行計画を構築する際(Analyze-First)、このマップを読み、どのエージェントをspawnし、どのスキルを注入するかを決定します。

yaml
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ロード)

関連: エージェントガイド, スキルガイド.

llm.yaml — バックエンド・プロファイルマトリクス

プロファイル、プロファイルマトリクス、エージェント別 override、GLM モデルマッピングを定義します。

yaml
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。旧 maxhigh のエイリアスとして読み込まれる)。空なら medium として解釈。全サブエージェント spawn の model+effort のソース
performance_tierlegacy エイリアスフィールド。profile がない場合のみ読み込まれ、high/medium/low の同じ語彙を共有するため正規化ステップは不要
profilesプロファイル列別のエージェント単位 → {model, effort} マトリクス (11 エージェント × 3 列 = 33 セル)。Go デフォルト値 (template.DefaultProfileMatrix) が欠落セルの権威ある fallback
agent_overrides正規エージェント名別 {model, effort} override。アクティブプロファイルのエージェントセルより優先 (カタログ+enum 検証)
glm.base_urlZ.AI Anthropic互換プロキシエンドポイント
glm.modelsスロット別GLMモデルマッピング。GLMはClaudeの5段階effortを3個reasoning状態 (thinking-off / reasoning-high / reasoning-max) にcollapse

関連: プロファイルマトリクス, 3-ティアエージェントアーキテクチャ.

statusline.yaml — ステータスライン

ステータスラインテーマと16セグメントトグルを制御します。

yaml
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
segments16セグメント個別トグル (唯一のランタイムレバー)。すべてデフォルトonで、非アクティブ状態はgraceful no-outputで処理

セグメントは3行に配置されます — 行1(モデル・バージョン・セッションメタ)、行2(コンテキストウィンドウ・API使用量バー)、行3(ディレクトリ・git・ワークフロー・PR)。

関連: Statuslineシステム & PRセグメント.

security.yaml — セキュリティ強化

組み込み DefaultSecurityPolicy パターンを拡張 (交換ではなく)する追加セキュリティ設定です。SOLIDの開放-閉鎖原則に従い、core修正なしでconfigで拡張します。

yaml
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_modetrue 時、bypassPermissionsモードのエージェントspawnを拒否
sandbox.requiredtrue 時、sandbox.justification なしの sandbox: none エージェントを拒否 (デフォルトfalse)
sandbox.network_allowlistデフォルト8ホストに追加される許可ネットワークホスト
sandbox.env_scrub_extraデフォルトscrubリストに追加されるenv変数名 (AWS_*, GITHUB_TOKENなど)
sandbox.docker_imagedockerバックエンドデフォルトイメージ

関連: セキュリティノート, settings.jsonガイド.

workflow.yaml — branch_guard

主チェックアウト(primary checkout)のブランチ状態を守る opt-in ガードです。1 つのチェックアウトを複数のセッションが同時に使うとき、片方が実行した git switch · git checkout · git reset --hard · git stash · git rebase は、もう一方のセッションの作業ツリーを何の合図もなく変えてしまいます。このガードはそれらのコマンドを主チェックアウトでのみ拒否します。

yaml
workflow:
    branch_guard:
        enabled: false   # 配布時の既定値
キー説明
enabledfalse(既定)ガードは完全に不活性です。判定のための git rev-parse すら実行しないため、付随コストがありません
enabledtrue主チェックアウトでブランチ状態を変えるコマンドを拒否します。ワークツリー内ではこれまでどおり許可されます

既定が無効な理由。 このガードが防ぐ危険は、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 を参照してください。

関連ドキュメント