---
# KIND DESCRIPTOR FRONTMATTER (supported keys for kernel/config/<kind>.md)
#
# 1) new_session_workspace (optional, string)
#    Default workspace used when creating a NEW session on this channel kind.
#    Supports ~/ expansion. If missing, daemon will try to create it.
#    Falls back to ALADUO_WORK_DIR when omitted or blank.
#
#    Example:
#    new_session_workspace: ~/code
#
# 2) prompt_mode (optional, string)
#    Default system-prompt mode for this channel kind.
#    - append   (default): keep Claude Code preset, append prompts
#    - override          : skip Claude Code preset, use only assembled prompts
#
#    Example:
#    prompt_mode: append
#
# 3) time_gap_minutes (optional, number)
#    Minutes of inactivity before injecting a time-context hint into the
#    next user turn. Helps the agent sense elapsed time after idle gaps.
#    Set to 0 to disable. Instance Descriptors override Kind Descriptors.
#    Default: 60 (1 hour).
#
#    Example:
#    time_gap_minutes: 30
#
# 4) Claude Agent SDK-aligned options (optional)
#    These keys map directly to SDK query() options and may also be set on
#    Instance Descriptors. Instance values override Kind values.
#    Runtime defaults still apply underneath: ALADUO disables
#    AskUserQuestion and ExitPlanMode for every session unless one of these
#    tools is explicitly re-added through allowedTools.
#
#    Canonical keys:
#    - allowedTools: ["Read", "Edit"]
#    - disallowedTools: ["Bash"]
#    - additionalDirectories: ["~/notes", "/srv/shared"]
#
#    Accepted aliases:
#    - allowed_tools
#    - disallowed_tools
#    - additional_directories
#    - add_dir / add_dirs
---

<!-- KIND DESCRIPTOR (Kind Prompt, optional)
     This file is the Kind Descriptor for channel kind "stdio".
     The Markdown body below becomes the kind-level prompt and is merged with
     each Instance Descriptor (var/channels/<channel_id>/descriptor.md).

     Prompt assembly / merge order (all layers are optional):
       [Identity]        bootstrap/meta-prompt.md (runner append chain source)
       [Kind Prompt]     kernel/config/<kind>.md body  ← this file
       [Instance Prompt] var/channels/<channel_id>/descriptor.md body

     SUPPORTED CONFIG IN THIS FILE
     -----------------------------
     Frontmatter (YAML):
       - new_session_workspace?: string
       - prompt_mode?: "append" | "override"
       - allowedTools?: string[]
       - disallowedTools?: string[]
       - additionalDirectories?: string[]

     Markdown body:
       - Kind Prompt text (optional)

     NOT SUPPORTED HERE (instance-only)
     ----------------------------------
     Do NOT put instance-specific fields here, such as:
       - display_name
       - channel_id
       - channel_kind (implied by filename, e.g. "stdio.md")

     Instance Descriptor fields override Kind Descriptor fields.
     For example, `prompt_mode` and `new_session_workspace` may be set here as
     defaults and overridden per channel instance.

     Leave the body empty (or only comments) to inject no kind prompt.

     EXAMPLE
     -------
     ---
     new_session_workspace: ~/projects/aladuo
     prompt_mode: append
     allowedTools: ["Read", "Edit", "AskUserQuestion"]
     disallowedTools: ["Bash"]
     additionalDirectories: ["~/notes"]
     ---

     You are operating through the stdio channel.
     Keep terminal-first responses concise and actionable.

     OTHER CHANNEL KINDS
     -------------------
     To configure feishu, acp, or any other channel kind, create a file
     at kernel/config/<kind>.md with the same format as this file.
     Example: kernel/config/feishu.md
-->

You are operating through the stdio channel.

This is usually a direct operator session from a terminal or local CLI.
Assume the user wants fast, hands-on progress rather than ceremony.

- Inspect the actual workspace before proposing broad changes.
- Prefer concrete commands, file references, and verified results.
- Keep status updates short and informative while work is ongoing.
- For substantial tasks, carry work through implementation and verification
  instead of stopping at abstract advice.
- If a local repo policy or nearby `CLAUDE.md` changes how work should be done,
  follow it.
