{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=chinmoy/stranger-test@0.3.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/chinmoy/stranger-test@0.3.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/chinmoy/stranger-test@0.3.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/chinmoy/stranger-test@0.3.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Clones the target repository from its own git objects into a temp directory, so untracked files, a gitignored .env and unpushed commits vanish exactly as they do for everyone else, then reports what a stranger hits first. 7 probes across 3 dependency layers cover the gitignored-but-present census, the host toolchain, environment variables the code reads but never documents, README commands that resolve to no npm script or no file at the path they name, whether the documented npm ci or poetry install can even run against the committed lockfile, and the submodules and git-lfs pointers a plain clone leaves empty or stubbed while exiting 0. The verdict orders findings by when a stranger meets them, clone then configure then install then run, and counts the undocumented actions between clone and a working state. It reports UNKNOWN, never a pass, when the target is not a git work tree, has no commits, or a probe cannot report. It does not check whether the code is correct, whether tests pass, or whether required se","distribution":{"digest":"sha256:dddad2bfa18b757dbc19aec2d02a966e2b8a545e440c004ab96ae5044a39905c","mediaType":"application/vnd.modiqo.rote-flow","size":53265,"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/chinmoy/stranger-test@0.3.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/chinmoy/stranger-test@0.3.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/chinmoy/stranger-test@0.3.0.json"},"name":"stranger-test","owner":{"kind":"user","slug":"chinmoy"},"parameters":[{"default":".","description":"Work tree to inspect. The default '.' resolves to the directory the run started in, so a zero-argument run tests the repository you are standing in; pass an absolute path to test a checkout somewhere else.","input":{"allowCustom":true,"choices":[],"label":"Path"},"name":"path","required":false,"type":"string"},{"default":"README*,CONTRIBUTING*,SETUP*,INSTALL*,GETTING_STARTED*,QUICKSTART*,docs/**","description":"Comma-separated globs naming the documents whose shell blocks count as instructions to a stranger. The default covers the files a newcomer opens first plus everything under docs/, which is where quickstarts hide; narrow it to skip a large generated docs tree.","input":{"allowCustom":true,"choices":[],"label":"Docs"},"name":"docs","required":false,"type":"string"},{"default":true,"description":"Whether regenerable ignored paths are dropped from the gitignored-but-present census. The default true hides node_modules, .venv, dist, target and editor state, because a stranger rebuilds those and listing them would bury the one .env that actually matters; set false to see every ignored file.","input":{"allowCustom":true,"choices":[],"label":"Ignore noise"},"name":"ignore_noise","required":false,"type":"boolean"},{"default":4000,"description":"Upper bound on source files read while looking for environment variables. The default 4000 covers most repositories in a few seconds, and when the bound is hit the report says the scan was truncated instead of quietly under-reporting.","input":{"allowCustom":true,"choices":[],"label":"Max files"},"name":"max_files","required":false,"type":"integer"},{"default":true,"description":"Whether HEAD is compared against its upstream to find commits that exist only on this machine. The default true costs one ref query and catches the case where the working tree runs but the pushed remote does not; set false for a checkout with no remote.","input":{"allowCustom":true,"choices":[],"label":"Check unpushed"},"name":"check_unpushed","required":false,"type":"boolean"},{"default":true,"description":"Whether the committed lockfile is checked against the committed manifest. The default true reads package.json, pyproject.toml and Pipfile out of git objects and reports a documented npm ci or pipenv install --deploy that cannot run, a dependency the lockfile does not carry, and two package managers' lockfiles claiming the same tree; a repository that ships no lockfile and never documents a frozen install is never reported, so leaving this on costs a healthy library nothing. Set false to skip the install stage entirely.","input":{"allowCustom":true,"choices":[],"label":"Check lockfile"},"name":"check_lockfile","required":false,"type":"boolean"},{"default":true,"description":"Whether submodule gitlinks and git-lfs pointers are checked against what the documents introduce. The default true names each submodule path a plain clone would leave empty and reads a sample of lfs blobs to prove they really are pointer stubs, but stays silent when the docs already say --recursive or git lfs install; set false when you already know the checkout is complete.","input":{"allowCustom":true,"choices":[],"label":"Check submodules"},"name":"check_submodules","required":false,"type":"boolean"},{"default":"NODE_ENV,PORT,CI,PATH,HOME","description":"Extra variable names treated as supplied by the host, so they are never reported as undocumented. The default repeats five the built-in list already covers, so the parameter documents its own shape; append your platform's injected names to keep them out of the blocker list.","input":{"allowCustom":true,"choices":[],"label":"Env ambient"},"name":"env_ambient","required":false,"type":"string"},{"default":"app","description":"Which reads of an environment variable can become blockers: app, or all. The default app counts only application code, because a fixture token read in tests/ or an artifact under docs/ is not a step a stranger takes to reach a working state; those are still counted and named, and reads in scripts/ or tools/ stay warnings. Use all to promote every read to a blocker.","input":{"allowCustom":true,"choices":[],"label":"Env scope"},"name":"env_scope","required":false,"type":"string"},{"default":"all","description":"Which findings reach the report: all, or critical. The default all keeps the warnings, because an empty submodule or an unintroduced tool is often what wastes the most time; use critical when you only want what hard-stops a stranger.","input":{"allowCustom":true,"choices":[],"label":"Severity"},"name":"severity","required":false,"type":"string"},{"default":false,"description":"Whether the temp clone survives the run. The default false deletes it, since it is a throwaway copy and nothing should accumulate in your temp directory; set true to open the clean tree yourself and see exactly what a stranger sees.","input":{"allowCustom":true,"choices":[],"label":"Keep clone"},"name":"keep_clone","required":false,"type":"boolean"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/chinmoy/stranger-test@0.3.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/chinmoy/stranger-test@0.3.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/chinmoy/stranger-test@0.3.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.78.0"},"publishedAt":"2026-09-04T06:49:17.344574+00:00","reference":"chinmoy/stranger-test@0.3.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["git","python3"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":4,"installs":0},"steps":{"count":7,"names":["cold_clone","doc_commands","env_contract","host_probe","lockfile_integrity","submodule_lfs","verdict"]},"title":"stranger-test","type":"play","version":"0.3.0","visibility":"public"}