# External clap adopter probes

These source-derived probes prevent the 6.x compatibility work from narrowing itself to jdx
CLIs. They are deliberately reduced rather than vendored: the tests retain each upstream's
distinctive declaration shapes, while this audit records everything the reduction cannot prove.

| Upstream                                                  | Pinned revision                            | Shape exercised                                                                   | Migration result                                                                                                                                          | Remaining upstream-specific gaps                                                                                                                                                                                                                                                                                                                                                                                           |
| --------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [sharkdp/fd](https://github.com/sharkdp/fd)               | `ee20f426ddf338ac7ead5c5f00ea49258005caaf` | derive-heavy root, custom value parsers, hyphenated values, conflict sets         | the complete 57-flag clap command is captured as KDL and compiles as a typed `usage-rs` shadow; the reduced probe agrees on accepted values and conflicts | three optional-value flags are reported as lossy by the clap bridge because clap exposes their arity but not their missing-value semantics; clap's `ArgGroup` builder expression must be expanded to field relationships; Elvish completion is outside the 6.0 shell set. The port also found fd's digit short `-0`; usage now gives an exact declared digit short precedence over the ordinary negative-number value rule |
| [XAMPPRocky/tokei](https://github.com/XAMPPRocky/tokei)   | `fa44e5194060305576514d59b850353643afbfc8` | builder-only command and `ArgMatches`, append flags, choices, variadic positional | the complete 18-flag command is captured losslessly and compiles as a typed `usage-rs` shadow; the reduced probe exercises its interpreted bridge path    | the builder/`ArgMatches` API is an intentional typed-parser non-goal; a real migration must either keep this cold bridge or rewrite the declaration as a typed struct; the custom clap colour palette is not portable                                                                                                                                                                                                      |
| [starship/starship](https://github.com/starship/starship) | `6d38f35391a8e68952a3dd4b9acd40d3d93596f6` | subcommands, value-enum aliases, positional `requires`, generated completions     | all 15 commands and 55 flags are captured and compile as a typed `usage-rs` shadow; the reduced probe agrees on alias binding and relationship failure    | five flattened `pipestatus` occurrences report the same bridge arity loss because clap exposes `Append` and `num_args=1` but not the intended delimiter-expanded collection shape; computed version text must become explicit portable literals; Elvish remains outside the 6.0 shell set; primitive-returning parser functions need `FromStr` wrappers or portable validation                                             |

Each upstream's license is reproduced in the repository's [NOTICE.md](../../NOTICE.md);
update that file when a pinned revision changes to one under different terms.

The executable probes live in `conformance/tests/external_clap_adopters.rs`. Each pinned upstream's
complete captured command, structured bridge-loss report, and generated typed shadow live beside
this audit and under `benches/shadows/external-*`. Refresh this table and the checked-in captures
against a new upstream revision before adding or removing a recorded gap.
