Rules help Firebender understand how to write high quality code. Add rules to the rules array in firebender.json to specify guidelines.

Rules apply to all features of Firebender such as autocomplete, chat, and inline AI changes

To setup rules, you need to create a json file at the project root firebender.json.

General Rules Example: Food delivery app

In $projectRoot/firebender.json:

firebender.json
{
  "rules": [
    "Project is a food delivery app (Doordash)",
    "Never use runBlocking",
    "Don't hardcode dpi",
    "Use `@SerializedName` for data/retrofit classes because code gets obfuscated",
    "Follow Material Design 3 guidelines and components",
    "Use Kotlin coroutines and Flow for asynchronous operations",
  ]
}

Situational Rules Example: Test files

Here’s an example situational rule:

firebender.json
{
  "rules": [
    "Project is a food delivery app (Doordash)",
    {
      "filePathMatches": "*Kotest.kt",
      "rules": [
        "Use Kotest framework/BDD for tests"
      ]
    }
  ]
}

If you modify the file ProfileViewModelKotest.kt, AI will follow the rule Use Kotest framework/BDD for tests. If you modify MainActivity.kt, AI will not be provided the irrelevant rule.

filePathMatches follows the same regex notation as typical line in .gitignore.