{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=sonic-tools/ml-train-hygiene-check@0.1.1","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/sonic-tools/ml-train-hygiene-check@0.1.1","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/sonic-tools/ml-train-hygiene-check@0.1.1","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/sonic-tools/ml-train-hygiene-check@0.1.1 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Catches the silent bugs that make ML runs non-reproducible or leak test data, before you waste hours debugging a model that trains differently every time. Point it at any directory of Python (or a single file) and it scans for 6 of the most common silent-correctness mistakes a static check can prove: a scaler fitted before the train/test split does (data leak), training-mode inference missing model.eval()/torch.no_grad(), a random seed set after the model or the shuffle, CUDA without deterministic flags, and a metric computed on unsplit data. Each finding is graded likely vs possible and prints the fix hint plus the code snippet at the exact file:line -- so the next action is obvious. Offline, pure Python stdlib (ast + tokenize), no credentials, no browser, never executes your code (parses only, so it is safe on untrusted repos). Zero findings on clean scripts makes it a 2-second pre-commit / CI hygiene gate. Try: rote play run https://play.modiqo.ai/sonic-tools/ml-train-hygiene-check target=/abs/path/to/repo","distribution":{"digest":"sha256:4abf976eae889ae8d23845d32d5130274f0c00a0792259b87bb037f13bf42c4b","mediaType":"application/vnd.modiqo.rote-flow","size":14990,"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/sonic-tools/ml-train-hygiene-check@0.1.1","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/sonic-tools/ml-train-hygiene-check@0.1.1","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/sonic-tools/ml-train-hygiene-check@0.1.1.json"},"name":"ml-train-hygiene-check","owner":{"kind":"org","slug":"sonic-tools"},"parameters":[{"description":"Path to the Python file or directory to analyze (absolute paths are most reliable; relative paths resolve against the play runtime directory)","example":"src/training","input":{"allowCustom":true,"choices":[],"label":"Target"},"name":"target","required":true,"type":"string"},{"default":8,"description":"Maximum directory depth to recurse when target is a directory","example":8,"input":{"allowCustom":true,"choices":[],"label":"Depth"},"name":"depth","required":false,"type":"integer"},{"description":"Optional framework hint to force before scanning (auto-detected otherwise)","example":"pytorch","input":{"allowCustom":true,"choices":[],"label":"Framework"},"name":"framework","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/sonic-tools/ml-train-hygiene-check@0.1.1 --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/sonic-tools/ml-train-hygiene-check@0.1.1","headlessCommandTemplate":"rote play run https://play.modiqo.ai/sonic-tools/ml-train-hygiene-check@0.1.1 <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.79.0"},"publishedAt":"2026-09-03T22:04:55.869971+00:00","reference":"sonic-tools/ml-train-hygiene-check@0.1.1","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":2,"installs":0},"steps":{"count":1,"names":["audit"]},"title":"ml-train-hygiene-check","type":"play","version":"0.1.1","visibility":"public"}