{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=dotisacat/command-shadow-audit@0.1.0","method":"GET","rel":"https://rote.dev/rels/bootstrap-and-run","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"inspect":{"command":"rote play inspect https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0","effect":"read-only"},"installCliOnly":{"effect":"installs the rote CLI, nothing else","href":"https://play.modiqo.ai/install","method":"GET","rel":"https://rote.dev/rels/install-cli","requiresConsent":true,"responseMediaType":"text/x-shellscript"},"run":{"command":"rote play run https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"When you type python3, what ACTUALLY runs -- and what did it silently replace? Five jobs, in order: statically parses a fixed list of shell rc files (~/.zshrc, ~/.zprofile, ~/.zshenv, ~/.bashrc, ~/.bash_profile, ~/.profile, ~/.bash_aliases -- plus whatever they literally \u0060source\u0060 one level deep, tilde-expanded, cycle-safe, each file degrading independently) for alias, function, and PATH-export definitions, by reading their own text; walks THIS process's own \u0024PATH, in order, for a watchlist of common commands (a built-in list plus anything you add), recording every hit -- directory, whether it is a symlink, its one-level link target, and which version-manager convention that directory matches (asdf, nvm, pyenv, rbenv, conda/anaconda, brew, ~/.local/bin, ~/.rote/bin, or plain system); joins the two and reports, per command, the winner using the shell's own precedence -- a function beats an alias beats the first PATH hit, stated explicitly because that is the one number this whole play hangs on -- and everything","distribution":{"digest":"sha256:7dedcc47707dc47e6775dadd064ebf53770349ad191a80f819693f3a534d5245","mediaType":"application/vnd.modiqo.rote-flow","size":49381,"verifiedBy":"rote verifies the downloaded archive against this digest before it runs"},"effects":{"credentialsProvidedBy":"runner","credentialsRemainLocal":true,"declaredWrites":[],"publisherReceivesCredentials":false},"id":"https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0","inputPolicy":{"optionalWithDefault":"show_default_and_accept_override","optionalWithoutDefault":"omit_unless_supplied","required":"ask","secrets":"collect_locally_outside_conversation"},"links":{"docs":"https://rote.dev","page":"https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0.json"},"name":"command-shadow-audit","owner":{"kind":"user","slug":"dotisacat"},"parameters":[{"description":"Extra commands to audit, comma-separated, added to the built-in watchlist (letters, digits, dash, underscore, dot only -- anything else is ignored with a note)","example":"python3,node","input":{"allowCustom":true,"choices":[],"label":"Commands"},"name":"commands","required":false,"type":"string"},{"default":0,"description":"1 = read --version from the safe allowlist binaries (opt-in; each candidate is realpath/ownership/write-permission trust-checked before it is ever run -- see resolve.py PROBE SAFETY), 0 = pure path analysis, no execution at all (0-1)","example":1,"input":{"allowCustom":true,"choices":[],"label":"Probe versions"},"name":"probe_versions","required":false,"type":"integer"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0 --json","effect":"read-only"},"step":1,"type":"inspect_local_readiness"},{"references":["/parameters"],"step":2,"type":"collect_parameters"},{"references":["/parameters","/requirements","/effects"],"step":3,"type":"review"},{"consentBoundary":"the user approves the exact play and parameter values","references":["/parameters","/requirements","/effects"],"step":4,"type":"obtain_run_consent"},{"action":{"command":"rote play run https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/dotisacat/command-shadow-audit@0.1.0 <name=value...> --yes"},"preservesAcquisitionBoundaries":["adapter_selection","oauth_dcr","google_discovery","static_token_setup","runtime_security_checks"],"requiresConsent":true,"step":5,"type":"run"}],"producedBy":{"roteVersion":"0.77.0"},"publishedAt":"2026-09-02T21:19:05.692518+00:00","reference":"dotisacat/command-shadow-audit@0.1.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":1,"installs":0},"steps":{"count":3,"names":["parse_rc","resolve","walk_path"]},"title":"command-shadow-audit","type":"play","version":"0.1.0","visibility":"public"}