[User] Provide a JSON object that satisfies the schema "Rockcraft project". Here are the required top‑level fields: name, summary, description, base, platforms, parts. Return only the valid JSON object.

Lightweight schema validation for a Pebble checks.

Based on
https://canonical-pebble.readthedocs-hosted.com/en/latest/reference/layer-specification/

Override

Level

Period

Timeout

Threshold

Check

Lightweight schema validation for a Pebble exec check.

Command

Service-Context

Environment

User

User-Id

Group

Group-Id

Working-Dir

ExecCheck

Lightweight schema validation for a Pebble HTTP check.

Url

Headers

HttpCheck

A single platform entry in the platforms dictionary.

This model defines how a single value under the ``platforms`` key works for a project.

Build-On

Build-For

Build-For

Platform

Lightweight schema validation for a Pebble service.

Based on
https://canonical-pebble.readthedocs-hosted.com/en/latest/reference/layer-specification/

Override

Command

Summary

Description

Startup

After

Before

Requires

Environment

User

User-Id

Group

Group-Id

Working-Dir

On-Success

On-Failure

On-Check-Failure

Backoff-Delay

Backoff-Factor

Backoff-Limit

Kill-Delay

Service

Lightweight schema validation for a Pebble TCP check.

Port

Host

TcpCheck

The part specification data.

Plugin

ant autotools cargo-use cmake dotnet dump go go-use gradle jlink make maven meson nil npm poetry python qmake rust scons uv

Source

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

PartSpec

common properties had to be repeated here or they would be considered invalid by the schema validator otherwise

Plugin

Source

Ant-Build-Targets

Ant-Build-File

Ant-Properties

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Autotools-Configure-Parameters

Autotools-Bootstrap-Parameters

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Cmake-Parameters

Cmake-Generator

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Dotnet-Build-Configuration

Dotnet-Self-Contained-Runtime-Identifier

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Go-Buildtags

Go-Generate

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Gradle-Init-Script

Gradle-Parameters

Gradle-Task

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Jlink-Jars

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Make-Parameters

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Maven-Parameters

Maven-Use-Wrapper

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Meson-Parameters

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Npm-Include-Node

Npm-Node-Version

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

dependency groups to include. By default, only the main dependencies are included.

Dependency groups to include

extra arguments to pass to poetry export when creating requirements.txt.

Extra arguments for poetry export

extra arguments to pass to pip install installing dependencies.

Extra arguments for pip install

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Python-Requirements

Python-Constraints

Python-Packages

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Qmake-Parameters

Qmake-Project-File

Qmake-Major-Version

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Rust-Features

Rust-Path

Rust-Channel

Rust-Use-Global-Lto

Rust-No-Default-Features

Rust-Ignore-Toolchain-File

Rust-Cargo-Parameters

Rust-Inherit-Ldflags

After

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Scons-Parameters

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Plugin

Source

Optional extra dependencies to include when installing.

Optional extra dependencies

Optional dependency groups to include when installing.

Optional dependency groups

Source-Checksum

Source-Channel

Source-Branch

Source-Commit

Source-Depth

Source-Subdir

Source-Submodules

Source-Tag

Source-Type

Disable-Parallel

After

Overlay-Packages

Stage-Snaps

Stage-Packages

Build-Snaps

Build-Packages

Build-Environment

Build-Attributes

Organize

Overlay

relative path

Stage

relative path

Prime

Override-Pull

Overlay-Script

Override-Build

Override-Stage

Override-Prime

Permissions

Description of the ownership and permission settings for a set of files.

A ``Permissions`` object specifies that a given pattern-like ``path`` should
be owned by ``owner`` with a given ``group``, and have the read/write/execute
bits defined by ``mode``.

Notes
-----
- ``path`` is optional and defaults to "everything";
- ``owner`` and ``group`` are optional if both are omitted - that is, if
  one of the pair is specified then both must be;
- ``mode`` is a string containing an integer in base 8. For example, "755",
  "0755" and "0o755" are all accepted and are the equivalent of calling
  ``chmod 755 ...``.

Path

Owner

Group

Mode

Permissions

Rockcraft project definition.

Valid names for rocks. It matches the accepted values for pebble layer files:

- must start with a lowercase letter [a-z]
- must contain only lowercase letters [a-z], numbers [0-9] or hyphens
- must not end with a hyphen, and must not contain two or more consecutive hyphens

Project Name

A human-readable title.

Ubuntu Linux
Jupyter Lab Desktop
LXD
DigiKam
Apache Kafka
MySQL Router K8s charm

Title

Title

A string containing the version of the project

version string

Version

Summary

Description

Base

Build-Base

Build-On

Build-For

Platforms

Contact

Issues

Source-Code

License

Adopt-Info

Parts

Package-Repositories

Environment

Run-User

Services

Checks

Entrypoint-Service

name summary description base platforms parts

Rockcraft project

