Skip to content

docs: clarify YAML-first custom modes behavior#5988

Closed
Olusammytee wants to merge 2 commits intoKilo-Org:mainfrom
Olusammytee:docs/2147-clarify-custom-modes-yaml-v2
Closed

docs: clarify YAML-first custom modes behavior#5988
Olusammytee wants to merge 2 commits intoKilo-Org:mainfrom
Olusammytee:docs/2147-clarify-custom-modes-yaml-v2

Conversation

@Olusammytee
Copy link
Copy Markdown

Summary

  • clarify that custom_modes.yaml is the primary global mode config
  • mark custom_modes.json as legacy fallback
  • clarify .kilocodemodes format preference (YAML-first, JSON compatibility)
  • make the UI edit actions explicit for global/project modes

Notes

Supersedes #5956 due stale head SHA/update mismatch on the original PR branch.

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Feb 18, 2026

⚠️ No Changeset found

Latest commit: fdccdc2

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the documentation for custom modes configuration by clarifying the YAML-first approach and the legacy status of JSON files. The changes address confusion around which file format to use and how the two formats interact.

Changes:

  • Clarified that imported mode files should use .yaml extension
  • Updated manual configuration section to explicitly mark custom_modes.yaml as primary and custom_modes.json as legacy fallback
  • Added informational callout explaining why both YAML and JSON files may coexist and clarifying that YAML takes precedence

These files define an array/list of custom modes.

{% callout type="info" title="Why JSON Files May Still Exist" %}
If you see both YAML and JSON mode files, this is usually from legacy configuration. Kilo Code reads YAML first and does not keep both files synchronized line-by-line. In practice, edit YAML unless you have a specific reason to stay on JSON.
Copy link

Copilot AI Feb 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "Kilo Code reads YAML first" could be misleading. Based on the code implementation, Kilo Code only reads from custom_modes.yaml after migration. The JSON file is preserved during migration for rollback purposes but is not actively read or synchronized. Consider clarifying to: "Kilo Code reads only the YAML file; the JSON file is preserved for rollback but not actively used."

Suggested change
If you see both YAML and JSON mode files, this is usually from legacy configuration. Kilo Code reads YAML first and does not keep both files synchronized line-by-line. In practice, edit YAML unless you have a specific reason to stay on JSON.
If you see both YAML and JSON mode files, this is usually from legacy configuration. Kilo Code reads only the YAML file; the JSON file is preserved for rollback but not actively used. In practice, edit YAML unless you have a specific reason to stay on JSON. <!-- kilocode_change -->

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fdccdc2932

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

These files define an array/list of custom modes.

{% callout type="info" title="Why JSON Files May Still Exist" %}
If you see both YAML and JSON mode files, this is usually from legacy configuration. Kilo Code reads YAML first and does not keep both files synchronized line-by-line. In practice, edit YAML unless you have a specific reason to stay on JSON.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove suggestion that users can stay on JSON mode files

This callout implies that continuing to use JSON is a supported steady-state ("edit YAML unless you have a specific reason to stay on JSON"), but current runtime code only reads custom_modes.yaml (GlobalFileNames.customModes in src/shared/globalFileNames.ts and getCustomModesFilePath() in src/core/config/CustomModesManager.ts); custom_modes.json is only consulted during one-time migration when YAML is absent (src/utils/migrateSettings.ts). In environments where both files exist after migration, users who keep editing JSON based on this guidance will see no mode updates applied.

Useful? React with 👍 / 👎.

@Olusammytee
Copy link
Copy Markdown
Author

Migrated to Kilo-Org/kilo#481 due docs repo migration to Kilo-Org/kilo. Closing this PR as superseded.

@Olusammytee
Copy link
Copy Markdown
Author

Superseded by Kilo-Org/kilo#481.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants