{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=aryangorde/reviewer-finder@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/aryangorde/reviewer-finder@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/aryangorde/reviewer-finder@0.1.0","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/aryangorde/reviewer-finder@0.1.0 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"description":"Assigning a reviewer is a guess unless you know who has actually touched the code. GitHub will not tell you: a pull request lists who was requested, never whether any of them have ever edited these files, and CODEOWNERS answers a different question — who owns a path by policy, not who still has context. The obvious substitute, counting commits on the changed files and taking the top name, is worse than nothing on a real repository. On a recent kubernetes pull request the three highest committers to the changed files were a CI bot, the pull request author, and a second bot. This play reads the files a pull request touches, drops lockfiles and generated paths so dependency bumps stop impersonating expertise, then reads recent authorship of each remaining path and ranks people by how much of THIS change they have touched rather than how many commits they have anywhere. Automation is excluded, and because accounts like denobot and crowlbot report as ordinary users rather than bots, anything dropped on a name heur","distribution":{"digest":"sha256:6c7efa555e184bdec24df722686faa8c5fbe03e3a0baada6b0dc4596ca7e1002","mediaType":"application/vnd.modiqo.rote-flow","size":8415,"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/aryangorde/reviewer-finder@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/aryangorde/reviewer-finder@0.1.0","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/aryangorde/reviewer-finder@0.1.0.json"},"name":"reviewer-finder","owner":{"kind":"user","slug":"aryangorde"},"parameters":[{"description":"GitHub repository as owner/name","example":"kubernetes/kubernetes","input":{"allowCustom":true,"choices":[],"label":"Repo"},"name":"repo","required":true,"type":"string"},{"description":"Pull request number to route","input":{"allowCustom":true,"choices":[],"label":"Pr"},"name":"pr","required":true,"type":"number"},{"default":30,"description":"Commits sampled per changed file","input":{"allowCustom":true,"choices":[],"label":"History"},"name":"history","required":false,"type":"number"},{"default":40,"description":"Cap on how many changed files are sampled","input":{"allowCustom":true,"choices":[],"label":"Max files"},"name":"max_files","required":false,"type":"number"}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/aryangorde/reviewer-finder@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/aryangorde/reviewer-finder@0.1.0","headlessCommandTemplate":"rote play run https://play.modiqo.ai/aryangorde/reviewer-finder@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.78.0"},"publishedAt":"2026-09-02T20:26:02.909068+00:00","reference":"aryangorde/reviewer-finder@0.1.0","requirements":{"adapters":[],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["gh","bash"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":2,"installs":0},"steps":{"count":3,"names":["changed_paths","path_history","pull_request"]},"title":"reviewer-finder","type":"play","version":"0.1.0","visibility":"public"}