This page summarizes the current public CLI surface. It is intentionally shorter than the full product CLI spec in the repository. If you are running from the source tree, prepend commands with:
cargo run -p specpunk --

Most users only need these commands

punk init --enable-jj --verify
punk go --fallback-staged "<goal>"
punk start "<goal>"
punk status [id]
punk inspect <id> --json

Goal-first path

For initialized repositories, the default happy path is:
punk go --fallback-staged "<goal>"
This is the intended flow:
goal -> draft -> approve -> cut -> gate -> proof

Staged path

Use the staged path when you want review between phases:
punk start "<goal>"
punk plot approve <contract-id>
punk cut run <contract-id>
punk gate run <run-id>
punk gate proof <run-id|decision-id>

Mode-level commands

These are the lower-level commands behind the staged path:
punk plot contract "<goal>"
punk plot refine <contract-id> "<guidance>"
punk plot approve <contract-id>
punk cut run <contract-id>
punk gate run <run-id>
punk gate proof <run-id|decision-id>

Read and inspect surfaces

Use these to inspect current state and artifacts:
punk status [id]
punk inspect work [id]
punk inspect project
punk inspect <id> --json

Canonical source

The detailed CLI contract for the project lives in docs/product/CLI.md in the repository. This public page is the short operator-facing view.