{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=sookra/floor-check@0.1.5","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/sookra/floor-check@0.1.5","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/sookra/floor-check@0.1.5","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/sookra/floor-check@0.1.5 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"See the lowest Python version your code will actually run on, before someone on an older interpreter finds out for you. Syntax checks and linters read code that parses; they say nothing about code that parses and then raises. A union annotation like \"int | None\" compiles on 3.9 and throws TypeError the moment the module is imported, and \"import tomllib\" compiles and then fails to find the module. This reads the source with ast, finds both classes, and compares what the code needs against what the project declares in pyproject.toml, setup.cfg or deps.toml. It never imports, executes or pulls anything it reads, it writes nothing, and it runs no subprocess at all.","distribution":{"digest":"sha256:2478ffa578db6caec67626be6f0639ee0caea07e5e58513ed1d7483248d59341","mediaType":"application/vnd.modiqo.rote-flow","size":10681,"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/sookra/floor-check@0.1.5","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/sookra/floor-check@0.1.5","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/sookra/floor-check@0.1.5.json"},"name":"floor-check","owner":{"kind":"user","slug":"sookra"},"parameters":[{"default":".","description":"What to read: a .py file, a directory, a Play package directory, an owner/name reference such as modiqo/hello, or all to read every Play installed in the rote store.","input":{"allowCustom":true,"choices":[],"label":"Target"},"name":"target","required":false,"type":"string"},{"default":"3.9","description":"The oldest Python you intend to support, as major.minor. 3.9 is the default because that is what a stock macOS with only the Xcode command line tools provides.","input":{"allowCustom":true,"choices":[],"label":"Floor"},"name":"floor","required":false,"type":"string"},{"default":"~/.rote/flows","description":"Directory holding installed Play packages, used when target is all or an owner/name reference.","input":{"allowCustom":true,"choices":[],"label":"Flows root"},"name":"flows_root","required":false,"type":"string"},{"default":"false","description":"Set to true to exit non-zero when anything needs a newer Python than it declares. Off by default, because a finding is information rather than a failure.","input":{"allowCustom":true,"choices":[],"label":"Strict"},"name":"strict","required":false,"type":"string"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/sookra/floor-check@0.1.5 --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/sookra/floor-check@0.1.5","headlessCommandTemplate":"rote play run https://play.modiqo.ai/sookra/floor-check@0.1.5 <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.78.0"},"publishedAt":"2026-09-03T00:24:25.55199+00:00","reference":"sookra/floor-check@0.1.5","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":2,"names":["floor_scan","host_facts"]},"title":"floor-check","type":"play","version":"0.1.5","visibility":"public"}