{
  "name": "hk",
  "bin": "hk",
  "cmd": {
    "full_cmd": [],
    "usage": "[FLAGS] <SUBCOMMAND>",
    "subcommands": {
      "agent": {
        "full_cmd": ["agent"],
        "usage": "agent <SUBCOMMAND>",
        "subcommands": {
          "hooks": {
            "full_cmd": ["agent", "hooks"],
            "usage": "agent hooks <--target <TARGET>>",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "target",
                "usage": "--target <TARGET>",
                "short": [],
                "long": ["target"],
                "required": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TARGET",
                  "usage": "<TARGET>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["codex", "claude-code", "vscode"]
                  }
                }
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Print a hook configuration for an agent or editor",
            "name": "hooks",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "instructions": {
            "full_cmd": ["agent", "instructions"],
            "usage": "agent instructions <--target <TARGET>>",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "target",
                "usage": "--target <TARGET>",
                "short": [],
                "long": ["target"],
                "required": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TARGET",
                  "usage": "<TARGET>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["codex", "claude-code", "generic"]
                  }
                }
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Print project instructions for a coding agent",
            "name": "instructions",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "mcp": {
            "full_cmd": ["agent", "mcp"],
            "usage": "agent mcp <--target <TARGET>>",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "target",
                "usage": "--target <TARGET>",
                "short": [],
                "long": ["target"],
                "required": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TARGET",
                  "usage": "<TARGET>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": [
                      "codex",
                      "claude-desktop",
                      "claude-code",
                      "vscode"
                    ]
                  }
                }
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Print an MCP server configuration",
            "name": "mcp",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "subcommand_required": true,
        "help": "Generate integration snippets for coding agents",
        "name": "agent",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "builtins": {
        "full_cmd": ["builtins"],
        "usage": "builtins",
        "subcommands": {},
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Lists all available builtin linters",
        "name": "builtins",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "cache": {
        "full_cmd": ["cache"],
        "usage": "cache <SUBCOMMAND>",
        "subcommands": {
          "clear": {
            "full_cmd": ["cache", "clear"],
            "usage": "cache clear",
            "subcommands": {},
            "args": [],
            "flags": [],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Clear the cache directory",
            "name": "clear",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": true,
        "subcommand_required": true,
        "help": "Manage hk internal cache",
        "name": "cache",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "check": {
        "full_cmd": ["check"],
        "usage": "check [FLAGS] [FILES]…",
        "subcommands": {},
        "args": [
          {
            "name": "FILES",
            "usage": "[FILES]…",
            "help": "Run on specific files",
            "help_first_line": "Run on specific files",
            "required": false,
            "double_dash": "Optional",
            "var": true,
            "hide": false
          }
        ],
        "flags": [
          {
            "name": "all",
            "usage": "-a --all",
            "help": "Run on all files instead of just staged files",
            "help_first_line": "Run on all files instead of just staged files",
            "short": ["a"],
            "long": ["all"],
            "hide": false,
            "global": false
          },
          {
            "name": "check",
            "usage": "-c --check",
            "help": "Run check command instead of fix command",
            "help_first_line": "Run check command instead of fix command",
            "short": ["c"],
            "long": ["check"],
            "hide": false,
            "global": false
          },
          {
            "name": "exclude",
            "usage": "-e --exclude… <EXCLUDE>",
            "help": "Exclude files that otherwise would have been selected",
            "help_first_line": "Exclude files that otherwise would have been selected",
            "short": ["e"],
            "long": ["exclude"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "EXCLUDE",
              "usage": "<EXCLUDE>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fix",
            "usage": "-f --fix",
            "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "short": ["f"],
            "long": ["fix"],
            "hide": false,
            "global": false
          },
          {
            "name": "glob",
            "usage": "-g --glob… <GLOB>",
            "help": "Run on files that match these glob patterns",
            "help_first_line": "Run on files that match these glob patterns",
            "short": ["g"],
            "long": ["glob"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "GLOB",
              "usage": "<GLOB>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "json",
            "usage": "-J --json",
            "help": "Output the plan as JSON when combined with --plan or --why",
            "help_first_line": "Output the plan as JSON when combined with --plan or --why",
            "short": ["J"],
            "long": ["json"],
            "hide": false,
            "global": false
          },
          {
            "name": "plan",
            "usage": "-P --plan",
            "help": "Print the plan instead of running the hook",
            "help_first_line": "Print the plan instead of running the hook",
            "short": ["P"],
            "long": ["plan"],
            "hide": false,
            "global": false
          },
          {
            "name": "step",
            "usage": "-S --step… <STEP>",
            "help": "Run only specific step(s)",
            "help_first_line": "Run only specific step(s)",
            "short": ["S"],
            "long": ["step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "why",
            "usage": "-W --why <STEP>",
            "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "short": ["W"],
            "long": ["why"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fail-fast",
            "usage": "--fail-fast",
            "help": "Abort on first failure",
            "help_first_line": "Abort on first failure",
            "short": [],
            "long": ["fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "files0-from",
            "usage": "--files0-from <PATH>",
            "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "short": [],
            "long": ["files0-from"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "format",
            "usage": "--format <FORMAT>",
            "help": "Select human or machine-readable execution output",
            "help_first_line": "Select human or machine-readable execution output",
            "short": [],
            "long": ["format"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FORMAT",
              "usage": "<FORMAT>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["human", "json", "jsonl"]
              }
            }
          },
          {
            "name": "from-hook",
            "usage": "--from-hook",
            "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "short": [],
            "long": ["from-hook"],
            "hide": true,
            "global": false
          },
          {
            "name": "from-ref",
            "usage": "--from-ref <FROM_REF>",
            "help": "Start reference for checking files (requires --to-ref)",
            "help_first_line": "Start reference for checking files (requires --to-ref)",
            "short": [],
            "long": ["from-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FROM_REF",
              "usage": "<FROM_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "no-fail-fast",
            "usage": "--no-fail-fast",
            "help": "Continue on failures (opposite of --fail-fast)",
            "help_first_line": "Continue on failures (opposite of --fail-fast)",
            "short": [],
            "long": ["no-fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "no-stage",
            "usage": "--no-stage",
            "help": "Disable auto-staging of fixed files",
            "help_first_line": "Disable auto-staging of fixed files",
            "short": [],
            "long": ["no-stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "pr",
            "usage": "--pr",
            "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "short": [],
            "long": ["pr"],
            "hide": false,
            "global": false
          },
          {
            "name": "safe",
            "usage": "--safe",
            "help": "Reject commands with unknown or destructive effects before execution",
            "help_first_line": "Reject commands with unknown or destructive effects before execution",
            "short": [],
            "long": ["safe"],
            "hide": false,
            "global": false
          },
          {
            "name": "sarif",
            "usage": "--sarif <PATH>",
            "help": "Write normalized diagnostics as SARIF",
            "help_first_line": "Write normalized diagnostics as SARIF",
            "short": [],
            "long": ["sarif"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "skip-step",
            "usage": "--skip-step… <STEP>",
            "help": "Skip specific step(s)",
            "help_first_line": "Skip specific step(s)",
            "short": [],
            "long": ["skip-step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "stage",
            "usage": "--stage",
            "help": "Enable auto-staging of fixed files",
            "help_first_line": "Enable auto-staging of fixed files",
            "short": [],
            "long": ["stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "staged",
            "usage": "--staged",
            "help": "Run on staged files only without stashing unstaged changes",
            "help_first_line": "Run on staged files only without stashing unstaged changes",
            "short": [],
            "long": ["staged"],
            "hide": false,
            "global": false
          },
          {
            "name": "stash",
            "usage": "--stash <STASH>",
            "help": "Stash method to use for git hooks",
            "help_first_line": "Stash method to use for git hooks",
            "short": [],
            "long": ["stash"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STASH",
              "usage": "<STASH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["git", "patch-file", "none"]
              }
            }
          },
          {
            "name": "stats",
            "usage": "--stats",
            "help": "Display statistics about files matching each step",
            "help_first_line": "Display statistics about files matching each step",
            "short": [],
            "long": ["stats"],
            "hide": false,
            "global": false
          },
          {
            "name": "to-ref",
            "usage": "--to-ref <TO_REF>",
            "help": "End reference for checking files (requires --from-ref)",
            "help_first_line": "End reference for checking files (requires --from-ref)",
            "short": [],
            "long": ["to-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "TO_REF",
              "usage": "<TO_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "unstaged",
            "usage": "--unstaged",
            "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "short": [],
            "long": ["unstaged"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "hide": false,
        "help": "Checks code",
        "name": "check",
        "aliases": ["c"],
        "hidden_aliases": [],
        "examples": []
      },
      "completion": {
        "full_cmd": ["completion"],
        "usage": "completion <SHELL>",
        "subcommands": {},
        "args": [
          {
            "name": "SHELL",
            "usage": "<SHELL>",
            "help": "The shell to generate completion for",
            "help_first_line": "The shell to generate completion for",
            "required": true,
            "double_dash": "Optional",
            "hide": false
          }
        ],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Generates shell completion scripts",
        "name": "completion",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "config": {
        "full_cmd": ["config"],
        "usage": "config <SUBCOMMAND>",
        "subcommands": {
          "dump": {
            "full_cmd": ["config", "dump"],
            "usage": "config dump [--format <FORMAT>]",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Output format (json or toml)",
                "help_first_line": "Output format (json or toml)",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["json", "toml"]
                  }
                },
                "default": ["json"]
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Print effective runtime settings (JSON format)",
            "help_long": "Print effective runtime settings (JSON format)\n\nShows the merged configuration from all sources including CLI flags, environment variables, git config, user config, and project config.",
            "name": "dump",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "explain": {
            "full_cmd": ["config", "explain"],
            "usage": "config explain <KEY>",
            "subcommands": {},
            "args": [
              {
                "name": "KEY",
                "usage": "<KEY>",
                "help": "Configuration key to explain",
                "help_first_line": "Configuration key to explain",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Explain where a configuration value comes from",
            "help_long": "Explain where a configuration value comes from\n\nShows the resolved value, its source (env/git/cli/default), and the full precedence chain showing all layers that could affect it.",
            "name": "explain",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "get": {
            "full_cmd": ["config", "get"],
            "usage": "config get <KEY>",
            "subcommands": {},
            "args": [
              {
                "name": "KEY",
                "usage": "<KEY>",
                "help": "Configuration key to retrieve",
                "help_long": "Configuration key to retrieve\n\nAvailable keys: jobs, enabled_profiles, disabled_profiles, fail_fast, display_skip_reasons, warnings, exclude, skip_steps, skip_hooks, stage",
                "help_first_line": "Configuration key to retrieve",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Get a specific configuration value",
            "help_long": "Get a specific configuration value\n\nAvailable keys: jobs, enabled_profiles, disabled_profiles, fail_fast, display_skip_reasons, warnings, exclude, skip_steps, skip_hooks, stage",
            "name": "get",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "sources": {
            "full_cmd": ["config", "sources"],
            "usage": "config sources",
            "subcommands": {},
            "args": [],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Show the configuration source precedence order",
            "help_long": "Show the configuration source precedence order\n\nLists all configuration sources in order of precedence to help understand where configuration values come from.",
            "name": "sources",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Configuration introspection and management",
        "help_long": "Configuration introspection and management\n\nView and inspect hk's configuration from all sources. Configuration is merged from multiple sources in precedence order: CLI flags > Environment variables > Git config (local) > User config (.hkrc.pkl) > Git config (global) > Project config (hk.pkl) > Built-in defaults.",
        "name": "config",
        "aliases": ["cfg"],
        "hidden_aliases": [],
        "examples": []
      },
      "fix": {
        "full_cmd": ["fix"],
        "usage": "fix [FLAGS] [FILES]…",
        "subcommands": {},
        "args": [
          {
            "name": "FILES",
            "usage": "[FILES]…",
            "help": "Run on specific files",
            "help_first_line": "Run on specific files",
            "required": false,
            "double_dash": "Optional",
            "var": true,
            "hide": false
          }
        ],
        "flags": [
          {
            "name": "all",
            "usage": "-a --all",
            "help": "Run on all files instead of just staged files",
            "help_first_line": "Run on all files instead of just staged files",
            "short": ["a"],
            "long": ["all"],
            "hide": false,
            "global": false
          },
          {
            "name": "check",
            "usage": "-c --check",
            "help": "Run check command instead of fix command",
            "help_first_line": "Run check command instead of fix command",
            "short": ["c"],
            "long": ["check"],
            "hide": false,
            "global": false
          },
          {
            "name": "exclude",
            "usage": "-e --exclude… <EXCLUDE>",
            "help": "Exclude files that otherwise would have been selected",
            "help_first_line": "Exclude files that otherwise would have been selected",
            "short": ["e"],
            "long": ["exclude"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "EXCLUDE",
              "usage": "<EXCLUDE>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fix",
            "usage": "-f --fix",
            "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "short": ["f"],
            "long": ["fix"],
            "hide": false,
            "global": false
          },
          {
            "name": "glob",
            "usage": "-g --glob… <GLOB>",
            "help": "Run on files that match these glob patterns",
            "help_first_line": "Run on files that match these glob patterns",
            "short": ["g"],
            "long": ["glob"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "GLOB",
              "usage": "<GLOB>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "json",
            "usage": "-J --json",
            "help": "Output the plan as JSON when combined with --plan or --why",
            "help_first_line": "Output the plan as JSON when combined with --plan or --why",
            "short": ["J"],
            "long": ["json"],
            "hide": false,
            "global": false
          },
          {
            "name": "plan",
            "usage": "-P --plan",
            "help": "Print the plan instead of running the hook",
            "help_first_line": "Print the plan instead of running the hook",
            "short": ["P"],
            "long": ["plan"],
            "hide": false,
            "global": false
          },
          {
            "name": "step",
            "usage": "-S --step… <STEP>",
            "help": "Run only specific step(s)",
            "help_first_line": "Run only specific step(s)",
            "short": ["S"],
            "long": ["step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "why",
            "usage": "-W --why <STEP>",
            "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "short": ["W"],
            "long": ["why"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fail-fast",
            "usage": "--fail-fast",
            "help": "Abort on first failure",
            "help_first_line": "Abort on first failure",
            "short": [],
            "long": ["fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "files0-from",
            "usage": "--files0-from <PATH>",
            "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "short": [],
            "long": ["files0-from"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "format",
            "usage": "--format <FORMAT>",
            "help": "Select human or machine-readable execution output",
            "help_first_line": "Select human or machine-readable execution output",
            "short": [],
            "long": ["format"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FORMAT",
              "usage": "<FORMAT>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["human", "json", "jsonl"]
              }
            }
          },
          {
            "name": "from-hook",
            "usage": "--from-hook",
            "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "short": [],
            "long": ["from-hook"],
            "hide": true,
            "global": false
          },
          {
            "name": "from-ref",
            "usage": "--from-ref <FROM_REF>",
            "help": "Start reference for checking files (requires --to-ref)",
            "help_first_line": "Start reference for checking files (requires --to-ref)",
            "short": [],
            "long": ["from-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FROM_REF",
              "usage": "<FROM_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "no-fail-fast",
            "usage": "--no-fail-fast",
            "help": "Continue on failures (opposite of --fail-fast)",
            "help_first_line": "Continue on failures (opposite of --fail-fast)",
            "short": [],
            "long": ["no-fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "no-stage",
            "usage": "--no-stage",
            "help": "Disable auto-staging of fixed files",
            "help_first_line": "Disable auto-staging of fixed files",
            "short": [],
            "long": ["no-stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "pr",
            "usage": "--pr",
            "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "short": [],
            "long": ["pr"],
            "hide": false,
            "global": false
          },
          {
            "name": "safe",
            "usage": "--safe",
            "help": "Reject commands with unknown or destructive effects before execution",
            "help_first_line": "Reject commands with unknown or destructive effects before execution",
            "short": [],
            "long": ["safe"],
            "hide": false,
            "global": false
          },
          {
            "name": "sarif",
            "usage": "--sarif <PATH>",
            "help": "Write normalized diagnostics as SARIF",
            "help_first_line": "Write normalized diagnostics as SARIF",
            "short": [],
            "long": ["sarif"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "skip-step",
            "usage": "--skip-step… <STEP>",
            "help": "Skip specific step(s)",
            "help_first_line": "Skip specific step(s)",
            "short": [],
            "long": ["skip-step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "stage",
            "usage": "--stage",
            "help": "Enable auto-staging of fixed files",
            "help_first_line": "Enable auto-staging of fixed files",
            "short": [],
            "long": ["stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "staged",
            "usage": "--staged",
            "help": "Run on staged files only without stashing unstaged changes",
            "help_first_line": "Run on staged files only without stashing unstaged changes",
            "short": [],
            "long": ["staged"],
            "hide": false,
            "global": false
          },
          {
            "name": "stash",
            "usage": "--stash <STASH>",
            "help": "Stash method to use for git hooks",
            "help_first_line": "Stash method to use for git hooks",
            "short": [],
            "long": ["stash"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STASH",
              "usage": "<STASH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["git", "patch-file", "none"]
              }
            }
          },
          {
            "name": "stats",
            "usage": "--stats",
            "help": "Display statistics about files matching each step",
            "help_first_line": "Display statistics about files matching each step",
            "short": [],
            "long": ["stats"],
            "hide": false,
            "global": false
          },
          {
            "name": "to-ref",
            "usage": "--to-ref <TO_REF>",
            "help": "End reference for checking files (requires --from-ref)",
            "help_first_line": "End reference for checking files (requires --from-ref)",
            "short": [],
            "long": ["to-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "TO_REF",
              "usage": "<TO_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "unstaged",
            "usage": "--unstaged",
            "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "short": [],
            "long": ["unstaged"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "hide": false,
        "help": "Fixes code",
        "name": "fix",
        "aliases": ["f"],
        "hidden_aliases": [],
        "examples": []
      },
      "init": {
        "full_cmd": ["init"],
        "usage": "init [FLAGS]",
        "subcommands": {},
        "args": [],
        "flags": [
          {
            "name": "force",
            "usage": "-f --force",
            "help": "Overwrite existing hk.pkl file",
            "help_first_line": "Overwrite existing hk.pkl file",
            "short": ["f"],
            "long": ["force"],
            "hide": false,
            "global": false
          },
          {
            "name": "interactive",
            "usage": "-i --interactive",
            "help": "Interactive mode: select linters and hooks manually",
            "help_first_line": "Interactive mode: select linters and hooks manually",
            "short": ["i"],
            "long": ["interactive"],
            "hide": false,
            "global": false
          },
          {
            "name": "mise",
            "usage": "--mise",
            "help": "Generate a mise.toml file with hk configured",
            "help_long": "Generate a mise.toml file with hk configured\n\nSet HK_MISE=1 to make this default behavior.",
            "help_first_line": "Generate a mise.toml file with hk configured",
            "short": [],
            "long": ["mise"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "effect": "write",
        "hide": false,
        "help": "Generates a new hk.pkl file for a project",
        "name": "init",
        "aliases": [],
        "hidden_aliases": ["generate"],
        "examples": []
      },
      "install": {
        "full_cmd": ["install"],
        "usage": "install [FLAGS]",
        "subcommands": {},
        "args": [],
        "flags": [
          {
            "name": "force-local",
            "usage": "--force-local",
            "help": "Install local hooks even when hk is already configured globally\n(any `hook.hk-*` entry in `~/.gitconfig`). By default a per-repo\ninstall is skipped in that case to avoid hk firing twice per\nevent. Not compatible with `--global`.",
            "help_first_line": "Install local hooks even when hk is already configured globally",
            "short": [],
            "long": ["force-local"],
            "hide": false,
            "global": false
          },
          {
            "name": "global",
            "usage": "--global",
            "help": "Recommended. Install at user level (~/.gitconfig) so every repo\non this machine gets hk hooks. Requires Git 2.54 or newer. In\nrepos without an `hk.pkl`, the installed hook is a silent no-op.",
            "help_first_line": "Recommended. Install at user level (~/.gitconfig) so every repo",
            "short": [],
            "long": ["global"],
            "hide": false,
            "global": false
          },
          {
            "name": "legacy",
            "usage": "--legacy",
            "help": "Force using the legacy `.git/hooks/` script shims instead of Git\n2.54+ config-based hooks. Not compatible with `--global`.",
            "help_first_line": "Force using the legacy `.git/hooks/` script shims instead of Git",
            "short": [],
            "long": ["legacy"],
            "hide": false,
            "global": false
          },
          {
            "name": "mise",
            "usage": "--mise",
            "help": "Use `mise x` to execute hooks. With this, it won't\nbe necessary to activate mise in order to run hooks\nwith mise tools.",
            "help_long": "Use `mise x` to execute hooks. With this, it won't\nbe necessary to activate mise in order to run hooks\nwith mise tools.\n\nSet HK_MISE=1 to make this default behavior.",
            "help_first_line": "Use `mise x` to execute hooks. With this, it won't",
            "short": [],
            "long": ["mise"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "effect": "write",
        "hide": false,
        "help": "Sets up git hooks to run hk",
        "help_long": "Sets up git hooks to run hk.\n\nThe recommended setup is `hk install --global`, which installs hooks once into the user's `~/.gitconfig` so every repository on the machine picks them up automatically. In a project without an `hk.pkl`, the installed hook exits silently — no-op — so it's safe to enable everywhere. Requires Git 2.54+.\n\nWithout `--global`, hooks are installed into the current repo only. On Git 2.54+ this uses config-based hooks (`hook.<name>.command`), which keeps `.git/hooks/` untouched and composes cleanly with other hook managers. On older Git it falls back to writing script shims.\n\nIf hk is already configured globally (any `hook.hk-*` entry in `~/.gitconfig`), the per-repo install is skipped — and any stale local hooks are cleaned up — so the global install remains the single source of truth and hk doesn't fire twice per event. Pass `--force-local` to install local hooks anyway.",
        "name": "install",
        "aliases": ["i"],
        "hidden_aliases": [],
        "examples": []
      },
      "mcp": {
        "full_cmd": ["mcp"],
        "usage": "mcp [--root <PATH>]",
        "subcommands": {},
        "args": [],
        "flags": [
          {
            "name": "root",
            "usage": "--root <PATH>",
            "help": "Restrict hk tools to this project root (defaults to the current directory)",
            "help_first_line": "Restrict hk tools to this project root (defaults to the current directory)",
            "short": [],
            "long": ["root"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          }
        ],
        "mounts": [],
        "hide": false,
        "help": "Runs an MCP server for coding agents over standard input/output",
        "name": "mcp",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "migrate": {
        "full_cmd": ["migrate"],
        "usage": "migrate <SUBCOMMAND>",
        "subcommands": {
          "pre-commit": {
            "full_cmd": ["migrate", "pre-commit"],
            "usage": "migrate pre-commit [FLAGS]",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "config",
                "usage": "-c --config <CONFIG>",
                "help": "Path to .pre-commit-config.yaml",
                "help_first_line": "Path to .pre-commit-config.yaml",
                "short": ["c"],
                "long": ["config"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "CONFIG",
                  "usage": "<CONFIG>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                },
                "default": [".pre-commit-config.yaml"]
              },
              {
                "name": "force",
                "usage": "-f --force",
                "help": "Overwrite existing hk.pkl file",
                "help_first_line": "Overwrite existing hk.pkl file",
                "short": ["f"],
                "long": ["force"],
                "hide": false,
                "global": false
              },
              {
                "name": "output",
                "usage": "-o --output <OUTPUT>",
                "help": "Output path for hk.pkl",
                "help_first_line": "Output path for hk.pkl",
                "short": ["o"],
                "long": ["output"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "OUTPUT",
                  "usage": "<OUTPUT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                },
                "default": ["hk.pkl"]
              },
              {
                "name": "hk-pkl-root",
                "usage": "--hk-pkl-root <HK_PKL_ROOT>",
                "help": "Root path for hk pkl files (e.g., \"pkl\" for local, or package URL prefix) If specified, will use {root}/Config.pkl and {root}/Builtins.pkl",
                "help_first_line": "Root path for hk pkl files (e.g., \"pkl\" for local, or package URL prefix) If specified, will use {root}/Config.pkl and {root}/Builtins.pkl",
                "short": [],
                "long": ["hk-pkl-root"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "HK_PKL_ROOT",
                  "usage": "<HK_PKL_ROOT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              }
            ],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Migrate from pre-commit to hk",
            "name": "pre-commit",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "subcommand_required": true,
        "help": "Migrate from other hook managers to hk",
        "name": "migrate",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "run": {
        "full_cmd": ["run"],
        "usage": "run [FLAGS] [FILES]… <SUBCOMMAND>",
        "subcommands": {
          "commit-msg": {
            "full_cmd": ["run", "commit-msg"],
            "usage": "run commit-msg [FLAGS] <COMMIT_MSG_FILE> [FILES]…",
            "subcommands": {},
            "args": [
              {
                "name": "COMMIT_MSG_FILE",
                "usage": "<COMMIT_MSG_FILE>",
                "help": "The path to the file that contains the commit message",
                "help_first_line": "The path to the file that contains the commit message",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "commit-msg",
            "aliases": ["cm"],
            "hidden_aliases": [],
            "examples": []
          },
          "post-checkout": {
            "full_cmd": ["run", "post-checkout"],
            "usage": "run post-checkout [FLAGS] <ARGS>…",
            "subcommands": {},
            "args": [
              {
                "name": "PREV_HEAD",
                "usage": "<PREV_HEAD>",
                "help": "SHA of the HEAD before the checkout",
                "help_first_line": "SHA of the HEAD before the checkout",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "NEW_HEAD",
                "usage": "<NEW_HEAD>",
                "help": "SHA of the new HEAD",
                "help_first_line": "SHA of the new HEAD",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "IS_BRANCH_CHECKOUT",
                "usage": "<IS_BRANCH_CHECKOUT>",
                "help": "Flag indicating whether the checkout was a branch checkout (1) or file checkout (0)",
                "help_first_line": "Flag indicating whether the checkout was a branch checkout (1) or file checkout (0)",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "post-checkout",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "post-commit": {
            "full_cmd": ["run", "post-commit"],
            "usage": "run post-commit [FLAGS] [FILES]…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "post-commit",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "post-merge": {
            "full_cmd": ["run", "post-merge"],
            "usage": "run post-merge [FLAGS] <IS_SQUASH> [FILES]…",
            "subcommands": {},
            "args": [
              {
                "name": "IS_SQUASH",
                "usage": "<IS_SQUASH>",
                "help": "Flag indicating whether the merge was a squash merge (1) or not (0)",
                "help_first_line": "Flag indicating whether the merge was a squash merge (1) or not (0)",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "post-merge",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "post-rewrite": {
            "full_cmd": ["run", "post-rewrite"],
            "usage": "run post-rewrite [FLAGS] <COMMAND> [FILES]…",
            "subcommands": {},
            "args": [
              {
                "name": "COMMAND",
                "usage": "<COMMAND>",
                "help": "The command that triggered the rewrite (\"amend\" or \"rebase\")",
                "help_first_line": "The command that triggered the rewrite (\"amend\" or \"rebase\")",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "post-rewrite",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "pre-commit": {
            "full_cmd": ["run", "pre-commit"],
            "usage": "run pre-commit [FLAGS] [FILES]…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "help": "Sets up git hooks to run hk",
            "name": "pre-commit",
            "aliases": ["pc"],
            "hidden_aliases": [],
            "examples": []
          },
          "pre-push": {
            "full_cmd": ["run", "pre-push"],
            "usage": "run pre-push [FLAGS] [ARGS]…",
            "subcommands": {},
            "args": [
              {
                "name": "REMOTE",
                "usage": "[REMOTE]",
                "help": "Remote name",
                "help_first_line": "Remote name",
                "required": false,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "URL",
                "usage": "[URL]",
                "help": "Remote URL",
                "help_first_line": "Remote URL",
                "required": false,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "pre-push",
            "aliases": ["pp"],
            "hidden_aliases": [],
            "examples": []
          },
          "pre-rebase": {
            "full_cmd": ["run", "pre-rebase"],
            "usage": "run pre-rebase [FLAGS] <ARGS>…",
            "subcommands": {},
            "args": [
              {
                "name": "UPSTREAM",
                "usage": "<UPSTREAM>",
                "help": "The upstream from which the series was forked",
                "help_first_line": "The upstream from which the series was forked",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "BRANCH",
                "usage": "[BRANCH]",
                "help": "The branch being rebased (unset when rebasing the current branch)",
                "help_first_line": "The branch being rebased (unset when rebasing the current branch)",
                "required": false,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "pre-rebase",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "prepare-commit-msg": {
            "full_cmd": ["run", "prepare-commit-msg"],
            "usage": "run prepare-commit-msg [FLAGS] <ARGS>…",
            "subcommands": {},
            "args": [
              {
                "name": "COMMIT_MSG_FILE",
                "usage": "<COMMIT_MSG_FILE>",
                "help": "The path to the file that contains the commit message so far",
                "help_first_line": "The path to the file that contains the commit message so far",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "SOURCE",
                "usage": "[SOURCE]",
                "help": "The source of the commit message (e.g., \"message\", \"template\", \"merge\")",
                "help_first_line": "The source of the commit message (e.g., \"message\", \"template\", \"merge\")",
                "required": false,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "SHA",
                "usage": "[SHA]",
                "help": "The SHA of the commit being amended (if applicable)",
                "help_first_line": "The SHA of the commit being amended (if applicable)",
                "required": false,
                "double_dash": "Optional",
                "hide": false
              },
              {
                "name": "FILES",
                "usage": "[FILES]…",
                "help": "Run on specific files",
                "help_first_line": "Run on specific files",
                "required": false,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "all",
                "usage": "-a --all",
                "help": "Run on all files instead of just staged files",
                "help_first_line": "Run on all files instead of just staged files",
                "short": ["a"],
                "long": ["all"],
                "hide": false,
                "global": false
              },
              {
                "name": "check",
                "usage": "-c --check",
                "help": "Run check command instead of fix command",
                "help_first_line": "Run check command instead of fix command",
                "short": ["c"],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "exclude",
                "usage": "-e --exclude… <EXCLUDE>",
                "help": "Exclude files that otherwise would have been selected",
                "help_first_line": "Exclude files that otherwise would have been selected",
                "short": ["e"],
                "long": ["exclude"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "EXCLUDE",
                  "usage": "<EXCLUDE>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              },
              {
                "name": "glob",
                "usage": "-g --glob… <GLOB>",
                "help": "Run on files that match these glob patterns",
                "help_first_line": "Run on files that match these glob patterns",
                "short": ["g"],
                "long": ["glob"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "GLOB",
                  "usage": "<GLOB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "json",
                "usage": "-J --json",
                "help": "Output the plan as JSON when combined with --plan or --why",
                "help_first_line": "Output the plan as JSON when combined with --plan or --why",
                "short": ["J"],
                "long": ["json"],
                "hide": false,
                "global": false
              },
              {
                "name": "plan",
                "usage": "-P --plan",
                "help": "Print the plan instead of running the hook",
                "help_first_line": "Print the plan instead of running the hook",
                "short": ["P"],
                "long": ["plan"],
                "hide": false,
                "global": false
              },
              {
                "name": "step",
                "usage": "-S --step… <STEP>",
                "help": "Run only specific step(s)",
                "help_first_line": "Run only specific step(s)",
                "short": ["S"],
                "long": ["step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "why",
                "usage": "-W --why <STEP>",
                "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
                "short": ["W"],
                "long": ["why"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "fail-fast",
                "usage": "--fail-fast",
                "help": "Abort on first failure",
                "help_first_line": "Abort on first failure",
                "short": [],
                "long": ["fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "files0-from",
                "usage": "--files0-from <PATH>",
                "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
                "short": [],
                "long": ["files0-from"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "format",
                "usage": "--format <FORMAT>",
                "help": "Select human or machine-readable execution output",
                "help_first_line": "Select human or machine-readable execution output",
                "short": [],
                "long": ["format"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FORMAT",
                  "usage": "<FORMAT>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["human", "json", "jsonl"]
                  }
                }
              },
              {
                "name": "from-hook",
                "usage": "--from-hook",
                "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
                "short": [],
                "long": ["from-hook"],
                "hide": true,
                "global": false
              },
              {
                "name": "from-ref",
                "usage": "--from-ref <FROM_REF>",
                "help": "Start reference for checking files (requires --to-ref)",
                "help_first_line": "Start reference for checking files (requires --to-ref)",
                "short": [],
                "long": ["from-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "FROM_REF",
                  "usage": "<FROM_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "no-fail-fast",
                "usage": "--no-fail-fast",
                "help": "Continue on failures (opposite of --fail-fast)",
                "help_first_line": "Continue on failures (opposite of --fail-fast)",
                "short": [],
                "long": ["no-fail-fast"],
                "hide": false,
                "global": false
              },
              {
                "name": "no-stage",
                "usage": "--no-stage",
                "help": "Disable auto-staging of fixed files",
                "help_first_line": "Disable auto-staging of fixed files",
                "short": [],
                "long": ["no-stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "pr",
                "usage": "--pr",
                "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
                "short": [],
                "long": ["pr"],
                "hide": false,
                "global": false
              },
              {
                "name": "safe",
                "usage": "--safe",
                "help": "Reject commands with unknown or destructive effects before execution",
                "help_first_line": "Reject commands with unknown or destructive effects before execution",
                "short": [],
                "long": ["safe"],
                "hide": false,
                "global": false
              },
              {
                "name": "sarif",
                "usage": "--sarif <PATH>",
                "help": "Write normalized diagnostics as SARIF",
                "help_first_line": "Write normalized diagnostics as SARIF",
                "short": [],
                "long": ["sarif"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "PATH",
                  "usage": "<PATH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "skip-step",
                "usage": "--skip-step… <STEP>",
                "help": "Skip specific step(s)",
                "help_first_line": "Skip specific step(s)",
                "short": [],
                "long": ["skip-step"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STEP",
                  "usage": "<STEP>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "stage",
                "usage": "--stage",
                "help": "Enable auto-staging of fixed files",
                "help_first_line": "Enable auto-staging of fixed files",
                "short": [],
                "long": ["stage"],
                "hide": false,
                "global": false
              },
              {
                "name": "staged",
                "usage": "--staged",
                "help": "Run on staged files only without stashing unstaged changes",
                "help_first_line": "Run on staged files only without stashing unstaged changes",
                "short": [],
                "long": ["staged"],
                "hide": false,
                "global": false
              },
              {
                "name": "stash",
                "usage": "--stash <STASH>",
                "help": "Stash method to use for git hooks",
                "help_first_line": "Stash method to use for git hooks",
                "short": [],
                "long": ["stash"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "STASH",
                  "usage": "<STASH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false,
                  "choices": {
                    "choices": ["git", "patch-file", "none"]
                  }
                }
              },
              {
                "name": "stats",
                "usage": "--stats",
                "help": "Display statistics about files matching each step",
                "help_first_line": "Display statistics about files matching each step",
                "short": [],
                "long": ["stats"],
                "hide": false,
                "global": false
              },
              {
                "name": "to-ref",
                "usage": "--to-ref <TO_REF>",
                "help": "End reference for checking files (requires --from-ref)",
                "help_first_line": "End reference for checking files (requires --from-ref)",
                "short": [],
                "long": ["to-ref"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "TO_REF",
                  "usage": "<TO_REF>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              },
              {
                "name": "unstaged",
                "usage": "--unstaged",
                "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
                "short": [],
                "long": ["unstaged"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "hide": false,
            "name": "prepare-commit-msg",
            "aliases": ["pcm"],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [
          {
            "name": "OTHER",
            "usage": "[OTHER]",
            "required": false,
            "double_dash": "Optional",
            "hide": true
          },
          {
            "name": "FILES",
            "usage": "[FILES]…",
            "help": "Run on specific files",
            "help_first_line": "Run on specific files",
            "required": false,
            "double_dash": "Optional",
            "var": true,
            "hide": false
          }
        ],
        "flags": [
          {
            "name": "all",
            "usage": "-a --all",
            "help": "Run on all files instead of just staged files",
            "help_first_line": "Run on all files instead of just staged files",
            "short": ["a"],
            "long": ["all"],
            "hide": false,
            "global": false
          },
          {
            "name": "check",
            "usage": "-c --check",
            "help": "Run check command instead of fix command",
            "help_first_line": "Run check command instead of fix command",
            "short": ["c"],
            "long": ["check"],
            "hide": false,
            "global": false
          },
          {
            "name": "exclude",
            "usage": "-e --exclude… <EXCLUDE>",
            "help": "Exclude files that otherwise would have been selected",
            "help_first_line": "Exclude files that otherwise would have been selected",
            "short": ["e"],
            "long": ["exclude"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "EXCLUDE",
              "usage": "<EXCLUDE>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fix",
            "usage": "-f --fix",
            "help": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "help_first_line": "Run fix command instead of check command (this is the default behavior unless HK_FIX=0)",
            "short": ["f"],
            "long": ["fix"],
            "hide": false,
            "global": false
          },
          {
            "name": "glob",
            "usage": "-g --glob… <GLOB>",
            "help": "Run on files that match these glob patterns",
            "help_first_line": "Run on files that match these glob patterns",
            "short": ["g"],
            "long": ["glob"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "GLOB",
              "usage": "<GLOB>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "json",
            "usage": "-J --json",
            "help": "Output the plan as JSON when combined with --plan or --why",
            "help_first_line": "Output the plan as JSON when combined with --plan or --why",
            "short": ["J"],
            "long": ["json"],
            "hide": false,
            "global": false
          },
          {
            "name": "plan",
            "usage": "-P --plan",
            "help": "Print the plan instead of running the hook",
            "help_first_line": "Print the plan instead of running the hook",
            "short": ["P"],
            "long": ["plan"],
            "hide": false,
            "global": false
          },
          {
            "name": "step",
            "usage": "-S --step… <STEP>",
            "help": "Run only specific step(s)",
            "help_first_line": "Run only specific step(s)",
            "short": ["S"],
            "long": ["step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "why",
            "usage": "-W --why <STEP>",
            "help": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "help_first_line": "Show detailed reasons for inclusion/exclusion. Pass a step name to focus on one step, or omit the value to show reasons for all steps. Implies --plan",
            "short": ["W"],
            "long": ["why"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "fail-fast",
            "usage": "--fail-fast",
            "help": "Abort on first failure",
            "help_first_line": "Abort on first failure",
            "short": [],
            "long": ["fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "files0-from",
            "usage": "--files0-from <PATH>",
            "help": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "help_first_line": "Read the exact file list from a NUL-delimited file, or from stdin with `-` (except hooks that reserve stdin)",
            "short": [],
            "long": ["files0-from"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "format",
            "usage": "--format <FORMAT>",
            "help": "Select human or machine-readable execution output",
            "help_first_line": "Select human or machine-readable execution output",
            "short": [],
            "long": ["format"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FORMAT",
              "usage": "<FORMAT>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["human", "json", "jsonl"]
              }
            }
          },
          {
            "name": "from-hook",
            "usage": "--from-hook",
            "help": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "help_first_line": "Invoked by an installed git hook — gracefully exit 0 when no hk.pkl is present or the event isn't defined. Set automatically by `hk install`",
            "short": [],
            "long": ["from-hook"],
            "hide": true,
            "global": false
          },
          {
            "name": "from-ref",
            "usage": "--from-ref <FROM_REF>",
            "help": "Start reference for checking files (requires --to-ref)",
            "help_first_line": "Start reference for checking files (requires --to-ref)",
            "short": [],
            "long": ["from-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "FROM_REF",
              "usage": "<FROM_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "no-fail-fast",
            "usage": "--no-fail-fast",
            "help": "Continue on failures (opposite of --fail-fast)",
            "help_first_line": "Continue on failures (opposite of --fail-fast)",
            "short": [],
            "long": ["no-fail-fast"],
            "hide": false,
            "global": false
          },
          {
            "name": "no-stage",
            "usage": "--no-stage",
            "help": "Disable auto-staging of fixed files",
            "help_first_line": "Disable auto-staging of fixed files",
            "short": [],
            "long": ["no-stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "pr",
            "usage": "--pr",
            "help": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "help_first_line": "Check only files changed in the current PR/branch (shortcut for --from-ref DEFAULT_BRANCH --to-ref HEAD)",
            "short": [],
            "long": ["pr"],
            "hide": false,
            "global": false
          },
          {
            "name": "safe",
            "usage": "--safe",
            "help": "Reject commands with unknown or destructive effects before execution",
            "help_first_line": "Reject commands with unknown or destructive effects before execution",
            "short": [],
            "long": ["safe"],
            "hide": false,
            "global": false
          },
          {
            "name": "sarif",
            "usage": "--sarif <PATH>",
            "help": "Write normalized diagnostics as SARIF",
            "help_first_line": "Write normalized diagnostics as SARIF",
            "short": [],
            "long": ["sarif"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "PATH",
              "usage": "<PATH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "skip-step",
            "usage": "--skip-step… <STEP>",
            "help": "Skip specific step(s)",
            "help_first_line": "Skip specific step(s)",
            "short": [],
            "long": ["skip-step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "stage",
            "usage": "--stage",
            "help": "Enable auto-staging of fixed files",
            "help_first_line": "Enable auto-staging of fixed files",
            "short": [],
            "long": ["stage"],
            "hide": false,
            "global": false
          },
          {
            "name": "staged",
            "usage": "--staged",
            "help": "Run on staged files only without stashing unstaged changes",
            "help_first_line": "Run on staged files only without stashing unstaged changes",
            "short": [],
            "long": ["staged"],
            "hide": false,
            "global": false
          },
          {
            "name": "stash",
            "usage": "--stash <STASH>",
            "help": "Stash method to use for git hooks",
            "help_first_line": "Stash method to use for git hooks",
            "short": [],
            "long": ["stash"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "STASH",
              "usage": "<STASH>",
              "required": true,
              "double_dash": "Optional",
              "hide": false,
              "choices": {
                "choices": ["git", "patch-file", "none"]
              }
            }
          },
          {
            "name": "stats",
            "usage": "--stats",
            "help": "Display statistics about files matching each step",
            "help_first_line": "Display statistics about files matching each step",
            "short": [],
            "long": ["stats"],
            "hide": false,
            "global": false
          },
          {
            "name": "to-ref",
            "usage": "--to-ref <TO_REF>",
            "help": "End reference for checking files (requires --from-ref)",
            "help_first_line": "End reference for checking files (requires --from-ref)",
            "short": [],
            "long": ["to-ref"],
            "hide": false,
            "global": false,
            "arg": {
              "name": "TO_REF",
              "usage": "<TO_REF>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "unstaged",
            "usage": "--unstaged",
            "help": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "help_first_line": "Run on unstaged and untracked files only (excludes staged files), without stashing. Useful for linting files an agent just changed",
            "short": [],
            "long": ["unstaged"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "hide": false,
        "help": "Run a hook",
        "name": "run",
        "aliases": ["r"],
        "hidden_aliases": [],
        "examples": []
      },
      "sponsors": {
        "full_cmd": ["sponsors"],
        "usage": "sponsors",
        "subcommands": {},
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Show the companies sponsoring hk and the jdx.dev open source tools",
        "name": "sponsors",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "test": {
        "full_cmd": ["test"],
        "usage": "test [FLAGS]",
        "subcommands": {},
        "args": [],
        "flags": [
          {
            "name": "list",
            "usage": "--list",
            "help": "List tests without running",
            "help_first_line": "List tests without running",
            "short": [],
            "long": ["list"],
            "hide": false,
            "global": false
          },
          {
            "name": "name",
            "usage": "--name… <NAME>",
            "help": "Filter by test name (repeatable)",
            "help_first_line": "Filter by test name (repeatable)",
            "short": [],
            "long": ["name"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "NAME",
              "usage": "<NAME>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          },
          {
            "name": "step",
            "usage": "--step… <STEP>",
            "help": "Filter by step name (repeatable)",
            "help_first_line": "Filter by step name (repeatable)",
            "short": [],
            "long": ["step"],
            "var": true,
            "hide": false,
            "global": false,
            "arg": {
              "name": "STEP",
              "usage": "<STEP>",
              "required": true,
              "double_dash": "Optional",
              "hide": false
            }
          }
        ],
        "mounts": [],
        "hide": false,
        "help": "Run step-defined tests",
        "name": "test",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "uninstall": {
        "full_cmd": ["uninstall"],
        "usage": "uninstall [--global]",
        "subcommands": {},
        "args": [],
        "flags": [
          {
            "name": "global",
            "usage": "--global",
            "help": "Remove hk hooks from the user's global git config (`~/.gitconfig`).",
            "help_first_line": "Remove hk hooks from the user's global git config (`~/.gitconfig`).",
            "short": [],
            "long": ["global"],
            "hide": false,
            "global": false
          }
        ],
        "mounts": [],
        "effect": "destructive",
        "hide": false,
        "help": "Removes hk hooks from the current git repository",
        "name": "uninstall",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "usage": {
        "full_cmd": ["usage"],
        "usage": "usage",
        "subcommands": {},
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": true,
        "help": "Generates a usage spec for the CLI",
        "help_long": "Generates a usage spec for the CLI\n\nhttps://usage.jdx.dev",
        "name": "usage",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "util": {
        "full_cmd": ["util"],
        "usage": "util <SUBCOMMAND>",
        "subcommands": {
          "check-added-large-files": {
            "full_cmd": ["util", "check-added-large-files"],
            "usage": "util check-added-large-files [--maxkb <MAXKB>] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "maxkb",
                "usage": "--maxkb <MAXKB>",
                "help": "Maximum file size in kilobytes (default: 500)",
                "help_first_line": "Maximum file size in kilobytes (default: 500)",
                "short": [],
                "long": ["maxkb"],
                "hide": false,
                "global": false,
                "arg": {
                  "name": "MAXKB",
                  "usage": "<MAXKB>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                },
                "default": ["500"]
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for large files being added to repository",
            "name": "check-added-large-files",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-byte-order-marker": {
            "full_cmd": ["util", "check-byte-order-marker"],
            "usage": "util check-byte-order-marker [-d --diff] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "diff",
                "usage": "-d --diff",
                "help": "Output a diff of the change",
                "help_first_line": "Output a diff of the change",
                "short": ["d"],
                "long": ["diff"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for UTF-8 byte order marker (BOM)",
            "name": "check-byte-order-marker",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-case-conflict": {
            "full_cmd": ["util", "check-case-conflict"],
            "usage": "util check-case-conflict <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check for case conflicts",
                "help_first_line": "Files to check for case conflicts",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for case-insensitive filename conflicts",
            "name": "check-case-conflict",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-conventional-commit": {
            "full_cmd": ["util", "check-conventional-commit"],
            "usage": "util check-conventional-commit [--allowed-types… <ALLOWED_TYPES>] <COMMIT_MSG_FILE>",
            "subcommands": {},
            "args": [
              {
                "name": "COMMIT_MSG_FILE",
                "usage": "<COMMIT_MSG_FILE>",
                "help": "Commit message file to check",
                "help_first_line": "Commit message file to check",
                "required": true,
                "double_dash": "Optional",
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "allowed-types",
                "usage": "--allowed-types… <ALLOWED_TYPES>",
                "short": [],
                "long": ["allowed-types"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "ALLOWED_TYPES",
                  "usage": "<ALLOWED_TYPES>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                },
                "default": [
                  "build,chore,ci,docs,feat,fix,perf,refactor,revert,style,test"
                ]
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for conventional commit message",
            "help_long": "Check for conventional commit message\n\nTitles starting with `fixup! `, `squash! `, or `amend! ` (temporary commits created for `git rebase --autosquash`) skip validation.",
            "name": "check-conventional-commit",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-executables-have-shebangs": {
            "full_cmd": ["util", "check-executables-have-shebangs"],
            "usage": "util check-executables-have-shebangs <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check that executable files have shebangs",
            "name": "check-executables-have-shebangs",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-merge-conflict": {
            "full_cmd": ["util", "check-merge-conflict"],
            "usage": "util check-merge-conflict [--assume-in-merge] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "assume-in-merge",
                "usage": "--assume-in-merge",
                "help": "Run the check even when not in a merge",
                "help_first_line": "Run the check even when not in a merge",
                "short": [],
                "long": ["assume-in-merge"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for merge conflict markers",
            "name": "check-merge-conflict",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "check-symlinks": {
            "full_cmd": ["util", "check-symlinks"],
            "usage": "util check-symlinks <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check for broken symlinks",
            "name": "check-symlinks",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "detect-private-key": {
            "full_cmd": ["util", "detect-private-key"],
            "usage": "util detect-private-key <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Detect private keys in files",
            "name": "detect-private-key",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "end-of-file-fixer": {
            "full_cmd": ["util", "end-of-file-fixer"],
            "usage": "util end-of-file-fixer [-d --diff] [-f --fix] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check/fix",
                "help_first_line": "Files to check/fix",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "diff",
                "usage": "-d --diff",
                "help": "Output a diff of the change. Cannot use with `fix`",
                "help_first_line": "Output a diff of the change. Cannot use with `fix`",
                "short": ["d"],
                "long": ["diff"],
                "hide": false,
                "global": false
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Fix files to end with exactly one newline",
                "help_first_line": "Fix files to end with exactly one newline",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Check for and optionally fix missing final newlines",
            "name": "end-of-file-fixer",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "fix-byte-order-marker": {
            "full_cmd": ["util", "fix-byte-order-marker"],
            "usage": "util fix-byte-order-marker <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to remove BOM from",
                "help_first_line": "Files to remove BOM from",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Remove UTF-8 byte order marker (BOM)",
            "name": "fix-byte-order-marker",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "fix-smart-quotes": {
            "full_cmd": ["util", "fix-smart-quotes"],
            "usage": "util fix-smart-quotes [--check] [-d --diff] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check/fix",
                "help_first_line": "Files to check/fix",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "check",
                "usage": "--check",
                "help": "Check for smart quotes without fixing them",
                "help_first_line": "Check for smart quotes without fixing them",
                "short": [],
                "long": ["check"],
                "hide": false,
                "global": false
              },
              {
                "name": "diff",
                "usage": "-d --diff",
                "help": "Output a diff of the change (implies `--check`)",
                "help_first_line": "Output a diff of the change (implies `--check`)",
                "short": ["d"],
                "long": ["diff"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Replace UTF-8 smart quotes",
            "name": "fix-smart-quotes",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "mixed-line-ending": {
            "full_cmd": ["util", "mixed-line-ending"],
            "usage": "util mixed-line-ending [-d --diff] [-f --fix] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check or fix",
                "help_first_line": "Files to check or fix",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "diff",
                "usage": "-d --diff",
                "help": "Output a diff of the change. Cannot use with `fix`",
                "help_first_line": "Output a diff of the change. Cannot use with `fix`",
                "short": ["d"],
                "long": ["diff"],
                "hide": false,
                "global": false
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Fix mixed line endings by normalizing to LF",
                "help_first_line": "Fix mixed line endings by normalizing to LF",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Detect and fix mixed line endings",
            "name": "mixed-line-ending",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "no-commit-to-branch": {
            "full_cmd": ["util", "no-commit-to-branch"],
            "usage": "util no-commit-to-branch [--branch… <BRANCH>]",
            "subcommands": {},
            "args": [],
            "flags": [
              {
                "name": "branch",
                "usage": "--branch… <BRANCH>",
                "help": "Branch names to protect (default: main, master)",
                "help_first_line": "Branch names to protect (default: main, master)",
                "short": [],
                "long": ["branch"],
                "var": true,
                "hide": false,
                "global": false,
                "arg": {
                  "name": "BRANCH",
                  "usage": "<BRANCH>",
                  "required": true,
                  "double_dash": "Optional",
                  "hide": false
                }
              }
            ],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Prevent commits to specific branches",
            "name": "no-commit-to-branch",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "python-check-ast": {
            "full_cmd": ["util", "python-check-ast"],
            "usage": "util python-check-ast <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Check Python files for valid syntax",
            "name": "python-check-ast",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "python-debug-statements": {
            "full_cmd": ["util", "python-debug-statements"],
            "usage": "util python-debug-statements <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check",
                "help_first_line": "Files to check",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [],
            "mounts": [],
            "effect": "read",
            "hide": false,
            "help": "Detect Python debug statements",
            "name": "python-debug-statements",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          },
          "trailing-whitespace": {
            "full_cmd": ["util", "trailing-whitespace"],
            "usage": "util trailing-whitespace [-d --diff] [-f --fix] <FILES>…",
            "subcommands": {},
            "args": [
              {
                "name": "FILES",
                "usage": "<FILES>…",
                "help": "Files to check/fix",
                "help_first_line": "Files to check/fix",
                "required": true,
                "double_dash": "Optional",
                "var": true,
                "hide": false
              }
            ],
            "flags": [
              {
                "name": "diff",
                "usage": "-d --diff",
                "help": "Output a diff of the change. Cannot use with `fix`",
                "help_first_line": "Output a diff of the change. Cannot use with `fix`",
                "short": ["d"],
                "long": ["diff"],
                "hide": false,
                "global": false
              },
              {
                "name": "fix",
                "usage": "-f --fix",
                "help": "Fix trailing whitespace by removing it",
                "help_first_line": "Fix trailing whitespace by removing it",
                "short": ["f"],
                "long": ["fix"],
                "hide": false,
                "global": false
              }
            ],
            "mounts": [],
            "effect": "write",
            "hide": false,
            "help": "Check for and optionally fix trailing whitespace",
            "name": "trailing-whitespace",
            "aliases": [],
            "hidden_aliases": [],
            "examples": []
          }
        },
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "subcommand_required": true,
        "help": "Utility commands for file operations",
        "name": "util",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "validate": {
        "full_cmd": ["validate"],
        "usage": "validate",
        "subcommands": {},
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Validate the config file",
        "name": "validate",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      },
      "version": {
        "full_cmd": ["version"],
        "usage": "version",
        "subcommands": {},
        "args": [],
        "flags": [],
        "mounts": [],
        "effect": "read",
        "hide": false,
        "help": "Print the version of hk",
        "name": "version",
        "aliases": [],
        "hidden_aliases": [],
        "examples": []
      }
    },
    "args": [],
    "flags": [
      {
        "name": "cd",
        "usage": "--cd <DIRECTORY>",
        "help": "Run as if hk was started in this directory",
        "help_first_line": "Run as if hk was started in this directory",
        "short": [],
        "long": ["cd"],
        "hide": false,
        "global": true,
        "arg": {
          "name": "DIRECTORY",
          "usage": "<DIRECTORY>",
          "required": true,
          "double_dash": "Optional",
          "hide": false
        }
      },
      {
        "name": "format",
        "usage": "--format <FORMAT>",
        "help": "Select human or machine-readable execution output",
        "help_first_line": "Select human or machine-readable execution output",
        "short": [],
        "long": ["format"],
        "hide": false,
        "global": false,
        "arg": {
          "name": "FORMAT",
          "usage": "<FORMAT>",
          "required": true,
          "double_dash": "Optional",
          "hide": false,
          "choices": {
            "choices": ["human", "json", "jsonl"]
          }
        },
        "default": ["human"]
      },
      {
        "name": "hkrc",
        "usage": "--hkrc <PATH>",
        "help": "Path to user configuration file (deprecated: use ~/.config/hk/config.pkl or hk.local.pkl)",
        "help_first_line": "Path to user configuration file (deprecated: use ~/.config/hk/config.pkl or hk.local.pkl)",
        "short": [],
        "long": ["hkrc"],
        "hide": true,
        "global": true,
        "arg": {
          "name": "PATH",
          "usage": "<PATH>",
          "required": true,
          "double_dash": "Optional",
          "hide": false
        }
      },
      {
        "name": "jobs",
        "usage": "-j --jobs <JOBS>",
        "help": "Number of jobs to run in parallel",
        "help_first_line": "Number of jobs to run in parallel",
        "short": ["j"],
        "long": ["jobs"],
        "hide": false,
        "global": true,
        "arg": {
          "name": "JOBS",
          "usage": "<JOBS>",
          "required": true,
          "double_dash": "Optional",
          "hide": false
        }
      },
      {
        "name": "profile",
        "usage": "-p --profile… <PROFILE>",
        "help": "Profiles to enable/disable prefix with ! to disable e.g. --profile slow --profile !fast",
        "help_first_line": "Profiles to enable/disable prefix with ! to disable e.g. --profile slow --profile !fast",
        "short": ["p"],
        "long": ["profile"],
        "var": true,
        "hide": false,
        "global": true,
        "arg": {
          "name": "PROFILE",
          "usage": "<PROFILE>",
          "required": true,
          "double_dash": "Optional",
          "hide": false
        }
      },
      {
        "name": "slow",
        "usage": "-s --slow",
        "help": "Shorthand for --profile=slow",
        "help_first_line": "Shorthand for --profile=slow",
        "short": ["s"],
        "long": ["slow"],
        "hide": false,
        "global": true
      },
      {
        "name": "verbose",
        "usage": "-v --verbose…",
        "help": "Enables verbose output",
        "help_first_line": "Enables verbose output",
        "short": ["v"],
        "long": ["verbose"],
        "var": true,
        "hide": false,
        "global": true,
        "count": true
      },
      {
        "name": "no-progress",
        "usage": "-n --no-progress",
        "help": "Disables progress output",
        "help_first_line": "Disables progress output",
        "short": ["n"],
        "long": ["no-progress"],
        "hide": false,
        "global": true
      },
      {
        "name": "quiet",
        "usage": "-q --quiet",
        "help": "Suppresses non-essential output (info messages, progress indicators). Failed-step diagnostics are still shown",
        "help_first_line": "Suppresses non-essential output (info messages, progress indicators). Failed-step diagnostics are still shown",
        "short": ["q"],
        "long": ["quiet"],
        "hide": false,
        "global": true
      },
      {
        "name": "silent",
        "usage": "--silent",
        "help": "Suppresses all output including warnings. Only errors are shown",
        "help_first_line": "Suppresses all output including warnings. Only errors are shown",
        "short": [],
        "long": ["silent"],
        "hide": false,
        "global": true
      },
      {
        "name": "trace",
        "usage": "--trace",
        "help": "Enable tracing spans and performance diagnostics",
        "help_first_line": "Enable tracing spans and performance diagnostics",
        "short": [],
        "long": ["trace"],
        "hide": false,
        "global": true
      },
      {
        "name": "json",
        "usage": "--json",
        "help": "Output in JSON format",
        "help_first_line": "Output in JSON format",
        "short": [],
        "long": ["json"],
        "hide": false,
        "global": true
      }
    ],
    "mounts": [],
    "hide": false,
    "name": "hk",
    "aliases": [],
    "hidden_aliases": [],
    "examples": []
  },
  "config": {
    "props": {}
  },
  "version": "1.55.0",
  "usage": "Usage: hk [OPTIONS] <COMMAND>",
  "complete": {},
  "about": "A tool for managing git hooks",
  "min_usage_version": "4.0"
}
