> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Define your own quality standards

:::info

**Takeaway**
The default review rubric scores against general best practices. Fork it to encode what your organisation cares about, then apply it everywhere: local reviews, automated fixes, and your CI gate.

:::

The default rubric is a good baseline, but it does not know your conventions. If your team has its own bar for what a skill must do, a custom reviewer plugin lets you define it once and apply it consistently.

## Build a reviewer

The `create-review-plugin` skill from [`tessl/review-plugin-creator`](https://tessl.io/registry/tessl/review-plugin-creator) scaffolds a reviewer plugin for you. Install it, then ask your agent to create a reviewer:

```bash
tessl install tessl/review-plugin-creator
```

A reviewer plugin is a standard Tessl plugin with this layout:

```
<plugin-name>/
├── .tessl-plugin/
│   └── plugin.json
└── skills/skill-reviewer/
    ├── SKILL.md
    ├── references/
    │   ├── config.json
    │   └── rubrics/
    │       └── <judge-name>.json   (one per judge)
```

`config.json` sets the weight each judge contributes to the final score, plus a `validation_weight` for the deterministic validation pass. All weights must sum to 1.0:

```
validation_weight + sum of judge weights = 1.0
```

Set `validation_weight` to `0.0` to exclude validation from scoring. Validation still runs as a gate but does not affect the numeric score.

Each rubric file defines one judge: what it evaluates (`evaluation_target`), a scoring scale, and a set of dimensions. Dimension weights within a single rubric also sum to 1.0. The `create-review-plugin` skill validates the finished plugin by running `tessl review run` against a test skill, so you catch misconfigured weights before you use it.

The [default rubric](https://github.com/tesslio/product-plugins/tree/main/default-skill-review) is worth forking rather than building from scratch. It scores a skill's description on specificity, completeness, trigger term quality, and distinctiveness, and the content on conciseness, actionability, workflow clarity, and progressive disclosure. Forking keeps those dimensions and lets you adjust weights, remove ones that do not apply, or add judges of your own.

## Use a reviewer

Point a review at your reviewer with `--review-plugin`, passing either a local directory or a `workspace/plugin` registry reference:

```bash
tessl review run ./my-skill --workspace engteam --review-plugin <reviewer-plugin>
```

The same flag works with `tessl review fix` and in your CI gate:

```bash
tessl review run ./my-skill --workspace engteam --review-plugin <reviewer-plugin> --threshold 80
```

Pass `--review-plugin` explicitly on each run, or configure a workspace default, so the flag is not required at all.

## Setting workspace policy

Rather than passing `--review-plugin` on every run, you can set your reviewer plugin as the default for an entire workspace. Once set, any review run that does not name its own reviewer uses your plugin automatically, so contributors do not need to remember the flag. A run that passes an explicit `--review-plugin` (or an upload override) still takes precedence, so the workspace default is the automatic choice rather than a non-bypassable rule.

To configure this, open the workspace settings in the Tessl web app and navigate to the **Reviews** section. Select **Manage**, enter your reviewer plugin reference (for example `myorg/my-reviewer` or a pinned version such as `myorg/my-reviewer@1.2.3`), and save. The reviewer plugin you choose becomes the workspace default, applied to every review run that does not override it.

:::info

You still need the `customReviewPlugins` entitlement to use this feature. Contact your workspace owner if the Reviews section is not visible in your settings.

:::

## Next

- [Gate skill quality in CI](/codifying-and-enforcing/gate-skill-quality-in-ci.md) - enforce your rubric automatically on pull requests.
