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

# Project configuration

A project configuration file is a `config.json` file located in the `.commonality` folder at the root of your project.

```json .commonality/config.json theme={null}
{
  "$schema": "https://commonality.co/config.json",
  "checks": {
    "*": ["has-readme"],
    "publishable": ["ensure-license"]
  },
  "constraints": {
    "*": { "disallow": ["deployable"] },
    "config": { "allow": ["config"] }
  }
}
```

## Properties

### checks

An object whose keys are [selectors](/selectors) and whose values are paths to [check objects](/reference/check-object).

<Info>Checks will run in the order they are defined.</Info>

```json .commonality/config.json theme={null}
{
  "checks": {
    "*": [
      // Path to a check local to the project
      "has-readme",
      "./has-readme",
      "./linting/eslint-extends-node",

      // Path to a custom check exported from a package
      "@scope/my-team/my-custom-check",
      "commonality-checks-recommended/sorted-dependencies"

      // Packages prefixed with "commonality-checks-" can use a shorthand
      "recommended/sorted-dependencies"
    ],
  }
}
```

### constraints

An object whose keys are [selectors](/selectors) and whose value are [constraint objects](/reference/constraint-object).

```json .commonality/config.json theme={null}
{
  "constraints": {
    "*": { "disallow": ["deployable"] },
    "config": { "allow": ["config"] }
  }
}
```

***

### `workspaces`

An array of [micromatch](https://github.com/micromatch/micromatch) patterns used to identify which directories should be included when searching for packages.

```json .commonality/config.json theme={null}
{
  "workspaces": ["apps/*", "packages/**", "!**/dist/**"]
}
```
