{"actions":{"bootstrapAndRun":{"effect":"installs rote if missing, inspects, prepares, and asks before running","href":"https://play.modiqo.ai/install?play=jaylabs/sweep-git-repos@0.4.11","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/jaylabs/sweep-git-repos@0.4.11","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/jaylabs/sweep-git-repos@0.4.11","effect":"executes the play locally after consent","headless":{"approvalAssertion":"--yes","approvalRequiredBeforeInvocation":true,"commandTemplate":"rote play run https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.11 <name=value...> --yes","stdinPolicy":"never pipe input to automate the interactive Ready selector"},"requiresConsent":true}},"authenticationPreflight":{"credentialValues":"local_only","enforcedBeforeAdapterCalls":true,"mode":"runtime_compatibility","readiness":"inspect_locally","steps":[]},"description":"You have a folder full of repos and no idea which ones hold work that only exists on your laptop. This finds them. It walks every git repo under a folder you choose and reports unpushed commits, uncommitted changes, stashes and branches with no upstream, then asks GitHub whether that work is already on origin or in a pull request. That leg uses your existing gh login or the rote github adapter, makes GET calls only, and can be switched off. A repo it cannot read is listed as unknown, not dropped. The only file it writes is a baseline kept outside your repositories, so the next sweep shows what moved. It never writes inside a repository and never fetches.","distribution":{"digest":"sha256:20e773ef437644222764a7935ed30927f60a0851797cfbf0d2d1c1f027899f58","mediaType":"application/vnd.modiqo.rote-flow","size":51014,"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/jaylabs/sweep-git-repos@0.4.11","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/jaylabs/sweep-git-repos@0.4.11","protocol":"https://play.modiqo.ai/.well-known/rote","self":"https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.11.json"},"name":"sweep-git-repos","owner":{"kind":"org","slug":"jaylabs"},"parameters":[{"default":"~/Documents","description":"Folder to sweep. A tilde path like ~/code is expanded to your home folder. Give an absolute path otherwise. A relative one resolves against the run workspace rather than your shell, so it will usually not be found.","example":"~/Documents","input":{"allowCustom":true,"choices":[],"label":"Base dir"},"name":"base_dir","required":false,"type":"string"},{"default":"3","description":"How many folder levels below base_dir to search. Must be a whole number; clamped to 1..6. Anything else falls back to 3 and the run says so. Keep it small on big trees.","example":"3","input":{"allowCustom":true,"choices":[],"label":"Max depth"},"name":"max_depth","required":false,"type":"string"},{"description":"Where to keep the baseline this play compares against. Leave empty to use the play's own run workspace. Nothing is ever written inside a repository either way.","example":"~/.rote/sweep-git-repos-state","input":{"allowCustom":true,"choices":[],"label":"State dir"},"name":"state_dir","required":false,"type":"string"},{"description":"Extra addresses that count as yours, comma separated. Your repo-level and global git user.email already count; this is for the other addresses you commit under.","example":"you@work.com, you@users.noreply.github.com","input":{"allowCustom":true,"choices":[],"label":"Emails"},"name":"emails","required":false,"type":"string"},{"description":"Sweep only the repositories whose path under base_dir contains this text, case-insensitive. The baseline still records everything found, so a filtered run cannot make the next full run think the rest disappeared.","example":"nohunt","input":{"allowCustom":true,"choices":[],"label":"Only"},"name":"only","required":false,"type":"string"},{"default":"0","description":"Stop after this many repositories, in path order. 0 means no cap. Must be a whole number; anything else is ignored as no cap and the run says so.","example":"20","input":{"allowCustom":true,"choices":[],"label":"Max repos"},"name":"max_repos","required":false,"type":"string"},{"default":"text","description":"How the briefing reads. The value text is the aligned terminal view, markdown a table you can paste into a document, json the same object the result view carries.","example":"markdown","input":{"allowCustom":false,"choices":[{"label":"text","value":"text"},{"label":"markdown","value":"markdown"},{"label":"json","value":"json"}],"label":"Format"},"name":"format","required":false,"type":"string","validValues":["text","markdown","json"]},{"default":"auto","description":"Which route checks unpushed and upstream-less branches. The value auto tries the gh CLI, then the rote adapter, then skips and says why. The values gh and adapter each insist on one. The value never keeps the sweep local. GET only.","example":"adapter","input":{"allowCustom":false,"choices":[{"label":"auto","value":"auto"},{"label":"gh","value":"gh"},{"label":"adapter","value":"adapter"},{"label":"never","value":"never"}],"label":"Github"},"name":"github","required":false,"type":"string","validValues":["auto","gh","adapter","never"]}],"preparation":[{"action":{"command":"rote play inspect https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.11 --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/jaylabs/sweep-git-repos@0.4.11","headlessCommandTemplate":"rote play run https://play.modiqo.ai/jaylabs/sweep-git-repos@0.4.11 <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.75.0"},"publishedAt":"2026-09-04T13:04:41.119907+00:00","reference":"jaylabs/sweep-git-repos@0.4.11","requirements":{"adapters":[{"bindingStatus":"resolved","credentialDemand":{"requirements":[{"description":"API authentication configuration","kind":"bearer","name":"GITHUB_TOKEN","protocol":"static","protocolSource":"inferred","setup":{"configure":{"command":"rote token set GITHUB_TOKEN","input":"hidden"},"href":"https://github.com/settings/tokens","source":"adapter_catalog","type":"vendor_token_page","verifiedHost":"github.com"}}],"status":"required"},"displayName":"GitHub","fingerprint":"mcp_kmcjZ2U5m8NQMM8491mGhVmZthZ","id":"github","purpose":"Code repository management and collaboration - issues, pull requests, commits, releases, code review","requirement":"modiqo/github@0.0.2","version":"0.0.2"}],"browser":{"dependencies":[],"runtime":false,"signIn":false},"localTools":["python3","git","gh","rote"],"roteCli":{"minimumVersion":"0.62.0"},"sessions":false},"resolution":"pinned","schema":"rote.play.v1","stats":{"downloads":4,"installs":0},"steps":{"count":7,"names":["discover_repos","env_probe","github_probe","github_status","load_previous","sweep_repo","validate_base"]},"title":"sweep-git-repos","type":"play","version":"0.4.11","visibility":"public"}