# Command Compatibility Matrix
Generated by `scripts/audit-command-compatibility.py` from command source, declared options, and unit test names.
Scope excludes `wpm` by release policy.
## Summary
| Metric | Value |
| --- | ---: |
| Commands | 177 |
| P0 hot commands | 33 |
| P1 commands | 43 |
| P2 commands | 101 |
| Declared unsupported options | 17 |
| Declared placeholder/no-op options | 16 |
| Commands without direct unit tests | 8 |
| P0 commands thin vs upstream | 0 |
| Commands with mapped local upstream source | 0 |
| Commands with performance probes | 0 |
| Performance/parity probe failures | 0 |
| Commands with >=5x slowest probe | 0 |
## Regex And Shell Boundary
- Shell parsing owns quoting, pipes, redirects, variable expansion, and shell glob expansion.
- Winuxsh may expand shell globs before invoking commands; PowerShell often passes native wildcard-looking arguments through, so WinuxCmd keeps command-level wildcard expansion only for file-like operands.
- Command regex is owned by the command: `grep`, `sed`, `find -regex`, `csplit`, `nl`, and `tac -r` must compile and evaluate patterns internally.
- Regex/script operands must stay literal and must not be reinterpreted as file globs. Examples: `grep -E 'a|b'`, `sed 's/a/b/'`, and `find . -name '*.cpp'` are command data, not path expansion requests.
## Focus Lists
- P0 commands thin vs upstream: _None._.
- Commands without direct unit tests: `locate`, `look`, `namei`, `time`, `updatedb`, `vmstat`, `w`, `whereis`.
- Commands with unsupported or placeholder options: `[`, `cat`, `cut`, `find`, `less`, `ls`, `mkdir`, `more`, `sed`, `touch`, `df`, `join`, `kill`, `stat`, `strings`, `hostname`, `mkpasswd`, `vmstat`.
- P0 commands without performance probes yet: `[`, `cat`, `cp`, `cut`, `date`, `diff`, `dirname`, `du`, `echo`, `egrep`, `env`, `fgrep`, `find`, `grep`, `head`, `less`, `ln`, `ls`, `mkdir`, `more`, `mv`, `pwd`, `rm`, `rmdir`, `sed`, `sort`, `tail`, `tee`, `test`, `touch`, `tr`, `wc`, `xargs`.
## Matrix
| Priority | Command | Family | Local LOC | Upstream LOC | Options | Unsupported | Placeholder | Tests | Perf probes | Worst perf | Perf fails | Source | Notes |
| --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | --- |
| P0 | `[` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 407 | 0 | 41 | 3 | 0 | 3 | 0 | | 0 | `src/commands/test_bracket.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P0 | `cat` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 358 | 0 | 10 | 0 | 1 | 20 | 0 | | 0 | `src/commands/cat.cpp` | Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P0 | `cp` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 945 | 0 | 36 | 0 | 0 | 27 | 0 | | 0 | `src/commands/cp.cpp` | No local upstream source file mapped yet. |
| P0 | `cut` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 561 | 0 | 12 | 1 | 0 | 30 | 0 | | 0 | `src/commands/cut.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P0 | `date` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 1320 | 0 | 13 | 0 | 0 | 28 | 0 | | 0 | `src/commands/date.cpp` | No local upstream source file mapped yet. |
| P0 | `dirname` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 150 | 0 | 1 | 0 | 0 | 9 | 0 | | 0 | `src/commands/dirname.cpp` | No local upstream source file mapped yet. |
| P0 | `du` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 1133 | 0 | 26 | 0 | 0 | 40 | 0 | | 0 | `src/commands/du.cpp` | No local upstream source file mapped yet. |
| P0 | `echo` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 418 | 0 | 5 | 0 | 0 | 29 | 0 | | 0 | `src/commands/echo.cpp` | No local upstream source file mapped yet. |
| P0 | `env` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 873 | 0 | 12 | 0 | 0 | 38 | 0 | | 0 | `src/commands/env.cpp` | No local upstream source file mapped yet. |
| P0 | `head` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 588 | 0 | 6 | 0 | 0 | 30 | 0 | | 0 | `src/commands/head.cpp` | No local upstream source file mapped yet. |
| P0 | `ln` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 455 | 0 | 15 | 0 | 0 | 13 | 0 | | 0 | `src/commands/ln.cpp` | No local upstream source file mapped yet. |
| P0 | `ls` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 3101 | 0 | 60 | 2 | 0 | 135 | 0 | | 0 | `src/commands/ls.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P0 | `mkdir` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 362 | 0 | 4 | 0 | 1 | 9 | 0 | | 0 | `src/commands/mkdir.cpp` | Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P0 | `mv` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 594 | 0 | 24 | 0 | 0 | 16 | 0 | | 0 | `src/commands/mv.cpp` | No local upstream source file mapped yet. |
| P0 | `pwd` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 227 | 0 | 2 | 0 | 0 | 20 | 0 | | 0 | `src/commands/pwd.cpp` | No local upstream source file mapped yet. |
| P0 | `rm` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 650 | 0 | 11 | 0 | 0 | 24 | 0 | | 0 | `src/commands/rm.cpp` | No local upstream source file mapped yet. |
| P0 | `rmdir` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 152 | 0 | 3 | 0 | 0 | 12 | 0 | | 0 | `src/commands/rmdir.cpp` | No local upstream source file mapped yet. |
| P0 | `sort` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 1737 | 0 | 30 | 0 | 0 | 67 | 0 | | 0 | `src/commands/sort.cpp` | No local upstream source file mapped yet. |
| P0 | `tail` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 1034 | 0 | 15 | 0 | 0 | 43 | 0 | | 0 | `src/commands/tail.cpp` | No local upstream source file mapped yet. |
| P0 | `tee` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 178 | 0 | 4 | 0 | 0 | 10 | 0 | | 0 | `src/commands/tee.cpp` | No local upstream source file mapped yet. |
| P0 | `test` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 540 | 0 | 39 | 0 | 0 | 11 | 0 | | 0 | `src/commands/test.cpp` | No local upstream source file mapped yet. |
| P0 | `touch` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 733 | 0 | 9 | 0 | 1 | 15 | 0 | | 0 | `src/commands/touch.cpp` | Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P0 | `tr` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 631 | 0 | 5 | 0 | 0 | 16 | 0 | | 0 | `src/commands/tr.cpp` | No local upstream source file mapped yet. |
| P0 | `wc` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 730 | 0 | 8 | 0 | 0 | 24 | 0 | | 0 | `src/commands/wc.cpp` | No local upstream source file mapped yet. |
| P0 | `diff` | [gnu-diffutils](https://www.gnu.org/software/diffutils/manual/) | 1325 | 0 | 44 | 0 | 0 | 16 | 0 | | 0 | `src/commands/diff.cpp` | No local upstream source file mapped yet. |
| P0 | `find` | [gnu-findutils](https://www.gnu.org/software/findutils/manual/) | 3480 | 0 | 101 | 0 | 1 | 106 | 0 | | 0 | `src/commands/find.cpp` | Regex behavior is command-owned, not shell-owned.
Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P0 | `xargs` | [gnu-findutils](https://www.gnu.org/software/findutils/manual/) | 1342 | 0 | 21 | 0 | 0 | 80 | 0 | | 0 | `src/commands/xargs.cpp` | No local upstream source file mapped yet. |
| P0 | `egrep` | [gnu-grep](https://www.gnu.org/software/grep/manual/) | 2346 | 0 | 49 | 0 | 0 | 2 | 0 | | 0 | `src/commands/grep.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P0 | `fgrep` | [gnu-grep](https://www.gnu.org/software/grep/manual/) | 2346 | 0 | 49 | 0 | 0 | 2 | 0 | | 0 | `src/commands/grep.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P0 | `grep` | [gnu-grep](https://www.gnu.org/software/grep/manual/) | 2346 | 0 | 49 | 0 | 0 | 87 | 0 | | 0 | `src/commands/grep.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P0 | `sed` | [gnu-sed](https://www.gnu.org/software/sed/manual/) | 2058 | 0 | 17 | 2 | 0 | 93 | 0 | | 0 | `src/commands/sed.cpp` | Regex behavior is command-owned, not shell-owned.
Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P0 | `less` | [less](https://www.greenwoodsoftware.com/less/) | 855 | 0 | 16 | 0 | 5 | 6 | 0 | | 0 | `src/commands/less.cpp` | Interactive terminal behavior needs PTY/manual coverage.
Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P0 | `more` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 669 | 0 | 10 | 0 | 1 | 10 | 0 | | 0 | `src/commands/more.cpp` | Interactive terminal behavior needs PTY/manual coverage.
Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P1 | `cygpath` | [cygpath](https://cygwin.com/cygwin-ug-net/cygpath.html) | 523 | 0 | 23 | 0 | 0 | 12 | 0 | | 0 | `src/commands/cygpath.cpp` | No local upstream source file mapped yet. |
| P1 | `strings` | [gnu-binutils](https://www.gnu.org/software/binutils/) | 398 | 0 | 12 | 0 | 3 | 11 | 0 | | 0 | `src/commands/strings.cpp` | Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P1 | `b2sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 374 | 0 | 11 | 0 | 0 | 24 | 0 | | 0 | `src/commands/b2sum.cpp` | No local upstream source file mapped yet. |
| P1 | `basename` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 165 | 0 | 6 | 0 | 0 | 16 | 0 | | 0 | `src/commands/basename.cpp` | No local upstream source file mapped yet. |
| P1 | `chgrp` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 525 | 0 | 14 | 0 | 0 | 16 | 0 | | 0 | `src/commands/chgrp.cpp` | No local upstream source file mapped yet. |
| P1 | `chmod` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 663 | 0 | 13 | 0 | 0 | 20 | 0 | | 0 | `src/commands/chmod.cpp` | No local upstream source file mapped yet. |
| P1 | `chown` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 651 | 0 | 14 | 0 | 0 | 23 | 0 | | 0 | `src/commands/chown.cpp` | No local upstream source file mapped yet. |
| P1 | `cksum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 678 | 0 | 15 | 0 | 0 | 20 | 0 | | 0 | `src/commands/cksum.cpp` | No local upstream source file mapped yet. |
| P1 | `comm` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 420 | 0 | 8 | 0 | 0 | 16 | 0 | | 0 | `src/commands/comm.cpp` | No local upstream source file mapped yet. |
| P1 | `csplit` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 576 | 0 | 8 | 0 | 0 | 16 | 0 | | 0 | `src/commands/csplit.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P1 | `dd` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 583 | 0 | 13 | 0 | 0 | 10 | 0 | | 0 | `src/commands/dd.cpp` | No local upstream source file mapped yet. |
| P1 | `df` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 998 | 0 | 16 | 0 | 1 | 19 | 0 | | 0 | `src/commands/df.cpp` | Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P1 | `dir` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 305 | 0 | 61 | 0 | 0 | 7 | 0 | | 0 | `src/commands/dir.cpp` | No local upstream source file mapped yet. |
| P1 | `fmt` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 671 | 0 | 12 | 0 | 0 | 20 | 0 | | 0 | `src/commands/fmt.cpp` | No local upstream source file mapped yet. |
| P1 | `fold` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 348 | 0 | 4 | 0 | 0 | 20 | 0 | | 0 | `src/commands/fold.cpp` | No local upstream source file mapped yet. |
| P1 | `install` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 618 | 0 | 19 | 0 | 0 | 19 | 0 | | 0 | `src/commands/install.cpp` | No local upstream source file mapped yet. |
| P1 | `join` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 625 | 0 | 14 | 1 | 0 | 12 | 0 | | 0 | `src/commands/join.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P1 | `kill` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 797 | 0 | 86 | 1 | 2 | 24 | 0 | | 0 | `src/commands/kill.cpp` | Signal conversion follows GNU/procps behavior; Windows signal numbers are aligned to Cygwin/MSYS local references.
Has explicitly unsupported declared option(s).
Has compatibility placeholder/no-op option(s).
No local upstream source file mapped yet. |
| P1 | `md5sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 391 | 0 | 10 | 0 | 0 | 22 | 0 | | 0 | `src/commands/md5sum.cpp` | No local upstream source file mapped yet. |
| P1 | `mktemp` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 470 | 0 | 6 | 0 | 0 | 11 | 0 | | 0 | `src/commands/mktemp.cpp` | No local upstream source file mapped yet. |
| P1 | `nl` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 422 | 0 | 11 | 0 | 0 | 13 | 0 | | 0 | `src/commands/nl.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P1 | `od` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 803 | 0 | 20 | 0 | 0 | 20 | 0 | | 0 | `src/commands/od.cpp` | No local upstream source file mapped yet. |
| P1 | `paste` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 403 | 0 | 3 | 0 | 0 | 12 | 0 | | 0 | `src/commands/paste.cpp` | No local upstream source file mapped yet. |
| P1 | `pr` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 883 | 0 | 31 | 0 | 0 | 14 | 0 | | 0 | `src/commands/pr.cpp` | No local upstream source file mapped yet. |
| P1 | `printf` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 604 | 0 | 2 | 0 | 0 | 9 | 0 | | 0 | `src/commands/printf.cpp` | No local upstream source file mapped yet. |
| P1 | `readlink` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 474 | 0 | 8 | 0 | 0 | 15 | 0 | | 0 | `src/commands/readlink.cpp` | No local upstream source file mapped yet. |
| P1 | `realpath` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 428 | 0 | 11 | 0 | 0 | 19 | 0 | | 0 | `src/commands/realpath.cpp` | No local upstream source file mapped yet. |
| P1 | `seq` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 493 | 0 | 32 | 0 | 0 | 24 | 0 | | 0 | `src/commands/seq.cpp` | No local upstream source file mapped yet. |
| P1 | `sha224sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 332 | 0 | 10 | 0 | 0 | 21 | 0 | | 0 | `src/commands/sha224sum.cpp` | No local upstream source file mapped yet. |
| P1 | `sha384sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 332 | 0 | 10 | 0 | 0 | 21 | 0 | | 0 | `src/commands/sha384sum.cpp` | No local upstream source file mapped yet. |
| P1 | `sha512sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 402 | 0 | 10 | 0 | 0 | 21 | 0 | | 0 | `src/commands/sha512sum.cpp` | No local upstream source file mapped yet. |
| P1 | `shuf` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 797 | 0 | 8 | 0 | 0 | 24 | 0 | | 0 | `src/commands/shuf.cpp` | No local upstream source file mapped yet. |
| P1 | `split` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 900 | 0 | 13 | 0 | 0 | 24 | 0 | | 0 | `src/commands/split.cpp` | No local upstream source file mapped yet. |
| P1 | `stat` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 763 | 0 | 6 | 1 | 0 | 14 | 0 | | 0 | `src/commands/stat.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P1 | `tac` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 207 | 0 | 3 | 0 | 0 | 13 | 0 | | 0 | `src/commands/tac.cpp` | Regex behavior is command-owned, not shell-owned.
No local upstream source file mapped yet. |
| P1 | `timeout` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 456 | 0 | 6 | 0 | 0 | 25 | 0 | | 0 | `src/commands/timeout.cpp` | No local upstream source file mapped yet. |
| P1 | `uniq` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 384 | 0 | 10 | 0 | 0 | 17 | 0 | | 0 | `src/commands/uniq.cpp` | No local upstream source file mapped yet. |
| P1 | `unlink` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 135 | 0 | 1 | 0 | 0 | 11 | 0 | | 0 | `src/commands/unlink.cpp` | No local upstream source file mapped yet. |
| P1 | `vdir` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 313 | 0 | 61 | 0 | 0 | 7 | 0 | | 0 | `src/commands/vdir.cpp` | No local upstream source file mapped yet. |
| P1 | `cmp` | [gnu-diffutils](https://www.gnu.org/software/diffutils/manual/) | 456 | 0 | 5 | 0 | 0 | 15 | 0 | | 0 | `src/commands/cmp.cpp` | No local upstream source file mapped yet. |
| P1 | `patch` | [patch](https://savannah.gnu.org/projects/patch/) | 573 | 0 | 26 | 0 | 0 | 3 | 0 | | 0 | `src/commands/patch.cpp` | No local upstream source file mapped yet. |
| P1 | `free` | [procps-ng](https://gitlab.com/procps-ng/procps) | 288 | 0 | 20 | 0 | 0 | 5 | 0 | | 0 | `src/commands/free.cpp` | No local upstream source file mapped yet. |
| P1 | `column` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 558 | 0 | 36 | 0 | 0 | 16 | 0 | | 0 | `src/commands/column.cpp` | No local upstream source file mapped yet. |
| P2 | `getconf` | [cygwin](https://cygwin.com/) | 124 | 0 | 3 | 0 | 0 | 4 | 0 | | 0 | `src/commands/getconf.cpp` | No local upstream source file mapped yet. |
| P2 | `locale` | [cygwin](https://cygwin.com/) | 320 | 0 | 6 | 0 | 0 | 4 | 0 | | 0 | `src/commands/locale.cpp` | No local upstream source file mapped yet. |
| P2 | `d2u` | [dos2unix](https://waterlan.home.xs4all.nl/dos2unix.html) | 137 | 0 | 1 | 0 | 0 | 3 | 0 | | 0 | `src/commands/d2u.cpp` | No local upstream source file mapped yet. |
| P2 | `dos2unix` | [dos2unix](https://waterlan.home.xs4all.nl/dos2unix.html) | 137 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/dos2unix.cpp` | No local upstream source file mapped yet. |
| P2 | `u2d` | [dos2unix](https://waterlan.home.xs4all.nl/dos2unix.html) | 148 | 0 | 1 | 0 | 0 | 3 | 0 | | 0 | `src/commands/u2d.cpp` | No local upstream source file mapped yet. |
| P2 | `unix2dos` | [dos2unix](https://waterlan.home.xs4all.nl/dos2unix.html) | 140 | 0 | 1 | 0 | 0 | 1 | 0 | | 0 | `src/commands/unix2dos.cpp` | No local upstream source file mapped yet. |
| P2 | `file` | [file](https://www.darwinsys.com/file/) | 450 | 0 | 11 | 0 | 0 | 5 | 0 | | 0 | `src/commands/file.cpp` | No local upstream source file mapped yet. |
| P2 | `arch` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 99 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/arch.cpp` | No local upstream source file mapped yet. |
| P2 | `base32` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 208 | 0 | 3 | 0 | 0 | 12 | 0 | | 0 | `src/commands/base32.cpp` | No local upstream source file mapped yet. |
| P2 | `base64` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 210 | 0 | 3 | 0 | 0 | 15 | 0 | | 0 | `src/commands/base64.cpp` | No local upstream source file mapped yet. |
| P2 | `basenc` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 629 | 0 | 13 | 0 | 0 | 19 | 0 | | 0 | `src/commands/basenc.cpp` | No local upstream source file mapped yet. |
| P2 | `chcon` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 176 | 0 | 14 | 0 | 0 | 6 | 0 | | 0 | `src/commands/chcon.cpp` | No local upstream source file mapped yet. |
| P2 | `chroot` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 78 | 0 | 3 | 0 | 0 | 5 | 0 | | 0 | `src/commands/chroot.cpp` | No local upstream source file mapped yet. |
| P2 | `dircolors` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 268 | 0 | 6 | 0 | 0 | 4 | 0 | | 0 | `src/commands/dircolors.cpp` | No local upstream source file mapped yet. |
| P2 | `expand` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 319 | 0 | 2 | 0 | 0 | 13 | 0 | | 0 | `src/commands/expand.cpp` | No local upstream source file mapped yet. |
| P2 | `expr` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 511 | 0 | 1 | 0 | 0 | 11 | 0 | | 0 | `src/commands/expr.cpp` | No local upstream source file mapped yet. |
| P2 | `factor` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 145 | 0 | 2 | 0 | 0 | 2 | 0 | | 0 | `src/commands/factor.cpp` | No local upstream source file mapped yet. |
| P2 | `false` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 70 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/false.cpp` | No local upstream source file mapped yet. |
| P2 | `groups` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 125 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/groups.cpp` | No local upstream source file mapped yet. |
| P2 | `hostid` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 96 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/hostid.cpp` | No local upstream source file mapped yet. |
| P2 | `hostname` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 219 | 0 | 11 | 4 | 0 | 2 | 0 | | 0 | `src/commands/hostname.cpp` | Has explicitly unsupported declared option(s).
No local upstream source file mapped yet. |
| P2 | `id` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 250 | 0 | 9 | 0 | 0 | 13 | 0 | | 0 | `src/commands/id.cpp` | No local upstream source file mapped yet. |
| P2 | `logname` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 71 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/logname.cpp` | No local upstream source file mapped yet. |
| P2 | `mkfifo` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 166 | 0 | 3 | 0 | 0 | 5 | 0 | | 0 | `src/commands/mkfifo.cpp` | No local upstream source file mapped yet. |
| P2 | `mknod` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 173 | 0 | 3 | 0 | 0 | 6 | 0 | | 0 | `src/commands/mknod.cpp` | No local upstream source file mapped yet. |
| P2 | `nice` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 149 | 0 | 1 | 0 | 0 | 14 | 0 | | 0 | `src/commands/nice.cpp` | No local upstream source file mapped yet. |
| P2 | `nohup` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 164 | 0 | 1 | 0 | 0 | 7 | 0 | | 0 | `src/commands/nohup.cpp` | No local upstream source file mapped yet. |
| P2 | `nproc` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 84 | 0 | 2 | 0 | 0 | 6 | 0 | | 0 | `src/commands/nproc.cpp` | No local upstream source file mapped yet. |
| P2 | `numfmt` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 565 | 0 | 19 | 0 | 0 | 15 | 0 | | 0 | `src/commands/numfmt.cpp` | No local upstream source file mapped yet. |
| P2 | `pathchk` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 193 | 0 | 3 | 0 | 0 | 14 | 0 | | 0 | `src/commands/pathchk.cpp` | No local upstream source file mapped yet. |
| P2 | `pinky` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 146 | 0 | 10 | 0 | 0 | 3 | 0 | | 0 | `src/commands/pinky.cpp` | No local upstream source file mapped yet. |
| P2 | `printenv` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 120 | 0 | 1 | 0 | 0 | 9 | 0 | | 0 | `src/commands/printenv.cpp` | No local upstream source file mapped yet. |
| P2 | `ptx` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 457 | 0 | 18 | 0 | 0 | 13 | 0 | | 0 | `src/commands/ptx.cpp` | No local upstream source file mapped yet. |
| P2 | `runcon` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 96 | 0 | 5 | 0 | 0 | 5 | 0 | | 0 | `src/commands/runcon.cpp` | No local upstream source file mapped yet. |
| P2 | `sha1sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 403 | 0 | 10 | 0 | 0 | 17 | 0 | | 0 | `src/commands/sha1sum.cpp` | No local upstream source file mapped yet. |
| P2 | `sha256sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 401 | 0 | 10 | 0 | 0 | 16 | 0 | | 0 | `src/commands/sha256sum.cpp` | No local upstream source file mapped yet. |
| P2 | `shred` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 308 | 0 | 9 | 0 | 0 | 9 | 0 | | 0 | `src/commands/shred.cpp` | No local upstream source file mapped yet. |
| P2 | `sleep` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 159 | 0 | 1 | 0 | 0 | 8 | 0 | | 0 | `src/commands/sleep.cpp` | No local upstream source file mapped yet. |
| P2 | `stdbuf` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 276 | 0 | 3 | 0 | 0 | 9 | 0 | | 0 | `src/commands/stdbuf.cpp` | No local upstream source file mapped yet. |
| P2 | `stty` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 477 | 0 | 3 | 0 | 0 | 9 | 0 | | 0 | `src/commands/stty.cpp` | No local upstream source file mapped yet. |
| P2 | `sum` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 196 | 0 | 2 | 0 | 0 | 9 | 0 | | 0 | `src/commands/sum.cpp` | No local upstream source file mapped yet. |
| P2 | `sync` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 164 | 0 | 2 | 0 | 0 | 12 | 0 | | 0 | `src/commands/sync.cpp` | No local upstream source file mapped yet. |
| P2 | `true` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 71 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/true.cpp` | No local upstream source file mapped yet. |
| P2 | `truncate` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 473 | 0 | 4 | 0 | 0 | 12 | 0 | | 0 | `src/commands/truncate.cpp` | No local upstream source file mapped yet. |
| P2 | `tsort` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 154 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/tsort.cpp` | No local upstream source file mapped yet. |
| P2 | `tty` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 88 | 0 | 2 | 0 | 0 | 6 | 0 | | 0 | `src/commands/tty.cpp` | No local upstream source file mapped yet. |
| P2 | `uname` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 202 | 0 | 9 | 0 | 0 | 3 | 0 | | 0 | `src/commands/uname.cpp` | No local upstream source file mapped yet. |
| P2 | `unexpand` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 364 | 0 | 4 | 0 | 0 | 13 | 0 | | 0 | `src/commands/unexpand.cpp` | No local upstream source file mapped yet. |
| P2 | `uptime` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 148 | 0 | 2 | 0 | 0 | 1 | 0 | | 0 | `src/commands/uptime.cpp` | No local upstream source file mapped yet. |
| P2 | `users` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 136 | 0 | 1 | 0 | 0 | 1 | 0 | | 0 | `src/commands/users.cpp` | No local upstream source file mapped yet. |
| P2 | `who` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 182 | 0 | 17 | 0 | 0 | 15 | 0 | | 0 | `src/commands/who.cpp` | No local upstream source file mapped yet. |
| P2 | `whoami` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 100 | 0 | 1 | 0 | 0 | 2 | 0 | | 0 | `src/commands/whoami.cpp` | No local upstream source file mapped yet. |
| P2 | `yes` | [gnu-coreutils](https://www.gnu.org/software/coreutils/manual/) | 120 | 0 | 1 | 0 | 0 | 5 | 0 | | 0 | `src/commands/yes.cpp` | No local upstream source file mapped yet. |
| P2 | `cpio` | [gnu-cpio](https://www.gnu.org/software/cpio/) | 477 | 0 | 9 | 0 | 0 | 2 | 0 | | 0 | `src/commands/cpio.cpp` | No local upstream source file mapped yet. |
| P2 | `diff3` | [gnu-diffutils](https://www.gnu.org/software/diffutils/manual/) | 337 | 0 | 5 | 0 | 0 | 14 | 0 | | 0 | `src/commands/diff3.cpp` | No local upstream source file mapped yet. |
| P2 | `sdiff` | [gnu-diffutils](https://www.gnu.org/software/diffutils/manual/) | 341 | 0 | 8 | 0 | 0 | 10 | 0 | | 0 | `src/commands/sdiff.cpp` | No local upstream source file mapped yet. |
| P2 | `which` | [gnu-which](https://savannah.gnu.org/projects/which/) | 415 | 0 | 12 | 0 | 0 | 16 | 0 | | 0 | `src/commands/which.cpp` | No local upstream source file mapped yet. |
| P2 | `hmac256` | [libgcrypt](https://gnupg.org/software/libgcrypt/) | 100 | 0 | 1 | 0 | 0 | 1 | 0 | | 0 | `src/commands/hmac256.cpp` | No local upstream source file mapped yet. |
| P2 | `mpicalc` | [libgcrypt](https://gnupg.org/software/libgcrypt/) | 544 | 0 | 4 | 0 | 0 | 2 | 0 | | 0 | `src/commands/mpicalc.cpp` | No local upstream source file mapped yet. |
| P2 | `chattr` | local | 198 | 0 | 3 | 0 | 0 | 4 | 0 | | 0 | `src/commands/chattr.cpp` | |
| P2 | `envsubst` | local | 168 | 0 | 1 | 0 | 0 | 3 | 0 | | 0 | `src/commands/envsubst.cpp` | |
| P2 | `getfacl` | local | 203 | 0 | 8 | 0 | 0 | 3 | 0 | | 0 | `src/commands/getfacl.cpp` | |
| P2 | `killall` | local | 137 | 0 | 10 | 0 | 0 | 3 | 0 | | 0 | `src/commands/killall.cpp` | |
| P2 | `ldd` | local | 249 | 0 | 5 | 0 | 0 | 6 | 0 | | 0 | `src/commands/ldd.cpp` | |
| P2 | `locate` | local | 207 | 0 | 15 | 0 | 0 | 0 | 0 | | 0 | `src/commands/locate.cpp` | |
| P2 | `logger` | local | 137 | 0 | 15 | 0 | 0 | 2 | 0 | | 0 | `src/commands/logger.cpp` | |
| P2 | `lsattr` | local | 198 | 0 | 5 | 0 | 0 | 2 | 0 | | 0 | `src/commands/lsattr.cpp` | |
| P2 | `mkgroup` | local | 112 | 0 | 2 | 0 | 0 | 3 | 0 | | 0 | `src/commands/mkgroup.cpp` | |
| P2 | `mkpasswd` | local | 157 | 0 | 6 | 1 | 0 | 3 | 0 | | 0 | `src/commands/mkpasswd.cpp` | Has explicitly unsupported declared option(s). |
| P2 | `namei` | local | 173 | 0 | 4 | 0 | 0 | 0 | 0 | | 0 | `src/commands/namei.cpp` | |
| P2 | `pgrep` | local | 133 | 0 | 6 | 0 | 0 | 3 | 0 | | 0 | `src/commands/pgrep.cpp` | |
| P2 | `pidof` | local | 81 | 0 | 1 | 0 | 0 | 5 | 0 | | 0 | `src/commands/pidof.cpp` | |
| P2 | `pkill` | local | 135 | 0 | 10 | 0 | 0 | 3 | 0 | | 0 | `src/commands/pkill.cpp` | |
| P2 | `pldd` | local | 68 | 0 | 1 | 0 | 0 | 3 | 0 | | 0 | `src/commands/pldd.cpp` | |
| P2 | `regtool` | local | 302 | 0 | 1 | 0 | 0 | 5 | 0 | | 0 | `src/commands/regtool.cpp` | |
| P2 | `renice` | local | 139 | 0 | 4 | 0 | 0 | 3 | 0 | | 0 | `src/commands/renice.cpp` | |
| P2 | `time` | local | 238 | 0 | 1 | 0 | 0 | 0 | 0 | | 0 | `src/commands/time.cpp` | |
| P2 | `tzset` | local | 121 | 0 | 2 | 0 | 0 | 2 | 0 | | 0 | `src/commands/tzset.cpp` | |
| P2 | `updatedb` | local | 173 | 0 | 10 | 0 | 0 | 0 | 0 | | 0 | `src/commands/updatedb.cpp` | |
| P2 | `vmstat` | local | 179 | 0 | 10 | 1 | 0 | 0 | 0 | | 0 | `src/commands/vmstat.cpp` | Has explicitly unsupported declared option(s). |
| P2 | `w` | local | 248 | 0 | 13 | 0 | 0 | 0 | 0 | | 0 | `src/commands/w.cpp` | |
| P2 | `whereis` | local | 359 | 0 | 9 | 0 | 0 | 0 | 0 | | 0 | `src/commands/whereis.cpp` | |
| P2 | `lsof` | [lsof](https://github.com/lsof-org/lsof) | 866 | 0 | 10 | 0 | 0 | 7 | 0 | | 0 | `src/commands/lsof.cpp` | No local upstream source file mapped yet. |
| P2 | `man` | [man-db](https://www.nongnu.org/man-db/) | 143 | 0 | 6 | 0 | 0 | 4 | 0 | | 0 | `src/commands/man.cpp` | No local upstream source file mapped yet. |
| P2 | `clear` | [ncurses](https://invisible-island.net/ncurses/) | 63 | 0 | 1 | 0 | 0 | 1 | 0 | | 0 | `src/commands/clear.cpp` | No local upstream source file mapped yet. |
| P2 | `infocmp` | [ncurses](https://invisible-island.net/ncurses/) | 28 | 0 | 1 | 0 | 0 | 1 | 0 | | 0 | `src/commands/infocmp.cpp` | No local upstream source file mapped yet. |
| P2 | `reset` | [ncurses](https://invisible-island.net/ncurses/) | 90 | 0 | 12 | 0 | 0 | 3 | 0 | | 0 | `src/commands/reset.cpp` | No local upstream source file mapped yet. |
| P2 | `tic` | [ncurses](https://invisible-island.net/ncurses/) | 57 | 0 | 6 | 0 | 0 | 2 | 0 | | 0 | `src/commands/tic.cpp` | No local upstream source file mapped yet. |
| P2 | `toe` | [ncurses](https://invisible-island.net/ncurses/) | 56 | 0 | 7 | 0 | 0 | 1 | 0 | | 0 | `src/commands/toe.cpp` | No local upstream source file mapped yet. |
| P2 | `tput` | [ncurses](https://invisible-island.net/ncurses/) | 42 | 0 | 1 | 0 | 0 | 7 | 0 | | 0 | `src/commands/tput.cpp` | No local upstream source file mapped yet. |
| P2 | `ps` | [procps-ng](https://gitlab.com/procps-ng/procps) | 772 | 0 | 13 | 0 | 0 | 11 | 0 | | 0 | `src/commands/ps.cpp` | No local upstream source file mapped yet. |
| P2 | `top` | [procps-ng](https://gitlab.com/procps-ng/procps) | 1082 | 0 | 14 | 0 | 0 | 16 | 0 | | 0 | `src/commands/top.cpp` | No local upstream source file mapped yet. |
| P2 | `watch` | [procps-ng](https://gitlab.com/procps-ng/procps) | 250 | 0 | 5 | 0 | 0 | 4 | 0 | | 0 | `src/commands/watch.cpp` | No local upstream source file mapped yet. |
| P2 | `tree` | [tree](https://oldmanprogrammer.net/source.php?dir=projects/tree) | 570 | 0 | 10 | 0 | 0 | 10 | 0 | | 0 | `src/commands/tree.cpp` | No local upstream source file mapped yet. |
| P2 | `cal` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 177 | 0 | 1 | 0 | 0 | 5 | 0 | | 0 | `src/commands/cal.cpp` | No local upstream source file mapped yet. |
| P2 | `col` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 187 | 0 | 5 | 0 | 0 | 6 | 0 | | 0 | `src/commands/col.cpp` | No local upstream source file mapped yet. |
| P2 | `getopt` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 211 | 0 | 9 | 0 | 0 | 4 | 0 | | 0 | `src/commands/getopt.cpp` | No local upstream source file mapped yet. |
| P2 | `hexdump` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 364 | 0 | 12 | 0 | 0 | 11 | 0 | | 0 | `src/commands/hexdump.cpp` | No local upstream source file mapped yet. |
| P2 | `look` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 239 | 0 | 5 | 0 | 0 | 0 | 0 | | 0 | `src/commands/look.cpp` | No local upstream source file mapped yet. |
| P2 | `rev` | [util-linux](https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/) | 168 | 0 | 1 | 0 | 0 | 8 | 0 | | 0 | `src/commands/rev.cpp` | No local upstream source file mapped yet. |
| P2 | `xxd` | [xxd](https://www.vim.org/) | 397 | 0 | 10 | 0 | 0 | 13 | 0 | | 0 | `src/commands/xxd.cpp` | No local upstream source file mapped yet. |
## Release Use
- P0 commands must have behavior probes against their upstream family before release.
- Unsupported options may stay declared only when the command exits with a clear diagnostic or the option is documented as a compatibility placeholder.
- Placeholder/no-op options should be kept if upstream accepts them and Windows cannot implement the behavior, but their source comments and docs must say so.
- Source LOC is a rough toy-implementation signal only. Behavior tests and option parity decide release readiness.
- Upstream LOC is counted only for local upstream source files already pulled under `_upstream_refs`; a zero means the reference still needs to be pulled or mapped.
- Performance probes come from `DOCS/generated/command_performance_baseline.md`; they are smoke baselines, not exhaustive microbenchmarks.
- Commands with zero direct tests should get at least smoke tests before release, even if they are P2.