Provide a JSON object that satisfies the schema "Rockcraft project". Here are the required top‑level fields: name, summary, description, base, platforms, parts. Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$defs":{"attribute":{"additionalProperties":false,"properties":{"description":{"description":"Detailed explanation of what this attribute does. It should be written in full sentences.","oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"details":{"description":"Detailed explanation of what this attribute does. It should be written in full sentences.","oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"membership":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"platform":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"support":{"enum":["full","partial","none","N/A"],"type":"string"},"version_added":{"type":"string"}},"required":["description","support"],"title":"Attribute"},"datatype":{"enum":["str","list","dict","bool","int","float","path","raw","jsonarg","json","bytes","bits"],"type":"string"},"deprecated_alias":{"properties":{"collection_name":{"type":"string"},"date":{"type":"string"},"name":{"type":"string"},"version":{"type":"string"}},"required":["name"],"type":"object"},"entry_point":{"additionalProperties":false,"properties":{"attributes":{"additionalProperties":{"$ref":"#/$defs/attribute"},"type":"object"},"author":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"description":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"examples":{"type":"string"},"options":{"additionalProperties":{"$ref":"#/$defs/option"},"type":"object"},"seealso":{"items":{"oneOf":[{"additionalProperties":false,"properties":{"description":{"type":"string"},"module":{"type":"string"}},"required":["module"],"type":"object"},{"additionalProperties":false,"properties":{"description":{"type":"string"},"plugin":{"type":"string"},"plugin_type":{"type":"string"}},"required":["plugin","plugin_type"],"type":"object"},{"additionalProperties":false,"properties":{"description":{"type":"string"},"ref":{"type":"string"}},"required":["description","ref"],"type":"object"},{"additionalProperties":false,"properties":{"description":{"type":"string"},"link":{"type":"string"},"name":{"type":"string"}},"required":["description","link","name"],"type":"object"}]},"type":"array"},"short_description":{"type":"string"},"version_added":{"type":"string"}},"title":"Entry Point","type":"object"},"full-jinja":{"pattern":"^\\{[\\{%](.|[\r\n])*[\\}%]\\}$","type":"string"},"option":{"additionalProperties":false,"markdownDescription":"See [argument-spec](https://docs.ansible.com/ansible/latest/dev_guide/developing_program_flow_modules.html#argument-spec)","properties":{"apply_defaults":{"type":"string"},"choices":{"oneOf":[{"type":"array"},{"$ref":"#/$defs/full-jinja","type":"string"}]},"default":{"default":"None"},"description":{"description":"Detailed explanation of what this option does. It should be written in full sentences.","oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"elements":{"$ref":"#/$defs/datatype"},"fallback":{"default":"None","type":"string"},"no_log":{"default":false,"type":"boolean"},"option-name":{"description":"The name of the option/argument.","type":"string"},"options":{"additionalProperties":{"$ref":"#/$defs/option"},"type":"object"},"required":{"default":false,"type":"boolean"},"mutually_exclusive":{"type":"array","items":{"items":{"type":"string"}}},"required_together":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"required_one_of":{"type":"array","items":{"items":{"type":"string"}}},"required_if":{"type":"array","items":{"type":"array","prefixItems":[{"type":"string"},{},{"type":"array","items":{"type":"string"}},{"type":"boolean"}],"minItems":3,"maxItems":4}},"required_by":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"type":{"$ref":"#/$defs/datatype","markdownDescription":"See [argument-spec](https://docs.ansible.com/ansible/latest/dev_guide/developing_program_flow_modules.html#argument-spec"},"version_added":{"type":"string"}},"removed_at_date":{"type":"string"},"removed_from_collection":{"type":"string"},"removed_in_version":{"type":"string"},"title":"Option"}},"$id":"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/role-arg-spec.json","$schema":"http://json-schema.org/draft-07/schema","additionalProperties":false,"examples":["meta/argument_specs.yml"],"markdownDescription":"See [role-argument-validation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-argument-validation)","properties":{"argument_specs":{"additionalProperties":{"$ref":"#/$defs/entry_point"},"markdownDescription":"Add entry point, usually `main`.\nSee [role-argument-validation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-argument-validation)"}},"title":"Ansible Role Argument Specs Schema"}
</schema>

[User] Provide a JSON object that satisfies the schema "Ansible Role Argument Specs Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Detailed explanation of what this attribute does. It should be written in full sentences.

Attribute

str list dict bool int float path raw jsonarg json bytes bits

Entry Point

Detailed explanation of what this option does. It should be written in full sentences.

The name of the option/argument.

Option

Add entry point, usually `main`.
See [role-argument-validation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-argument-validation)

Ansible Role Argument Specs Schema

Provide a JSON object that satisfies the schema "Ansible Role Argument Specs Schema". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.


[System]
You are a helpful assistant that answers strictly in JSON. Here's the JSON schema you must adhere to:
<schema>
{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://json.schemastore.org/roomodes.json","title":"Roo Coder Custom Modes","description":"Schema for Roo Coder custom mode configuration files. Roo Coder is an AI-powered coding assistant that can be extended with custom modes to specialize its behavior for specific tasks. See https://docs.roocode.com/features/custom-modes for documentation.","type":"object","required":["customModes"],"additionalProperties":false,"definitions":{"permission":{"title":"Permission","description":"Tool access permission for a custom mode","oneOf":[{"title":"Simple Permission","type":"string","enum":["read","edit","browser","command","mcp"],"enumDescriptions":["read: Read access to files","edit: Edit access to all files","browser: Web browser access","command: Command execution access","mcp: Model Context Protocol access"]},{"title":"Edit Permission with Path Restrictions","description":"Edit permission with optional file path restrictions using regex patterns","type":"object","required":["type"],"additionalProperties":false,"properties":{"type":{"const":"edit","description":"Must be 'edit' for path-restricted edit permissions"},"allowedPaths":{"type":"array","description":"Regex patterns for allowed file paths. If specified, only files matching these patterns can be edited.","items":{"type":"string","format":"regex","examples":["^/src/.*\\.js$","^/docs/.*\\.md$"]}},"disallowedPaths":{"type":"array","description":"Regex patterns for disallowed file paths. Files matching these patterns cannot be edited even if they match allowedPaths.","items":{"type":"string","format":"regex","examples":[".*\\.env$",".*/secrets/.*"]}}}}]},"customMode":{"title":"Custom Mode","description":"Definition of a custom mode in Roo Coder","type":"object","required":["slug","name","roleDefinition"],"additionalProperties":false,"properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$","minLength":1,"maxLength":50,"description":"Unique internal identifier for the mode. Must contain only lowercase letters, numbers, and hyphens.","examples":["code-reviewer","test-writer","api-designer"]},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name for the mode in the Roo Coder UI. Can include spaces, capitalization, and emojis.","examples":["Code Reviewer","Test Writer \ud83e\uddea","API Design Expert"]},"roleDefinition":{"type":"string","minLength":10,"description":"Core identity and expertise of the mode. The first sentence becomes the default mode summary.","examples":["I am a senior code reviewer focused on improving code quality, maintainability, and performance.","I am a test automation expert specializing in comprehensive test coverage and best practices."]},"whenToUse":{"type":"string","description":"Guidance for when to use this mode. Used by the Orchestrator mode and for mode switching suggestions.","examples":["Use this mode when you need a thorough code review with focus on best practices","Use this mode when creating or updating test files"]},"customInstructions":{"type":"string","description":"Additional behavioral guidelines for the mode. Supports markdown formatting for structured instructions.","examples":["## Review Process\n1. Analyze code structure\n2. Check for performance issues\n3. Verify security best practices"]},"groups":{"type":"array","description":"Allowed toolsets and file access permissions for this mode","items":{"$ref":"#/definitions/permission"},"examples":[["read","edit","browser"],["read",{"type":"edit","allowedPaths":["^/docs/.*\\.md$"]}]]}}}},"properties":{"customModes":{"type":"array","description":"Array of custom mode definitions","minItems":1,"items":{"$ref":"#/definitions/customMode"}}}}
</schema>

[User] Provide a JSON object that satisfies the schema "Roo Coder Custom Modes". Here are the required top‑level fields: customModes. Return only the valid JSON object.

Roo Coder Custom Modes

Schema for Roo Coder custom mode configuration files. Roo Coder is an AI-powered coding assistant that can be extended with custom modes to specialize its behavior for specific tasks. See https://docs.roocode.com/features/custom-modes for documentation.

Permission

Tool access permission for a custom mode

Simple Permission

read: Read access to files
edit: Edit access to all files
browser: Web browser access
command: Command execution access
mcp: Model Context Protocol access

Edit Permission with Path Restrictions

Edit permission with optional file path restrictions using regex patterns

Must be 'edit' for path-restricted edit permissions

Regex patterns for allowed file paths. If specified, only files matching these patterns can be edited.

Regex patterns for disallowed file paths. Files matching these patterns cannot be edited even if they match allowedPaths.

Custom Mode

Definition of a custom mode in Roo Coder

Unique internal identifier for the mode. Must contain only lowercase letters, numbers, and hyphens.

Display name for the mode in the Roo Coder UI. Can include spaces, capitalization, and emojis.

Code Reviewer
Test Writer 🧪
API Design Expert

Core identity and expertise of the mode. The first sentence becomes the default mode summary.

I am a senior code reviewer focused on improving code quality, maintainability, and performance.

I am a test automation expert specializing in comprehensive test coverage and best practices.

Guidance for when to use this mode. Used by the Orchestrator mode and for mode switching suggestions.

Use this mode when you need a thorough code review with focus on best practices

Use this mode when creating or updating test files

Additional behavioral guidelines for the mode. Supports markdown formatting for structured instructions.

## Review Process
1. Analyze code structure
2. Check for performance issues
3. Verify security best practices

Allowed toolsets and file access permissions for this mode

Array of custom mode definitions

Provide a JSON object that satisfies the schema "Roo Coder Custom Modes". Here are the required top‑level fields: customModes. Return only the valid JSON object.


[User] Provide a JSON object that satisfies the schema "root". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.

Provide a JSON object that satisfies the schema "root". Here are the required top‑level fields: none (all optional). Return only the valid JSON object.