A catalog file validates, then install looks in the parent directory
The install error named <parent>/plugins/probe-plugin. The file just added was <market>/catalog.json. The plugin directory was <market>/plugins/probe-plugin, beside the catalog, not beside the parent. claude plugin validate on that file had exited 0. Its warning had already named plugins[0] plugin.json under <market>.
Those two directories are not two prints of one root. Validate read the plugin from the directory that holds the catalog. claude plugin marketplace add exited 0 and stored the parent as installLocation. Install then looked there. The plugin was never in that parent.