---
title: 'ARC0003: External command handler'
editUrl: https://github.com/Cratis/Arc.TypeScript/edit/main/Documentation/code-analysis/ARC0003.md
description: Keep command handling on the decorated class.
---


## What

An undecorated class declares `handle(command: DecoratedCommand)`. Rule: `arc-core/arc0003` (requires type information).

## Why

Arc executes `handle()` on the command instance, not an external handler class. This rule checks a directly typed `@command()` class, not indirect aliases.

## Bad

```ts
export class RegisterHandler { handle(command: Register) {} }
```

## Good

```ts
@command()
export class Register { handle() {} }
```
