> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
> Use this file to discover all available pages before exploring further.

# General

> The core review settings — cadence, PR workflow, skip conditions, and analysis types — plus the full kodus-config.yml reference.

## Core Settings

<Note>
  Kodus has three config levels: Global, Repository, and Directory. Learn how they work in <a href="/en/how_to_use/code_review/configs/inheritance_overrides">Config Inheritance & Overrides</a>.
</Note>

### Config Priority

You can keep your review configuration in a `kodus-config.yml` file at the root of your
repository instead of the web UI.

<Warning>
  **The file is ignored until you opt in.** By default `kodusConfigFileOverridesWebPreferences`
  is `false`, which means Kody never reads `kodus-config.yml` — committing the file alone does
  nothing.

  Turn it on first in **Settings → Code Review → the repository → General**, or set
  `kodusConfigFileOverridesWebPreferences: true` at the repository (or directory) level in the
  web UI. Only then does the file take effect.
</Warning>

Once enabled, the file is merged on top of your web settings, so you only need to declare the
keys you want to change — anything you omit keeps its web value.

<Note>
  **Unknown keys are silently dropped.** Any top-level key that isn't part of the current
  schema is removed before the config is applied — no error, no warning. If a setting appears
  to have no effect, check the spelling against the sample below.
</Note>

<Accordion title="Sample kodus-config.yml">
  ```yaml theme={null}
  version: 2.0

  # general
  automatedReviewActive: true
  showStatusFeedback: true
  kodusConfigFileOverridesWebPreferences: false
  reviewCadence:
      type: 'automatic' # automatic | auto_pause | manual
      timeWindow: 15 # minutes
      pushesToTrigger: 3
  pullRequestApprovalActive: false
  isRequestChangesActive: false # not available on GitLab
  runOnDraft: true
  ignorePaths:
      - 'yarn.lock'
      - 'package-lock.json'
      - 'package.json'
      - '.env'
      - '**/*.json'
  ignoredTitleKeywords: []
  baseBranches: []
  enableCommittableSuggestions: true
  byokModel: '' # empty = inherit the model from your BYOK settings

  # Teams / Enterprise only. Sibling repos the agent may consult during review.
  # Soft cap of 3; empty = feature off.
  linkedRepositories: []

  # review categories
  reviewOptions:
      bug: true
      performance: true
      security: true
      business_logic: true

  # suggestion control
  suggestionControl:
      applyFiltersToKodyRules: false
      severityLevelFilter: 'medium' # low | medium | high | critical

  # PR summary
  summary:
      generatePRSummary: true
      behaviourForNewCommits: 'none'
      behaviourForExistingDescription: 'replace'
      customInstructions: ''

  # kody rules
  ideRulesSyncEnabled: false
  kodyRulesGeneratorEnabled: true
  kodyLearningExcludedReviewers: []
  kodyKnowledgeApproval:
      enabled: false

  # custom messages
  customMessages:
      globalSettings:
          hideComments: false # GitHub only
          suggestionCopyPrompt: true # not available on Bitbucket
      errorReviewMessage:
          status: 'off' # off | active
          content: ''
      startReviewMessage:
          status: 'every_push' # every_push | only_when_opened | off
          content: ''
      endReviewMessage:
          status: 'every_push' # every_push | only_when_opened | off
          content: ''
  ```
</Accordion>

<Note>
  This sample mirrors the shipped defaults. The canonical source is
  [`default-kodus-config.yml`](https://github.com/kodustech/kodus-ai/blob/main/default-kodus-config.yml)
  in the kodus-ai repository.
</Note>

## Review Behavior

### Automated Review

Kody can review PRs automatically when opened, or only when you comment `@kody start-review`.

<Info>
  This affects the **initial review** only. For subsequent commits, see Review Cadence below.
</Info>

#### Review Cadence

How Kody handles reviews on subsequent commits:

<Tabs>
  <Tab title="Automatic">
    Review every new push. Continuous feedback on all changes.
  </Tab>

  <Tab title="Auto-pause">
    Pause reviews during rapid consecutive pushes (e.g., 3 pushes in 15 minutes). Prevents spam during active coding.

    Defaults: 3 pushes / 15 minutes
  </Tab>

  <Tab title="Manual">
    Only run follow-up reviews when you comment `@kody start-review`.
  </Tab>
</Tabs>

### PR Workflow

#### Auto-approve PRs

Kody approves PRs when no issues are found.

**Platforms:** GitHub, GitLab, Bitbucket

#### Request Changes

Kody requests changes when finding critical issues.

**Platforms:** GitHub, Bitbucket

### Skip Conditions

**Ignored Files:** Use glob patterns (e.g., `**/*.js`), one per line. Default: `yarn.lock`, `package-lock.json`, `package.json`, `.env`, `**/*.json`

**Ignored Titles:** Skip PRs with specific keywords (case-insensitive, max 100 chars)

**Base Branches:** Restricts *which* base branches get reviewed.

<Info>
  **Empty (the default) means every base branch is reviewed** — there is no built-in
  `dev`/`release`/`master` list. Add entries only when you want to *narrow* the scope: once the
  list is non-empty, Kody reviews only PRs targeting those branches (your repository's default
  branch is always included).

  Entries are matched against the PR's **target** branch and support a small pattern syntax:

  | Entry             | Matches                                                                               |
  | ----------------- | ------------------------------------------------------------------------------------- |
  | `main`            | PRs targeting exactly `main`                                                          |
  | `release/*`       | PRs targeting any branch under `release/` (`*` is a single-level wildcard)            |
  | `=main`           | Exact match, same as writing `main`                                                   |
  | `!staging`        | Excludes PRs targeting `staging`                                                      |
  | `contains:hotfix` | Matches on the **source** branch instead — any PR whose head branch contains `hotfix` |

  When several entries match, the most specific one wins. Each entry is limited to 100
  characters, may only use `a-z A-Z 0-9 / * - _ ! = :`, and `**` is not allowed.
</Info>

**Draft PRs:** `runOnDraft` is `true` by default, so drafts are reviewed. Set it to `false` to
skip them until the PR is marked ready.

## Analysis Types

Kody reviews across four categories. Enable or disable each one under **Analysis Types**, or via
`reviewOptions` in `kodus-config.yml`.

* **Bug** — logic errors, race conditions, null dereferences, edge cases, and incorrect behavior.
* **Security** — vulnerabilities, injection, auth issues, data exposure, and secrets.
* **Performance** — N+1 queries, hot-path allocations, missing caching, and blocking I/O.
* **Business Logic** — validates the implementation against business rules, requirements, and
  acceptance criteria linked in the PR. See
  [Business Logic Validation](/en/how_to_use/code_review/business_logic_validation).

<Note>
  Kody Rules are **not** one of these categories — they always run, independently of
  `reviewOptions`. See [Kody Rules](/en/how_to_use/code_review/configs/kody_rules).
</Note>
