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.