[navori](https://ulisescm.github.io/navori-harness/docs/plan) · English

Classifies a task's complexity and validates its workplan (spec 0032).

## Commands 

[navori init](https://ulisescm.github.io/navori-harness/docs/init)[navori add](https://ulisescm.github.io/navori-harness/docs/add)[navori remove](https://ulisescm.github.io/navori-harness/docs/remove)[navori adopt](https://ulisescm.github.io/navori-harness/docs/adopt)[navori configure](https://ulisescm.github.io/navori-harness/docs/configure)[navori preset](https://ulisescm.github.io/navori-harness/docs/preset)[navori render](https://ulisescm.github.io/navori-harness/docs/render)[navori sync](https://ulisescm.github.io/navori-harness/docs/sync)[navori update](https://ulisescm.github.io/navori-harness/docs/update)[navori refresh](https://ulisescm.github.io/navori-harness/docs/refresh)[navori scan](https://ulisescm.github.io/navori-harness/docs/scan)[navori doctor](https://ulisescm.github.io/navori-harness/docs/doctor)[navori status](https://ulisescm.github.io/navori-harness/docs/status)[navori bench](https://ulisescm.github.io/navori-harness/docs/bench)[navori codex](https://ulisescm.github.io/navori-harness/docs/codex)[navori audit](https://ulisescm.github.io/navori-harness/docs/audit)[navori backup](https://ulisescm.github.io/navori-harness/docs/backup)[navori migrations](https://ulisescm.github.io/navori-harness/docs/migrations)[navori registry](https://ulisescm.github.io/navori-harness/docs/registry)[navori workspace](https://ulisescm.github.io/navori-harness/docs/workspace)[navori ticket](https://ulisescm.github.io/navori-harness/docs/ticket)[navori dominio](https://ulisescm.github.io/navori-harness/docs/dominio)[navori tools](https://ulisescm.github.io/navori-harness/docs/tools)[navori receipt](https://ulisescm.github.io/navori-harness/docs/receipt)[navori plan](https://ulisescm.github.io/navori-harness/docs/plan)[navori spec](https://ulisescm.github.io/navori-harness/docs/spec)[navori handoff](https://ulisescm.github.io/navori-harness/docs/handoff)[navori master](https://ulisescm.github.io/navori-harness/docs/master)[navori gate](https://ulisescm.github.io/navori-harness/docs/gate) No manpage yet. This page is the reference. 

navori

# plan 

Classifies a task's complexity and validates its workplan (spec 0032). 

## Usage 

```
navori plan <classify|render|update|check|gate> <feature> [--files <a,b,c> | --diff [<base>]] [--dir <path>] [--json]
```

## Flags 

--files <a,b,c> Repo-relative paths touched by the task (classify). 

--diff [<base>] Classifies the real diff (`git diff --name-only <base>...HEAD`, default origin/main) against the workplan's declared signals (classify); fails when the diff exceeds the declared level. 

--critical-area / --money-credentials-pii / --multi-repo / --new-external-dependency / --shared-contract / --data-schema-migration / --bug-without-root-cause Declared signals classify cannot measure on its own. 

--progress <A1>=<status> Changes a criterion's status (update); repeatable (--progress A1=cumplido --progress A2=bloqueado), applied all-or-nothing. 

--decision <text> --date <date> Appends a decision to the workplan (update). 

--dir <path> Progress directory; defaults to .claude/progress. 

--json Emit the machine-readable contract. 

## Examples 

### Classify and check

```
navori plan classify checkout --files src/checkout.ts,src/checkout.test.ts --json
navori plan check checkout
```

### Check the real diff against the declared level

```
navori plan classify checkout --diff origin/main
```

## Notes 

- `classify` is the single definition of a task's level (0-3); don't rewrite its thresholds elsewhere. 
- `render` regenerates workplan_<feature>.md from the JSON deterministically — never hand-edit it. 
- `gate` takes no <feature>: it reads the PreToolUse(Agent) hook payload from stdin and denies dispatching the implementer under harness.planTiers without a valid workplan or a level-0 exemption. 
- The plan-gate hook only denies when there is a verdict (missing or invalid plan). When the navori binary or its plan subcommand is missing there is no verdict: on Claude, in a permission mode that shows the prompt, it asks the human to confirm instead of blocking; on Codex or in modes without a prompt it keeps the block.


